medesign 0.0.0-stage → 1.2.0

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 (82) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +128 -2
  3. package/bin/medesign.js +200 -0
  4. package/integrations/claude-code/SKILL.md +20 -0
  5. package/integrations/cursor/medesign.mdc +26 -0
  6. package/medesign.config.js +46 -0
  7. package/package.json +62 -4
  8. package/presets/apple/design-tokens.css +115 -0
  9. package/presets/apple/guidelines.md +19 -0
  10. package/presets/apple/preset.json +53 -0
  11. package/presets/metha/design-tokens.css +127 -0
  12. package/presets/metha/guidelines.md +23 -0
  13. package/presets/metha/preset.json +53 -0
  14. package/presets/schema.json +102 -0
  15. package/presets/tesla/design-tokens.css +112 -0
  16. package/presets/tesla/guidelines.md +17 -0
  17. package/presets/tesla/preset.json +53 -0
  18. package/references/ai-tells.md +127 -0
  19. package/references/appendices.md +220 -0
  20. package/references/architecture.md +39 -0
  21. package/references/argon-design-archetypes.md +317 -0
  22. package/references/banner-sizes-and-styles.md +118 -0
  23. package/references/block-library.md +61 -0
  24. package/references/brand-design-tokens.md +42 -0
  25. package/references/catalog.json +108 -0
  26. package/references/cip-deliverable-guide.md +95 -0
  27. package/references/cip-design.md +121 -0
  28. package/references/cip-prompt-engineering.md +84 -0
  29. package/references/cip-style-guide.md +68 -0
  30. package/references/cli-architecture.md +146 -0
  31. package/references/components.md +240 -0
  32. package/references/dark-mode.md +23 -0
  33. package/references/design-core.md +42 -0
  34. package/references/design-md-protocol.md +75 -0
  35. package/references/design-routing.md +207 -0
  36. package/references/eng-imagery-content.md +71 -0
  37. package/references/eng-layout.md +28 -0
  38. package/references/eng-other.md +26 -0
  39. package/references/eng-states-theme.md +22 -0
  40. package/references/eng-type-color.md +44 -0
  41. package/references/icon-design.md +122 -0
  42. package/references/image-mockup-direction.md +53 -0
  43. package/references/image-to-code.md +46 -0
  44. package/references/impeccable-polish.md +85 -0
  45. package/references/intake.md +90 -0
  46. package/references/logo-color-psychology.md +101 -0
  47. package/references/logo-design.md +110 -0
  48. package/references/logo-prompt-engineering.md +158 -0
  49. package/references/logo-style-guide.md +109 -0
  50. package/references/mesurv-dna.md +104 -0
  51. package/references/micro-interactions-and-auto-animate.md +71 -0
  52. package/references/modern-craft-invariants.md +332 -0
  53. package/references/motion-tokens.md +99 -0
  54. package/references/preflight.md +110 -0
  55. package/references/proactive-motion.md +167 -0
  56. package/references/quality-gate.md +147 -0
  57. package/references/redesign-audit.md +38 -0
  58. package/references/redesign.md +52 -0
  59. package/references/slides-copywriting-formulas.md +84 -0
  60. package/references/slides-create.md +4 -0
  61. package/references/slides-html-template.md +295 -0
  62. package/references/slides-layout-patterns.md +137 -0
  63. package/references/slides-strategies.md +94 -0
  64. package/references/slides.md +42 -0
  65. package/references/social-photos-design.md +329 -0
  66. package/references/spatial-canvas-engine.md +160 -0
  67. package/references/stitch-system.md +184 -0
  68. package/references/style-extraction.md +17 -0
  69. package/references/styles/brutalist.md +88 -0
  70. package/references/styles/minimalist.md +81 -0
  71. package/references/styles/soft.md +94 -0
  72. package/references/threeui-spatial-engine.md +224 -0
  73. package/references/ui-styling-shadcn.md +336 -0
  74. package/references/ui-ux-vocabulary-vault.json +1223 -0
  75. package/references/ui-ux-vocabulary-vault.md +438 -0
  76. package/references/vocab-protocol.md +52 -0
  77. package/references/vocabulary.md +78 -0
  78. package/scripts/export-tokens.js +403 -0
  79. package/tests/browser-audit.js +442 -0
  80. package/tests/linter.js +412 -0
  81. package/tests/schemas/sarif-2.1.0.schema.json +2915 -0
  82. package/tests/visual-testbed.html +681 -0
