get-shit-pretty 0.6.2 → 0.7.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 (161) hide show
  1. package/README.md +7 -12
  2. package/bin/install.js +125 -84
  3. package/gsp/agents/gsp-accessibility-auditor.md +4 -4
  4. package/gsp/agents/gsp-ascii-artist.md +2 -2
  5. package/gsp/agents/gsp-brand-auditor.md +3 -3
  6. package/gsp/agents/gsp-brand-engineer.md +131 -0
  7. package/gsp/agents/gsp-brand-strategist.md +3 -3
  8. package/gsp/agents/gsp-brand-syncer.md +8 -7
  9. package/gsp/agents/gsp-builder.md +49 -6
  10. package/gsp/agents/gsp-campaign-director.md +3 -4
  11. package/gsp/agents/gsp-creative-director.md +80 -0
  12. package/gsp/agents/gsp-critic.md +100 -18
  13. package/gsp/agents/gsp-designer.md +52 -5
  14. package/gsp/agents/gsp-project-researcher.md +4 -4
  15. package/gsp/agents/gsp-researcher.md +5 -5
  16. package/gsp/agents/gsp-reviewer.md +3 -3
  17. package/gsp/agents/gsp-scoper.md +3 -3
  18. package/gsp/hooks/hooks.json +5 -5
  19. package/gsp/skills/get-shit-pretty/SKILL.md +10 -9
  20. package/gsp/skills/gsp-accessibility/SKILL.md +12 -12
  21. package/gsp/skills/gsp-accessibility-audit/SKILL.md +8 -9
  22. package/gsp/skills/gsp-add-reference/SKILL.md +6 -1
  23. package/gsp/skills/gsp-art/SKILL.md +6 -1
  24. package/gsp/skills/gsp-brand-audit/SKILL.md +5 -5
  25. package/gsp/skills/gsp-brand-guidelines/SKILL.md +233 -0
  26. package/gsp/skills/gsp-brand-guidelines/token-mapping.md +329 -0
  27. package/gsp/skills/gsp-brand-identity/SKILL.md +29 -20
  28. package/gsp/skills/gsp-brand-refine/SKILL.md +30 -23
  29. package/gsp/skills/gsp-brand-research/SKILL.md +4 -4
  30. package/gsp/{references → skills/gsp-brand-research}/design-trends.md +4 -4
  31. package/gsp/skills/gsp-brand-strategy/SKILL.md +7 -7
  32. package/gsp/skills/gsp-brand-sync/SKILL.md +10 -10
  33. package/gsp/skills/gsp-brand-sync/chunk-format.md +79 -0
  34. package/gsp/skills/gsp-color/SKILL.md +73 -0
  35. package/gsp/skills/gsp-color/chunk-format.md +79 -0
  36. package/gsp/skills/{gsp-palette/SKILL.md → gsp-color/domains/palette.md} +31 -101
  37. package/gsp/skills/gsp-color/domains/system.md +123 -0
  38. package/gsp/skills/gsp-design-system/SKILL.md +9 -4
  39. package/gsp/skills/gsp-doctor/SKILL.md +25 -18
  40. package/gsp/skills/gsp-help/SKILL.md +30 -29
  41. package/gsp/skills/gsp-icons/SKILL.md +108 -0
  42. package/gsp/skills/gsp-icons/chunk-format.md +79 -0
  43. package/gsp/skills/gsp-launch/SKILL.md +3 -4
  44. package/gsp/skills/gsp-logo/SKILL.md +173 -0
  45. package/gsp/skills/gsp-logo/chunk-format.md +79 -0
  46. package/gsp/skills/gsp-phase-transition/SKILL.md +124 -0
  47. package/gsp/skills/gsp-pretty/SKILL.md +2 -2
  48. package/gsp/skills/gsp-progress/SKILL.md +20 -20
  49. package/gsp/skills/gsp-project-brief/SKILL.md +8 -9
  50. package/gsp/skills/gsp-project-build/SKILL.md +30 -25
  51. package/gsp/skills/gsp-project-critique/SKILL.md +17 -18
  52. package/gsp/{references → skills/gsp-project-critique}/visual-taste.md +1 -1
  53. package/gsp/skills/gsp-project-design/SKILL.md +18 -18
  54. package/gsp/skills/gsp-project-research/SKILL.md +6 -7
  55. package/gsp/skills/gsp-project-review/SKILL.md +8 -10
  56. package/gsp/skills/gsp-scaffold/SKILL.md +3 -3
  57. package/gsp/skills/gsp-start/SKILL.md +15 -15
  58. package/gsp/{references → skills/gsp-start}/questioning.md +1 -1
  59. package/gsp/skills/gsp-style/SKILL.md +43 -45
  60. package/gsp/skills/gsp-style/chunk-format.md +79 -0
  61. package/gsp/skills/gsp-style/style-preset-schema.md +124 -0
  62. package/gsp/skills/gsp-style/styles/INDEX.yml +1 -1
  63. package/gsp/skills/gsp-style/styles/academia.yml +80 -0
  64. package/gsp/skills/gsp-style/styles/art-deco.yml +81 -0
  65. package/gsp/skills/gsp-style/styles/bauhaus.yml +78 -0
  66. package/gsp/skills/gsp-style/styles/bold-typography.yml +73 -0
  67. package/gsp/skills/gsp-style/styles/botanical.yml +78 -0
  68. package/gsp/skills/gsp-style/styles/claymorphism.yml +84 -0
  69. package/gsp/skills/gsp-style/styles/cyberpunk.yml +87 -0
  70. package/gsp/skills/gsp-style/styles/enterprise.yml +81 -0
  71. package/gsp/skills/gsp-style/styles/flat-design.yml +67 -0
  72. package/gsp/skills/gsp-style/styles/fluent.yml +82 -0
  73. package/gsp/skills/gsp-style/styles/glassmorphism.yml +83 -0
  74. package/gsp/skills/gsp-style/styles/humanist-literary.yml +74 -0
  75. package/gsp/skills/gsp-style/styles/industrial.yml +82 -0
  76. package/gsp/skills/gsp-style/styles/kinetic.yml +94 -0
  77. package/gsp/skills/gsp-style/styles/liquid-glass.yml +91 -0
  78. package/gsp/skills/gsp-style/styles/luxury.yml +83 -0
  79. package/gsp/skills/gsp-style/styles/material.yml +83 -0
  80. package/gsp/skills/gsp-style/styles/maximalism.yml +92 -0
  81. package/gsp/skills/gsp-style/styles/minimal-dark.yml +75 -0
  82. package/gsp/skills/gsp-style/styles/modern-dark.yml +88 -0
  83. package/gsp/skills/gsp-style/styles/monochrome.yml +68 -0
  84. package/gsp/skills/gsp-style/styles/neubrutalism.yml +83 -0
  85. package/gsp/skills/gsp-style/styles/neumorphism.yml +77 -0
  86. package/gsp/skills/gsp-style/styles/newsprint.yml +81 -0
  87. package/gsp/skills/gsp-style/styles/organic.yml +77 -0
  88. package/gsp/skills/gsp-style/styles/playful-geometric.yml +90 -0
  89. package/gsp/skills/gsp-style/styles/professional.yml +67 -0
  90. package/gsp/skills/gsp-style/styles/retro.yml +85 -0
  91. package/gsp/skills/gsp-style/styles/saas.yml +83 -0
  92. package/gsp/skills/gsp-style/styles/sketch.yml +86 -0
  93. package/gsp/skills/gsp-style/styles/swiss-minimalist.yml +69 -0
  94. package/gsp/skills/gsp-style/styles/terminal.yml +83 -0
  95. package/gsp/skills/gsp-style/styles/vaporwave.yml +84 -0
  96. package/gsp/skills/gsp-style/styles/web3.yml +82 -0
  97. package/gsp/skills/gsp-typography/SKILL.md +70 -0
  98. package/gsp/skills/gsp-typography/chunk-format.md +79 -0
  99. package/gsp/skills/gsp-typography/domains/pairing.md +109 -0
  100. package/gsp/skills/gsp-typography/domains/scale.md +227 -0
  101. package/gsp/skills/gsp-typography/domains/system.md +108 -0
  102. package/gsp/skills/gsp-update/SKILL.md +1 -2
  103. package/gsp/skills/gsp-visuals/SKILL.md +82 -0
  104. package/gsp/skills/gsp-visuals/chunk-format.md +79 -0
  105. package/gsp/skills/gsp-visuals/domains/3d.md +127 -0
  106. package/gsp/skills/gsp-visuals/domains/imagery.md +145 -0
  107. package/gsp/skills/gsp-visuals/domains/textures.md +138 -0
  108. package/gsp/skills/gsp-visuals/domains/video.md +107 -0
  109. package/gsp/templates/branding/config.json +1 -1
  110. package/gsp/templates/branding/roadmap.md +9 -9
  111. package/gsp/templates/exports-index.md +8 -8
  112. package/gsp/templates/phases/brief.md +1 -1
  113. package/gsp/templates/phases/build.md +1 -1
  114. package/gsp/templates/phases/critique.md +1 -1
  115. package/gsp/templates/phases/design.md +2 -2
  116. package/gsp/templates/phases/discover.md +1 -1
  117. package/gsp/templates/phases/identity.md +1 -1
  118. package/gsp/templates/phases/launch.md +1 -1
  119. package/gsp/templates/phases/patterns.md +60 -71
  120. package/gsp/templates/phases/research.md +1 -1
  121. package/gsp/templates/phases/review.md +1 -1
  122. package/gsp/templates/phases/strategy.md +1 -1
  123. package/gsp/templates/phases/style.md +158 -0
  124. package/gsp/templates/projects/config.json +1 -1
  125. package/gsp/templates/projects/roadmap.md +7 -7
  126. package/gsp/templates/projects/state.md +1 -1
  127. package/package.json +1 -2
  128. package/.claude-plugin/plugin.json +0 -24
  129. package/gsp/agents/gsp-identity-designer.md +0 -74
  130. package/gsp/agents/gsp-pattern-architect.md +0 -189
  131. package/gsp/prompts/01-design-system-architect.md +0 -19
  132. package/gsp/prompts/02-brand-identity-creator.md +0 -16
  133. package/gsp/prompts/03-ui-ux-pattern-master.md +0 -21
  134. package/gsp/prompts/04-marketing-asset-factory.md +0 -14
  135. package/gsp/prompts/05-implementation-spec-expert.md +0 -15
  136. package/gsp/prompts/06-design-critique-partner.md +0 -14
  137. package/gsp/prompts/07-design-trend-synthesizer.md +0 -3
  138. package/gsp/prompts/08-accessibility-auditor.md +0 -23
  139. package/gsp/prompts/09-design-to-code-translator.md +0 -49
  140. package/gsp/prompts/10-project-scoper.md +0 -17
  141. package/gsp/prompts/11-deliverable-reviewer.md +0 -18
  142. package/gsp/prompts/12-project-researcher.md +0 -18
  143. package/gsp/references/phase-transitions.md +0 -132
  144. package/gsp/references/style-preset-schema.md +0 -63
  145. package/gsp/skills/gsp-brand-patterns/SKILL.md +0 -240
  146. package/gsp/skills/gsp-typescale/SKILL.md +0 -234
  147. /package/gsp/{references → skills/gsp-accessibility-audit}/wcag-checklist.md +0 -0
  148. /package/gsp/{references → skills/gsp-art}/terminal-art.md +0 -0
  149. /package/gsp/{references → skills/gsp-brand-audit}/chunk-format.md +0 -0
  150. /package/gsp/{references → skills/gsp-brand-guidelines}/design-tokens.md +0 -0
  151. /package/gsp/{references → skills/gsp-brand-strategy}/brand-archetypes.md +0 -0
  152. /package/gsp/{references → skills/gsp-brand-strategy}/brand-prism.md +0 -0
  153. /package/gsp/{references → skills/gsp-brand-strategy}/positioning-frameworks.md +0 -0
  154. /package/gsp/{references → skills/gsp-brand-strategy}/voice-tone.md +0 -0
  155. /package/gsp/{references → skills/gsp-color/references}/color-composition.md +0 -0
  156. /package/gsp/{references → skills/gsp-project-build}/visual-effects.md +0 -0
  157. /package/gsp/{references → skills/gsp-project-critique}/anti-patterns.md +0 -0
  158. /package/gsp/{references → skills/gsp-project-critique}/nielsen-heuristics.md +0 -0
  159. /package/gsp/{references → skills/gsp-project-design}/apple-hig-patterns.md +0 -0
  160. /package/gsp/{references → skills/gsp-project-design}/block-patterns.md +0 -0
  161. /package/gsp/{references → skills/gsp-typography/references}/typography-scales.md +0 -0
