Union Hopes To Address KDE's Fragmented Ways Of Styling Apps
([KDE] 3 Hours Ago
KDE Union)
- Reference: 0001525509
- News link: https://www.phoronix.com/news/KDE-Union-Hopes-Unified-Styling
- Source link:
KDE/Qt apps can be styled many different ways with Qt widgets, SVG-based styling, Qt Quick, and other routes for styling of applications. That fragmentation of different ways to styling KDE apps can probe problematic for UI designs and lead to a less cohesive user experience. KDE developer Arjen Hiemstra is hoping to change that with the Union project.
The KDE Union application hopes to imrpove the state of affairs by serving as a styling system to unify all the separate approaches / rendering stacks:
"Union consists of three parts: an input layer, an intermediate layer and an output layer. The input layer consists of plugins that can read and interpret some input file format containing a style description and turn it into a more abstract desciption of what to render. How to do that is defined by the middle intermediate layer, which is a library containing the description of the data model and a method of defining which elements to apply things to. Finally, the output layer consists of plugins that use the data from the intermediate layer and turn it into actual rendering commands, as needed for a specific rendering stack.
...
To allow us to focus more on the core we needed to break things down into more manageable parts. We chose to focus on the intermediate layer first, by using Plasma's SVG themes as an input format and a QtQuick Style as output. This means we are working with an input format that we already know how to deal with. It also means we have a clear picture of what the output should look like, as it should ultimately look just like how Plasma looks.
At this point, a lot of this work has now been done. While Union does not yet implement a full QtQuick style, it implements most of the basic controls to allow something such as Discover to run without looking completely alien. Focusing on the intermediate layer proved very useful, we encountered and managed to solve several pretty tricky technical issues that would have been even trickier if we did not know what things should look like."
More details on this KDE Union effort via [1]Arjen's blog .
Union is hosted on [2]invent.kde.org where the code is forming for this style engine to provide a unified style description to different output styles. We'll see if it takes off and helps unify KDE app styling.
[1] https://quantumproductions.info/articles/2025-02/moving-kdes-styling-future
[2] https://invent.kde.org/plasma/union
The KDE Union application hopes to imrpove the state of affairs by serving as a styling system to unify all the separate approaches / rendering stacks:
"Union consists of three parts: an input layer, an intermediate layer and an output layer. The input layer consists of plugins that can read and interpret some input file format containing a style description and turn it into a more abstract desciption of what to render. How to do that is defined by the middle intermediate layer, which is a library containing the description of the data model and a method of defining which elements to apply things to. Finally, the output layer consists of plugins that use the data from the intermediate layer and turn it into actual rendering commands, as needed for a specific rendering stack.
...
To allow us to focus more on the core we needed to break things down into more manageable parts. We chose to focus on the intermediate layer first, by using Plasma's SVG themes as an input format and a QtQuick Style as output. This means we are working with an input format that we already know how to deal with. It also means we have a clear picture of what the output should look like, as it should ultimately look just like how Plasma looks.
At this point, a lot of this work has now been done. While Union does not yet implement a full QtQuick style, it implements most of the basic controls to allow something such as Discover to run without looking completely alien. Focusing on the intermediate layer proved very useful, we encountered and managed to solve several pretty tricky technical issues that would have been even trickier if we did not know what things should look like."
More details on this KDE Union effort via [1]Arjen's blog .
Union is hosted on [2]invent.kde.org where the code is forming for this style engine to provide a unified style description to different output styles. We'll see if it takes off and helps unify KDE app styling.
[1] https://quantumproductions.info/articles/2025-02/moving-kdes-styling-future
[2] https://invent.kde.org/plasma/union
davidbepo