- Add DOCUMENT HIERARCHY (0d) to MEMORY.md - 7 levels: SYSTEM > ENGINEERING > DESIGN > PRODUCT > SPEC > GUIDES > CODE - Conflict resolution: higher document wins - Add docs/design/LANDVEX_DESIGN_SPECIFICATION.md (v1.0-skeleton, DRAFT) - 18 chapters with full structure - Button component as reference spec (states, ARIA, keyboard, touch, animation, AC) - All other chapters marked as TODO with placeholder tables - Status: DRAFT — filled progressively, not all at once Rationale: Establish governance first (Fas 1), fill specification progressively (Fas 2), automated QA later (Fas 3).
8.3 KiB
LANDVEX DESIGN SPECIFICATION
Technical Contract Between UX, UI, Frontend, AI Agents, QA, and Codebase
| Version | 1.0-skeleton |
| Status | DRAFT — Under utveckling |
| Scope | Landvex Enterprise Platform |
| Authority | DESIGN_SPECIFICATION (nivå 5 i dokumenthierarkin) |
| Parent | LANDVEX_DESIGN_CONSTITUTION.md |
Om detta dokument Detta är ett levande kontrakt. Varje kapitel fylls på successivt. Ingen implementation får bryta mot en specificerad regel. Ospecificerade områden är fria att utforskas, men bör dokumenteras här när de stabiliseras.
Innehållsförteckning
- Design Tokens
- Layout System
- Typography
- Color System
- Motion System
- Elevation & Shadows
- Iconography
- Components
- Maps & Geospatial Layer
- Accessibility
- Responsive Behavior
- Empty States
- Loading States
- Error States
- Acceptance Criteria
- Design QA
- Visual Regression
- Release Checklist
1. Design Tokens
Status: ⏳ Ej påbörjad
1.1 Spacing Scale
| Token | Value | Usage |
|---|---|---|
space-0 |
0px | — |
space-1 |
4px | Tight padding, icon gaps |
space-2 |
8px | Default element padding |
space-3 |
12px | Component internal spacing |
space-4 |
16px | Standard gap |
space-5 |
24px | Section spacing |
space-6 |
32px | Large section spacing |
space-7 |
48px | Page-level spacing |
space-8 |
64px | Major section breaks |
space-9 |
96px | Hero/page top |
1.2 Border Radius
| Token | Value | Usage |
|---|---|---|
radius-0 |
0px | Sharp edges (data tables, maps) |
radius-1 |
2px | Subtle rounding |
radius-2 |
4px | Default (buttons, inputs) |
radius-3 |
8px | Cards, panels |
radius-4 |
12px | Large cards, modals |
radius-full |
9999px | Pills, avatars |
1.3 Z-Index Scale
| Token | Value | Usage |
|---|---|---|
z-base |
0 | Default layer |
z-dropdown |
100 | Dropdowns, popovers |
z-sticky |
200 | Sticky headers |
z-modal |
300 | Modals, dialogs |
z-tooltip |
400 | Tooltips |
z-toast |
500 | Notifications |
z-overlay |
600 | Full-screen overlays |
1.4 Opacity Scale
| Token | Value | Usage |
|---|---|---|
opacity-0 |
0% | Hidden |
opacity-25 |
25% | Disabled text |
opacity-50 |
50% | Placeholder text |
opacity-75 |
75% | Secondary text |
opacity-100 |
100% | Primary content |
2. Layout System
Status: ⏳ Ej påbörjad
2.1 Grid
2.2 Breakpoints
| Name | Width | Target |
|---|---|---|
xs |
0px | Phone portrait |
sm |
640px | Phone landscape |
md |
768px | Tablet portrait |
lg |
1024px | Tablet landscape / small desktop |
xl |
1280px | Desktop |
2xl |
1536px | Large desktop |
2.3 Container Widths
2.4 Sidebar / Panel System
3. Typography
Status: ⏳ Ej påbörjad
3.1 Font Stack
3.2 Type Scale
| Token | Size | Line Height | Weight | Letter Spacing | Usage |
|---|---|---|---|---|---|
text-xs |
12px | 16px | 400 | 0.01em | Captions, metadata |
text-sm |
14px | 20px | 400 | 0 | Body small |
text-base |
16px | 24px | 400 | 0 | Body |
text-lg |
18px | 28px | 400 | -0.01em | Lead paragraph |
text-xl |
20px | 28px | 500 | -0.02em | Section headers |
text-2xl |
24px | 32px | 500 | -0.02em | Page titles |
text-3xl |
30px | 36px | 600 | -0.02em | Major headings |
text-4xl |
36px | 40px | 600 | -0.03em | Hero titles |
3.3 Font Weights
3.4 Monospace (Data)
4. Color System
Status: ⏳ Ej påbörjad
4.1 Neutral Scale
4.2 Primary Colors
4.3 Semantic Colors
4.4 Data Visualization Colors
4.5 Map Colors
5. Motion System
Status: ⏳ Ej påbörjad
5.1 Duration Scale
| Token | Value | Usage |
|---|---|---|
duration-instant |
0ms | No animation |
duration-fast |
100ms | Hover states |
duration-normal |
200ms | Standard transitions |
duration-slow |
300ms | Page transitions |
duration-slower |
500ms | Complex animations |
5.2 Easing Functions
| Token | Value | Usage |
|---|---|---|
ease-linear |
linear | Continuous motion |
ease-in |
cubic-bezier(0.4, 0, 1, 1) | Exit animations |
ease-out |
cubic-bezier(0, 0, 0.2, 1) | Enter animations |
ease-in-out |
cubic-bezier(0.4, 0, 0.2, 1) | Standard |
ease-spring |
cubic-bezier(0.34, 1.56, 0.64, 1) | Playful interactions |
5.3 Motion Principles
6. Elevation & Shadows
Status: ⏳ Ej påbörjad
6.1 Shadow Scale
6.2 Usage Rules
7. Iconography
Status: ⏳ Ej påbörjad
7.1 Icon Set
7.2 Icon Sizes
7.3 Icon + Text Pairing
8. Components
Status: ⏳ Ej påbörjad
Princip: Varje komponent har en egen specifikation med states, ARIA, keyboard, touch, animation och acceptance criteria.
8.1 Button
States:
- Default
- Hover
- Focus
- Pressed (Active)
- Loading
- Disabled
Variants:
- Primary
- Secondary
- Tertiary (Ghost)
- Danger
- Icon-only
ARIA:
role="button"aria-labelfor icon-onlyaria-disabledfor disabledaria-busyfor loading
Keyboard:
Enter/Spaceto activateTabto focus
Touch:
- Min 44x44px touch target
- Active state on press
Animation:
- Hover: background-color 100ms ease-out
- Press: scale(0.98) 50ms
- Loading: spinner rotation 1s linear infinite
Acceptance Criteria:
- All states are visually distinct
- Focus ring is visible
- Loading state prevents double-submit
- Disabled state is not focusable
- Touch target meets 44px minimum
8.2 Input / Text Field
8.3 Select / Dropdown
8.4 Checkbox
8.5 Radio Button
8.6 Toggle / Switch
8.7 Card
8.8 Modal / Dialog
8.9 Toast / Notification
8.10 Tooltip
8.11 Data Table
8.12 Tabs
8.13 Navigation
8.14 Sidebar
8.15 Map Overlay
9. Maps & Geospatial Layer
Status: ⏳ Ej påbörjad
9.1 Mapbox Configuration
9.2 Layer Styles
9.3 Interaction Patterns
9.4 Geometries & Coordinates Display
10. Accessibility
Status: ⏳ Ej påbörjad
10.1 WCAG 2.1 AA Compliance
10.2 Keyboard Navigation
10.3 Screen Reader Support
10.4 Focus Management
10.5 Color Contrast
10.6 Reduced Motion
11. Responsive Behavior
Status: ⏳ Ej påbörjad
11.1 Device Adaptive Principles
11.2 Phone (< 768px)
11.3 Tablet (768px - 1024px)
11.4 Desktop (> 1024px)
12. Empty States
Status: ⏳ Ej påbörjad
12.1 Principles
12.2 Patterns by Context
13. Loading States
Status: ⏳ Ej påbörjad
13.1 Skeleton Patterns
13.2 Progress Indicators
13.3 Stepped Loading
14. Error States
Status: ⏳ Ej påbörjad
14.1 Error Message Structure
14.2 Inline Errors
14.3 Page-Level Errors
14.4 Toast Errors
15. Acceptance Criteria
Status: ⏳ Ej påbörjad
15.1 Definition of Done (Design)
15.2 Checklist per Component
15.3 Cross-Browser Requirements
16. Design QA
Status: ⏳ Ej påbörjad
16.1 Manual Review Process
16.2 Automated Checks (Future)
16.3 Screenshot Review
17. Visual Regression
Status: ⏳ Ej påbörjad — Fas 3
17.1 Scope
17.2 Tools
17.3 Thresholds
18. Release Checklist
Status: ⏳ Ej påbörjad
18.1 Pre-Release Design Review
18.2 Post-Release Verification
ÄNDRINGSHISTORIA
| Version | Datum | Beskrivning |
|---|---|---|
| 1.0-skeleton | 2026-07-02 | Initial struktur med 18 kapitel, tomt innehåll |
STATUS
DRAFT — Under utveckling
- Fyll på kapitel successivt
- Markera kapitel som ✅ när de är specificerade och godkända
- Brytande ändringar: Kräver Architecture Review