@@ -53,5 +53,82 @@ tokens:
53
53
  shadow-md: "inset 6px 6px 12px rgba(163,177,198,0.7), inset -6px -6px 12px rgba(255,255,255,0.6)"
54
54
  shadow-lg: "inset 10px 10px 20px rgba(163,177,198,0.7), inset -10px -10px 20px rgba(255,255,255,0.6)"
55
55
 
56
+ intensity:
57
+ variance: 3 # symmetric, grid-aligned, continuous-surface uniformity
58
+ motion: 4 # smooth shadow transitions, subtle float, restrained hover lifts
59
+ density: 4 # airy — shadows need breathing room to render properly
60
+
61
+ patterns:
62
+ card:
63
+ border: "none — no visible borders, edges defined by dual shadows only"
64
+ shadow: "{elevation.shadow-lg}"
65
+ radius: "{shape.border-radius-lg}"
66
+ background: "{color.background}"
67
+ depth: "nested depth — extruded card > inset icon well > extruded icon"
68
+ button-primary:
69
+ background: "{color.primary}"
70
+ border: "none"
71
+ shadow: "{elevation.shadow-md}"
72
+ text: "weight 600, sentence case, white"
73
+ radius: "{shape.border-radius-sm}"
74
+ button-secondary:
75
+ background: "{color.background}"
76
+ border: "none"
77
+ shadow: "{elevation.shadow-md}"
78
+ text: "weight 500, {color.on-background}"
79
+ radius: "{shape.border-radius-sm}"
80
+ input:
81
+ border: "none — depth from inset shadow only"
82
+ radius: "{shape.border-radius-sm}"
83
+ background: "{color.background}"
84
+ focus: "shadow deepens to {inset.shadow-lg}, ring-2 ring-{color.primary} ring-offset-2"
85
+ shadow: "{inset.shadow-md}"
86
+ badge:
87
+ shape: "rounded-full, extruded shadow"
88
+ text: "text-xs font-medium"
89
+ nav:
90
+ style: "sticky extruded bar"
91
+ background: "{color.background}"
92
+ shadow: "{elevation.shadow-md}"
93
+ shape: "{shape.border-radius-lg}"
94
+ layout:
95
+ archetype: "continuous-surface"
96
+ max-width: "max-w-7xl"
97
+ section-spacing: "py-24 to py-32"
98
+ grid-gap: "gap-8 to gap-12"
99
+ surfaces: "monochromatic {color.background} everywhere — no color variety, shadow does all work"
100
+ decoration: "concentric circles of alternating extruded/inset shadows for abstract art"
101
+
102
+ constraints:
103
+ never:
104
+ - "visible borders — neumorphism never uses borders, shadows define all edges"
105
+ - "white card backgrounds — cards must match page background {color.background}"
106
+ - "flat shadowless elements — everything has dual opposing shadows"
107
+ - "hard hex shadows — always use rgba for transparency and blending"
108
+ - "sharp corners below rounded-2xl (16px) — too sharp for pillow aesthetic"
109
+ - "colored or gradient backgrounds — monochromatic {color.background} only"
110
+ - "light gray text (#A0AEC0) for body — minimum {color.muted} for WCAG AA"
111
+ always:
112
+ - "dual opposing shadows (light top-left + dark bottom-right) on every extruded element"
113
+ - "inset shadows (reversed direction) on every pressed/recessed element"
114
+ - "same background color on cards and page — continuous surface illusion"
115
+ - "nested depth demonstrations (extruded > inset > extruded) on feature elements"
116
+ - "visible focus rings (ring-2 ring-{color.primary}) with offset on background color"
117
+ - "Plus Jakarta Sans for display, DM Sans for body"
118
+
119
+ effects:
120
+ interaction-vocabulary: [soft-lift, shadow-deepen, surface-press, float-drift]
121
+ hover:
122
+ card: "soft-lift — -translate-y-1, shadow transitions from {elevation.shadow-lg} to {elevation.shadow-xl}"
123
+ button: "soft-lift — -translate-y-1, shadow deepens"
124
+ nested-circle: "shadow-deepen — scale-105 + rotate-180 on inner element"
125
+ active:
126
+ button: "surface-press — translate-y-[0.5px], shadow switches to {inset.shadow-sm}"
127
+ focus:
128
+ general: "ring-2 ring-{color.primary} ring-offset-2 ring-offset-{color.background}"
129
+ transition: "duration-300, ease-out"
130
+ ambient:
131
+ - "float-drift — decorative elements translateY(-10px) over 3s ease-in-out infinite"
132
+
56
133
  compatibility: [industrial, claymorphism]
