ima2-gen 2.0.15 → 2.0.16

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.
Files changed (125) hide show
  1. package/README.md +30 -0
  2. package/bin/commands/skill.js +336 -17
  3. package/bin/ima2.js +22 -2
  4. package/bin/lib/doctor-checks.js +6 -4
  5. package/config.js +1 -0
  6. package/docs/CLI.md +25 -3
  7. package/docs/PROMPT_STUDIO.ko.md +29 -0
  8. package/docs/PROMPT_STUDIO.md +31 -0
  9. package/docs/migration/runtime-test-inventory.md +7 -1
  10. package/lib/agentImageVideoGen.js +8 -0
  11. package/lib/agentQueueStore.js +36 -10
  12. package/lib/agentQueueWorker.js +79 -7
  13. package/lib/agentRuntime.js +2 -0
  14. package/lib/assetLifecycle.js +40 -8
  15. package/lib/canvasVersionStore.js +86 -0
  16. package/lib/cardNewsGenerator.js +37 -3
  17. package/lib/cardNewsJobStore.js +10 -0
  18. package/lib/cardNewsManifestStore.js +6 -12
  19. package/lib/cardNewsPath.js +25 -0
  20. package/lib/db.js +2 -0
  21. package/lib/generatePipeline.js +474 -0
  22. package/lib/generationInputValidation.js +32 -0
  23. package/lib/grokImageCore.js +18 -1
  24. package/lib/historyIndex.js +11 -4
  25. package/lib/historyList.js +3 -0
  26. package/lib/imageMetadata.js +3 -0
  27. package/lib/inflight.js +30 -3
  28. package/lib/multimodePipeline.js +462 -0
  29. package/lib/nodeGeneration.js +440 -0
  30. package/lib/nodeValidation.js +23 -0
  31. package/lib/oauthProxy/generators.js +3 -246
  32. package/lib/oauthProxy/multimodeGenerators.js +251 -0
  33. package/lib/routeHelpers.js +9 -2
  34. package/package.json +2 -2
  35. package/routes/agent.js +4 -4
  36. package/routes/canvasVersions.js +21 -1
  37. package/routes/cardNews.js +2 -1
  38. package/routes/edit.js +25 -9
  39. package/routes/events.js +5 -1
  40. package/routes/generate.js +2 -481
  41. package/routes/keys.js +31 -39
  42. package/routes/multimode.js +2 -502
  43. package/routes/nodes.js +3 -448
  44. package/routes/video.js +12 -3
  45. package/routes/videoExtended.js +19 -4
  46. package/server.js +53 -1
  47. package/skills/ima2/SKILL.md +204 -0
  48. package/skills/ima2-front/SKILL.md +611 -0
  49. package/skills/ima2-front/references/a11y-patterns.md +134 -0
  50. package/skills/ima2-front/references/aesthetics.md +327 -0
  51. package/skills/ima2-front/references/anti-slop.md +241 -0
  52. package/skills/ima2-front/references/asset-requirements.md +431 -0
  53. package/skills/ima2-front/references/brand-asset-sourcing.md +122 -0
  54. package/skills/ima2-front/references/color-system.md +132 -0
  55. package/skills/ima2-front/references/consistency-locks.md +20 -0
  56. package/skills/ima2-front/references/crud-ui.md +53 -0
  57. package/skills/ima2-front/references/dropdown-layer.md +110 -0
  58. package/skills/ima2-front/references/i18n-global.md +104 -0
  59. package/skills/ima2-front/references/iterative-design.md +90 -0
  60. package/skills/ima2-front/references/korea-2026.md +174 -0
  61. package/skills/ima2-front/references/layout-discipline.md +161 -0
  62. package/skills/ima2-front/references/liquid-glass.md +181 -0
  63. package/skills/ima2-front/references/logo-sections.md +194 -0
  64. package/skills/ima2-front/references/mobile-ux.md +144 -0
  65. package/skills/ima2-front/references/performance-budget.md +106 -0
  66. package/skills/ima2-front/references/preflight-full.md +58 -0
  67. package/skills/ima2-front/references/product-density.md +53 -0
  68. package/skills/ima2-front/references/prototype-variants.md +54 -0
  69. package/skills/ima2-front/references/reference-capture.md +120 -0
  70. package/skills/ima2-front/references/responsive-viewport.md +139 -0
  71. package/skills/ima2-front/references/seo-baseline.md +123 -0
  72. package/skills/ima2-front/references/soft-3d-asset-gates.md +70 -0
  73. package/skills/ima2-front/references/stacks/astro.md +204 -0
  74. package/skills/ima2-front/references/stacks/mobile-native.md +281 -0
  75. package/skills/ima2-front/references/stacks/nextjs.md +219 -0
  76. package/skills/ima2-front/references/stacks/react.md +264 -0
  77. package/skills/ima2-front/references/stacks/svelte.md +235 -0
  78. package/skills/ima2-front/references/stacks/vanilla.md +226 -0
  79. package/skills/ima2-front/references/theme-switching.md +82 -0
  80. package/skills/ima2-front/references/top-bar.md +126 -0
  81. package/skills/ima2-front/references/typography-wrapping.md +270 -0
  82. package/skills/ima2-front/references/ux-writing-ko.md +62 -0
  83. package/skills/ima2-front/references/visual-verification.md +102 -0
  84. package/skills/ima2-uiux/SKILL.md +477 -0
  85. package/skills/ima2-uiux/references/anti-slop-judgment.md +39 -0
  86. package/skills/ima2-uiux/references/color-system.md +80 -0
  87. package/skills/ima2-uiux/references/design-isms.md +194 -0
  88. package/skills/ima2-uiux/references/design-read-example.md +33 -0
  89. package/skills/ima2-uiux/references/design-system-bootstrap.md +133 -0
  90. package/skills/ima2-uiux/references/favicon-logo.md +355 -0
  91. package/skills/ima2-uiux/references/form-patterns.md +118 -0
  92. package/skills/ima2-uiux/references/intent-discovery-ladder.md +86 -0
  93. package/skills/ima2-uiux/references/korean-design-vocabulary.md +52 -0
  94. package/skills/ima2-uiux/references/layout-macrostructures.md +54 -0
  95. package/skills/ima2-uiux/references/logo-trust-sections.md +96 -0
  96. package/skills/ima2-uiux/references/mobile-native-ux.md +207 -0
  97. package/skills/ima2-uiux/references/product-personalities.md +118 -0
  98. package/skills/ima2-uiux/references/responsive-nav.md +66 -0
  99. package/skills/ima2-uiux/references/typography-line-breaks.md +193 -0
  100. package/skills/ima2-uiux/references/ux-preflight.md +65 -0
  101. package/skills/ima2-uiux/references/ux-states.md +197 -0
  102. package/skills/ima2-uiux/references/visual-hierarchy.md +115 -0
  103. package/ui/dist/.vite/manifest.json +13 -13
  104. package/ui/dist/assets/AgentWorkspace-CtYt4SF5.js +3 -0
  105. package/ui/dist/assets/{CardNewsWorkspace-Cdxn1ohU.js → CardNewsWorkspace-DN5cVqG5.js} +1 -1
  106. package/ui/dist/assets/GenerationRequestLogPanel-DnmUQdKR.js +1 -0
  107. package/ui/dist/assets/{NodeCanvas-C67sLboA.js → NodeCanvas-CxpfIBI0.js} +1 -1
  108. package/ui/dist/assets/PromptBuilderPanel-C2R3ObtR.js +2 -0
  109. package/ui/dist/assets/{PromptImportDialog-DeQXsEEv.js → PromptImportDialog-BIxz_yEx.js} +2 -2
  110. package/ui/dist/assets/PromptImportDiscoverySection-BQTlPMME.js +1 -0
  111. package/ui/dist/assets/PromptImportFolderSection-Ds_Th9O3.js +1 -0
  112. package/ui/dist/assets/{PromptLibraryPanel-Db3xEPM_.js → PromptLibraryPanel-Rs4l45pV.js} +2 -2
  113. package/ui/dist/assets/{SettingsWorkspace-BDk_1W-V.js → SettingsWorkspace-p1AZ6uT9.js} +1 -1
  114. package/ui/dist/assets/index-0-_vgFGs.js +4 -0
  115. package/ui/dist/assets/index-Dm3pFxV4.js +23 -0
  116. package/ui/dist/assets/index-J8yDF3Ch.css +1 -0
  117. package/ui/dist/index.html +2 -2
  118. package/ui/dist/assets/AgentWorkspace-DAg_7zpY.js +0 -3
  119. package/ui/dist/assets/GenerationRequestLogPanel-C_qvEUi2.js +0 -1
  120. package/ui/dist/assets/PromptBuilderPanel-DjvVdAie.js +0 -2
  121. package/ui/dist/assets/PromptImportDiscoverySection-CrwyUKYI.js +0 -1
  122. package/ui/dist/assets/PromptImportFolderSection-CToGMqYE.js +0 -1
  123. package/ui/dist/assets/index-2oG6in1i.css +0 -1
  124. package/ui/dist/assets/index-CoxMOXAU.js +0 -23
  125. package/ui/dist/assets/index-p8egnGHk.js +0 -4
