Files
boc/docs/design/foundations/BRAND_PALETTE.md
T
Bernt 78436cecc2 docs: Foundation Freeze v1.0 + directory reorganization
- FOUNDATIONS-v1.0.md:
  - Freeze contract for Landvex Design System
  - Scope: Motion, AI Principles, Semantic Colors, Grid, Elevation, Typography, RFC Template, Definition of Done
  - Reference components: Button, Input, Select, Card (all ~83%)
  - Invariants: token rules, component rules, accessibility rules, AI rules
  - Change policy: no new foundation concepts without v2.0 RFC
  - Versioning: 1.0.x patches, 1.x.0 new components, 2.0.0 new foundations
  - Compatibility matrix for all foundations and components

- Directory reorganization:
  - docs/design/foundations/ → frozen foundation documents
  - docs/design/components/ → component RFCs
  - docs/design/README.md → navigation and structure

- Foundation documents moved:
  - TOKEN_PHILOSOPHY, SEMANTIC_COLOR_SYSTEM, GRID_ELEVATION
  - AI_DESIGN_PRINCIPLES, COMPONENT_TEMPLATE, RFC_DEFINITION_OF_DONE
  - DESIGN_ANTI_PATTERNS, COMPONENT_DECISION_TREE, GLOSSARY
  - BRAND_PALETTE, RELEASE_DEFINITION, SEMANTIC_COLOR_SYSTEM_REVIEW

- Component RFCs moved:
  - RFC-002-Input, RFC-003-Select, RFC-004-Card

Rationale: Clear separation between foundations (stable platform) and
components (built on top). Foundations v1.0 frozen — components can be
added freely within v1.x, but foundations require v2.0 RFC to change.
This prevents gradual erosion of the design system architecture.
2026-07-02 11:23:10 +00:00

5.2 KiB

BRAND PALETTE

Token-Specifikation för Landvex Brand Colors

Version 1.0
Status DRAFT — Awaiting brand color definition
Scope Landvex Enterprise Platform
Authority DESIGN_SPECIFICATION (nivå 5)

1. PRINCIPLES

MUST NOT: Use brand colors for status (success/warning/danger/info). MUST NOT: Use brand colors in data visualization or map layers. MUST: Use brand colors for identity only: logo, headers, primary actions, focus states.

Brand = identity. Semantic = meaning. MUST NOT mix.


2. TOKEN ARCHITECTURE

2.1 Semantic Brand Tokens

Token Purpose Usage
brand-primary Primary brand color Logo, primary buttons, key headers
brand-secondary Secondary brand color Accents, highlights, hover states
brand-tertiary Tertiary brand color Subtle accents, backgrounds

2.2 Scale Tokens (12-step)

Token Purpose
brand-50 Lightest tint — backgrounds, hover states
brand-100 Very light — subtle backgrounds
brand-200 Light — disabled states
brand-300 Light-medium — borders
brand-400 Medium — secondary elements
brand-500 Base — primary usage
brand-600 Medium-dark — hover states
brand-700 Dark — active states
brand-800 Very dark — text on light backgrounds
brand-900 Darkest — high contrast text
brand-950 Deepest — special emphasis

3. USAGE RULES

3.1 Where Brand Colors Are Used

Context Token Example
Logo brand-500 Landvex logo mark
Primary Button brand-500 Default state
Primary Button Hover brand-600 Hover state
Primary Button Active brand-700 Active state
Focus Ring brand-500 Input, Button, Select focus
Link brand-500 Text links
Link Hover brand-600 Link hover
Header Accent brand-500 Page title accent
Loading Spinner brand-500 Brand-colored spinner
Progress Bar brand-500 Brand-colored progress

3.2 Where Brand Colors Are NOT Used

Context Why Alternative
Success states Brand ≠ meaning semantic-green-500
Warning states Brand ≠ meaning semantic-yellow-500
Danger states Brand ≠ meaning semantic-red-500
Info states Brand ≠ meaning semantic-blue-500
Data visualization Brand ≠ data Categorical color palette
Map layers Brand ≠ geography Map layer palette
Error text Brand ≠ error semantic-red-500
Validation Brand ≠ validation semantic-green/red-500

4. DARK MODE STRATEGY

Token Light Mode Dark Mode
brand-primary brand-500 brand-400
brand-secondary brand-600 brand-300
brand-tertiary brand-100 brand-800

Rule: Brand colors shift lighter in dark mode to maintain contrast.


5. CONTRAST REQUIREMENTS

Usage Minimum Contrast Notes
Text on brand background 4.5:1 (WCAG AA) brand-500 text on white, or white on brand-500
Large text on brand 3:1 (WCAG AA Large) Headers, 18px+ or 14px+ bold
Focus indicators 3:1 Focus ring vs surrounding
Disabled brand No requirement Disabled state exempt

6. PLACEHOLDER VALUES

AWAITING BRAND COLOR DEFINITION FROM ERIK/LANDVEX TEAM

Token Hex (Placeholder) Status
brand-50 Awaiting
brand-100 Awaiting
brand-200 Awaiting
brand-300 Awaiting
brand-400 Awaiting
brand-500 Awaiting
brand-600 Awaiting
brand-700 Awaiting
brand-800 Awaiting
brand-900 Awaiting
brand-950 Awaiting

7. TOKEN DEPENDENCIES FROM COMPONENTS

Components that reference brand tokens:

Component Token Usage
Button (Primary) brand-500 Background
Button (Primary Hover) brand-600 Background
Button (Primary Active) brand-700 Background
Input (Focus) brand-500 Border
Select (Focus) brand-500 Border
Select (Selected Option) brand-50 Background
Link brand-500 Text color
Link (Hover) brand-600 Text color
Loading brand-500 Spinner color
Progress brand-500 Bar color

8. GOVERNANCE

8.1 Adding Brand Colors

MUST NOT add new brand colors without Architecture Review.

MUST follow 12-step scale.

MUST update all components that reference brand tokens.

8.2 Changing Brand Colors

MUST assess impact on all components.

MUST update visual regression tests.

MUST communicate change to all teams.


ÄNDRINGSHISTORIA

Version Datum Beskrivning
1.0 2026-07-02 Initial brand palette token specification

STATUS

DRAFT — Awaiting brand color definition

  • Mindre revideringar: 1.x-serien
  • Brytande ändringar: Kräver Architecture Review, ny major-version (2.0+)