57
134
  clashes: [neubrutalism, flat-design, monochrome]
@@ -54,5 +54,86 @@ tokens:
54
54
  halftone-opacity: 0.03
55
55
  dot-grid-opacity: 0.02
56
56
 
57
+ intensity:
58
+ variance: 5 # asymmetric column splits (8/4, 5/7) but grid-disciplined overall
59
+ motion: 2 # fast snappy state changes only, no cinematic movement
60
+ density: 9 # newspaper-tight padding, collapsed grid borders, maximum information
61
+
62
+ patterns:
63
+ card:
64
+ border: "{shape.border-width} solid {color.on-background}"
65
+ shadow: "none resting, 4px 4px 0px 0px {color.on-background} on hover"
66
+ radius: "0px"
67
+ background: "{color.background}"
68
+ header: "border-b-4 separator, optional inverted (black bg, white text)"
69
+ button-primary:
70
+ background: "{color.on-background}"
71
+ border: "1px solid transparent"
72
+ shadow: "none"
73
+ text: "uppercase, weight {typography.font-weight-heading}, tracking-widest, font-ui"
74
+ radius: "0px"
75
+ button-secondary:
76
+ background: "transparent"
77
+ border: "{shape.border-width} solid {color.on-background}"
78
+ shadow: "none"
79
+ text: "uppercase, weight {typography.font-weight-heading}, tracking-widest"
80
+ radius: "0px"
81
+ input:
82
+ border: "border-b-2 {color.on-background} only — no full border"
83
+ radius: "0px"
84
+ background: "transparent"
85
+ focus: "background fills {color.surface}, no ring, no outline"
86
+ height: "h-12"
87
+ font: "monospace"
88
+ badge:
89
+ shape: "0px radius, {shape.border-width} border"
90
+ text: "uppercase tracking-widest text-xs font-mono"
91
+ decoration: "accent background for breaking/alert badges only"
92
+ nav:
93
+ logo: "serif font-black, edition metadata (Vol. 1 | Date | City)"
94
+ links: "uppercase tracking-widest font-sans, hover turns {color.accent}"
95
+ mobile: "hamburger as bordered square"
96
+ border: "border-b-4 {color.on-background}"
97
+ layout:
98
+ archetype: "editorial-grid"
99
+ max-width: "max-w-screen-xl"
100
+ section-spacing: "py-16"
101
+ grid-gap: "gap-6 to gap-8"
102
+ asymmetry: "8/4, 5/7 column splits — never 50/50"
103
+ surfaces: "dot grid at {texture.dot-grid-opacity}, line grid overlay, halftone on images"
104
+ decoration: "drop caps (text-7xl float-left), ornamental dividers, grayscale images"
105
+ columns: "12-column grid with collapsed borders (border-r, border-b)"
106
+
107
+ constraints:
108
+ never:
109
+ - "border-radius above 0px — everything sharp-edged, no exceptions"
110
+ - "soft or blurred shadows — only hard-offset (4px 4px 0px 0px) on hover"
111
+ - "gradient backgrounds — solid color blocks only"
112
+ - "thin font weights — minimum bold for headings, medium for body"
113
+ - "backdrop-filter or blur — flat editorial surfaces only"
114
+ - "rounded pill buttons or badges — square geometry only"
115
+ - "more than one accent color in a section — 99% black and white, red is emergency only"
116
+ always:
117
+ - "zero border-radius on every element"
118
+ - "visible grid structure — collapsed borders between columns and rows"
119
+ - "serif headlines (Playfair Display), serif body (Lora), sans UI (Inter)"
120
+ - "uppercase labels, metadata, and navigation with tracking-widest"
121
+ - "at least one inverted section (black bg, white text)"
122
+ - "drop caps on key introductory paragraphs"
123
+ - "halftone dot pattern on images, grayscale default with sepia hover"
124
+
125
+ effects:
126
+ interaction-vocabulary: [color-invert, hard-lift, underline-reveal, scale-dot]
127
+ hover:
128
+ card: "hard-lift — 4px 4px hard-offset shadow appears, translate(-2px, -2px)"
129
+ button: "color-invert — black becomes white bg with black border, or vice versa"
130
+ link: "underline-reveal — thick red underline (decoration-2 decoration-{color.accent})"
131
+ icon-box: "color-invert — bg fills black, icon turns white"
132
+ active:
133
+ button: "translate covers shadow offset, mechanical click"
134
+ focus:
135
+ general: "ring-2 ring-{color.on-background} ring-offset-2"
136
+ transition: "duration-100 to duration-200, ease-out"
137
+
57
138
  compatibility: [monochrome, swiss-minimalist, academia]