@@ -0,0 +1,28 @@
1
+ ### 4.7 Layout Discipline (Hard Rules. Failing any of these is shipping broken work)
2
+
3
+ * **Hero MUST fit in the initial viewport.** Headline max 2 lines on desktop, subtext max **20 words** AND max 3-4 lines, CTAs visible without scroll. If the copy is too long: reduce font scale OR cut copy. If you cannot describe the value-prop in 20 words of subtext, the value-prop is unclear, not the rule too tight. Never let the hero overflow and force scroll to find the CTA.
4
+ * **Hero font-scale discipline.** Plan font size and image size *together*. If the hero asset is large and the headline is more than 6 words, do not start at `text-7xl/text-8xl`. Default sensible range: `text-4xl md:text-5xl lg:text-6xl` for most heroes; `text-6xl md:text-7xl` only when the headline is 3-5 words. A 4-line hero headline is always a font-size error, never a copy-length error.
5
+ * **HERO TOP PADDING CAP (mandatory):** Hero top padding max `pt-24` (≈6rem) at desktop. More than that means the hero content floats halfway down the viewport and reads as a layout bug, not as intentional space. If your hero needs more breathing room, increase font scale or asset size, not top padding.
6
+ * **HERO STACK DISCIPLINE (max 4 text elements).** The hero is a single moment, not a feature list. Allowed text elements, max 4 in total:
7
+ 1. Eyebrow (small uppercase label) OR brand strip OR neither - pick zero or one
8
+ 2. Headline (max 2 lines, see above)
9
+ 3. Subtext (max 20 words, max 4 lines)
10
+ 4. CTAs (1 primary + max 1 secondary)
11
+ - **BANNED in the hero:** tiny tagline below CTAs ("Works with GitHub, GitLab, and self-hosted Git"), trust micro-strip ("Used by engineering teams at..."), pricing teaser ("Free for solo, $10/user for teams"), feature bullet list, social-proof avatar row. All of those move to dedicated sections directly below the hero.
12
+ - If you have an eyebrow AND a tagline below CTAs in the same hero, drop the tagline. If you have a brand strip AND a tagline, drop the tagline. One small text element per hero, max.
13
+ * **"Used by" / "Trusted by" logo wall belongs UNDER the hero, never inside it.** The hero is for the value prop and primary CTA. The logo wall is a separate section directly below. Do not stuff trust logos into the same flex row as the hero copy.
14
+ * **Navigation MUST render on a single line on desktop.** If items don't fit at `lg` (1024px), condense labels, drop secondary items, or move to a hamburger. A two-line nav at desktop is broken design.
15
+ * **Navigation height cap: 80px max desktop, default 64-72px.** No huge "agency" nav bars that eat 15% of the viewport.
16
+ * **Bento grids MUST have rhythm, not one-sided repetition.** Do not stack 6 left-image / right-text rows. Vary the composition: alternate full-width feature rows, asymmetric tile sizes, vertical breaks.
17
+ * **BENTO CELL COUNT RULE (mandatory):** A bento grid has EXACTLY as many cells as you have content for. 3 items → 3 cells (1+2 split, or 2+1, or asymmetric trio). 5 items → 5 cells (2+3, 3+2, hero+4, etc.). If your grid has an empty cell in the middle or at the end, you planned wrong. Re-shape the grid; do not paste a blank tile.
18
+ * **Section-Layout-Repetition Ban.** Once you use a layout family for a section (e.g., 3-column-image-cards, full-width-quote, split-text-image), that family can appear at most ONCE on the page. "Selected commissions" must not look like "What we do." A landing page with 8 sections must use at least 4 different layout families.
19
+ * **ZIGZAG ALTERNATION CAP (mandatory).** Alternating "left-image + right-text" then "left-text + right-image" zigzag layout = banal. Max 2 sections in a row with this image+text-split pattern. The 3rd consecutive image+text split is a Pre-Flight Fail. Break the pattern with a full-width section, a vertical-stack section, a bento grid, a marquee, or a different layout family.
20
+ * **EYEBROW RESTRAINT (mandatory, the #1 violated rule in production tests).** An "eyebrow" is the small uppercase wide-tracking label sitting above a section headline (e.g. `FOUR COLORWAYS`, `SELECTED WORK`, `THE HARDWARE`, `Git-native task management`). Typical CSS signature: `text-[11px] uppercase tracking-[0.18em]`, `font-mono text-[10.5px] uppercase tracking-[0.22em]`. Every AI-built site puts an eyebrow above EVERY section header, producing the same templated rhythm. Hard rule:
21
+ - **Maximum 1 eyebrow per 3 sections.** Hero counts as 1. So a page with 9 sections may use at most 3 eyebrows total.
22
+ - If section A has an eyebrow, the next 2 sections cannot have one.
23
+ - **Pre-Flight Check is mechanical:** count instances of `uppercase tracking` (or similar small-caps mono labels above headlines) across all section components. If count > ceil(sectionCount / 3), the output fails.
24
+ - **What to do instead of an eyebrow:** drop it entirely. The headline alone is enough. If you need to categorize a section, the section's location on the page already categorizes it; no label needed.
25
+ * **SPLIT-HEADER BAN (mandatory).** The pattern "left big headline + right small explainer paragraph" as a section header (left col-span-7/8, right col-span-4/5 with a small body paragraph floating in the right column) is **banned as default**. Sections should have ONE focused message. If you genuinely need both a headline and an explainer paragraph, stack them vertically (headline on top, body below, max-width 65ch). Reach for the split-header pattern only when there is a real compositional reason (e.g., the right column carries a visual or interactive element, not just filler text).
26
+ * **Bento Background Diversity (mandatory).** Bento and feature-grid sections cannot be 6 white-on-white cards with text inside. At least 2-3 cells in any multi-cell grid need real visual variation: a real image, a brand-appropriate gradient (not AI-purple), a pattern, a tinted background. A cream-on-cream bento with only typography inside reads as boring AI default, even when the rest of the page is good.
27
+ * **Mobile collapse must be explicit per section.** For every multi-column layout, declare the `< 768px` fallback in the same component. No "it'll work, Tailwind handles it" assumptions.
28
+
@@ -0,0 +1,26 @@
1
+ ## 4. DESIGN ENGINEERING DIRECTIVES (Bias Correction)
2
+
3
+ LLMs default to clichés. Override these defaults proactively. Each rule has a context-aware override path.
4
+
5
+ ### 4.3 Layout Diversification
6
+ * **ANTI-CENTER BIAS:** Centered Hero / H1 sections are avoided when `DESIGN_VARIANCE > 4`. Force "Split Screen" (50/50), "Left-aligned content / right-aligned asset", "Asymmetric white-space", or scroll-pinned structures.
7
+ * **Override:** centered hero is OK for editorial / manifesto / launch-announcement briefs where the message itself is the design.
8
+
9
+ ### 4.4 Materiality, Shadows, Cards
10
+ * Use cards ONLY when elevation communicates real hierarchy. Otherwise group with `border-t`, `divide-y`, or negative space.
11
+ * When a shadow is used, tint it to the background hue. No pure-black drop shadows on light backgrounds.
12
+ * For `VISUAL_DENSITY > 7`: generic card containers are banned. Data metrics breathe in plain layout.
13
+ * **SHAPE CONSISTENCY LOCK (mandatory):** Pick ONE corner-radius scale for the page and stick to it. Options: all-sharp (radius 0), all-soft (radius 12-16px), all-pill (full radius for interactive). Mixed systems are allowed only when there is a documented rule (e.g. "buttons are full-pill, cards are 16px, inputs are 8px") and that rule is followed everywhere. Round buttons in a square layout, or square cards on a pill-button page, is broken design.
14
+
15
+ ### 4.6 Data & Form Patterns
16
+ * Label ABOVE input. Helper text optional but present in markup. Error text BELOW input. Standard `gap-2` for input blocks.
17
+ * No placeholder-as-label. Ever.
18
+
19
+ ### 4.10 Quotes & Testimonials
20
+
21
+ * **Max 3 lines** of quote body. Never 6. If the original quote is longer → cut it. A landing-page quote is a snippet, not the full review.
22
+ * For very small font sizes (e.g. footer-style testimonials), the line cap can stretch slightly. Spirit: "fits in a glance."
23
+ * **No em-dashes inside the quote text** as design flourish (long pauses, kinetic em-dashes, em-dash-bullets). See Section 9.G - em-dash is completely banned.
24
+ * Attribution: name + role + (optionally) company. Never name only ("- Sarah").
25
+ * Quote marks: use real typographic quotes ( " " ) or none at all. Not straight ASCII ( " ).
26
+
@@ -0,0 +1,22 @@
1
+ ### 4.5 Interactive UI States
2
+ LLMs default to "static successful state only." Always implement full cycles:
3
+ * **Loading:** Skeletal loaders matching the final layout's shape. Avoid generic circular spinners.
4
+ * **Empty States:** Beautifully composed; indicate how to populate.
5
+ * **Error States:** Clear, inline (forms), or contextual (toasts only for transient).
6
+ * **Tactile Feedback:** On `:active`, use `-translate-y-[1px]` or `scale-[0.98]` to simulate a physical push.
7
+ * **BUTTON CONTRAST CHECK (mandatory, a11y):** Before shipping any button, verify the button text is readable against the button background. White button + white text, `bg-white` CTA with `text-white` label, transparent button against the page background with no border → all banned. Audit every CTA: contrast ratio WCAG AA min (4.5:1 for body, 3:1 for large text 18px+). Same rule applies to ghost buttons over photographic backgrounds (use a backdrop, scrim, or stroke).
8
+ * **CTA BUTTON WRAP BAN (mandatory):** Button text MUST fit on one line at desktop. If a label like "VIEW SELECTED WORK" wraps to 2 or 3 lines, the button is broken. Fix by EITHER shortening the label (3 words max for primary CTAs, ideally 1-2) OR widening the button (do not artificially constrain `max-width` on CTAs). Wrapped CTAs at desktop are a Pre-Flight Fail.
9
+ * **NO DUPLICATE CTA INTENT (mandatory):** Two CTAs with the same intent on one page is a Pre-Flight Fail. Examples of same intent: "Get in touch" + "Contact us" + "Let's talk" + "Start a project" + "Start something" + "Reach out" = all "contact" intent → pick ONE label and use it everywhere on the page (nav, hero, footer). Same for "Try free" + "Get started" + "Sign up free" (all "signup" intent) and "View work" + "See selected work" + "Browse projects" (all "portfolio" intent). One label per intent.
10
+ * **FORM CONTRAST CHECK (mandatory, a11y):** Form inputs, placeholder text, focus rings, helper text, and error text all pass WCAG AA contrast against the section background. Light placeholders on a near-white form, white form on white page section, form labels grayer than 4.5:1 contrast → all banned. Audit every form before shipping.
11
+
12
+ ### 4.11 Page Theme Lock (Light / Dark Mode Consistency)
13
+
14
+ The page has ONE theme. Sections do not invert.
15
+
16
+ * If the page is dark mode, ALL sections are dark mode. No light-mode-warm-paper section sandwiched between dark sections (or vice versa). The user must not feel they walked into a different website mid-scroll.
17
+ * The exception: if the brief explicitly calls for a "Color Block Story" or "Theme Switch on Scroll" device AND that is a deliberate composition (one full theme switch with a strong transition, not random alternation), it is allowed once per page.
18
+ * Default behaviour: pick light, dark, or auto (`prefers-color-scheme`) at the page level and lock it. Section-level background tints within the same theme family are fine (`bg-zinc-950` next to `bg-zinc-900`); flipping to `bg-amber-50` in the middle of a `bg-zinc-950` page is broken.
19
+ * When using a design system with built-in theming (Radix Themes, shadcn/ui with `<Theme>`), set the theme ONCE in `layout.tsx` or the page root. Do not let individual sections override.
20
+
21
+ ---
22
+
@@ -0,0 +1,44 @@
1
+ ### 4.1 Typography
2
+ * **Display / Headlines:** Default `text-4xl md:text-6xl tracking-tighter leading-none`.
3
+ * **Body / Paragraphs:** Default `text-base text-gray-600 leading-relaxed max-w-[65ch]`.
4
+ * **Sans font choice:**
5
+ * **Discouraged as default:** `Inter`. Pick `Geist`, `Outfit`, `Cabinet Grotesk`, `Satoshi`, or a brand-appropriate serif first.
6
+ * **Override:** Inter is acceptable when the user explicitly asks for a neutral / standard / Linear-style feel, or when the brief is a public-sector / accessibility-first site.
7
+ * **Pairings to know:** `Geist` + `Geist Mono`, `Satoshi` + `JetBrains Mono`, `Cabinet Grotesk` + `Inter Tight`, `GT America` + `IBM Plex Mono`.
8
+
9
+ * **SERIF DISCIPLINE (VERY DISCOURAGED AS DEFAULT):**
10
+ * Serif is **very discouraged as the default font for any project.** "It feels creative / premium / editorial" is NOT a reason to reach for serif. The agent's default mental model that "creative brief = serif" is the single most-tested AI tell in production rounds.
11
+ * **Serif is only acceptable when ONE of these is explicitly true:**
12
+ - The brand brief literally names a serif font, OR
13
+ - The aesthetic family is genuinely editorial / luxury / publication / manuscript / heritage / vintage AND you can articulate why this specific serif fits this specific brand
14
+ * For everything else (creative agency, design studio, modern brand, premium consumer, portfolio, lifestyle), **default sans-serif display** (Geist Display, ABC Diatype, Söhne Breit, Cabinet Grotesk Display, Migra Sans, GT Walsheim, Inter Display, PP Neue Montreal). Sans display fonts are not "boring" — they are the default for the same reason black is the default in fashion.
15
+ * **EMPHASIS RULE (related):** When you want to emphasize a word within a headline (the kinetic "and `spatial` design" type move), use **italic or bold of the SAME font**. Do NOT inject a random serif word into a sans headline (or vice versa) just to add visual interest. Mixed-family emphasis is amateur. Italic/bold emphasis in the same family is the right move.
16
+ * **Specifically BANNED as defaults:** `Fraunces` and `Instrument_Serif` (the two LLM-favorite display serifs).
17
+ * **If a serif is justified** (rare, per the above), rotate from this pool, do NOT reuse the same serif across consecutive projects: PP Editorial New, GT Sectra Display, Cardinal Grotesque, Reckless Neue, Tiempos Headline, Recoleta, Cormorant Garamond, Playfair Display, EB Garamond, IvyPresto, Migra, Editorial Old, Saol Display, Söhne Breit Kursiv, Domaine Display, Canela, Schnyder, Tobias, NB Architekt, ITC Galliard.
18
+
19
+ * **ITALIC DESCENDER CLEARANCE (mandatory):** When italic is used in display type and the word contains a descender letter (`y g j p q`), `leading-[1]` or `leading-none` will clip the descender. Use `leading-[1.1]` minimum and add `pb-1` or `mb-1` reserve on the wrapping element. Audit every italic word in display headlines before shipping.
20
+
21
+ ### 4.2 Color Calibration
22
+ * Max 1 accent color. Saturation < 80% by default.
23
+ * **THE LILA RULE:** The "AI Purple / Blue glow" aesthetic is discouraged as a default. No automatic purple button glows, no random neon gradients. Use neutral bases (Zinc / Slate / Stone) with high-contrast singular accents (Emerald, Electric Blue, Deep Rose, Burnt Orange, etc.).
24
+ * **Override:** if the brand or brief explicitly asks for purple / violet / lila, embrace it. But execute with intent: consistent palette, harmonised neutrals, restrained gradients. Not generic AI gradient slop.
25
+ * **One palette per project.** Do not fluctuate between warm and cool grays within the same project.
26
+ * **COLOR CONSISTENCY LOCK (mandatory):** Once an accent color is chosen for a page, it is used on the WHOLE page. A warm-grey site does not suddenly get a blue CTA in section 7. A rose-accented site does not get a teal status badge in the footer. Pick one accent, lock it, audit every component before shipping.
27
+
28
+ * **PREMIUM-CONSUMER PALETTE BAN (mandatory, second-most-recurring AI-tell):**
29
+ * For premium-consumer briefs (cookware, wellness, artisan, luxury, heritage craft, DTC home goods, etc.) the LLM default is **warm beige/cream + brass/clay/oxblood/ochre + espresso/ink dark text**. Concretely banned hex families as default backgrounds and accents:
30
+ - Backgrounds: `#f5f1ea`, `#f7f5f1`, `#fbf8f1`, `#efeae0`, `#ece6db`, `#faf7f1`, `#e8dfcb` (all "warm paper / cream / chalk / bone")
31
+ - Accents: `#b08947`, `#b6553a`, `#9a2436`, `#9c6e2a`, `#bc7c3a`, `#7d5621` (all "brass / clay / oxblood / ochre")
32
+ - Text: `#1a1714`, `#1a1814`, `#1b1814` (all "espresso / warm near-black")
33
+ * This palette is BANNED as the default reach for premium-consumer briefs. Every premium-consumer site you have ever shipped uses this exact palette. The brand becomes invisible.
34
+ * **Default alternatives (rotate, do not reuse):**
35
+ - **Cold Luxury:** silver-grey + chrome + smoke (think Tesla, Apple Watch Hermes-without-the-leather)
36
+ - **Forest:** deep green + bone + amber accent (think Filson, Patagonia premium)
37
+ - **Black and Tan:** true off-black + warm tan, sharp contrast, no beige
38
+ - **Cobalt + Cream:** saturated blue against a single neutral, no brass
39
+ - **Terracotta + Slate:** warm rust against cool grey, no brass
40
+ - **Olive + Brick + Paper:** muted olive plus brick-red accent
41
+ - **Pure monochrome + single saturated pop:** off-white + off-black + one bright accent (electric blue, emerald, hot pink, etc.)
42
+ * **Palette-rotation rule:** if the previous premium-consumer project you generated used the beige+brass family, this one MUST use a different family. Do not ship the same warm-craft palette twice in a row.
43
+ * **Override:** the beige+brass+espresso palette is acceptable ONLY when the brand brief explicitly names those colors, or when the brand identity is genuinely vintage / artisan / warm-craft AND you can articulate why this specific palette fits this specific brand. Default-reaching for it because "this is a cookware brief" is banned.
44
+
@@ -0,0 +1,122 @@
1
+ # Icon Design Reference
2
+
3
+ AI-powered SVG icon generation using Gemini 3.1 Pro Preview. 15 styles, 12 categories, multi-size export.
4
+
5
+ ## Scripts
6
+
7
+ | Script | Purpose |
8
+ |--------|---------|
9
+ | `scripts/icon/generate.py` | Generate SVG icons with Gemini 3.1 Pro Preview |
10
+
11
+ ## Commands
12
+
13
+ ### Generate Single Icon
14
+
15
+ ```bash
16
+ python3 scripts/icon/generate.py --prompt "settings gear" --style outlined
17
+ python3 scripts/icon/generate.py --prompt "shopping cart" --style filled --color "#6366F1"
18
+ python3 scripts/icon/generate.py --name "dashboard" --category navigation --style duotone
19
+ ```
20
+
21
+ ### Generate Batch Variations
22
+
23
+ ```bash
24
+ python3 scripts/icon/generate.py --prompt "cloud upload" --batch 4 --output-dir ./icons
25
+ python3 scripts/icon/generate.py --prompt "notification bell" --batch 6 --style outlined --output-dir ./icons
26
+ ```
27
+
28
+ ### Generate Multiple Sizes
29
+
30
+ ```bash
31
+ python3 scripts/icon/generate.py --prompt "user profile" --sizes "16,24,32,48" --output-dir ./icons
32
+ ```
33
+
34
+ ### List Styles/Categories
35
+
36
+ ```bash
37
+ python3 scripts/icon/generate.py --list-styles
38
+ python3 scripts/icon/generate.py --list-categories
39
+ ```
40
+
41
+ ## CLI Options
42
+
43
+ | Option | Description | Default |
44
+ |--------|-------------|---------|
45
+ | `--prompt, -p` | Icon description | required |
46
+ | `--name, -n` | Icon name (for filename) | - |
47
+ | `--style, -s` | Icon style (15 options) | - |
48
+ | `--category, -c` | Icon category for context | - |
49
+ | `--color` | Primary hex color | currentColor |
50
+ | `--size` | Display size in px | 24 |
51
+ | `--viewbox` | SVG viewBox size | 24 |
52
+ | `--output, -o` | Output file path | auto |
53
+ | `--output-dir` | Output directory (batch) | ./icons |
54
+ | `--batch` | Number of variations | - |
55
+ | `--sizes` | Comma-separated sizes | - |
56
+
57
+ ## Available Styles
58
+
59
+ | Style | Stroke | Fill | Best For |
60
+ |-------|--------|------|----------|
61
+ | outlined | 2px | none | UI interfaces, web apps |
62
+ | filled | 0 | solid | Mobile apps, nav bars |
63
+ | duotone | 0 | dual | Marketing, landing pages |
64
+ | thin | 1-1.5px | none | Luxury brands, editorial |
65
+ | bold | 3px | none | Headers, hero sections |
66
+ | rounded | 2px | none | Friendly apps, health |
67
+ | sharp | 2px | none | Tech, fintech, enterprise |
68
+ | flat | 0 | solid | Material design, Google-style |
69
+ | gradient | 0 | gradient | Modern brands, SaaS |
70
+ | glassmorphism | 1px | semi | Modern UI, overlays |
71
+ | pixel | 0 | solid | Gaming, retro |
72
+ | hand-drawn | varies | none | Artisan, creative |
73
+ | isometric | 1-2px | partial | Tech docs, infographics |
74
+ | glyph | 0 | solid | System UI, compact |
75
+ | animated-ready | 2px | varies | Interactive UI, onboarding |
76
+
77
+ ## Icon Categories
78
+
79
+ | Category | Icons |
80
+ |----------|-------|
81
+ | navigation | arrows, menus, home, chevrons |
82
+ | action | edit, delete, save, download, upload |
83
+ | communication | email, chat, phone, notification |
84
+ | media | play, pause, volume, camera |
85
+ | file | document, folder, archive, cloud |
86
+ | user | person, group, profile, settings |
87
+ | commerce | cart, bag, wallet, credit card |
88
+ | data | chart, graph, analytics, dashboard |
89
+ | development | code, terminal, bug, git, API |
90
+ | social | heart, star, bookmark, trophy |
91
+ | weather | sun, moon, cloud, rain |
92
+ | map | pin, location, compass, globe |
93
+
94
+ ## SVG Best Practices
95
+
96
+ - **ViewBox**: Use `0 0 24 24` (standard) or `0 0 16 16` (compact)
97
+ - **Colors**: Use `currentColor` for CSS inheritance, avoid hardcoded colors
98
+ - **Accessibility**: Always include `<title>` element
99
+ - **Optimization**: Minimal path nodes, no embedded fonts or raster images
100
+ - **Sizing**: Design at 24px, test at 16px and 48px for clarity
101
+ - **Stroke**: Use `stroke-linecap="round"` and `stroke-linejoin="round"` for outlined styles
102
+
103
+ ## Model
104
+
105
+ - **gemini-3.1-pro-preview**: Best thinking, token efficiency, factual consistency
106
+ - Text-only output (SVG is XML text) — no image generation API needed
107
+ - Supports structured output for consistent SVG formatting
108
+
109
+ ## Workflow
110
+
111
+ 1. Describe icon → `--prompt "settings gear"`
112
+ 2. Choose style → `--style outlined`
113
+ 3. Generate → script outputs .svg file
114
+ 4. Optionally batch → `--batch 4` for variations
115
+ 5. Multi-size export → `--sizes "16,24,32,48"`
116
+
117
+ ## Setup
118
+
119
+ ```bash
120
+ export GEMINI_API_KEY="your-key"
121
+ pip install google-genai
122
+ ```
@@ -0,0 +1,53 @@
1
+ # Premium Web & Mobile UI Image Art Direction
2
+
3
+ มาตรฐานการออกแบบคำสั่งสร้างภาพต้นแบบ (UI Mockup Direction) สำหรับหน้าเว็บและแอปมือถือ เพื่อสร้างภาพอ้างอิงระดับเวิลด์คลาสก่อนลงมือเขียนโค้ดจริง
4
+
5
+ ---
6
+
7
+ ## 1. กฎเหล็กการสร้างภาพ (Hard Output Rules)
8
+
9
+ 1. **One Separate Image Per Section (หน้าเว็บ):**
10
+ - สร้างภาพแนวนอน (Aspect Ratio `16:9` หรือ `3:2`) แยก 1 ภาพต่อ 1 Section เสมอ
11
+ - ห้ามรวบทั้งหน้าเว็บ Landing Page ลงในภาพแนวยาวเพียงภาพเดียวเด็ดขาด เพราะจะทำให้ฟอนต์เล็ก ละเอียด และไม่สามารถแกะโค้ดต่อได้
12
+ 2. **One Focused Screen / Flow Per Generation (แอปมือถือ):**
13
+ - สร้างภาพแนวตั้ง (Aspect Ratio `9:16` หรือ `3:4`) เน้นหน้าจอเดี่ยวที่คมชัด หรือ Side-by-side Flow ไม่เกิน 2-3 จอ
14
+ - จำลอง Safe Area ของ iOS/Android (Status Bar, Home Indicator, Dynamic Island) ให้สมจริง
15
+
16
+ ---
17
+
18
+ ## 2. ทลายความจำเจของ Hero Section (Break Hero Clichés)
19
+
20
+ หลีกเลี่ยงการใช้เลย์เอาต์ซ้ำซาก **"ข้อความซ้าย / ภาพขวา"** เป็นค่าเริ่มต้น ให้เลือกใช้ทางเลือกต่อไปนี้:
21
+ - **Centered over Ambient Depth:** ข้อความกึ่งกลางบนพื้นหลังกราฟิก 3D หรือภาพ Abstract Depth
22
+ - **Bottom-Left Over Canvas:** ข้อความวางชิดซ้ายล่าง พาดทับฉากหลังขนาดใหญ่แบบภาพยนตร์
23
+ - **Editorial Asymmetry:** ข้อความตัวใหญ่แบบนิตยสาร พร้อมคอลัมน์รูปภาพขนาดเล็กตัดกัน
24
+ - **Stacked Split Canvas:** สื่อ/เดโมอยู่กึ่งกลางเต็มจอ พร้อม Floating Badge แสดงฟังก์ชันหลัก
25
+
26
+ ---
27
+
28
+ ## 3. มาตรฐานการกำหนดคำสั่ง (Prompt Blueprint)
29
+
30
+ ### ก. โครงสร้างพรอมต์หน้าเว็บ (Web Section Prompt):
31
+ ```text
32
+ UI concept comp for a [industry/purpose] website, [specific section name] section.
33
+ Layout: [e.g. Asymmetric bento grid / Full-width hero with bottom typography].
34
+ Style & Aesthetics: Premium dark-mode void background (#09090b), crisp 1px borders with subtle glow, refined typography with Serif display headline and sans-serif body, restrained indigo accent (#6366f1).
35
+ Visual Content: High-fidelity dashboard widgets, clean interactive toggles, real data visualizations, generous whitespace, sharp contrast, zero blur on text elements.
36
+ Presentation: Direct screen capture, clean 16:9 desktop viewport, professional Dribbble/Awwwards award-winning aesthetic, flat straight-on view, no device mockup frame.
37
+ ```
38
+
39
+ ### ข. โครงสร้างพรอมต์แอปมือถือ (Mobile App Screen Prompt):
40
+ ```text
41
+ Mobile app UI design for iOS [purpose/domain, e.g. Fintech wealth tracker], single screen [e.g. Home Dashboard].
42
+ Aesthetics: Warm dark surface (#111115), frosted glass navigation bar, refined tabular figures with Geist Mono font, subtle accent voltage (#f59e0b).
43
+ Components: Top status bar with Dynamic Island, total balance hero card, segmented asset allocation chart, quick action pill buttons, recent transactions feed.
44
+ Presentation: Ultra-clean 9:16 mobile screen view, pixel-perfect native iOS guidelines, crisp typography hierarchy, believable metric values, no external phone frame.
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 4. สิ่งที่ต้องกำจัดในภาพต้นแบบ (Anti-Generic Tells)
50
+ - ห้ามใช้คำศัพท์ Interface ปลอมหรือข้อความ Lorem Ipsum ที่มั่วซั่ว
51
+ - ห้ามใส่แสงนีออนฟุ้งกระจายจนอ่านข้อความไม่ออก
52
+ - ห้ามสร้างการ์ดซ้อนการ์ดเกิน 3 ชั้น
53
+ - รักษาคู่สีให้คุมโทน สอดคล้องกับ [user-profile.json](file:///D:/WSL/.gemini/config/skills/medesign/user-profile.json) ของผู้ใช้
@@ -0,0 +1,46 @@
1
+ # Image-to-Code Implementation Pipeline
2
+
3
+ กระบวนการแปลงภาพต้นแบบหรือ Mockup ให้กลายเป็นโค้ดส่วนติดต่อผู้ใช้ (Frontend Code) คุณภาพสูง มีความเที่ยงตรง (High Fidelity) และสอดคล้องกับมาตรฐานทางวิศวกรรม
4
+
5
+ ---
6
+
7
+ ## 1. วงจรการแปลง 4 ขั้นตอน (4-Stage Conversion Flow)
8
+
9
+ ```mermaid
10
+ flowchart LR
11
+ A["1. Visual Analysis (ผ่าสรีระภาพ)"] --> B["2. Token Extraction (สกัดสี/ฟอนต์)"]
12
+ B --> C["3. Component Tree (แบ่งกล่อง)"]
13
+ C --> D["4. Production Code (เขียนโค้ด)"]
14
+ ```
15
+
16
+ ---
17
+
18
+ ## 2. รายละเอียดขั้นตอนการปฏิบัติงาน
19
+
20
+ ### ขั้นที่ 1: การวิเคราะห์ภาพเชิงลึก (Deep Visual Decomposition)
21
+ - **Spatial Grid:** ระบุจำนวนคอลัมน์, Max Width, และระยะห่าง (Gap, Margin, Padding)
22
+ - **Visual Hierarchy:** แยกแยะลำดับสายตา (Display Title $\rightarrow$ Subtitle $\rightarrow$ Primary CTA $\rightarrow$ Secondary Metadata)
23
+ - **Surface & Elevation:** ตรวจสอบความทึบของพื้นผิว (Solid, Frosted Glass `backdrop-blur`, Border Radius, Drop Shadows)
24
+
25
+ ### ขั้นที่ 2: การสกัด Token และประสานกับ User DNA
26
+ - แมปคู่สีที่พบในภาพเข้ากับ Palette ใน `user-profile.json` หรือ [design-core.md](file:///D:/WSL/.gemini/config/skills/medesign/references/design-core.md)
27
+ - แปลงค่าสีให้เป็นตัวแปร Tailwind หรือ CSS Variables (เช่น `bg-background`, `border-border`, `text-foreground`)
28
+ - เลือกใช้คู่ฟอนต์ตามระบบ: Heading (Serif หรือ Display มีสไตล์) + Body (Clean Sans) + Monospace สำหรับตัวเลข
29
+
30
+ ### ขั้นที่ 3: การแตกชิ้นส่วน Component (Modular Tree)
31
+ - แบ่งโค้ดออกเป็นชิ้นส่วนย่อย (เช่น `Navbar`, `HeroSection`, `BentoGrid`, `MetricCard`, `Footer`)
32
+ - กำหนด Property และ State ที่จำเป็น (เช่น Hover effects, Active states, Responsive breakpoints)
33
+
34
+ ### ขั้นที่ 4: การลงมือเขียนโค้ดจริง (High-Fidelity Implementation)
35
+ - **HTML Semantics:** ใช้แท็กที่มีความหมาย (`<header>`, `<main>`, `<section>`, `<article>`, `<nav>`)
36
+ - **Responsive Layout:** พัฒนาแบบ Mobile-First พร้อมขยายเป็น Grid/Flex บน `md:` และ `lg:`
37
+ - **Micro-Interactions:** เติมลูกเล่นเบาๆ เช่น `transition-all duration-150`, `hover:border-white/20`, `active:scale-[0.98]`
38
+ - **Data Hardening:** ใช้ข้อมูลจำลองที่สมจริง (Realistic Mock Data) ห้ามใช้ข้อความขยะ
39
+
40
+ ---
41
+
42
+ ## 3. เกณฑ์การตรวจรับงานแปลงโค้ด (Fidelity Verification)
43
+ - [ ] สัดส่วนระยะห่าง (Whitespace) ตรงตามภาพต้นแบบ ไม่เบียดหรือแน่นเกินไป
44
+ - [ ] ค่าสีและ Contrast ผ่านเกณฑ์ WCAG AA สำหรับการอ่าน
45
+ - [ ] ปุ่ม Action ทุกปุ่มมี Hover / Active feedback
46
+ - [ ] โค้ดคอมไพล์ผ่าน 0 errors และไม่มี Dependency นอกเหนือจากที่โปรเจกต์รองรับ
@@ -0,0 +1,85 @@
1
+ # Impeccable UI/UX Polish Heuristics & Craft Floor
2
+
3
+ This reference provides actionable design heuristics and craftsmanship standards for elevating UI/UX from acceptable to exceptional. Use this guide during the refinement pass of any frontend interface.
4
+
5
+ ---
6
+
7
+ ## 1. Core Principles
8
+
9
+ - **Commitment Over Hedging:** No timid designs or half-measures. Deliver complete, production-grade interfaces with intentional aesthetic direction.
10
+ - **Bounded Verification Passes:** Do not get trapped in open-ended polish loops. Inspect desktop and mobile layouts in a batched round, triage defects systematically, fix in one focused pass, confirm, and ship.
11
+ - **Refinement vs. Redesign:**
12
+ - *Refinement (Polish):* Preserves incumbent identity, data structures, and scope while tightening spacing, optical alignment, typography, and micro-interactions.
13
+ - *Redesign:* Replaces visual language and layout when the foundation itself fails user or business goals.
14
+
15
+ ---
16
+
17
+ ## 2. Surface Modes & Intent
18
+
19
+ Design for the visitor's primary mode of engagement:
20
+
21
+ - **Persuade (Landing pages, marketing, product showcases):**
22
+ - Goal: Visitor decides and takes decisive action.
23
+ - Direction: Bold typography, clear hierarchy, high-contrast CTAs, authentic imagery, immersive narrative flow.
24
+ - **Operate (Web apps, dashboards, tools, settings, data grids):**
25
+ - Goal: Visitor completes tasks with speed, precision, and zero friction.
26
+ - Direction: High scanability, compact predictable spacing, dense tabular layouts, obvious system feedback, keyboard navigation.
27
+ - **Read (Documentation, articles, guides, knowledge bases):**
28
+ - Goal: Visitor absorbs complex information without eye fatigue.
29
+ - Direction: Measure bounded to 65–75 characters per line, generous line-height (1.6–1.75), clean typographic scales, clear content outlines.
30
+ - **Experience (Portfolios, creative experiments, interactive showcases):**
31
+ - Goal: Visitor is immersed in the aesthetic world.
32
+ - Direction: Interface recedes; artifacts and content lead from the initial viewport.
33
+
34
+ ---
35
+
36
+ ## 3. The Craft Floor (Non-Negotiable Verification Checklist)
37
+
38
+ Every production interface must satisfy these verification checks:
39
+
40
+ ### Visual Mechanics & Accessibility
41
+ - **Contrast Ratios:** Body and placeholder text $\ge$ 4.5:1; large text $\ge$ 3:1. Secondary text must tint from the background hue or foreground—never raw uncalibrated gray.
42
+ - **Depth & Shadows:** Soft, multi-layered ambient shadows with intentional vertical offsets (`box-shadow: 0 4px 20px -2px rgba(0,0,0,0.08)`). Avoid zero-offset colored halos or arbitrary harsh outlines unless Neobrutalism is explicitly chosen.
43
+ - **Spacing & Vertical Rhythm:** Follow an explicit 4px/8px scale. Group related items tightly; separate distinct sections generously. Ensure space above headings is visibly greater than space below them.
44
+ - **Typography:**
45
+ - Body measure: 65–75 characters per line.
46
+ - Tracking floor: `-0.02em` to `-0.04em` on large display headings; neutral or slightly tracked on micro-labels.
47
+ - Hierarchy: Obvious font-weight and scale jumps (e.g., 14px -> 16px -> 24px -> 36px).
48
+ - **Interactive & Edge States:**
49
+ - Every interactive component must handle: Default, Hover, Active, Focus-Visible, Disabled, Loading, Empty, and Error states.
50
+ - **Browser Surfaces (The Details Most Engines Miss):**
51
+ - Style text selection (`::selection`).
52
+ - Style input carets (`caret-color`).
53
+ - Style custom slim scrollbars matching theme background.
54
+ - Provide distinct accessible focus rings (`focus-visible: outline-offset-2`).
55
+ - Use tabular numbers (`font-variant-numeric: tabular-nums`) for currency, timestamps, and metric tables.
56
+ - **Meaningful Motion:**
57
+ - Max 150–250ms for micro-interactions; 300–400ms for large layout shifts.
58
+ - Use ease-out curves (`cubic-bezier(0.16, 1, 0.3, 1)`) for entrances.
59
+ - Never animate every element independently; orchestrate choreographies or keep transitions subtle.
60
+
61
+ ---
62
+
63
+ ## 4. Anti-Patterns to Refuse
64
+
65
+ Avoid generic, lazy design habits:
66
+
67
+ 1. **Card Overload:** Do not build pages out of identical cards (icon + heading + paragraph). Use semantic containers, split layouts, and varied content density. Never nest cards inside cards.
68
+ 2. **The Hero-Metric Cliché:** Avoid the formulaic "giant number + tiny label + badge" unless it is an actual financial or analytics metric dashboard.
69
+ 3. **Gratuitous Gradients:** Avoid gradient fills on body text or illegible gradient borders. Let typography and layout provide emphasis.
70
+ 4. **Faux Glassmorphism:** Avoid blurry frosted overlays that compromise contrast and legibility.
71
+ 5. **Unicode Icons:** Never use emoji or raw unicode glyphs as user-interface icons. Always use coherent SVG icon systems (e.g., Lucide, Heroicons, Radix Icons).
72
+ 6. **Ambiguous Actions:** Buttons and controls must name their exact action ("Export GeoJSON" instead of "Submit" or "Click Here").
73
+
74
+ ---
75
+
76
+ ## 5. Polish Execution Workflow
77
+
78
+ When tasked with polishing an existing surface:
79
+
80
+ 1. **Audit Incident Code:** Read the existing markup, design tokens, and components without rewriting architecture unnecessarily.
81
+ 2. **Prioritize Fixes:**
82
+ 1. *Blockers:* Broken inputs, missing interactive states, overlapping text on mobile.
83
+ 2. *Hierarchy:* Confusing visual order, low contrast, irregular padding.
84
+ 3. *Micro-Polish:* Optical alignments, consistent icon strokes, hover transitions, focus outlines.
85
+ 3. **Verify Responsive Adaptability:** Test breakpoints (375px mobile, 768px tablet, 1280px+ desktop).
@@ -0,0 +1,90 @@
1
+ ## 0. BRIEF INFERENCE (Read the Room Before Anything Else)
2
+
3
+ Before touching code or tweaking dials, **infer what the user actually wants**. Most LLM design output is bad because the model jumps to a default aesthetic instead of reading the room.
4
+
5
+ ### 0.A Read these signals first
6
+ 1. **Page kind** - landing (SaaS / consumer / agency / event), portfolio (dev / designer / creative studio), redesign (preserve vs overhaul), editorial / blog.
7
+ 2. **Vibe words** the user used - "minimalist", "calm", "Linear-style", "Awwwards", "brutalist", "premium consumer", "Apple-y", "playful", "serious B2B", "editorial", "agency-y", "glassy", "dark tech".
8
+ 3. **Reference signals** - URLs they linked, screenshots they pasted, products they named, brands they're competing with.
9
+ 4. **Audience** - B2B procurement panel vs. design-conscious consumer vs. recruiter scanning a portfolio. The audience picks the aesthetic, not your taste.
10
+ 5. **Brand assets that already exist** - logo, color, type, photography. For redesigns, these are starting material, not optional input (see Section 11).
11
+ 6. **Quiet constraints** - accessibility-first audiences, public-sector, regulated industries, trust-first commerce, kids' products. These constraints OVERRIDE aesthetic preference.
12
+
13
+ ### 0.B Output a one-line "Design Read" before generating
14
+ Before any code, state in one line: **"Reading this as: \<page kind> for \<audience>, with a \<vibe> language, leaning toward \<design system or aesthetic family>."**
15
+
16
+ Example reads:
17
+ - *"Reading this as: B2B SaaS landing for technical buyers, with a Linear-style minimalist language, leaning toward Tailwind utilities + Geist + restrained motion."*
18
+ - *"Reading this as: solo designer portfolio for hiring managers, with an editorial / kinetic-type language, leaning toward native CSS + scroll-driven animation + custom typography."*
19
+ - *"Reading this as: redesign of a public-sector service site, with a trust-first language, leaning toward GOV.UK Frontend or USWDS."*
20
+
21
+ ### 0.C If the brief is ambiguous, ask one question, do not guess
22
+ Ask exactly **one** clarifying question - never a multi-question dump - and only when the design read genuinely diverges. Example: *"Should this feel closer to Linear-clean or Awwwards-experimental?"*
23
+
24
+ If you can confidently infer from context, **do not ask**. Just declare the design read and proceed.
25
+
26
+ ### 0.D Anti-Default Discipline
27
+ Do not default to: AI-purple gradients, centered hero over dark mesh, three equal feature cards, generic glassmorphism on everything, infinite-loop micro-animations everywhere, Inter + slate-900. These are the LLM defaults. Reach past them deliberately based on the design read.
28
+
29
+ ---
30
+
31
+ ## 2. BRIEF → DESIGN SYSTEM MAP
32
+
33
+ Once you have the design read (Section 0) and dials (Section 1), pick the right foundation. Do not invent CSS for things that have an official package. Do not pretend an aesthetic trend is an official system.
34
+
35
+ ### 2.A When to reach for a real design system (use official packages)
36
+ | Brief reads as… | Reach for | Why |
37
+ |---|---|---|
38
+ | Microsoft / enterprise SaaS / dashboards | `@fluentui/react-components` or `@fluentui/web-components` | Official Fluent UI, Microsoft tokens, accessibility done |
39
+ | Google-ish UI, Material-flavored product | `@material/web` + Material 3 tokens | Official, theme-able via Material Theming |
40
+ | IBM-style B2B / enterprise analytics | `@carbon/react` + `@carbon/styles` | Official Carbon, mature data-density patterns |
41
+ | Shopify app surfaces | `polaris.js` web components / Polaris React | Required for Shopify admin UI |
42
+ | Atlassian / Jira-style product | `@atlaskit/*` + `@atlaskit/tokens` | Official Atlassian DS |
43
+ | GitHub-style devtool / community page | `@primer/css` or `@primer/react-brand` | Official Primer; Brand variant for marketing |
44
+ | Public-sector UK service | `govuk-frontend` | Legally / regulatorily expected |
45
+ | US public-sector / trust-first | `uswds` | Same |
46
+ | Fast local-business / agency MVP | Bootstrap 5.3 | Boring, fast, works |
47
+ | Modern accessible React foundation | `@radix-ui/themes` | Primitives + polished theme |
48
+ | Modern SaaS where you own the components | shadcn/ui (`npx shadcn@latest add ...`) | You own the code, easy to customise; never ship default state |
49
+ | Tailwind-based modern SaaS / AI marketing | Tailwind v4 utilities + `dark:` variant | Default for indie + small team builds |
50
+
51
+ **Honesty rule:** if the brief reads as one of the systems above, install and use the **official** package. Do not recreate its CSS by hand. Do not import a system's tokens but then override 90% of them.
52
+
53
+ **One system per project.** Do not mix Fluent React with Carbon in the same tree. Do not import shadcn/ui components into a Material 3 app.
54
+
55
+ ### 2.B When the brief is an aesthetic, not a system
56
+ For these directions, there is **no single official package**. Build with native CSS + Tailwind + a maintained component library. Be honest in code comments about what is borrowed inspiration vs. official material.
57
+
58
+ | Aesthetic | Honest implementation |
59
+ |---|---|
60
+ | Glassmorphism / "frosted glass" | `backdrop-filter`, layered borders, highlight overlays. Provide solid-fill fallback for `prefers-reduced-transparency`. |
61
+ | Bento (Apple-style tile grids) | CSS Grid with mixed cell sizes. No single library owns this. |
62
+ | Brutalism | Native CSS, monospace, raw borders. No library. |
63
+ | Editorial / magazine | Serif type, asymmetric grid, generous whitespace. No library. |
64
+ | Dark tech / hacker | Mono + accent neon, terminal motifs. No library. |
65
+ | Aurora / mesh gradients | SVG or layered radial gradients. No library. |
66
+ | Kinetic typography | Native CSS animations, scroll-driven animations, GSAP for hijacks. No library. |
67
+ | **Apple Liquid Glass** | Apple documents this for Apple platforms only. **There is no official `liquid-glass.css`.** Web implementations are approximations using `backdrop-filter` + layered borders + highlights. Label clearly as approximation. |
68
+
69
+ ---
70
+
71
+ ## 7. DIAL DEFINITIONS (Technical Reference)
72
+
73
+ ### DESIGN_VARIANCE (Level 1-10)
74
+ * **1-3 (Predictable):** Symmetrical CSS Grid (12-col, equal fr-units), equal paddings, centered alignment.
75
+ * **4-7 (Offset):** `margin-top: -2rem` overlaps, varied image aspect ratios (4:3 next to 16:9), left-aligned headers over center-aligned data.
76
+ * **8-10 (Asymmetric):** Masonry layouts, CSS Grid with fractional units (`grid-template-columns: 2fr 1fr 1fr`), massive empty zones (`padding-left: 20vw`).
77
+ * **MOBILE OVERRIDE:** For levels 4-10, asymmetric layouts above `md:` MUST collapse to strict single-column (`w-full`, `px-4`, `py-8`) on viewports `< 768px`.
78
+
79
+ ### MOTION_INTENSITY (Level 1-10)
80
+ * **1-3 (Static):** No automatic animations. CSS `:hover` and `:active` states only. `prefers-reduced-motion` is the default mode anyway.
81
+ * **4-7 (Fluid CSS):** `transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1)`. `animation-delay` cascades for load-ins. Focus on `transform` and `opacity`.
82
+ * **8-10 (Advanced Choreography):** Complex scroll-triggered reveals, parallax, scroll-driven animation (CSS `animation-timeline` or GSAP ScrollTrigger). Use Motion hooks. **NEVER use `window.addEventListener('scroll')`** - it is a hard ban, not a "prefer-not." See Section 5.D for the allowed alternatives.
83
+
84
+ ### VISUAL_DENSITY (Level 1-10)
85
+ * **1-3 (Art Gallery):** Lots of white space. Huge section gaps (`py-32` to `py-48`). Expensive, clean.
86
+ * **4-7 (Daily App):** Standard web app spacing (`py-16` to `py-24`).
87
+ * **8-10 (Cockpit):** Tight paddings. No card boxes; 1px lines separate data. Mandatory: `font-mono` for all numbers.
88
+
89
+ ---
90
+
@@ -0,0 +1,101 @@
1
+ # Logo Color Psychology
2
+
3
+ ## Primary Color Meanings
4
+
5
+ ### Blue
6
+ - **Psychology:** Trust, stability, professionalism, calm
7
+ - **Industries:** Finance, healthcare, tech, corporate
8
+ - **Hex Examples:** Navy #003366, Royal #0055A4, Sky #0EA5E9
9
+ - **Pairings:** White, gold, light gray
10
+
11
+ ### Red
12
+ - **Psychology:** Energy, passion, urgency, excitement
13
+ - **Industries:** Food, sports, entertainment, sales
14
+ - **Hex Examples:** Crimson #DC2626, Scarlet #EF4444, Burgundy #9F1239
15
+ - **Pairings:** White, black, gold
16
+ - **Caution:** Avoid for healthcare (blood connotation)
17
+
18
+ ### Green
19
+ - **Psychology:** Growth, nature, health, sustainability
20
+ - **Industries:** Eco, wellness, organic, finance (growth)
21
+ - **Hex Examples:** Forest #228B22, Sage #2E8B57, Mint #10B981
22
+ - **Pairings:** White, brown, blue
23
+
24
+ ### Yellow/Gold
25
+ - **Psychology:** Optimism, warmth, luxury, attention
26
+ - **Industries:** Food, children, luxury (gold), energy
27
+ - **Hex Examples:** Gold #D4AF37, Amber #F59E0B, Lemon #FACC15
28
+ - **Pairings:** Black, navy, dark brown
29
+
30
+ ### Purple
31
+ - **Psychology:** Creativity, wisdom, luxury, mystery
32
+ - **Industries:** Beauty, creative, spiritual, premium
33
+ - **Hex Examples:** Royal #7C3AED, Lavender #A78BFA, Deep #581C87
34
+ - **Pairings:** Gold, white, pink
35
+
36
+ ### Orange
37
+ - **Psychology:** Friendly, energetic, confident, youthful
38
+ - **Industries:** Food, sports, entertainment, retail
39
+ - **Hex Examples:** Tangerine #F97316, Coral #FB923C, Burnt #EA580C
40
+ - **Pairings:** White, navy, dark gray
41
+
42
+ ### Black
43
+ - **Psychology:** Sophistication, power, elegance, authority
44
+ - **Industries:** Luxury, fashion, tech, premium
45
+ - **Pairings:** White, gold, silver
46
+ - **Note:** Use for high-end positioning
47
+
48
+ ### White
49
+ - **Psychology:** Purity, simplicity, cleanliness, modern
50
+ - **Use:** Backgrounds, negative space, contrast
51
+ - **Pairings:** Any color (universal neutral)
52
+
53
+ ## Color Combinations by Industry
54
+
55
+ | Industry | Primary | Secondary | Accent | Avoid |
56
+ |----------|---------|-----------|--------|-------|
57
+ | Tech | Blue, Purple | Gray, White | Teal, Green | Brown, Beige |
58
+ | Healthcare | Blue, Green | Teal, White | Light Purple | Red, Black |
59
+ | Finance | Navy, Blue | Gold, Gray | Green | Bright colors |
60
+ | Food | Red, Orange | Yellow, Brown | Green | Blue (appetite suppressant) |
61
+ | Fashion | Black, White | Gold, Blush | Navy | Neon (unless intentional) |
62
+ | Eco | Green, Brown | Beige, Blue | Yellow | Neon, Black |
63
+ | Children | Multi-color | Pastels | Bright accents | Dark, muted |
64
+
65
+ ## Color Harmony Types
66
+
67
+ ### Monochromatic
68
+ Single color with tints/shades. Safe, cohesive.
69
+
70
+ ### Complementary
71
+ Opposite colors (blue-orange). High contrast, vibrant.
72
+
73
+ ### Analogous
74
+ Adjacent colors (blue-teal-green). Harmonious, natural.
75
+
76
+ ### Triadic
77
+ Three evenly spaced colors. Balanced, dynamic.
78
+
79
+ ## Accessibility Considerations
80
+
81
+ - Minimum contrast ratio: 4.5:1 (WCAG AA)
82
+ - Avoid red-green only indicators
83
+ - Test in grayscale for clarity
84
+ - Consider colorblind users (~8% of males)
85
+
86
+ ## Quick Reference Palettes
87
+
88
+ **Tech Professional:**
89
+ Primary: #6366F1 | Secondary: #8B5CF6 | Accent: #06B6D4
90
+
91
+ **Eco Sustainable:**
92
+ Primary: #228B22 | Secondary: #2E8B57 | Accent: #DEB887
93
+
94
+ **Luxury Premium:**
95
+ Primary: #1C1917 | Secondary: #D4AF37 | Accent: #FFFFFF
96
+
97
+ **Healthcare Trust:**
98
+ Primary: #0077B6 | Secondary: #00A896 | Accent: #FFFFFF
99
+
100
+ **Food Warm:**
101
+ Primary: #DC2626 | Secondary: #F97316 | Accent: #CA8A04