Skip to main content

Shared PyQt6 theme and widgets for the Build ecosystem

Project description

Build UI, a shared PyQt6 theme and widget library

Build UI

Shared PyQt6 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

CI version: 1.0.0 python: 3.10+ core dep: PyQt6 license: fair-source

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

pip install build-ui
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: reusable QWidget subclasses that read their colors from theme.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, and USAGE.md for a full worked walkthrough.

Installation

pip install build-ui

Requires Python 3.10+ and PyQt6 (installed automatically).

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

build_ui-1.0.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

build_ui-1.0.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file build_ui-1.0.0.tar.gz.

File metadata

  • Download URL: build_ui-1.0.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for build_ui-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1ca459544ea4d42fa9e59af260151ee1675a605fd74e851ebc6c05dc8f0cb31e
MD5 1606a05cb49fd57d3070a83a8887d1f7
BLAKE2b-256 1705aa98fe2737280798927abe8c2012a6e63dfee777c8ac6ec530f77b197e6d

See more details on using hashes here.

File details

Details for the file build_ui-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: build_ui-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for build_ui-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c597336b91ac84d0cc7d114fab55fab61d3568447356ed45eb3d495f83984569
MD5 9d00950d93d28ef4bc21c73afe07858c
BLAKE2b-256 26cdde1108eed94209fc46a499472acec84116038fc5bc430d6cfd07d3cf289e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page