58
139
  clashes: [glassmorphism, cyberpunk, vaporwave]
@@ -61,5 +61,82 @@ dark_mode:
61
61
  surface: "#2C2C24"
62
62
  on-background: "#E6DCCD"
63
63
 
64
+ intensity:
65
+ variance: 7
66
+ motion: 5
67
+ density: 3
68
+
69
+ patterns:
70
+ card:
71
+ border: "{shape.border-width} solid {shape.border-color}"
72
+ shadow: "{elevation.shadow-sm} — color-tinted, never pure black"
73
+ radius: "rounded-[2rem] base, asymmetric on features (rounded-tl-[4rem])"
74
+ background: "#FEFEFA over page background"
75
+ texture: "noise overlay at 3% opacity, multiply blend"
76
+ button-primary:
77
+ background: "{color.primary}"
78
+ border: "none"
79
+ shadow: "color-tinted soft shadow (moss)"
80
+ text: "bold weight, sentence case"
81
+ shape: "rounded-full — pill always"
82
+ button-secondary:
83
+ background: "transparent"
84
+ border: "2px solid {color.secondary}"
85
+ text: "{color.secondary}, sentence case"
86
+ shape: "rounded-full"
87
+ input:
88
+ border: "{shape.border-width} solid {shape.border-color}"
89
+ shape: "rounded-full"
90
+ background: "bg-white/50 — semi-transparent, shows grain beneath"
91
+ focus: "ring-2 ring-{color.primary}/30 ring-offset-2"
92
+ badge:
93
+ shape: "rounded-full"
94
+ text: "text-xs, muted earth tones"
95
+ nav:
96
+ style: "sticky floating pill"
97
+ background: "bg-white/70 with backdrop-blur-md"
98
+ shape: "rounded-full"
99
+ layout:
100
+ archetype: "staggered-organic"
101
+ max-width: "varies — max-w-7xl hero, max-w-5xl intimate, max-w-4xl text"
102
+ section-spacing: "py-32"
103
+ grid-gap: "gap-8 to gap-12"
104
+ surfaces: "grain overlay (3-4% opacity, multiply blend) — always present"
105
+ backgrounds: "alternating earth tones — off-white, stone, sand, moss, terracotta"
106
+ decoration: "large blurred blobs (blur-3xl), curved SVG connectors, rotated images"
107
+
108
+ constraints:
109
+ never:
110
+ - "sharp 90-degree corners — everything must feel eroded or hand-shaped"
111
+ - "hard-offset shadows — all shadows soft, diffused, color-tinted"
112
+ - "pure black (#000000) in shadows or borders — use tinted alternatives"
113
+ - "straight geometric decorations — curves and blobs only"
114
+ - "mechanical or abrupt motion — everything gentle and eased"
115
+ - "uppercase text — soft, natural case throughout"
116
+ - "high-contrast neon or saturated colors — earth-drawn palette only"
117
+ - "flat backgrounds without grain — texture is essential"
118
+ always:
119
+ - "organic border radii (large, varied, sometimes asymmetric)"
120
+ - "grain/noise texture overlay (3-4% opacity, multiply blend)"
121
+ - "color-tinted shadows using palette colors (moss green, clay orange)"
122
+ - "generous whitespace — space is a design element"
123
+ - "blob shapes for decorative backgrounds (complex % border-radius)"
124
+
125
+ effects:
126
+ interaction-vocabulary: [gentle-lift, soft-scale, tilt-pick, slow-reveal]
127
+ hover:
128
+ card: "gentle-lift — -translate-y-1, shadow deepens"
129
+ button: "soft-scale — scale-105, shadow increases"
130
+ testimonial: "tilt-pick — rotate-1, like picking up a card"
131
+ image: "slow-reveal — scale-105 over 700ms"
132
+ active:
133
+ button: "soft-scale — scale-95, tactile press"
134
+ focus:
135
+ general: "ring-2 ring-{color.primary}/30 ring-offset-2 — soft glow"
136
+ transition: "duration-300 to duration-500, ease-out"
137
+ ambient:
138
+ - "blob-drift — background color washes with blur-3xl, slow movement"
139
+ - "parallax-float — subtle depth shift on decorative elements"
140
+
64
141
  compatibility: [botanical, sketch]
