Files
qbz/crates/qbz-slint/ui/foundation/palette.slint
T
vicrodh d5be0029b6 feat(qbz-slint): foundation tokens and login screen
M1 progress. Adds the foundation token layer (palette, semantic
colors, spacing, radius, typography) bound to the QBZ dark theme,
three primitives (QbzCheckbox, QbzPrimaryButton, QbzTextLink), and
the LoginScreen feature component.

The login screen mirrors the Svelte LoginView: centered card, logo,
QBZ wordmark, Qobuz ToS checkbox, "Sign in via Browser" button,
system-browser and offline links, and the legal disclaimer. Colors
are lifted verbatim from src/app.css; strings use @tr() markers.

Rust side: typed AppCommand enum; UI callbacks dispatch through it.
M2 wires the command handler to AppRuntime.

cc
2026-05-18 12:13:52 -06:00

26 lines
1.1 KiB
Plaintext

// Raw palette — the only place hex colors are allowed to be literals.
// Mirrors the QBZ dark theme defined in `src/app.css`. Feature and shell
// components must never reference this directly; they consume semantic
// tokens from `semantic-colors.slint` instead.
export global Palette {
out property <color> black-0: #0f0f0f; // --bg-primary
out property <color> black-1: #1a1a1a; // --bg-secondary
out property <color> black-2: #2a2a2a; // --bg-tertiary
out property <color> hover-1: #1f1f1f; // --bg-hover
out property <color> white: #ffffff; // --text-primary
out property <color> gray-c: #cccccc; // --text-secondary
out property <color> gray-8: #888888; // --text-muted
out property <color> gray-5: #555555; // --text-disabled
out property <color> blue: #4285f4; // --accent-primary
out property <color> blue-hover: #5a9bf4;// --accent-hover
out property <color> blue-active: #3275e4;// --accent-active
out property <color> danger: #ef4444;
out property <color> warning: #fbbf24;
out property <color> shadow: #00000066; // rgba(0,0,0,0.4)
}