feat(engine): swap ACCENT_PRIMARY from cyan #6fc2ef to brick red #a54242
Project-wide palette shift at user request. Replaces the cyan primary accent everywhere it surfaces — splash boot screen, home menu glyphs, action chevrons, replay overlay banner + scrub fill + chip border, achievement checkmarks, leaderboard #1 indicator, radial menu fill, focus ring, card-back canonical badge, etc. — with `#a54242` from the same base16-eighties family as the existing pink suit colour. Knock-on changes that all land in this commit per the lockstep rule: - ui_theme.rs: ACCENT_PRIMARY (#a54242), ACCENT_PRIMARY_HOVER (#c25e5e brightened companion), FOCUS_RING (same hue, 0.85 alpha). Module-level palette comment + STOCK_BADGE_FG + CARD_SHADOW_ALPHA_DRAG doc strings updated to match. - card_plugin.rs: card_back_colour(0) now returns the brick-red ACCENT_PRIMARY (was cyan). RED_SUIT_COLOUR_CBM swapped from cyan to lime #acc267 — the CBM alternative needs to stay hue-distinct from the new red-family primary, lime is the next-best non-red base16-eighties accent. text_colour doc + CBM tests renamed cyan→lime in lockstep (text_colour_color_blind_mode_swaps_red_suits_to_lime). - card_face_svg.rs: BACK_ACCENTS[0] now "#a54242" (canonical Terminal back). - splash_plugin.rs / ui_modal.rs / replay_overlay.rs / selection_plugin.rs: descriptive "cyan" comments swapped to "accent" / "primary-accent" wording so the doc strings stay decoupled from any specific hue. Future palette tweaks won't require comment churn. - design-system.md: YAML token frontmatter updated (primary, surface-tint, suit-red-cb, primary-container, on-primary-container, inverse-primary). Palette table gains a project-specific `base08` slot for the new red. CTA / Selection / Card-back badge / Primary button / Bottom-bar active-icon / glow / CBM swap text all retuned. Historical references preserved (e.g. "Was cyan #6fc2ef before the 2026-05-08 swap") so the audit trail stays in the spec. - card_face_svg_pin.rs: rebaselined. Exactly one hash drift (back_0 — the canonical Terminal back's badge changed colour). Other 56 hashes identical (face SVGs don't reference the accent; back_1..4 use unchanged accents). The one-hash-drift signal confirms the change scope was surgical. Workspace clippy + cargo test --workspace clean, 1184 passing. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -21,8 +21,8 @@ use bevy::prelude::Val;
|
||||
use solitaire_data::AnimSpeed;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Colours — Terminal (base16-eighties): near-black surface ramp with a cyan
|
||||
// primary accent and lime/lavender/gold/teal/pink semantic accents.
|
||||
// Colours — Terminal (base16-eighties): near-black surface ramp with a brick-
|
||||
// red primary accent and lime/lavender/gold/teal/pink semantic accents.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/// Window backstop and the default text colour on top of `ACCENT_PRIMARY`.
|
||||
@@ -67,14 +67,17 @@ pub const TEXT_SECONDARY: Color = Color::srgb(0.627, 0.627, 0.627);
|
||||
/// Disabled text — greyed-out buttons, locked items. `#505050`.
|
||||
pub const TEXT_DISABLED: Color = Color::srgb(0.314, 0.314, 0.314);
|
||||
|
||||
/// Cyan primary accent — the CTA colour of the system. Reserved for
|
||||
/// primary actions (Play, Resume, Save), focus rings, and selection.
|
||||
/// `BG_BASE` text on top of this colour passes AAA contrast. `#6fc2ef`.
|
||||
pub const ACCENT_PRIMARY: Color = Color::srgb(0.435, 0.761, 0.937);
|
||||
/// Brick-red primary accent — the CTA colour of the system. Reserved
|
||||
/// for primary actions (Play, Resume, Save), focus rings, and
|
||||
/// selection. `#a54242` (base16-eighties `base08`). Pre-2026-05-08
|
||||
/// this slot was cyan `#6fc2ef`; the swap was a project-wide
|
||||
/// palette decision recorded in `design-system.md` and the
|
||||
/// SESSION_HANDOFF entry that followed Option D.
|
||||
pub const ACCENT_PRIMARY: Color = Color::srgb(0.647, 0.259, 0.259);
|
||||
|
||||
/// Brightened `ACCENT_PRIMARY` for hover states on primary buttons.
|
||||
/// Picks up luminance while keeping the same hue. `#a8dcf5`.
|
||||
pub const ACCENT_PRIMARY_HOVER: Color = Color::srgb(0.659, 0.863, 0.961);
|
||||
/// Picks up luminance while keeping the same hue. `#c25e5e`.
|
||||
pub const ACCENT_PRIMARY_HOVER: Color = Color::srgb(0.761, 0.369, 0.369);
|
||||
|
||||
/// Lavender secondary accent — celebratory states (level-up,
|
||||
/// achievement unlocked, streak milestones). Used sparingly so it stays
|
||||
@@ -134,8 +137,8 @@ pub const STOCK_BADGE_BG: Color = BG_ELEVATED_HI;
|
||||
/// Foreground (text) colour of the stock-pile remaining-count chip.
|
||||
///
|
||||
/// `ACCENT_PRIMARY` keeps the chip readable against the elevated
|
||||
/// surface background and matches the cyan accent already used for
|
||||
/// other "look here" callouts.
|
||||
/// surface background and matches the primary accent already used
|
||||
/// for other "look here" callouts.
|
||||
pub const STOCK_BADGE_FG: Color = ACCENT_PRIMARY;
|
||||
|
||||
/// Sprite-space `Transform.z` for the stock-pile remaining-count chip.
|
||||
@@ -172,8 +175,8 @@ pub const CARD_SHADOW_ALPHA_IDLE: f32 = 0.0;
|
||||
|
||||
/// Alpha for the lifted/dragged card shadow. Set to 0 for the same
|
||||
/// reason as [`CARD_SHADOW_ALPHA_IDLE`]. Drag affordance under the
|
||||
/// Terminal system is the cyan focus glow + z-index lift, not a deeper
|
||||
/// shadow.
|
||||
/// Terminal system is the primary-accent focus glow + z-index lift,
|
||||
/// not a deeper shadow.
|
||||
pub const CARD_SHADOW_ALPHA_DRAG: f32 = 0.0;
|
||||
|
||||
/// World-space pixel offset of the resting-state card shadow relative to
|
||||
@@ -217,7 +220,7 @@ pub const BORDER_STRONG: Color = Color::srgba(0.314, 0.314, 0.314, 1.0);
|
||||
/// (matches `ACCENT_PRIMARY`) at 85% alpha so the ring stays legible
|
||||
/// against both elevated surfaces and the modal scrim backdrop.
|
||||
/// `rgba(111, 194, 239, 0.85)`.
|
||||
pub const FOCUS_RING: Color = Color::srgba(0.435, 0.761, 0.937, 0.85);
|
||||
pub const FOCUS_RING: Color = Color::srgba(0.647, 0.259, 0.259, 0.85);
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Typography scale (px) — 5 rungs replace the prior
|
||||
|
||||
Reference in New Issue
Block a user