65
142
  clashes: [cyberpunk, terminal, industrial]
@@ -60,5 +60,95 @@ dark_mode:
60
60
  surface: "#334155"
61
61
  on-background: "#F8FAFC"
62
62
 
63
+ intensity:
64
+ variance: 7 # Memphis shapes, confetti decoration, blob radii, rotated elements
65
+ motion: 6 # bouncy overshoot easing, wiggle hovers, pop-in entrances, marquees
66
+ density: 5 # colorful but readable — shapes fill space around clean content areas
67
+
68
+ patterns:
69
+ card:
70
+ border: "{shape.border-width} solid {shape.border-color}"
71
+ shadow: "{elevation.shadow-lg} — hard offset, no blur"
72
+ radius: "{shape.border-radius-md} (rounded-xl)"
73
+ background: "{color.surface}"
74
+ decoration: "floating circle icon half-in/half-out of top border, colored shadow for featured (pink or amber)"
75
+ hover: "rotate -1deg, scale 1.02 — wiggle sticker effect"
76
+ button-primary:
77
+ background: "{color.accent}"
78
+ border: "{shape.border-width} solid {shape.border-color}"
79
+ shadow: "{elevation.shadow-sm}"
80
+ text: "font-bold text-white"
81
+ radius: "rounded-full — pill shape always"
82
+ icon: "ArrowRight in circular white background inside button"
83
+ button-secondary:
84
+ background: "transparent"
85
+ border: "{shape.border-width} solid {shape.border-color}"
86
+ shadow: "none"
87
+ text: "{color.on-background}"
88
+ radius: "rounded-full"
89
+ fill: "hover fills {color.warning} (amber/yellow) — surprise color pop"
90
+ input:
91
+ border: "2px solid {shape.border-color}"
92
+ radius: "{shape.border-radius-md}"
93
+ background: "{color.surface}"
94
+ shadow: "4px 4px 0px transparent resting, 4px 4px 0px {color.accent} on focus"
95
+ focus: "border {color.accent}, hard color shadow appears"
96
+ label: "bold uppercase text-sm tracking-wide above input"
97
+ badge:
98
+ shape: "rounded-full, {shape.border-width} border, accent background rotated per badge"
99
+ text: "font-bold text-sm, white on colored background"
100
+ decoration: "rotate-2 to rotate-6, sticker-style offset"
101
+ nav:
102
+ logo: "display font (Fredoka One), colored accent, bouncy hover"
103
+ links: "font-medium, hover adds squiggly underline SVG"
104
+ mobile: "candy-colored hamburger with hard shadow"
105
+ layout:
106
+ archetype: "candy-playground"
107
+ max-width: "max-w-6xl"
108
+ section-spacing: "py-24 — spacious, filled with pattern decoration"
109
+ grid-gap: "gap-8 to gap-12"
110
+ asymmetry: "blob-masked images, alternating card header colors (violet/pink/amber)"
111
+ surfaces: "dot grid background, squiggly SVG dividers, confetti shapes behind content"
112
+ decoration: "primitive shapes (circles, triangles, squares) as background elements, dashed SVG connectors between cards"
113
+
114
+ constraints:
115
+ never:
116
+ - "dark mode as default — this is a warm, light, paper-cream aesthetic"
117
+ - "thin borders (1px) — minimum border-2 for chunky candy feel"
118
+ - "soft blur shadows — all shadows hard-offset, zero blur"
119
+ - "muted or desaturated colors — palette is punchy, high-saturation candy colors"
120
+ - "serious or corporate typography — display font must feel friendly and rounded"
121
+ - "empty background sections — fill with dot grids, confetti, or squiggles"
122
+ - "matching shadow color to element — shadows are always dark ({color.on-background}) or accent-colored"
123
+ - "static decorative shapes — shapes should bounce, wiggle, or float"
124
+ always:
125
+ - "hard-offset shadows (no blur) on every elevated element"
126
+ - "chunky border-2 in dark color on all interactive surfaces"
127
+ - "rounded-full (pill) on all buttons"
128
+ - "confetti color rotation — cycle {color-rotate} across repeated elements"
129
+ - "at least one squiggly SVG divider or underline per page"
130
+ - "primitive shape decorations (circles, triangles) behind content blocks"
131
+ - "icon containers — icons enclosed in colored circles, never floating alone"
132
+
133
+ effects:
134
+ interaction-vocabulary: [pop-lift, sticker-press, wiggle-jiggle, candy-fill, bounce-in]
135
+ hover:
136
+ card: "wiggle-jiggle — rotate(-1deg) + scale(1.02), sticker pickup feel"
137
+ button-primary: "pop-lift — translate(-2px, -2px), shadow extends to 6px 6px"
138
+ button-secondary: "candy-fill — background floods with surprise color (amber/yellow)"
139
+ link: "squiggly underline SVG appears, color shifts to {color.accent}"
140
+ badge: "wiggle-jiggle — rotate oscillates +-3deg"
141
+ active:
142
+ button: "sticker-press — translate(2px, 2px), shadow shrinks to 2px 2px"
143
+ focus:
144
+ input: "candy-fill — hard color shadow appears (4px 4px 0px {color.accent}), border accent"
145
+ general: "ring-2 ring-{color.accent} ring-offset-2 — chunky visible focus"
146
+ transition: "duration-200 to duration-300, cubic-bezier(0.34, 1.56, 0.64, 1) — bouncy overshoot"
147
+ ambient:
148
+ - "confetti-float — background shapes drift slowly with gentle rotation (5-8s ease-in-out)"
149
+ - "wiggle-idle — decorative icons oscillate rotate(0->3->-3->0) (2s ease-in-out infinite)"
150
+ - "bounce-in — elements enter viewport with scale(0->1) + bounce overshoot"
151
+ - "marquee-scroll — client logos or keywords in infinite horizontal scroll"
152
+
63
153
  compatibility: [neubrutalism, flat-design]