@@ -0,0 +1,39 @@
1
+ # Anti-Slop Design Judgment
2
+
3
+ Design-level anti-slop rules. These are JUDGMENT calls made before code —
4
+ implementation enforcement lives in `ima2-front/references/anti-slop-implementation.md`.
5
+
6
+ ## LLM Default Patterns to Reject
7
+
8
+ These are the patterns AI agents produce when they lack specific direction.
9
+ Reject them on sight:
10
+
11
+ - **Warm beige/cream backgrounds** with brass/clay accents as "premium" default
12
+ - **Centered hero + three equal feature cards** below
13
+ - **Generic glassmorphism** without functional justification
14
+ - **Inter + slate-900** as the go-to type/color combo
15
+ - **Card-based everything** without layout variety
16
+ - **Purple gradients on white** (old tell, still common)
17
+ - **Gradient mesh backgrounds** as a substitute for real visual content
18
+
19
+ ## 2026 Active Tells
20
+
21
+ - **Gradient soup** — multiple gradients per viewport, gradients on card grids
22
+ - **One-note dark themes** — terminal green, cyber cyan, CRT amber
23
+ - **Emoji as UI icons** — the #1 signal that AI wrote this
24
+ - **"Elevate your X"** — cliche copy that AI defaults to
25
+ - **Version labels in heroes** ("v3.0", "2.0 Release")
26
+ - **Numbered eyebrows** ("01 — Features", "02 — Pricing")
27
+ - **Fake social proof** ("trusted by teams worldwide", "10,000+ users")
28
+ - **Middle-dot overuse** as a section separator
29
+ - **Duplicate image reuse** across sections
30
+ - **Decorative scroll cues** with no functional purpose
31
+
32
+ ## What to Do Instead
33
+
34
+ - Use `ima2 gen` to create real, domain-specific visual assets
35
+ - Choose asymmetric or content-weighted layouts
36
+ - Vary section families (at least 4 different per 8 sections)
37
+ - Use domain-appropriate fonts (not Inter unless the project already uses it)
38
+ - Write original copy that names the product's actual value
39
+ - Generate real product photos/illustrations instead of gradient washes
@@ -0,0 +1,80 @@
1
+ ## 1. Color Palette Generation
2
+
3
+ When the user provides a brand color (or you need to generate a palette from scratch), follow this method.
4
+
5
+ ### From Brand Color to Full Palette
6
+
7
+ 1. **Start with the brand hex.** Compute OKLCH values for precise perceptual steps.
8
+ 2. **Generate the scale** (50–900) by adjusting lightness while preserving hue and saturation:
9
+ - 50: background tint (lightness ~97%)
10
+ - 100–200: hover/pressed states
11
+ - 300: borders
12
+ - 400: disabled text
13
+ - 500: brand primary (the input color)
14
+ - 600–700: text on light backgrounds
15
+ - 800–900: heading text, dark surfaces
16
+
17
+ 3. **Add semantic colors:**
18
+ - Success: green-based (hue ~145°)
19
+ - Warning: amber-based (hue ~45°)
20
+ - Danger: red-based (hue ~25°)
21
+ - Info: blue-based (hue ~220°)
22
+ - Generate each as a 50–900 scale.
23
+
24
+ 4. **Neutral ramp:** Pick a subtle hue bias from the brand color. Apply it at very low chroma (0.005–0.01) across the gray scale. This gives "warm grays" or "cool grays" that feel cohesive with the brand.
25
+
26
+ ### Practitioner Notes — Hue Budget & Tinted Neutrals (verified 2026-07-07)
27
+
28
+ Field-tested extensions to the method above (Korean designer community;
29
+ evidence: repo `devlog/_fin/260707_liquid_glass_motion_trends/000_research.md` §2):
30
+
31
+ - **Hue budget:** most "AI-generated frontend looks off" complaints trace to
32
+ too many meaning-carrying hues (Von Restorff effect: emphasize everything,
33
+ emphasize nothing). Semantic colors (success/warn/danger/info) + bg + text
34
+ already spend most of the budget — new UI meaning should come from the
35
+ existing scales' lightness/chroma/alpha steps, not a new hue.
36
+ - **Tinted neutrals:** pure `#000` backgrounds and pure `#FFFFFF` surfaces
37
+ read flat and strain eyes; production dark modes are rarely pure black.
38
+ Bias black slightly red or blue, bias white slightly yellow for warmth —
39
+ this is the same low-chroma neutral-ramp rule applied to the extremes.
40
+ - **Brand-first theming:** decide icon/logo/symbol identity first (or
41
+ together with the UI), then derive the app theme from the brand color via
42
+ the scale above — the brand-in-theme IS the frontend color principle.
43
+ - **Tools:** see the vetted toolbox below.
44
+
45
+ ### Color Toolbox 2026 (maintenance-checked 2026-07-07)
46
+
47
+ Reach for the right tool by job, not by habit:
48
+
49
+ | Tool | Use when | Status |
50
+ |------|----------|--------|
51
+ | tweakcn (tweakcn.com) | shadcn/ui + Tailwind v4 theme editing/export (OKLCH/HSL) | active (repo 2026-06) |
52
+ | OKLCH Picker (oklch.com) | precise OKLCH picking, hex conversion, gamut checks | active (2026-07) |
53
+ | Harmonizer (harmonizer.evilmartians.com) | generating OKLCH UI palettes with APCA-minded contrast | active (2026-04) |
54
+ | Leonardo (leonardocolor.io) | adaptive, accessibility-aware design-system scales + token export | active (Adobe, 2026-05) |
55
+ | Radix Colors (radix-ui.com/colors) | prebuilt accessible app scales — strong neutral/accent pairs | stable (2025-12) |
56
+ | Adobe Color (color.adobe.com) | fast ideation, harmonies, extract-from-image, non-engineer collab | live |
57
+ | Coolors (coolors.co) | rapid palette gacha, quick exports | live |
58
+ | APCA calc (apcacontrast.com) + Atmos checker (atmos.style/contrast-checker) | perceptual contrast checks alongside WCAG | active |
59
+
60
+ Judgment: for SYSTEM-quality palettes start from OKLCH tools (Picker →
61
+ Harmonizer/Leonardo/Radix); use Adobe/Coolors for ideation only; for
62
+ shadcn/Tailwind v4 projects finish in tweakcn. Huetone is stale (2023) —
63
+ learning reference only. Contrast stance: **WCAG 2.2 is the compliance gate;
64
+ APCA is advisory** until WCAG 3 (Working Draft as of 2026-07-07) settles.
65
+ Implementation mechanics (token layering, oklch() fallbacks, color-mix(),
66
+ light-dark(), Tailwind/shadcn wiring):
67
+ `dev-frontend/references/core/color-system.md`.
68
+
69
+ ### Dark Mode Token Derivation
70
+ - Do NOT simply invert lightness values. Dark mode has its own logic.
71
+ - Elevation = brightness: higher surfaces are lighter (900→800→700 for bg→surface→elevated).
72
+ - Text: use 100–200 range (not pure white — `#e5e5e5` or `#f5f5f5`).
73
+ - Borders: use 700–800 range at low opacity.
74
+ - Accent colors: may need chroma adjustment for dark backgrounds (slightly more saturated).
75
+
76
+ ### Accessible Pair Generation
77
+ For every text-on-background combination, verify:
78
+ - Normal text (< 24px): 4.5:1 contrast ratio minimum (WCAG AA).
79
+ - Large text (≥ 24px or bold ≥ 18.5px): 3:1 minimum.
80
+ - Interactive components: 3:1 against adjacent colors.
@@ -0,0 +1,194 @@
1
+ ## 1. Design Ism Vocabulary
2
+
3
+ When the user references a design style or movement, or when selecting an aesthetic direction, use this vocabulary. Each ism includes a CSS signature for rapid implementation.
4
+
5
+ ### 1.1 Flat Design
6
+ Minimalist 2D. No shadows, gradients, or textures. Bold saturated solids, clean geometry, ample whitespace.
7
+ ```css
8
+ background: #3498db; border: none; border-radius: 0-4px; box-shadow: none;
9
+ font-family: system-ui, sans-serif; font-weight: 400-600;
10
+ ```
11
+ **Use:** Content-heavy, mobile-first, government/public services. **Avoid:** Complex data-dense UI, luxury.
12
+
13
+ ### 1.2 Material Design
14
+ Flat + physics-based elevation. Z-axis surfaces with systematic shadows, ripple animations, 8dp grid.
15
+ ```css
16
+ box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); /* dp=1 */
17
+ border-radius: 4px; transition: box-shadow 0.3s cubic-bezier(0.25,0.8,0.25,1);
18
+ ```
19
+ **Use:** Cross-platform apps, enterprise SaaS, form-heavy workflows. **Avoid:** Distinctive brand identity, Apple-ecosystem.
20
+
21
+ ### 1.3 Glassmorphism
22
+ Frosted-glass with `backdrop-filter: blur()`, transparency, and subtle borders over colorful backgrounds.
23
+ ```css
24
+ background: rgba(255,255,255,0.1); backdrop-filter: blur(10px);
25
+ border: 1px solid rgba(255,255,255,0.2); border-radius: 12px;
26
+ ```
27
+ **Use:** Over rich backgrounds, navigation overlays, media players, macOS-aligned products. **Avoid:** Plain white backgrounds, text-heavy reading, low-powered devices.
28
+
29
+ ### 1.4 Neumorphism
30
+ Extruded/inset elements from monochromatic background. Paired light+dark soft shadows. Soft plastic/clay feel.
31
+ ```css
32
+ background: #e0e0e0;
33
+ box-shadow: 5px 5px 10px #bebebe, -5px -5px 10px #ffffff;
34
+ border-radius: 20px;
35
+ ```
36
+ **Use:** Smart home dashboards, music players, single-purpose widgets, low-density internal tools. **Avoid:** Accessibility-critical (WCAG fails on low contrast), data-dense, e-commerce.
37
+
38
+ ### 1.5 Neobrutalism
39
+ Thick black borders, flat bright backgrounds, no blur, oversized bold type, deliberately raw.
40
+ ```css
41
+ border: 3px solid #000; background: #ff6b6b;
42
+ box-shadow: 4px 4px 0 #000; border-radius: 0; font-weight: 800-900;
43
+ ```
44
+ **Use:** Creative agencies, indie products, developer portfolios, youth-facing. **Avoid:** Finance, healthcare, government, enterprise B2B, luxury.
45
+
46
+ ### 1.6 Claymorphism
47
+ 3D clay-like. Thick soft pastel shadows, vibrant rounded elements, cartoon-like inflated depth.
48
+ ```css
49
+ background: linear-gradient(135deg, #ff6b9d, #feca57);
50
+ box-shadow: 10px 10px 20px rgba(0,0,0,0.1), -5px -5px 15px rgba(255,255,255,0.7);
51
+ border-radius: 25px;
52
+ ```
53
+ **Use:** Children's apps, gamification, onboarding, playful consumer. **Avoid:** Professional tools, finance, healthcare, enterprise.
54
+
55
+ ### 1.7 Art Deco
56
+ Bold geometry, symmetry, metallic finishes, strong vertical emphasis, luxurious ornamentation.
57
+ ```css
58
+ font-family: 'Playfair Display', serif; text-transform: uppercase; letter-spacing: 0.15em;
59
+ color: #c9a96e; background: #1a1a2e; border-radius: 0;
60
+ ```
61
+ **Use:** Luxury brands, hospitality, jewelry/fashion, event landing pages. **Avoid:** SaaS, developer tools, casual consumer apps.
62
+
63
+ ### 1.8 Bauhaus
64
+ "Form follows function." Reductive, geometric, primary colors (red/yellow/blue) + black/white, grid-based asymmetric.
65
+ ```css
66
+ font-family: 'DM Sans', sans-serif; font-weight: 700;
67
+ display: grid; grid-template-columns: 2fr 1fr;
68
+ border: 2px solid #000; border-radius: 0;
69
+ ```
70
+ **Use:** Design portfolios, museum/gallery sites, educational platforms. **Avoid:** Complex data interfaces, general consumer apps.
71
+
72
+ ### 1.9 Swiss / International Typographic Style
73
+ Maximum clarity. Grid systems, Helvetica/sans-serif, asymmetric layouts, objective photography, mathematical spacing.
74
+ ```css
75
+ font-family: 'Helvetica Neue', 'Inter', sans-serif;
76
+ display: grid; gap: 1.5rem; color: #111; background: #fff;
77
+ ```
78
+ **Use:** Corporate identities, developer documentation, data dashboards. **Avoid:** Playful consumer products, entertainment.
79
+
80
+ ### 1.10 Memphis Design
81
+ Anarchic 1980s. Clashing colors, squiggly lines, geometric confetti, deliberately "ugly" compositions.
82
+ ```css
83
+ background: #ff6b6b; border-radius: 50% 0 50% 0;
84
+ /* SVG confetti/geometric shapes as background-image */
85
+ ```
86
+ **Use:** Event promotions, youth marketing, creative agency sites, social media graphics. **Avoid:** Professional software, finance, healthcare.
87
+
88
+ ### 1.11 Skeuomorphism
89
+ Real-world materials in digital. Leather, wood, metal textures. Realistic shadows, bevels, highlights.
90
+ ```css
91
+ background: linear-gradient(to bottom, #e8e8e8, #d0d0d0);
92
+ box-shadow: 0 2px 4px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.6);
93
+ border: 1px solid #999; border-radius: 8px;
94
+ ```
95
+ **Use:** Onboarding for non-technical users, music/audio apps, nostalgic products. **Avoid:** Developer tools, dashboards, SaaS, responsive layouts.
96
+
97
+ ### 1.12 Liquid Glass (Apple, 2025-2026)
98
+ Glassmorphism's successor as a SYSTEM material, not a card style (Apple HIG
99
+ Materials, verified 2026-07-07). Dynamic translucent layer reserved for
100
+ floating controls/navigation; content scrolls beneath and peeks through.
101
+ Adapts to context and user settings (reduced transparency, increased
102
+ contrast). Named material states (canonical: `ima2-front` `liquid-glass.md`):
103
+ `pill-at-top` (~70-80% opacity, only over an authored calm bar zone),
104
+ `pill-scrolled` (85-95% + blur, the default text-bearing chrome state),
105
+ `media-overlay` (the older canvas-55% recipe, media/photo overlays only), and
106
+ `clear` (no blur; sparse controls over rich media). Bar-spawned dropdowns and
107
+ popovers are unconditionally near-opaque, blur-free solid.
108
+ ```css
109
+ /* pill-scrolled state */
110
+ background: color-mix(in oklab, canvas 90%, transparent);
111
+ backdrop-filter: blur(16px) saturate(1.4);
112
+ border: 1px solid rgba(255,255,255,0.18); border-radius: 16px;
113
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.12);
114
+ ```
115
+ **Judgment gate vs 1.3 Glassmorphism:** 1.3 styles individual cards over
116
+ colorful backgrounds; Liquid Glass is a two-layer hierarchy decision —
117
+ functional chrome floats as glass, content NEVER does. If someone asks for
118
+ "glass cards" in the content layer, that is 1.3 (and usually slop); reserve
119
+ Liquid Glass for sticky headers, tab bars, sidebars, floating toolbars,
120
+ players. A blur-free variant (near-opaque pills over photographic/pastel
121
+ washes) delivers the same 2026 language at lower cost.
122
+ **Use:** macOS/iOS-aligned products, media-rich consumer apps, floating chrome over scrollable content. **Avoid:** content-layer cards, text-heavy reading surfaces, data-dense dashboards, low-powered targets.
123
+ Implementation recipes, perf budget, and a11y gates: `dev-frontend/references/core/liquid-glass.md`.
124
+
125
+ ### 1.13 Liquid Editorial (2026 no-brief default kit)
126
+ The composite kit behind SKILL.md §1 UX-DEFAULT-ISM-01 (decided 2026-07-07
127
+ from Tier-2 trend research: Apple Liquid Glass 2025-06-09 announcement + HIG
128
+ restraint guidance; Figma/Creative Bloq/Fireart 2026 forecasts naming
129
+ expressive typography, tactile anti-AI texture, and authored color as the
130
+ premium direction). Structure: type-led asymmetric composition OR light
131
+ centered display (FE-HERO-LIGHT-CENTER-01: centered, weight 300-400, over
132
+ full-width real media backdrop; see `ima2-front` `layout-discipline.md`).
133
+ Both carry a Liquid Glass accent layer — the "fancy" lives in the chrome, the
134
+ authorship in the type.
135
+ ```css
136
+ /* signature: oversized authored headline + tactile wash + pill chrome */
137
+ h1 { font-size: clamp(2.5rem, 8vw, 6rem); letter-spacing: 0; text-wrap: balance; }
138
+ .wash { background: url(texture-or-photo) / oklch-tinted pastel; }
139
+ .chrome { border-radius: 9999px; background: rgb(255 255 255 / .92); } /* or pill-scrolled state on nav */
140
+ /* children inside pill chrome: fills/tints only, no capsule borders at rest (FE-PILL-NEST-01) */
141
+ :root { --accent: oklch(0.6 0.2 <one hue>); }
142
+ ```
143
+ **Use:** no-brief expressive surfaces (landing, consumer, creative, AI-product) as a stated assumption. **Avoid:** any quiet/repeated-work domain; briefs that name another direction; reusing it so uniformly that it becomes the new generic default — vary texture, hue, and the single signature motion per project.
144
+ Related: 1.12 (material rules), `product-personalities.md` Aside profile (chip vocabulary), `ima2-front` `liquid-glass.md` + `motion.md` (implementation).
145
+
146
+ ---
147
+ ### 1.14 AI Serif Editorial (2024-2026 serif renaissance)
148
+ The AI-brand serif turn (verified 2026-07-09): display serif at LIGHT weights +
149
+ sans UI + mono technical accent — never "make everything serif". Measured:
150
+ claude.ai `Anthropic Serif` 56px/weight 330 (identity by Geist: Styrene +
151
+ Tiempos); Perplexity's Comet leads with Editorial New (Studio Freight);
152
+ manus.im Libre Baskerville 36px/400; precedent medium.com GT Super 120px/400 +
153
+ Sohne UI. Semiotics: books/scholarship/human-hand trust against AI coldness,
154
+ often with a warm off-white page metaphor.
155
+ ```css
156
+ h1, .display { font-family: "Tiempos Headline", "Editorial New", "GT Super", serif;
157
+ font-weight: 350; font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1.15; }
158
+ body, button, input { font-family: var(--sans); } /* UI stays sans */
159
+ code, .meta { font-family: var(--mono); } /* technical accent */
160
+ :root { --page: #faf9f5; } /* warm off-white page */
161
+ ```
162
+ **Use:** AI-product, research, editorial, publication, trust/human-warmth
163
+ brands WITH real editorial structure (long-form typography, page-like
164
+ surfaces, restrained palette). **Avoid:** dashboards, dense tools, SaaS
165
+ layouts wearing a serif as premium shorthand — that is "tasteslop" (WIRED
166
+ 2026-06-05); heavy bold display serif (the pattern is 330-400).
167
+ Related: `ima2-front` `aesthetics.md § Serif Discipline`,
168
+ `korea-2026.md § Korean Serif / Myeongjo Display` (MaruBuri pairing).
169
+
170
+ ---
171
+
172
+ ### 1.15 Organic Capsule (OpenAI announcement grammar)
173
+ The OpenAI model-card/hero grammar (in-house Feb-2025 rebrand led by Veit
174
+ Moeller/Shannon Jager; OpenAI Sans by ABC Dinamo; motion/sound by Studio
175
+ Dumbar/DEPT): a soft-focus organic photographic field (natural palettes,
176
+ film grain, some Sora-generated texture) carrying an OPAQUE white capsule
177
+ label with bold warm-sans text. Two strict layers: expressive background
178
+ (no functional text) vs functional capsule/copy (no decoration). Kin to
179
+ Apple's WWDC25 capsule system but opaque, not glass.
180
+ ```css
181
+ .field { background: url(soft-focus-organic.jpg) center/cover; }
182
+ .field::after { content:""; position:absolute; inset:0; opacity:.15;
183
+ /* grain: noise image or feTurbulence */ mix-blend-mode: multiply; }
184
+ .capsule { border-radius: 9999px; background: #fff; color: #111;
185
+ padding: .4em 1em; font-weight: 700; }
186
+ ```
187
+ **Use:** announcement cards, model/product reveals, campaign heroes for
188
+ warm-tech brands; pairs with restrained type-led pages. **Avoid:** mixing the
189
+ layers (text on raw busy background, texture on the capsule), more than one
190
+ organic field per viewport (gradient/texture budget), tools/dashboards.
191
+ Related: `ima2-front` `motion.md § Soft-Focus Organic Background + Capsule
192
+ Label`, `aesthetics.md § Expressive vs Functional Layers`.
193
+
194
+ ---
@@ -0,0 +1,33 @@
1
+ # Design Read Example
2
+
3
+ Use this as a filled-in model for `SKILL.md` §2. Adapt the specifics to the brief; do not copy it as a default style.
4
+
5
+ ## 1. Filled-In Design Read
6
+
7
+ ```yaml
8
+ ---
9
+ name: ops-review-console
10
+ colors:
11
+ primary: "#1f4fd8"
12
+ accent: "#21a67a"
13
+ background: "#f7f8fb"
14
+ typography:
15
+ heading: { fontFamily: "Geist", fontSize: "32px" }
16
+ body: { fontFamily: "Inter", fontSize: "14px" }
17
+ ---
18
+ ```
19
+
20
+ Reading this as: a queue review tool for internal operations teams, with a precise, low-noise command-center language.
21
+
22
+ The reference is closer to Linear's density and keyboard-first posture than to a SaaS landing page. The first screen should expose live workload, blocked items, and one primary review action without marketing composition.
23
+
24
+ Do's: compact tables, strong status hierarchy, visible empty/error/loading states, one restrained accent for action and focus.
25
+
26
+ Don'ts: oversized hero type, decorative cards, purple gradients, fake activity, hover-only controls, or hiding critical status behind tabs.
27
+
28
+ ```
29
+ DESIGN_VARIANCE: 3
30
+ MOTION_INTENSITY: 2
31
+ Product density profile: D5
32
+ Reasoning: repeated operational review needs dense scanning, fast keyboard use, and minimal motion.
33
+ ```
@@ -0,0 +1,133 @@
1
+ ## 1. Design System Bootstrap
2
+
3
+ When starting a new project or establishing a design system, use this token architecture template.
4
+
5
+ ### Token Template
6
+ ```css
7
+ :root {
8
+ /* Spacing (4px base) */
9
+ --space-0: 0; --space-1: 4px; --space-2: 8px; --space-3: 12px;
10
+ --space-4: 16px; --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-16: 64px;
11
+
12
+ /* Radius */
13
+ --radius-none: 0; --radius-sm: 4px; --radius-md: 8px;
14
+ --radius-lg: 12px; --radius-xl: 16px; --radius-full: 9999px;
15
+
16
+ /* Elevation */
17
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
18
+ --shadow-md: 0 2px 4px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
19
+ --shadow-lg: 0 4px 12px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.04);
20
+
21
+ /* Timing — canonical values in Motion Tokens below */
22
+ --duration-fast: 150ms; --duration-normal: 250ms; --duration-slow: 400ms;
23
+ --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
24
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
25
+
26
+ /* Typography */
27
+ --font-sans: 'Geist', system-ui, -apple-system, sans-serif; /* Never default to Inter — see SKILL.md font rules */
28
+ --font-mono: 'Geist Mono', 'SF Mono', monospace;
29
+ --text-xs: 0.75rem; --text-sm: 0.875rem; --text-base: 1rem;
30
+ --text-lg: 1.125rem; --text-xl: 1.25rem; --text-2xl: 1.5rem; --text-3xl: 2rem;
31
+ }
32
+ ```
33
+
34
+ ### Component Hierarchy
35
+ - **Atoms:** Button, Input, Badge, Avatar, Icon, Toggle, Checkbox, Radio
36
+ - **Molecules:** Form Field (label + input + error), Card, Menu Item, Search Bar, Stat Card
37
+ - **Organisms:** Navigation Bar, Sidebar, Data Table, Form Section, Modal/Dialog, Command Palette
38
+
39
+ ### Motion Tokens
40
+
41
+ ```css
42
+ :root {
43
+ /* Easing */
44
+ --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
45
+ --ease-in: cubic-bezier(0.4, 0, 1, 1);
46
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
47
+ --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
48
+
49
+ /* Duration */
50
+ --duration-instant: 100ms;
51
+ --duration-fast: 150ms;
52
+ --duration-normal: 250ms;
53
+ --duration-slow: 400ms;
54
+ --duration-glacial: 600ms;
55
+
56
+ /* Composed */
57
+ --transition-default: var(--duration-normal) var(--ease-default);
58
+ --transition-enter: var(--duration-normal) var(--ease-out);
59
+ --transition-exit: var(--duration-fast) var(--ease-in);
60
+ }
61
+ ```
62
+
63
+ ### Z-Index Scale
64
+
65
+ ```css
66
+ :root {
67
+ --z-base: 0;
68
+ --z-dropdown: 100;
69
+ --z-sticky: 200;
70
+ --z-overlay: 300;
71
+ --z-modal: 400;
72
+ --z-popover: 500;
73
+ --z-toast: 600;
74
+ --z-tooltip: 700;
75
+ --z-max: 9999; /* debug overlays only */
76
+ }
77
+ ```
78
+
79
+ - Never use raw z-index numbers — always token reference
80
+ - `z-max` reserved for dev tools
81
+ - Modal backdrop = `--z-modal - 1` (399)
82
+
83
+ ### Breakpoint Tokens
84
+
85
+ ```css
86
+ /* Reference values — use in @media or container queries */
87
+ --bp-sm: 640px;
88
+ --bp-md: 768px;
89
+ --bp-lg: 1024px;
90
+ --bp-xl: 1280px;
91
+ --bp-2xl: 1536px;
92
+ ```
93
+
94
+ Note: CSS custom properties cannot be used in `@media` queries directly. These are reference values for documentation and JS usage. For CSS, use raw values with a comment referencing the token name.
95
+
96
+ ### Token Naming Convention
97
+
98
+ | Pattern | Example | Use |
99
+ |---------|---------|-----|
100
+ | Semantic | `--color-text-primary`, `--spacing-section` | Component usage |
101
+ | Scale | `--space-4`, `--radius-lg` | Design system primitives |
102
+ | Composed | `--transition-enter` = `duration + ease` | Shorthand combinations |
103
+
104
+ Semantic tokens reference scale tokens. Components use semantic tokens. Never reference scale tokens directly in components.
105
+
106
+ ### Extending Existing Systems (shadcn/ui)
107
+ - Inspect existing installed components before adding new ones.
108
+ - Use the project's `components.json`, aliases, tokens, and registry conventions.
109
+ - Do not hallucinate components — verify against local source.
110
+ - New components must use the same token variables as existing ones.
111
+
112
+ ### DESIGN.md Format
113
+
114
+ A project-root `DESIGN.md` persists design tokens and decisions across sessions. Structure:
115
+
116
+ ```markdown
117
+ # Design System — [Project Name]
118
+
119
+ ## Tokens
120
+ <!-- Paste the Token Template and Motion Tokens from above -->
121
+
122
+ ## Colors
123
+ <!-- Semantic color palette: --color-text-primary, --color-bg-surface, etc. -->
124
+
125
+ ## Components
126
+ <!-- Component inventory with variants and states -->
127
+
128
+ ## Rules
129
+ <!-- Project-specific constraints: font stacks, icon system, motion policy -->
130
+ ```
131
+
132
+ Keep `DESIGN.md` under 300 lines. Reference it from SKILL.md routing table, not inline.
133
+