Refine UX bible theming and action colors
This commit is contained in:
@@ -154,6 +154,7 @@ Navigation rules:
|
|||||||
Visual direction:
|
Visual direction:
|
||||||
|
|
||||||
- archival reference tool, not fantasy theme park
|
- archival reference tool, not fantasy theme park
|
||||||
|
- explicit light and dark themes with parity, not one theme treated as secondary
|
||||||
- warm neutral base, dark ink text, brass accent, moss success, rust warning, slate utility
|
- warm neutral base, dark ink text, brass accent, moss success, rust warning, slate utility
|
||||||
- strong typographic hierarchy
|
- strong typographic hierarchy
|
||||||
- generous whitespace around decision points
|
- generous whitespace around decision points
|
||||||
@@ -169,7 +170,7 @@ Color roles:
|
|||||||
|
|
||||||
- background: warm paper
|
- background: warm paper
|
||||||
- surface: lifted ivory
|
- surface: lifted ivory
|
||||||
- primary action: brass
|
- primary accent: restrained blue-teal or muted cobalt family that does not clash with red, orange, or green semantic colors
|
||||||
- selection: deep slate-blue
|
- selection: deep slate-blue
|
||||||
- curated/safe: moss
|
- curated/safe: moss
|
||||||
- needs attention: rust/amber
|
- needs attention: rust/amber
|
||||||
@@ -183,6 +184,140 @@ Component rules:
|
|||||||
- drawers for inspect/edit context
|
- drawers for inspect/edit context
|
||||||
- modals only for destructive confirmation or focused form tasks that must block
|
- modals only for destructive confirmation or focused form tasks that must block
|
||||||
|
|
||||||
|
## Theming Strategy
|
||||||
|
|
||||||
|
Theme modes:
|
||||||
|
|
||||||
|
- `Light`
|
||||||
|
- `Dark`
|
||||||
|
- `System`
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
|
||||||
|
- theme selection is available from the global app bar
|
||||||
|
- the chosen theme persists across sessions
|
||||||
|
- `System` is the default for first-time users
|
||||||
|
- both themes must feel deliberately designed, not algorithmically inverted
|
||||||
|
- all major surfaces in `Play`, `Tables`, `Curation`, and `Tools` must support both themes equally
|
||||||
|
|
||||||
|
## Color System
|
||||||
|
|
||||||
|
Principles:
|
||||||
|
|
||||||
|
- accent color communicates brand and focus, not validation or danger
|
||||||
|
- semantic colors communicate outcome and risk
|
||||||
|
- color hierarchy supports scan speed but never becomes the only signal
|
||||||
|
- dense data surfaces use restrained color, not decorative color noise
|
||||||
|
|
||||||
|
Required color roles:
|
||||||
|
|
||||||
|
- neutral scale for backgrounds, surfaces, borders, and text
|
||||||
|
- one central accent ramp for brand, focus, selected state, and non-destructive emphasis
|
||||||
|
- success ramp for curated/success feedback
|
||||||
|
- warning ramp for caution, reset-risk, and disruptive-but-recoverable actions
|
||||||
|
- danger ramp for destructive and irreversible actions
|
||||||
|
- info ramp for tooling and system messaging when needed
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
|
||||||
|
- accent color must remain distinct from success green, warning orange, and danger red
|
||||||
|
- accent should be moderately saturated, not loud
|
||||||
|
- semantic colors override accent when user risk must be communicated
|
||||||
|
- success green should be used for state and feedback, not as the default primary CTA color
|
||||||
|
- table symbols and effect badges must be checked against both themes to avoid collisions with system colors
|
||||||
|
|
||||||
|
## Depth And Hierarchy
|
||||||
|
|
||||||
|
Principles:
|
||||||
|
|
||||||
|
- brightness helps communicate nesting, but it is a guide, not a universal law
|
||||||
|
- hierarchy is conveyed through brightness, border contrast, spacing, typography, and elevation together
|
||||||
|
- table canvases and other high-density data regions use fewer depth steps than inspectors, drawers, and forms
|
||||||
|
|
||||||
|
Light mode guidance:
|
||||||
|
|
||||||
|
- deeper or nested surfaces usually become slightly darker than their parent surface
|
||||||
|
- the page background stays brightest, then main surfaces, then nested cards, then inset wells
|
||||||
|
|
||||||
|
Dark mode guidance:
|
||||||
|
|
||||||
|
- deeper or nested surfaces usually become slightly brighter than their parent surface
|
||||||
|
- the page background stays darkest, then main surfaces, then nested cards, then inset wells
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
|
||||||
|
- avoid stacking too many surface steps inside the table grid
|
||||||
|
- do not rely on background brightness alone to indicate nesting
|
||||||
|
- selected state must remain obvious even when surface-depth differences are subtle
|
||||||
|
|
||||||
|
## CSS Variable Guidance
|
||||||
|
|
||||||
|
Base token families:
|
||||||
|
|
||||||
|
- `--bg-*`
|
||||||
|
- `--surface-*`
|
||||||
|
- `--text-*`
|
||||||
|
- `--border-*`
|
||||||
|
- `--focus-*`
|
||||||
|
- `--shadow-*`
|
||||||
|
|
||||||
|
Accent token families:
|
||||||
|
|
||||||
|
- `--accent-50` through `--accent-900`
|
||||||
|
- `--accent-solid`
|
||||||
|
- `--accent-contrast`
|
||||||
|
- `--accent-soft`
|
||||||
|
- `--accent-gradient-subtle`
|
||||||
|
- `--accent-gradient-strong`
|
||||||
|
|
||||||
|
Semantic token families:
|
||||||
|
|
||||||
|
- `--success-*`
|
||||||
|
- `--warning-*`
|
||||||
|
- `--danger-*`
|
||||||
|
- `--info-*`
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
|
||||||
|
- gradients are optional support tokens, not the foundation of the UI
|
||||||
|
- subtle accent gradients may be used for shell-level highlights, primary CTAs, selected states, and hero surfaces
|
||||||
|
- gradients should not be used as the default fill for dense data regions, table cells, or most neutral panels
|
||||||
|
- component styling should consume semantic tokens by meaning, not by page
|
||||||
|
|
||||||
|
## Button And Action Hierarchy
|
||||||
|
|
||||||
|
Color and emphasis map to user consequence, not to database mutation as an implementation detail.
|
||||||
|
|
||||||
|
Action levels:
|
||||||
|
|
||||||
|
| Level | Purpose | Typical examples | Color behavior |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| Neutral | navigation and dismissal | `Back`, `Cancel`, `Close`, `Collapse` | neutral surface or ghost treatment |
|
||||||
|
| Soft accent | safe helper actions | `Calculate`, `Preview`, `Inspect`, `Jump`, `Open source` | low-to-medium emphasis with restrained accent |
|
||||||
|
| Strong accent | primary commit actions with expected positive outcome | `Save`, `Apply`, `Mark curated`, `Import`, `Confirm` | highest non-danger emphasis using accent ramp |
|
||||||
|
| Warning | risky but recoverable actions | `Reset fields`, `Replace`, `Bulk reparse` | amber/orange semantic treatment |
|
||||||
|
| Danger | destructive or irreversible actions | `Delete`, `Overwrite`, `Destructive reset` | red semantic treatment |
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
|
||||||
|
- the strongest visible button on a surface should be the most likely intended action
|
||||||
|
- neutral actions should visually recede
|
||||||
|
- non-destructive helper actions should never compete with commit actions
|
||||||
|
- strong accent is for commitment, not for danger
|
||||||
|
- warning and danger styles must remain reserved for meaningful risk
|
||||||
|
- saturation and contrast increase with action consequence
|
||||||
|
- labels still carry the meaning; color reinforces it
|
||||||
|
|
||||||
|
## Button Styling Rules
|
||||||
|
|
||||||
|
- primary buttons use filled treatment
|
||||||
|
- secondary buttons use toned or outline treatment
|
||||||
|
- tertiary actions use ghost or text treatment
|
||||||
|
- the same action hierarchy must work in both light and dark themes
|
||||||
|
- disabled buttons reduce contrast and saturation but remain legible
|
||||||
|
- loading states preserve the original action color to avoid meaning shifts
|
||||||
|
- icon-only buttons are reserved for universally recognizable actions
|
||||||
|
|
||||||
## Shared Interaction Model
|
## Shared Interaction Model
|
||||||
|
|
||||||
Every major page follows the same anatomy:
|
Every major page follows the same anatomy:
|
||||||
@@ -318,6 +453,8 @@ Cell content rules:
|
|||||||
- branches summarized, not expanded by default
|
- branches summarized, not expanded by default
|
||||||
- no full action button stack visible in every resting cell
|
- no full action button stack visible in every resting cell
|
||||||
- state color is subtle in `Reference`, stronger in `Curate`
|
- state color is subtle in `Reference`, stronger in `Curate`
|
||||||
|
- theme changes must not reduce row/column legibility or active-cell contrast
|
||||||
|
- nested cell treatments should rely mostly on border, spacing, and focus, not stacked fills
|
||||||
|
|
||||||
## Cell Actions
|
## Cell Actions
|
||||||
|
|
||||||
@@ -345,6 +482,7 @@ Rules:
|
|||||||
- second click on the selected cell opens inspect detail if needed
|
- second click on the selected cell opens inspect detail if needed
|
||||||
- double-click is not a required behavior
|
- double-click is not a required behavior
|
||||||
- touch uses the same one-tap select model
|
- touch uses the same one-tap select model
|
||||||
|
- action color follows the global action hierarchy: neutral for dismissal, soft accent for inspect/open, strong accent for save/mark curated, warning for risky bulk actions, danger only for destructive actions
|
||||||
|
|
||||||
## Inspector
|
## Inspector
|
||||||
|
|
||||||
@@ -366,6 +504,7 @@ Rules:
|
|||||||
- can be pinned open or collapsed
|
- can be pinned open or collapsed
|
||||||
- keeps primary actions in the same vertical position
|
- keeps primary actions in the same vertical position
|
||||||
- never requires opening the full editor just to understand the result
|
- never requires opening the full editor just to understand the result
|
||||||
|
- nested inspector sections follow the theme depth rules with restrained surface stepping
|
||||||
|
|
||||||
## Reference Flow: Gamemaster
|
## Reference Flow: Gamemaster
|
||||||
|
|
||||||
@@ -439,6 +578,7 @@ Optimizations:
|
|||||||
- `Next uncurated` is always in the same spot
|
- `Next uncurated` is always in the same spot
|
||||||
- quick parse happens in the inspector or split pane before falling back to full editor
|
- quick parse happens in the inspector or split pane before falling back to full editor
|
||||||
- save keeps the cursor in the working lane and avoids re-opening context
|
- save keeps the cursor in the working lane and avoids re-opening context
|
||||||
|
- warning styling is reserved for disruptive repair actions; standard save-and-advance remains strong accent, not warning
|
||||||
|
|
||||||
## Diagnostics Flow: Developer
|
## Diagnostics Flow: Developer
|
||||||
|
|
||||||
@@ -472,6 +612,8 @@ Rules:
|
|||||||
- full editor opens in a focused drawer on wide screens and a full-screen sheet on small screens
|
- full editor opens in a focused drawer on wide screens and a full-screen sheet on small screens
|
||||||
- no stacked modal-on-modal flows
|
- no stacked modal-on-modal flows
|
||||||
- save feedback is inline and immediate
|
- save feedback is inline and immediate
|
||||||
|
- cancel and navigation actions remain neutral even inside forms
|
||||||
|
- destructive edit operations require danger styling and explicit confirmation
|
||||||
|
|
||||||
## Search and Deep Links
|
## Search and Deep Links
|
||||||
|
|
||||||
@@ -510,6 +652,7 @@ Examples:
|
|||||||
- no hover-only discovery
|
- no hover-only discovery
|
||||||
- sticky headers must not trap screen-reader or keyboard order
|
- sticky headers must not trap screen-reader or keyboard order
|
||||||
- mobile hit targets minimum 44 by 44 px
|
- mobile hit targets minimum 44 by 44 px
|
||||||
|
- theme parity must preserve contrast and distinguish accent from semantic colors in both modes
|
||||||
|
|
||||||
## Content Rules
|
## Content Rules
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user