64
154
  clashes: [monochrome, luxury, swiss-minimalist]
@@ -55,5 +55,72 @@ dark_mode:
55
55
  border-color: "#334155"
56
56
  muted: "#64748B"
57
57
 
58
+ intensity:
59
+ variance: 2
60
+ motion: 3
61
+ density: 5
62
+
63
+ patterns:
64
+ card:
65
+ border: "{shape.border-width} solid {shape.border-color}"
66
+ shadow: "{elevation.shadow-sm} resting, {elevation.shadow-md} on hover"
67
+ radius: "{shape.border-radius-md}"
68
+ background: "{color.surface}"
69
+ button-primary:
70
+ background: "{color.primary}"
71
+ border: "none"
72
+ shadow: "{elevation.shadow-sm}"
73
+ text: "weight 500, sentence case"
74
+ radius: "{shape.border-radius-sm}"
75
+ button-secondary:
76
+ background: "transparent"
77
+ border: "{shape.border-width} solid {shape.border-color}"
78
+ text: "weight 500, sentence case"
79
+ radius: "{shape.border-radius-sm}"
80
+ input:
81
+ border: "{shape.border-width} solid {shape.border-color}"
82
+ radius: "{shape.border-radius-sm}"
83
+ background: "{color.background}"
84
+ focus: "ring-2 ring-{color.primary}/50 with ring-offset-1"
85
+ badge:
86
+ shape: "rounded-full, text-xs"
87
+ text: "font-medium, sentence case"
88
+ nav:
89
+ style: "clean horizontal with subtle border-bottom"
90
+ links: "font-medium, hover shifts to {color.primary}"
91
+ layout:
92
+ archetype: "symmetric-grid"
93
+ max-width: "max-w-7xl"
94
+ section-spacing: "py-16 to py-24"
95
+ grid-gap: "gap-6 to gap-8"
96
+ surfaces: "clean — no texture, no grain, no patterns"
97
+
98
+ constraints:
99
+ never:
100
+ - "decorative rotations or skew — precision over personality"
101
+ - "saturated background sections — white/surface/subtle tints only"
102
+ - "text stroke effects — clean, readable type only"
103
+ - "noise or halftone textures — clean surfaces"
104
+ - "uppercase body text — sentence case throughout"
105
+ - "shadows with colored tints — neutral black/gray shadows only"
106
+ - "hard-offset shadows — all shadows soft and diffused"
107
+ always:
108
+ - "consistent border-radius across all components at the same elevation"
109
+ - "subtle hover transitions (150-250ms)"
110
+ - "muted color palette — no neon, no high-saturation accents"
111
+ - "clean visual hierarchy through spacing and weight, not decoration"
112
+
113
+ effects:
114
+ interaction-vocabulary: [gentle-lift, subtle-darken, scale-press]
115
+ hover:
116
+ card: "gentle-lift — shadow deepens sm→md, subtle border darken"
117
+ button: "subtle-darken — background darkens 10%"
118
+ link: "color shift to {color.primary}"
119
+ active:
120
+ button: "scale-press — scale-[0.98]"
121
+ focus:
122
+ general: "ring-2 ring-{color.primary}/50 ring-offset-1"
123
+ transition: "duration-150 to duration-250, cubic-bezier(0.4, 0, 0.2, 1)"
124
+
58
125
  compatibility: [bento-grid, micro-interactions]
