Build UI
Binding-neutral Qt 6 theme and reusable widget library for the Build ecosystem - one consistent look across every Build application.
Project Telos | gather | crucible | index | forum | telos | emet | buildlang
Build UI provides a single source of truth for color and Qt stylesheet generation, plus a small set of pre-styled widgets, so every application in the Build family (Calibrate Pro, Build Color, Build Finance, Build Oracle, Build Engine) renders consistently instead of re-implementing chrome.
Quick Start
Choose exactly one supported Qt 6 binding:
pip install "build-ui[pyside6]>=2,<3"
# or
pip install "build-ui[pyqt6]>=2,<3"
Plain pip install build-ui installs QtPy but no Qt binding. It is intended for
applications that already provide one supported binding. If more than one Qt
binding is installed, set QT_API to pyside6 or pyqt6 before the first
QtPy or Build UI import. One process cannot mix widget objects from two
bindings.
from build_ui.theme import C, STYLE
from build_ui.widgets import Card, Heading, Sidebar
app.setStyleSheet(STYLE)
card, layout = Card.with_layout()
layout.addWidget(Heading("Dashboard", level=1))
Features
- Theme (
theme.py) -C, a class of hex color constants (background, surface, border, text, accent, semantic colors);create_stylesheet(c=None), which renders a full Qt stylesheet from any color class;STYLE, the pre-rendered stylesheet for the default palette. - Widgets (
widgets.py) -Card,StatusDot,Heading,Stat,NavButton,Sidebar,ToastNotification: reusableQWidgetsubclasses that read their colors fromtheme.C.
Python API
from build_ui.theme import C, STYLE, create_stylesheet
from build_ui.widgets import Card, Heading, Stat, NavButton, Sidebar, StatusDot, ToastNotification
# Apply the shared stylesheet to a QApplication
app.setStyleSheet(STYLE)
# Build a themed variant by overriding constants
class DarkC(C):
BG = "#161616"
dark_style = create_stylesheet(DarkC)
# Compose widgets
sidebar = Sidebar(["Dashboard", "Settings"], app_name="My App")
stat = Stat("Uptime", "99.9%")
toast = ToastNotification("Saved", level="success")
Architecture
build_ui/
theme.py Color constants (C) + create_stylesheet() Qt stylesheet generator
widgets.py Card, StatusDot, Heading, Stat, NavButton, Sidebar, ToastNotification
See ARCHITECTURE.md for module responsibilities and design decisions, USAGE.md for a full worked walkthrough, and MIGRATING.md for the Build UI 1 to 2 installation change.
Installation
pip install "build-ui[pyside6]>=2,<3"
pip install "build-ui[pyqt6]>=2,<3"
Install one line, not both. Build UI requires Python 3.10+, installs QtPy as its core dependency, and selects either PySide6 or PyQt6 through an extra. Calibrate Pro uses the PySide6 lane. Existing PyQt6 applications use the PyQt6 lane.
License
Copyright (c) 2022-2026 Zain Dana Harper. All rights reserved. Build UI is released under the FSL-1.1-MIT: the source is available so you can read it, run it, and build on it, while competing commercial use is reserved to the Licensor to fund continued development. See LICENSE and THIRD_PARTY_NOTICES.md.
Release files for build-ui 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| build_ui-2.0.0.tar.gz | 17.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| build_ui-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.9 kB
Release files / build_ui-2.0.0.tar.gz
| Download URL | build_ui-2.0.0.tar.gz |
|---|---|
| Size | 17.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
df780ef24f242cc505377af15f8e46d233aa5cd8214cfde8331d1dd06ee634ce
|
|
BLAKE2b-256 checksum How to use checksums |
ffc2a5d699cb04e3a131e1bfb12f69f569dd5227031a0c284a8bb7c6db9fb04b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 11, 2026.
Transparency logRelease files / build_ui-2.0.0-py3-none-any.whl
| Download URL | build_ui-2.0.0-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bfb261851badc03b9b276c17f93e61a1fee4e86ee58d60960b1f130cfa8b7d1e
|
|
BLAKE2b-256 checksum How to use checksums |
f576e1a7223d16a4038381afee1f96406204f1cd80538e8e0d61f328a0f74bc4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 11, 2026.
Transparency log