Union Web (Experimental)#
Experimental web implementation of Union, including a CSS output pipeline and a SolidJS component library that provides QQC2-like state handling for themes generated by the Union Web's output web CSS.

npm install
npm run build # compile TypeScript packages (core, output-solid)
npm run dev # start Vite dev server with the SolidJS demo app
npm run build:demo # production build of the demo app
Packages#
| package | description |
|---|---|
@union-web/core |
CSS parsing, KColorScheme, IR generation |
@union-web/output-solid |
Build-time CSS generator: takes a union CSS theme + .colors file, outputs resolved CSS (Vite plugin) |
@union-web/plugin-solid |
SolidJS component library |
@union-web/demo-solid |
Example SolidJS demo app |
union-css/#
Shared input directory at the repo root containing:
themes/-- union CSS theme files (e.g.breeze/)colors/-- KDE.colorscolor scheme files (e.g.BreezeDark.colors)defaults/-- base default CSS
These inputs are consumed independently by output-solid's Vite plugin and can be swapped.
Component model#
plugin-solid is modeled after the Kirigami and QtQuick output plugins at https://invent.kde.org/plasma/union. Future implementation work should use that as a reference.
CLI#
npx union-web <input.colors> [output.css]