59
126
  clashes: [cyberpunk, vaporwave, neubrutalism]
@@ -61,5 +61,90 @@ dark_mode:
61
61
  surface: "#000000"
62
62
  on-background: "#C0C0C0"
63
63
 
64
+ intensity:
65
+ variance: 8 # chaotic layouts, clashing colors, deliberate visual excess
66
+ motion: 6 # marquee scrolling, rainbow cycling, pulse-glow badges, but instant button states
67
+ density: 8 # dense table-like grids, tight spacing, maximum visual information
68
+
69
+ patterns:
70
+ card:
71
+ border: "{shape.border-width} solid with 4-value outset bevel ({bevel.outset})"
72
+ shadow: "{elevation.shadow-sm} — inset bevel highlights, never soft drop shadows"
73
+ radius: "0px"
74
+ background: "{color.background}"
75
+ header: "navy-to-blue gradient title bar (#000080 to #1084D0), white bold text"
76
+ content: "inset bevel, white or {system.titlebar}-tinted background"
77
+ button-primary:
78
+ background: "{color.primary}"
79
+ border: "{shape.border-width} with blue-tinted bevel (#5555ff top-left, #000080 bottom-right)"
80
+ shadow: "{elevation.shadow-sm}"
81
+ text: "uppercase, bold, tracking-wide, centered"
82
+ radius: "0px"
83
+ button-secondary:
84
+ background: "{color.background}"
85
+ border: "{shape.border-width} with outset bevel ({bevel.outset})"
86
+ shadow: "{elevation.shadow-sm}"
87
+ text: "uppercase, bold, black text"
88
+ radius: "0px"
89
+ input:
90
+ border: "{shape.border-width} with inset bevel ({bevel.inset})"
91
+ radius: "0px"
92
+ background: "{color.surface}"
93
+ focus: "dotted 2px black outline, 2px offset"
94
+ height: "h-10"
95
+ badge:
96
+ shape: "0px radius, outset bevel border"
97
+ text: "uppercase bold text-xs, bright solid color backgrounds"
98
+ decoration: "animate-pulse for NEW!/HOT! badges, pulse-glow animation"
99
+ nav:
100
+ logo: "beveled button-face with bold text"
101
+ links: "blue underlined always, red on hover, purple when visited"
102
+ mobile: "beveled hamburger button"
103
+ layout:
104
+ archetype: "table-grid"
105
+ max-width: "max-w-5xl"
106
+ section-spacing: "py-16"
107
+ grid-gap: "gap-4 to gap-6"
108
+ surfaces: "tiled diagonal crosshatch pattern on body background — never flat"
109
+ decoration: "construction warning stripes (yellow/black 45deg), groove HRs, hit counter displays"
110
+ windows: "cards styled as Windows 95 application windows with title bar gradient"
111
+
112
+ constraints:
113
+ never:
114
+ - "border-radius of any kind — not even 1px, the 90s had none"
115
+ - "soft drop shadows — only inset bevel shadows for 3D depth"
116
+ - "gradients on surfaces — except title bar navy-to-blue and construction stripes"
117
+ - "semi-transparent overlays — colors are always opaque"
118
+ - "thin fonts — everything bold or black weight, no light weights exist"
119
+ - "smooth easing curves — linear or instant transitions only"
120
+ - "removing link underlines — always visible, always blue"
121
+ - "modern minimalist spacing — dense, not airy"
122
+ - "scaling on hover — no scale transforms except 1.05 for pulse badges"
123
+ always:
124
+ - "3D outset bevel (4-value border-color) on every interactive element and container"
125
+ - "active/pressed state reverses to inset bevel + translate(1px, 1px)"
126
+ - "tiled background pattern on page body"
127
+ - "at least one marquee scrolling text element"
128
+ - "at least one rainbow-animated text heading"
129
+ - "hit counter aesthetic on at least one stats section"
130
+ - "construction stripe (yellow/black 45deg) on at least one section"
131
+ - "alternating row backgrounds (white/#E8E8E8) in table-like layouts"
132
+
133
+ effects:
134
+ interaction-vocabulary: [bevel-press, color-cycle, blink-badge, marquee-scroll]
135
+ hover:
136
+ card: "background lightens one shade, maintain outset bevel"
137
+ button: "background lightens 1-2 shades, outset bevel maintained"
138
+ link: "color shifts blue to red — instant, no transition"
139
+ active:
140
+ button: "bevel-press — border-color reverses to inset, translate(1px, 1px), instant"
141
+ focus:
142
+ general: "dotted 2px black outline, 2px offset — Windows 95 authentic"
143
+ transition: "duration-0 to duration-50, step-end — no smooth easing"
144
+ ambient:
145
+ - "color-cycle — rainbow text 4s linear infinite on hero headline"
146
+ - "blink-badge — pulse-glow 1.5s ease-in-out infinite on NEW!/HOT! badges"
147
+ - "marquee-scroll — continuous horizontal scroll at 40-60px/s, pauseOnHover"
148
+
64
149
  compatibility: [maximalism]
