breadgreet: bring the login UI up to the lock screen's polish #4

Merged
Breadway merged 2 commits from feature/breadgreet-polish into main 2026-09-03 13:15:23 +08:00
Owner

breadgreet's stylesheet was a crude subset of design/sketch.html's .greetoverlay spec — you flagged it looks bad next to breadlock. Ported the sketch faithfully.

  • Card: box-shadow: 0 6px 28px, hairline alpha(@overlay,.09) border, 10px radius, 300px min-width.
  • Entry: recessed shade(@surface,1.5) fill + accent focus ring (@accent border + 0 0 0 2px alpha(@accent,.28)).
  • Clock/date: soft text-shadow for legibility over any wallpaper; sketch sizes (46/14).
  • Session picker: styled surface pill (button + popover), not a bare GtkDropDown.
  • Spinner: CSS-animated ring while a greetd request is in flight (sync_busy, one drive point).
  • Shake on a failed attempt (flash_error) — from AppInput::Error and PAM AuthPrompt::Error.

Uses the shared @define-color palette so it recolours with the theme (same as breadbar).

cargo test --workspace --all-targets (157) / clippy --all-targets -D warnings / fmt --check clean.

Visual pass still wanted — this is a direct translation of the mockup, not screenshot-verified (couldn't get a headless render to cooperate). Eyeball it in the VM's greeter or a nested compositor before merge.

breadgreet's stylesheet was a crude subset of `design/sketch.html`'s `.greetoverlay` spec — you flagged it looks bad next to breadlock. Ported the sketch faithfully. - **Card**: `box-shadow: 0 6px 28px`, hairline `alpha(@overlay,.09)` border, 10px radius, 300px min-width. - **Entry**: recessed `shade(@surface,1.5)` fill + accent focus ring (`@accent` border + `0 0 0 2px alpha(@accent,.28)`). - **Clock/date**: soft text-shadow for legibility over any wallpaper; sketch sizes (46/14). - **Session picker**: styled surface pill (button + popover), not a bare GtkDropDown. - **Spinner**: CSS-animated ring while a greetd request is in flight (`sync_busy`, one drive point). - **Shake** on a failed attempt (`flash_error`) — from `AppInput::Error` and PAM `AuthPrompt::Error`. Uses the shared `@define-color` palette so it recolours with the theme (same as breadbar). `cargo test --workspace --all-targets` (157) / `clippy --all-targets -D warnings` / `fmt --check` clean. **Visual pass still wanted** — this is a direct translation of the mockup, not screenshot-verified (couldn't get a headless render to cooperate). Eyeball it in the VM's greeter or a nested compositor before merge.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/breadlock!4
No description provided.