Opal for SailfishOS

A community-built collection of beautiful and functional components for SailfishOS UI/UX development.

Note

Opal is currently moving from Github to Codeberg. This is a slow process. Meanwhile, links might become dead on either platform until everything is fixed.


What is Opal?

Opal is a community-built collection of pretty QML components for SailfishOS, building on top of Sailfish's Silica components. It provides ready-made components, examples, snippets, recipes, and resources for building more sailfishy Sailfish apps.

Opal's focus lies on good visual design following Sailfish's UI principles as well as good software design, so that other developers of all levels of experience can use it as examples.

See the main repo for details or check out the gallery app on OpenRepos or in Jolla's Harbour store.

Translations

Some Opal modules provide translations that can then be used directly in apps using Opal. This is a step towards a truly multilingual app ecosystem on Sailfish. It would be wonderful if all modules etc. could be translated in as many languages as possible!

Translations are managed using Weblate. Please prefer this over pull requests (which are still welcome, of course). If you just found a minor problem, you can also leave a comment in the forum or open an issue.

Known issues

Opal is stable but still young, so some documentation may be missing or unclear. All contributions are welcome! Don't hesitate to open an issue to clarify any questions you have, so that we can improve the documentation.

QmlLive, the live reloading tool in the Sailfish SDK, does not yet work properly with some modules. This is presumably due to a bug in QmlLive.

Right-to-left support is still lacking in Opal as well as in Sailfish. Please open an issue if any module does not work as intended using a right-to-left layout! Opal is aimed to be inclusive and international.

Anti-AI policy

Important

  • LLM/“AI”-generated contributions are forbidden.
  • Using this project in whole or in part for AI training or data mining is likewise forbidden.

Please be transparent, respect the Free Software community, and adhere to the licenses. This is a welcoming place for human creativity and diversity, but LLM/“AI”-generated slop is going against these values.

Apart from all the ethical, moral, legal, environmental, societal, social, political, technical, and overall human, reasons against LLMs/“AI”, I also simply don't have any spare time to review generated contributions.

See also this list for more reasons against supporting “AI”.


This project is not affiliated with Jolla / SailfishOS.

A collection of pretty QML components for SailfishOS
Updated 2026-07-21 21:51:28 +02:00
Updated 2026-07-21 21:46:12 +02:00
Template for new Opal modules
Updated 2026-07-21 21:44:28 +02:00
A simple 'About' page with license and contributors information for Sailfish apps.
Updated 2026-07-21 21:40:57 +02:00
[WIP] A Python tool for merging Qt translations catalogs
Updated 2026-07-21 21:39:28 +02:00
An extension for combo boxes to access the current value instead of the label.
Updated 2026-07-21 21:38:54 +02:00
QML module for ordering lists by drag-and-drop in Sailfish apps
Updated 2026-07-21 21:38:52 +02:00
A link handler to open or copy external links.
Updated 2026-07-21 21:29:57 +02:00
A combo box that can show detailed descriptions of all menu items.
Updated 2026-07-21 21:29:20 +02:00
QML module for adding media player views to Sailfish apps
Updated 2026-07-21 21:29:03 +02:00
A dialog asking for support that is shown when a user has used your Sailfish app for some time.
Updated 2026-07-21 21:28:08 +02:00
QML module for switches in menus in Sailfish apps
Updated 2026-07-21 21:28:07 +02:00
[WIP] C++ module for creating properties in Qt projects with less boilerplate
Updated 2026-07-21 21:27:58 +02:00
QML module for using SortFilterProxyModel in Sailfish apps
Updated 2026-07-21 21:27:53 +02:00
QML module for smart scrollbars in Sailfish apps
Updated 2026-07-21 21:27:17 +02:00

Members 1