65
150
  clashes: [professional, luxury, modern-dark, swiss-minimalist]
@@ -57,5 +57,88 @@ dark_mode:
57
57
  surface: "#1E293B"
58
58
  on-background: "#F1F5F9"
59
59
 
60
+ intensity:
61
+ variance: 4 # structured layouts with strategic asymmetry (hero 1.1fr/0.9fr), not chaotic
62
+ motion: 6 # floating hero elements, pulsing indicators, entrance stagger, scroll parallax
63
+ density: 5 # balanced — generous section whitespace, denser within components
64
+
65
+ patterns:
66
+ card:
67
+ border: "{shape.border-width} solid {shape.border-color}"
68
+ shadow: "{elevation.shadow-md} resting, {elevation.shadow-xl} on hover"
69
+ radius: "{shape.border-radius-md}"
70
+ background: "{color.background}"
71
+ hover-overlay: "bg-gradient-to-br from-{color.primary}/[0.03] to-transparent"
72
+ button-primary:
73
+ background: "{gradient.signature}"
74
+ border: "none"
75
+ shadow: "{elevation.shadow-sm} resting, shadow-accent on hover"
76
+ text: "weight 500, sentence case, white"
77
+ radius: "{shape.border-radius-md}"
78
+ icon: "arrow-right translates +1 on hover"
79
+ button-secondary:
80
+ background: "transparent"
81
+ border: "{shape.border-width} solid {shape.border-color}"
82
+ text: "weight 500, sentence case, {color.on-background}"
83
+ radius: "{shape.border-radius-md}"
84
+ hover: "border shifts to {color.primary}/30, shadow appears"
85
+ input:
86
+ border: "{shape.border-width} solid {shape.border-color}"
87
+ radius: "{shape.border-radius-md}"
88
+ background: "transparent or {color.accent}/10"
89
+ focus: "ring-2 ring-{color.primary} ring-offset-2"
90
+ height: "h-12 to h-14"
91
+ badge:
92
+ shape: "rounded-full with accent border and tinted background"
93
+ text: "font-mono text-xs uppercase tracking-[0.15em] text-{color.primary}"
94
+ decoration: "animated pulsing dot indicator"
95
+ nav:
96
+ style: "clean horizontal, border-bottom subtle"
97
+ links: "font-medium, hover shifts to {color.primary}"
98
+ cta: "gradient primary button in nav"
99
+ layout:
100
+ archetype: "asymmetric-hero-grid"
101
+ max-width: "max-w-6xl"
102
+ section-spacing: "py-28 to py-44"
103
+ grid-gap: "gap-5 to gap-8"
104
+ surfaces: "clean white with radial accent glows at 3-6% opacity on corners"
105
+ decoration: "dot-pattern on inverted sections, radial gradient overlays in hero"
106
+ contrast-sections: "inverted bg-foreground text-background for stats/CTA"
107
+
108
+ constraints:
109
+ never:
110
+ - "flat dark sections without dot-pattern texture — inverted sections need texture"
111
+ - "more than one gradient direction per element — 135deg diagonal or horizontal only"
112
+ - "pure black text — use deep slate {color.on-background}"
113
+ - "decorative rotations or skew — this is polished, not playful"
114
+ - "hard-offset shadows — all shadows soft and diffused"
115
+ - "more than two accent colors — single gradient pair only"
116
+ - "small hero headlines — minimum text-5xl mobile, text-8xl desktop"
117
+ always:
118
+ - "signature gradient on primary buttons, featured badges, and icon backgrounds"
119
+ - "dual-font system — display serif for h1/h2, sans-serif for everything else"
120
+ - "monospace section labels in pill badges with accent dot"
121
+ - "at least one inverted contrast section per page"
122
+ - "gradient text treatment on key headline words"
123
+ - "accent-tinted shadows on featured elements"
124
+
125
+ effects:
126
+ interaction-vocabulary: [gradient-lift, gentle-lift, icon-nudge, pulse-dot, fade-up-stagger]
127
+ hover:
128
+ card: "gentle-lift — -translate-y-0.5, shadow deepens md→xl, gradient overlay fades in"
129
+ button: "gradient-lift — -translate-y-0.5, shadow shifts to accent-tinted, brightness-110"
130
+ link: "color shift to {color.primary}"
131
+ icon: "icon-nudge — scale-110 on icon container"
132
+ active:
133
+ button: "scale-press — scale-[0.98]"
134
+ focus:
135
+ general: "ring-2 ring-{color.primary} ring-offset-2 ring-offset-{color.background}"
136
+ transition: "duration-200 to duration-300, ease-out"
137
+ ambient:
138
+ - "pulse-dot — scale/opacity pulse on badge indicators (2s infinite)"
139
+ - "float-bob — hero cards bob on sine wave (4-5s, ±10px)"
140
+ - "slow-spin — decorative ring rotates (60s linear infinite)"
141
+ - "fade-up-stagger — entrance animations with 0.1s child delay"
142
+
60
143
  compatibility: [professional, enterprise]
61
144
  clashes: [retro, vaporwave, sketch]