CSS gradients, WebP, and Declarative UI

March 15th, 2011

We decided to throw you a “fastball” and give you another snapshot with some really cool new Core features, including native WebP support (win!) and linear CSS gradients support (epic win!).

We also thought we would give you a little more information with regards to an obscure looking ‘fix’ included a couple of blog posts back mentioning Declarative UI. Declarative UI represents the future of dialogs and other native UI in Opera. Those of you who regularly sniff around in the contents of the Opera packages might know that our dialogs have been generated via a file called dialog.ini, which contains positions, sizes and other properties for many of the UI controls appearing in Opera. This is part of Opera’s UI toolkit, Quick, and allows us to make dialogs appear similar across different platforms.

However, the format also has its limitations. Because it relies on absolute pixel values for the layout of the controls, it’s easy to make mistakes when changing it. In addition, it’s hard to adapt to different string sizes for different languages, changes in layout for a specific platform to get closer to platform guidelines, and dialogs with variable contents.

Because of these and other reasons that you’ll hear more about in the future we’re moving towards a new format, written in YAML. The first dialog that you’ll see that uses this format is the label properties dialog in Opera Mail (activated by right-clicking a label and selecting properties). If you use Opera Mail, please take a look at this dialog and report any problems you might have. And if you feel like taking a look under the hood, check out the dialogs.yaml file in your Opera package.

Known issues

  • If you have lots of labels, the dialog will appear with a vertical scrollbar to scroll the content
  • Link not working on the Mac (Link is disabled for Speed Dial on the other platforms)

WARNING: This is a development snapshot: It contains the latest changes, but may also have severe known issues, including crashes, and data loss situations. In fact, it may not work at all.