@jaimevalasek/aioson 1.30.0 → 1.30.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/docs/design-previews/cognitive-core-ui-auth.html +95 -0
- package/docs/design-previews/cognitive-core-ui-kanban.html +231 -0
- package/docs/design-previews/cognitive-core-ui-list-detail.html +174 -0
- package/docs/design-previews/cognitive-core-ui-preview.css +1315 -0
- package/docs/design-previews/cognitive-core-ui-settings.html +142 -0
- package/docs/design-previews/cognitive-core-ui-website.html +190 -1009
- package/docs/design-previews/cognitive-core-ui.html +281 -463
- package/docs/design-previews/index.html +83 -31
- package/package.json +1 -1
- package/src/constants.js +578 -514
- package/template/.aioson/docs/integrations/dashboard-app-form-publish-mapping.md +183 -0
- package/template/.aioson/docs/play/README.md +74 -0
- package/template/.aioson/docs/play/agent-usage-guide.md +112 -0
- package/template/.aioson/docs/play/app-compatibility-guide.md +117 -0
- package/template/.aioson/docs/play/auth-services-and-testing.md +235 -0
- package/template/.aioson/docs/play/llm-data-and-bindings.md +238 -0
- package/template/.aioson/docs/play/manifest-and-runtime.md +267 -0
- package/template/.aioson/docs/play/source-map.md +104 -0
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
- package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
|
@@ -1,47 +1,68 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: interface-design
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
Do not
|
|
1
|
+
---
|
|
2
|
+
name: interface-design
|
|
3
|
+
description: >-
|
|
4
|
+
Interface Design is a craft-first packaged design skill for choosing an intentional visual direction, building a stable token system, and maintaining UI continuity across screens. Use it when `design_skill: interface-design` is selected or when the user explicitly chooses this broad craft package.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Interface Design
|
|
8
|
+
|
|
9
|
+
This is a general design-craft package.
|
|
10
|
+
It helps the agent make strong decisions when the user wants a deliberate, high-quality UI but has not chosen a niche visual language such as `cognitive-ui` or `premium-command-center-ui`.
|
|
11
|
+
|
|
12
|
+
## Package structure
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
.aioson/skills/design/interface-design/
|
|
16
|
+
SKILL.md
|
|
17
|
+
references/
|
|
18
|
+
intent-and-domain.md
|
|
19
|
+
design-directions.md
|
|
20
|
+
tokens-and-depth.md
|
|
21
|
+
components-and-states.md
|
|
22
|
+
handoff-and-quality.md
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Activation rules
|
|
26
|
+
|
|
27
|
+
- Apply this package only when `design_skill: interface-design` is selected.
|
|
28
|
+
- Do not combine it with any other design skill.
|
|
29
|
+
- Use it when the user wants strong design craft but has not asked for a very specific visual system.
|
|
30
|
+
|
|
31
|
+
## Loading guide
|
|
32
|
+
|
|
33
|
+
| Task | Load |
|
|
34
|
+
|---|---|
|
|
35
|
+
| Any visual work | `references/intent-and-domain.md` + `references/design-directions.md` |
|
|
36
|
+
| Tokens and system decisions | add `references/tokens-and-depth.md` |
|
|
37
|
+
| Component behavior | add `references/components-and-states.md` |
|
|
38
|
+
| Final delivery quality | add `references/handoff-and-quality.md` |
|
|
39
|
+
|
|
40
|
+
## Execution quality gates
|
|
41
|
+
|
|
42
|
+
These gates override any reference file when they conflict.
|
|
43
|
+
|
|
44
|
+
Before implementation:
|
|
45
|
+
- Load the relevant references from the loading guide; do not build from this SKILL.md alone.
|
|
46
|
+
- Decide the surface type (app, dashboard, landing page, marketing site, tool, game) and one domain-specific signature move before writing layout code.
|
|
47
|
+
- Establish the token layer first: fonts, colors, spacing, radius, shadow/depth, motion, breakpoints, and component states. Do not scatter raw colors, one-off shadows, arbitrary font sizes, or ad hoc radii.
|
|
48
|
+
- Use intentional font delivery. Prefer local/framework font APIs when available; if a named font cannot be loaded, define a credible fallback stack and preserve the intended contrast.
|
|
49
|
+
- For websites and landing pages, use visual assets that reveal the product, place, person, object, UI state, or domain. Do not ship a hero made only of gradients, icons, and cards.
|
|
50
|
+
- For landing-page heroes, make the brand, product, place, person, or literal offer visible in the first viewport; include a real or generated bitmap/product visual when inspection matters.
|
|
51
|
+
- Use icons from the project's icon library or lucide when available. Do not use text pills where a standard icon button/control is expected.
|
|
52
|
+
- Build responsive constraints with grid minmax, aspect-ratio, fixed control heights, and overflow rules so text, controls, tables, cards, and media cannot overlap or resize unpredictably.
|
|
53
|
+
- Use discrete text tokens and stable line-height. Do not use viewport-width font scaling or negative letter-spacing.
|
|
54
|
+
- Do not put cards inside cards. If a reference says nested card, use an unframed row, divider, inset section, or modal unless an existing component contract explicitly requires that hierarchy.
|
|
55
|
+
- Use motion as product feedback: hover, focus, active, loading, reveal, navigation, and state transitions. Always include a prefers-reduced-motion fallback.
|
|
56
|
+
|
|
57
|
+
Before delivery:
|
|
58
|
+
- Inspect the result at mobile and desktop widths. If a browser is available, use screenshots; otherwise perform static CSS/DOM review.
|
|
59
|
+
- Fix overlap, clipped text, illegible contrast, missing states, unsupported font loading, missing assets, raw palette drift, and generic template composition before presenting.
|
|
60
|
+
- Do not add isolated blurred-circle background decorations. If a reference suggests that pattern, reinterpret it as a subtle full-bleed ambient field or remove it.
|
|
61
|
+
|
|
62
|
+
Use this package for:
|
|
63
|
+
- general web apps
|
|
64
|
+
- websites that need strong craft but not a preset style language
|
|
65
|
+
- redesigns that need a clearer system
|
|
66
|
+
- multi-screen work where continuity matters
|
|
67
|
+
|
|
68
|
+
Do not use it when a more explicit visual package was selected.
|
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
# Components and States — Interface Design
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Component quality (mandatory for every component)
|
|
6
|
-
|
|
7
|
-
Define all six states before handing off to @dev:
|
|
8
|
-
|
|
9
|
-
| State | What to specify |
|
|
10
|
-
|---|---|
|
|
11
|
-
| Default | Baseline appearance |
|
|
12
|
-
| Hover | Subtle shift (background, border, or opacity) |
|
|
13
|
-
| Focus | Visible ring — `outline: 2px solid brand/primary; outline-offset: 2px` |
|
|
14
|
-
| Active / pressed | Slight scale or brightness change |
|
|
15
|
-
| Disabled | Reduced opacity (0.4–0.5), no cursor pointer, no hover effect |
|
|
16
|
-
| Loading | Skeleton or spinner — never block critical flow |
|
|
17
|
-
|
|
18
|
-
Container components also need:
|
|
19
|
-
- **Empty state** — illustration or message + primary action
|
|
20
|
-
- **Error state** — clear message + recovery action
|
|
21
|
-
- **Success confirmation** — when relevant, transient (not permanent)
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Forms
|
|
26
|
-
|
|
27
|
-
- Labels outside placeholders. Placeholders are hints, not labels.
|
|
28
|
-
- Validate on blur (not on keystroke, not on submit only).
|
|
29
|
-
- Inline field errors directly below the field. One global summary for multi-field failures.
|
|
30
|
-
- Disable the submit button and show progress during async operations.
|
|
31
|
-
- Input height minimum: 40px (desktop), 44px (mobile/touch) — **consumer/public-facing forms only.**
|
|
32
|
-
|
|
33
|
-
**Admin / operational form scale (settings, config, entity managers):**
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
Label : text-[0.65rem] mb: 2px ← not text-sm mb-2
|
|
37
|
-
Input : px-3 py-2 text-xs radius 10–12px (height ~32px)
|
|
38
|
-
Select : px-3 py-2 text-xs radius 10–12px
|
|
39
|
-
Button : px-3 py-2 text-xs radius 10–12px
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
The 40px minimum only applies to authenticated public flows (login, onboarding, checkout). In dense admin contexts, 32px controls reduce visual weight without usability loss — the audience is power users, not first-time visitors.
|
|
43
|
-
|
|
44
|
-
**Entity add/edit forms → Modal, not inline expansion:**
|
|
45
|
-
- Inline accordions (RevealPanel, details-based expansion) inside entity cards cause layout shift and make the page feel unstable
|
|
46
|
-
- Correct pattern: `+ Add` button + `Edit` button each open a centered modal (`max-w-448px`, `backdrop-blur overlay`)
|
|
47
|
-
- Modal form: single-column, `gap: 10px`, compact controls, full-width submit button
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Typography hierarchy
|
|
52
|
-
|
|
53
|
-
Size alone is never enough. Use weight + tracking + opacity to create layers:
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
Page title : largest size, 600-weight, tight tracking
|
|
57
|
-
Section title : medium-large, 500-weight, normal tracking
|
|
58
|
-
Body : base size, 400-weight, comfortable line-height (1.5–1.6)
|
|
59
|
-
Helper / meta : small, 400-weight, muted color
|
|
60
|
-
Data / mono : monospace for numbers in tables, code, metrics
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## Layout and composition
|
|
66
|
-
|
|
67
|
-
- **Rhythm** — interfaces breathe unevenly: dense tool areas give way to open content. Same card size, same gaps everywhere = flatness = no one decided.
|
|
68
|
-
- **Proportions declare intent** — a 280px sidebar says "navigation serves content." A 360px sidebar says "these are peers." Know what your proportions are saying.
|
|
69
|
-
- **One focal point per screen** — the primary action dominates through size, position, contrast, or surrounding space. When everything competes equally, nothing wins.
|
|
70
|
-
- **Reading order** — 1. Page intent → 2. Primary action → 3. Supporting data. Never invert.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Accessibility baseline (non-negotiable)
|
|
75
|
-
|
|
76
|
-
- Semantic HTML and proper landmarks (`<main>`, `<nav>`, `<header>`, `<aside>`)
|
|
77
|
-
- Full keyboard navigation — Tab order must match visual reading order
|
|
78
|
-
- Visible focus rings on all interactive elements
|
|
79
|
-
- Color contrast: 4.5:1 for body text, 3:1 for large text and UI components
|
|
80
|
-
- Never convey meaning through color alone — add icon, pattern, or text
|
|
81
|
-
- `aria-label` on icon-only buttons, `aria-live` on dynamic status regions
|
|
82
|
-
- `prefers-reduced-motion` fallback for all animations
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Motion rules
|
|
87
|
-
|
|
88
|
-
- Motion clarifies transitions, it does not decorate them.
|
|
89
|
-
- Duration: micro-interactions 100–150ms, page transitions 200–300ms.
|
|
90
|
-
- Easing: ease-out for entrances, ease-in for exits.
|
|
91
|
-
- Never animate properties that affect layout (width, height, padding). Animate transform and opacity only.
|
|
92
|
-
- Always provide `prefers-reduced-motion: reduce` fallback.
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## Stack-specific notes
|
|
97
|
-
|
|
98
|
-
| Stack | Priority |
|
|
99
|
-
|---|---|
|
|
100
|
-
| Laravel + TALL | Flux UI / Livewire primitives first; custom only for signature moves |
|
|
101
|
-
| Filament | Built-in Filament components before any override |
|
|
102
|
-
| Next.js + shadcn/ui | shadcn primitives + Tailwind tokens; keep component boundaries clean |
|
|
103
|
-
| React + Tailwind | Design token CSS vars → Tailwind config → components |
|
|
104
|
-
| Vue + Nuxt | Nuxt UI or PrimeVue first; avoid mixing component libraries |
|
|
105
|
-
| Vanilla HTML | Define CSS custom properties at `:root`, semantic class names only |
|
|
1
|
+
# Components and States — Interface Design
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Component quality (mandatory for every component)
|
|
6
|
+
|
|
7
|
+
Define all six states before handing off to @dev:
|
|
8
|
+
|
|
9
|
+
| State | What to specify |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Default | Baseline appearance |
|
|
12
|
+
| Hover | Subtle shift (background, border, or opacity) |
|
|
13
|
+
| Focus | Visible ring — `outline: 2px solid brand/primary; outline-offset: 2px` |
|
|
14
|
+
| Active / pressed | Slight scale or brightness change |
|
|
15
|
+
| Disabled | Reduced opacity (0.4–0.5), no cursor pointer, no hover effect |
|
|
16
|
+
| Loading | Skeleton or spinner — never block critical flow |
|
|
17
|
+
|
|
18
|
+
Container components also need:
|
|
19
|
+
- **Empty state** — illustration or message + primary action
|
|
20
|
+
- **Error state** — clear message + recovery action
|
|
21
|
+
- **Success confirmation** — when relevant, transient (not permanent)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Forms
|
|
26
|
+
|
|
27
|
+
- Labels outside placeholders. Placeholders are hints, not labels.
|
|
28
|
+
- Validate on blur (not on keystroke, not on submit only).
|
|
29
|
+
- Inline field errors directly below the field. One global summary for multi-field failures.
|
|
30
|
+
- Disable the submit button and show progress during async operations.
|
|
31
|
+
- Input height minimum: 40px (desktop), 44px (mobile/touch) — **consumer/public-facing forms only.**
|
|
32
|
+
|
|
33
|
+
**Admin / operational form scale (settings, config, entity managers):**
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Label : text-[0.65rem] mb: 2px ← not text-sm mb-2
|
|
37
|
+
Input : px-3 py-2 text-xs radius 10–12px (height ~32px)
|
|
38
|
+
Select : px-3 py-2 text-xs radius 10–12px
|
|
39
|
+
Button : px-3 py-2 text-xs radius 10–12px
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The 40px minimum only applies to authenticated public flows (login, onboarding, checkout). In dense admin contexts, 32px controls reduce visual weight without usability loss — the audience is power users, not first-time visitors.
|
|
43
|
+
|
|
44
|
+
**Entity add/edit forms → Modal, not inline expansion:**
|
|
45
|
+
- Inline accordions (RevealPanel, details-based expansion) inside entity cards cause layout shift and make the page feel unstable
|
|
46
|
+
- Correct pattern: `+ Add` button + `Edit` button each open a centered modal (`max-w-448px`, `backdrop-blur overlay`)
|
|
47
|
+
- Modal form: single-column, `gap: 10px`, compact controls, full-width submit button
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Typography hierarchy
|
|
52
|
+
|
|
53
|
+
Size alone is never enough. Use weight + tracking + opacity to create layers:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Page title : largest size, 600-weight, tight tracking
|
|
57
|
+
Section title : medium-large, 500-weight, normal tracking
|
|
58
|
+
Body : base size, 400-weight, comfortable line-height (1.5–1.6)
|
|
59
|
+
Helper / meta : small, 400-weight, muted color
|
|
60
|
+
Data / mono : monospace for numbers in tables, code, metrics
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Layout and composition
|
|
66
|
+
|
|
67
|
+
- **Rhythm** — interfaces breathe unevenly: dense tool areas give way to open content. Same card size, same gaps everywhere = flatness = no one decided.
|
|
68
|
+
- **Proportions declare intent** — a 280px sidebar says "navigation serves content." A 360px sidebar says "these are peers." Know what your proportions are saying.
|
|
69
|
+
- **One focal point per screen** — the primary action dominates through size, position, contrast, or surrounding space. When everything competes equally, nothing wins.
|
|
70
|
+
- **Reading order** — 1. Page intent → 2. Primary action → 3. Supporting data. Never invert.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Accessibility baseline (non-negotiable)
|
|
75
|
+
|
|
76
|
+
- Semantic HTML and proper landmarks (`<main>`, `<nav>`, `<header>`, `<aside>`)
|
|
77
|
+
- Full keyboard navigation — Tab order must match visual reading order
|
|
78
|
+
- Visible focus rings on all interactive elements
|
|
79
|
+
- Color contrast: 4.5:1 for body text, 3:1 for large text and UI components
|
|
80
|
+
- Never convey meaning through color alone — add icon, pattern, or text
|
|
81
|
+
- `aria-label` on icon-only buttons, `aria-live` on dynamic status regions
|
|
82
|
+
- `prefers-reduced-motion` fallback for all animations
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Motion rules
|
|
87
|
+
|
|
88
|
+
- Motion clarifies transitions, it does not decorate them.
|
|
89
|
+
- Duration: micro-interactions 100–150ms, page transitions 200–300ms.
|
|
90
|
+
- Easing: ease-out for entrances, ease-in for exits.
|
|
91
|
+
- Never animate properties that affect layout (width, height, padding). Animate transform and opacity only.
|
|
92
|
+
- Always provide `prefers-reduced-motion: reduce` fallback.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Stack-specific notes
|
|
97
|
+
|
|
98
|
+
| Stack | Priority |
|
|
99
|
+
|---|---|
|
|
100
|
+
| Laravel + TALL | Flux UI / Livewire primitives first; custom only for signature moves |
|
|
101
|
+
| Filament | Built-in Filament components before any override |
|
|
102
|
+
| Next.js + shadcn/ui | shadcn primitives + Tailwind tokens; keep component boundaries clean |
|
|
103
|
+
| React + Tailwind | Design token CSS vars → Tailwind config → components |
|
|
104
|
+
| Vue + Nuxt | Nuxt UI or PrimeVue first; avoid mixing component libraries |
|
|
105
|
+
| Vanilla HTML | Define CSS custom properties at `:root`, semantic class names only |
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
# Design Directions — Interface Design
|
|
2
|
-
|
|
3
|
-
Choose ONE direction. Never mix. Mixing produces visual noise.
|
|
4
|
-
The chosen direction defines spacing, typography, border strategy, depth, and motion posture — before components are built.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Precision & Density
|
|
9
|
-
|
|
10
|
-
*For: dashboards, admin panels, developer tools, power-user interfaces.*
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
Foundation : Cool slate (borders-only depth)
|
|
14
|
-
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
15
|
-
Colors : foreground=slate-900, secondary=slate-600, muted=slate-400,
|
|
16
|
-
faint=slate-200, border=rgba(0,0,0,0.08), accent=blue-600
|
|
17
|
-
Radius : 4px / 6px / 8px (sharp, technical)
|
|
18
|
-
Typography : system-ui, 11–18px, weights 400/500/600
|
|
19
|
-
monospace: SF Mono, Consolas (for data/code)
|
|
20
|
-
Components :
|
|
21
|
-
Button → 32px height, 8px/12px padding, 4px radius, 13px 500-weight
|
|
22
|
-
Card → 0.5px faint border, 12px padding, 6px radius, NO shadows
|
|
23
|
-
Table → 8px/12px cell padding, tabular-nums, 13px font, 1px bottom border
|
|
24
|
-
Rationale : borders-only maximizes density; compact sizing serves power users;
|
|
25
|
-
system fonts feel native and load instantly.
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Warmth & Approachability
|
|
31
|
-
|
|
32
|
-
*For: consumer apps, collaborative tools, onboarding flows, customer-facing products.*
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
Foundation : Warm stone (subtle shadows)
|
|
36
|
-
Spacing : 4px base — scale: 8, 12, 16, 24, 32, 48 (generous)
|
|
37
|
-
Colors : foreground=stone-900, secondary=stone-600, accent=orange-500,
|
|
38
|
-
surface=white on stone-50
|
|
39
|
-
Radius : 8px / 12px / 16px (rounded, friendly)
|
|
40
|
-
Typography : Inter, 13–24px, weights 400/500/600
|
|
41
|
-
Components :
|
|
42
|
-
Button → 40px height, 12px/20px padding, 8px radius
|
|
43
|
-
Card → 20px padding, 12px radius, white on stone-50
|
|
44
|
-
Input → 44px height, 12px/16px padding, 1.5px faint border
|
|
45
|
-
Rationale : subtle shadows add approachable depth; generous spacing enables
|
|
46
|
-
focused tasks; warm tones feel human and inviting.
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Sophistication & Trust
|
|
52
|
-
|
|
53
|
-
*For: fintech, enterprise SaaS, operational products where clarity and trust matter more than novelty.*
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
Foundation : Cool mineral (restrained layers)
|
|
57
|
-
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
58
|
-
Colors : foreground=slate-950, secondary=slate-700, muted=slate-500,
|
|
59
|
-
surface=white, border=rgba(15,23,42,0.10), accent=blue-700
|
|
60
|
-
Radius : 8px / 10px / 12px (firm, not playful)
|
|
61
|
-
Typography : IBM Plex Sans or Public Sans, 12–20px, weights 400/500/600
|
|
62
|
-
Components :
|
|
63
|
-
Button → 38px height, 12px/18px padding, 10px radius
|
|
64
|
-
Card → 16px padding, 10px radius, subtle border, rare soft shadow
|
|
65
|
-
Table → 10px/14px cell padding, tabular-nums, quiet row dividers
|
|
66
|
-
Rationale : trust comes from control, not decoration; a restrained palette and
|
|
67
|
-
firm typography make the product feel expensive and dependable.
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Premium Dark Platform
|
|
73
|
-
|
|
74
|
-
*For: premium dashboards, media/catalog products, command surfaces, high-density apps with persistent navigation.*
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
Foundation : Graphite layers (borders-first)
|
|
78
|
-
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
79
|
-
Colors : base=#0b1015, surface=#10161d, elevated=#151c24,
|
|
80
|
-
foreground=#f3f7fb, secondary=#b7c2cf, muted=#7f8b99,
|
|
81
|
-
border=rgba(255,255,255,0.08), accent=desaturated blue
|
|
82
|
-
Radius : 12px / 14px / 16px (premium, controlled)
|
|
83
|
-
Typography : Manrope, Geist, or IBM Plex Sans, 12–22px, weights 400/500/600
|
|
84
|
-
Components :
|
|
85
|
-
Button → 40px height, 12px/18px padding, 12px radius
|
|
86
|
-
Card → layered surfaces, 16px padding, 14px radius, no heavy glow
|
|
87
|
-
Sidebar → quiet active state, compact icon rhythm, clean section grouping
|
|
88
|
-
Rationale : premium dark works when contrast is controlled, surfaces are few,
|
|
89
|
-
and borders quietly separate the system without turning neon.
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## Other directions (adapt token specs above)
|
|
95
|
-
|
|
96
|
-
- **Data & Analysis** — cool blue, high-density tables, monospace for numbers, minimal chrome
|
|
97
|
-
- **Editorial** — strong typographic hierarchy, generous white space, restrained color
|
|
98
|
-
- **Commerce** — aspirational photography support, high contrast CTAs, smooth transitions
|
|
99
|
-
- **Minimal & Calm** — near-monochrome, whitespace as design element, hairline borders only
|
|
100
|
-
- **Boldness & Clarity** — stronger accent, harder contrast, one dominant focal move
|
|
101
|
-
- **Utility & Function** — minimal decoration, maximum legibility, near-invisible chrome
|
|
1
|
+
# Design Directions — Interface Design
|
|
2
|
+
|
|
3
|
+
Choose ONE direction. Never mix. Mixing produces visual noise.
|
|
4
|
+
The chosen direction defines spacing, typography, border strategy, depth, and motion posture — before components are built.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Precision & Density
|
|
9
|
+
|
|
10
|
+
*For: dashboards, admin panels, developer tools, power-user interfaces.*
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Foundation : Cool slate (borders-only depth)
|
|
14
|
+
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
15
|
+
Colors : foreground=slate-900, secondary=slate-600, muted=slate-400,
|
|
16
|
+
faint=slate-200, border=rgba(0,0,0,0.08), accent=blue-600
|
|
17
|
+
Radius : 4px / 6px / 8px (sharp, technical)
|
|
18
|
+
Typography : system-ui, 11–18px, weights 400/500/600
|
|
19
|
+
monospace: SF Mono, Consolas (for data/code)
|
|
20
|
+
Components :
|
|
21
|
+
Button → 32px height, 8px/12px padding, 4px radius, 13px 500-weight
|
|
22
|
+
Card → 0.5px faint border, 12px padding, 6px radius, NO shadows
|
|
23
|
+
Table → 8px/12px cell padding, tabular-nums, 13px font, 1px bottom border
|
|
24
|
+
Rationale : borders-only maximizes density; compact sizing serves power users;
|
|
25
|
+
system fonts feel native and load instantly.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Warmth & Approachability
|
|
31
|
+
|
|
32
|
+
*For: consumer apps, collaborative tools, onboarding flows, customer-facing products.*
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Foundation : Warm stone (subtle shadows)
|
|
36
|
+
Spacing : 4px base — scale: 8, 12, 16, 24, 32, 48 (generous)
|
|
37
|
+
Colors : foreground=stone-900, secondary=stone-600, accent=orange-500,
|
|
38
|
+
surface=white on stone-50
|
|
39
|
+
Radius : 8px / 12px / 16px (rounded, friendly)
|
|
40
|
+
Typography : Inter, 13–24px, weights 400/500/600
|
|
41
|
+
Components :
|
|
42
|
+
Button → 40px height, 12px/20px padding, 8px radius
|
|
43
|
+
Card → 20px padding, 12px radius, white on stone-50
|
|
44
|
+
Input → 44px height, 12px/16px padding, 1.5px faint border
|
|
45
|
+
Rationale : subtle shadows add approachable depth; generous spacing enables
|
|
46
|
+
focused tasks; warm tones feel human and inviting.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Sophistication & Trust
|
|
52
|
+
|
|
53
|
+
*For: fintech, enterprise SaaS, operational products where clarity and trust matter more than novelty.*
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Foundation : Cool mineral (restrained layers)
|
|
57
|
+
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
58
|
+
Colors : foreground=slate-950, secondary=slate-700, muted=slate-500,
|
|
59
|
+
surface=white, border=rgba(15,23,42,0.10), accent=blue-700
|
|
60
|
+
Radius : 8px / 10px / 12px (firm, not playful)
|
|
61
|
+
Typography : IBM Plex Sans or Public Sans, 12–20px, weights 400/500/600
|
|
62
|
+
Components :
|
|
63
|
+
Button → 38px height, 12px/18px padding, 10px radius
|
|
64
|
+
Card → 16px padding, 10px radius, subtle border, rare soft shadow
|
|
65
|
+
Table → 10px/14px cell padding, tabular-nums, quiet row dividers
|
|
66
|
+
Rationale : trust comes from control, not decoration; a restrained palette and
|
|
67
|
+
firm typography make the product feel expensive and dependable.
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Premium Dark Platform
|
|
73
|
+
|
|
74
|
+
*For: premium dashboards, media/catalog products, command surfaces, high-density apps with persistent navigation.*
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Foundation : Graphite layers (borders-first)
|
|
78
|
+
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
79
|
+
Colors : base=#0b1015, surface=#10161d, elevated=#151c24,
|
|
80
|
+
foreground=#f3f7fb, secondary=#b7c2cf, muted=#7f8b99,
|
|
81
|
+
border=rgba(255,255,255,0.08), accent=desaturated blue
|
|
82
|
+
Radius : 12px / 14px / 16px (premium, controlled)
|
|
83
|
+
Typography : Manrope, Geist, or IBM Plex Sans, 12–22px, weights 400/500/600
|
|
84
|
+
Components :
|
|
85
|
+
Button → 40px height, 12px/18px padding, 12px radius
|
|
86
|
+
Card → layered surfaces, 16px padding, 14px radius, no heavy glow
|
|
87
|
+
Sidebar → quiet active state, compact icon rhythm, clean section grouping
|
|
88
|
+
Rationale : premium dark works when contrast is controlled, surfaces are few,
|
|
89
|
+
and borders quietly separate the system without turning neon.
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Other directions (adapt token specs above)
|
|
95
|
+
|
|
96
|
+
- **Data & Analysis** — cool blue, high-density tables, monospace for numbers, minimal chrome
|
|
97
|
+
- **Editorial** — strong typographic hierarchy, generous white space, restrained color
|
|
98
|
+
- **Commerce** — aspirational photography support, high contrast CTAs, smooth transitions
|
|
99
|
+
- **Minimal & Calm** — near-monochrome, whitespace as design element, hairline borders only
|
|
100
|
+
- **Boldness & Clarity** — stronger accent, harder contrast, one dominant focal move
|
|
101
|
+
- **Utility & Function** — minimal decoration, maximum legibility, near-invisible chrome
|