get-shit-pretty 0.6.2 → 0.6.3

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 (121) hide show
  1. package/README.md +7 -12
  2. package/bin/install.js +96 -71
  3. package/gsp/agents/gsp-accessibility-auditor.md +3 -3
  4. package/gsp/agents/gsp-ascii-artist.md +1 -1
  5. package/gsp/agents/gsp-brand-auditor.md +2 -2
  6. package/gsp/agents/gsp-brand-engineer.md +131 -0
  7. package/gsp/agents/gsp-brand-strategist.md +2 -2
  8. package/gsp/agents/gsp-brand-syncer.md +8 -7
  9. package/gsp/agents/gsp-builder.md +48 -5
  10. package/gsp/agents/gsp-campaign-director.md +2 -3
  11. package/gsp/agents/gsp-creative-director.md +80 -0
  12. package/gsp/agents/gsp-critic.md +99 -17
  13. package/gsp/agents/gsp-designer.md +51 -4
  14. package/gsp/agents/gsp-project-researcher.md +3 -3
  15. package/gsp/agents/gsp-researcher.md +4 -4
  16. package/gsp/agents/gsp-reviewer.md +2 -2
  17. package/gsp/agents/gsp-scoper.md +2 -2
  18. package/gsp/hooks/hooks.json +5 -5
  19. package/gsp/references/design-trends.md +4 -4
  20. package/gsp/references/phase-transitions.md +12 -12
  21. package/gsp/references/questioning.md +1 -1
  22. package/gsp/references/token-mapping.md +329 -0
  23. package/gsp/skills/gsp-3d/SKILL.md +112 -0
  24. package/gsp/skills/gsp-accessibility/SKILL.md +11 -11
  25. package/gsp/skills/gsp-accessibility-audit/SKILL.md +6 -7
  26. package/gsp/skills/gsp-add-reference/SKILL.md +1 -1
  27. package/gsp/skills/gsp-art/SKILL.md +1 -1
  28. package/gsp/skills/gsp-brand-audit/SKILL.md +3 -3
  29. package/gsp/skills/gsp-brand-guidelines/SKILL.md +233 -0
  30. package/gsp/skills/gsp-brand-identity/SKILL.md +27 -18
  31. package/gsp/skills/gsp-brand-refine/SKILL.md +29 -22
  32. package/gsp/skills/gsp-brand-research/SKILL.md +2 -2
  33. package/gsp/skills/gsp-brand-strategy/SKILL.md +3 -3
  34. package/gsp/skills/gsp-brand-sync/SKILL.md +7 -7
  35. package/gsp/skills/gsp-color/SKILL.md +105 -0
  36. package/gsp/skills/gsp-design-system/SKILL.md +4 -4
  37. package/gsp/skills/gsp-doctor/SKILL.md +25 -18
  38. package/gsp/skills/gsp-help/SKILL.md +28 -28
  39. package/gsp/skills/gsp-icons/SKILL.md +108 -0
  40. package/gsp/skills/gsp-images/SKILL.md +197 -0
  41. package/gsp/skills/gsp-launch/SKILL.md +2 -3
  42. package/gsp/skills/gsp-logo/SKILL.md +173 -0
  43. package/gsp/skills/gsp-palette/SKILL.md +13 -13
  44. package/gsp/skills/gsp-pretty/SKILL.md +2 -2
  45. package/gsp/skills/gsp-progress/SKILL.md +20 -20
  46. package/gsp/skills/gsp-project-brief/SKILL.md +7 -8
  47. package/gsp/skills/gsp-project-build/SKILL.md +21 -21
  48. package/gsp/skills/gsp-project-critique/SKILL.md +13 -14
  49. package/gsp/skills/gsp-project-design/SKILL.md +17 -17
  50. package/gsp/skills/gsp-project-research/SKILL.md +5 -6
  51. package/gsp/skills/gsp-project-review/SKILL.md +7 -9
  52. package/gsp/skills/gsp-scaffold/SKILL.md +3 -3
  53. package/gsp/skills/gsp-start/SKILL.md +14 -14
  54. package/gsp/skills/gsp-style/SKILL.md +41 -43
  55. package/gsp/skills/gsp-style/styles/INDEX.yml +1 -1
  56. package/gsp/skills/gsp-style/styles/academia.yml +80 -0
  57. package/gsp/skills/gsp-style/styles/art-deco.yml +81 -0
  58. package/gsp/skills/gsp-style/styles/bauhaus.yml +78 -0
  59. package/gsp/skills/gsp-style/styles/bold-typography.yml +73 -0
  60. package/gsp/skills/gsp-style/styles/botanical.yml +78 -0
  61. package/gsp/skills/gsp-style/styles/claymorphism.yml +84 -0
  62. package/gsp/skills/gsp-style/styles/cyberpunk.yml +87 -0
  63. package/gsp/skills/gsp-style/styles/enterprise.yml +81 -0
  64. package/gsp/skills/gsp-style/styles/flat-design.yml +67 -0
  65. package/gsp/skills/gsp-style/styles/fluent.yml +82 -0
  66. package/gsp/skills/gsp-style/styles/glassmorphism.yml +83 -0
  67. package/gsp/skills/gsp-style/styles/humanist-literary.yml +74 -0
  68. package/gsp/skills/gsp-style/styles/industrial.yml +82 -0
  69. package/gsp/skills/gsp-style/styles/kinetic.yml +94 -0
  70. package/gsp/skills/gsp-style/styles/liquid-glass.yml +91 -0
  71. package/gsp/skills/gsp-style/styles/luxury.yml +83 -0
  72. package/gsp/skills/gsp-style/styles/material.yml +83 -0
  73. package/gsp/skills/gsp-style/styles/maximalism.yml +92 -0
  74. package/gsp/skills/gsp-style/styles/minimal-dark.yml +75 -0
  75. package/gsp/skills/gsp-style/styles/modern-dark.yml +88 -0
  76. package/gsp/skills/gsp-style/styles/monochrome.yml +68 -0
  77. package/gsp/skills/gsp-style/styles/neubrutalism.yml +83 -0
  78. package/gsp/skills/gsp-style/styles/neumorphism.yml +77 -0
  79. package/gsp/skills/gsp-style/styles/newsprint.yml +81 -0
  80. package/gsp/skills/gsp-style/styles/organic.yml +77 -0
  81. package/gsp/skills/gsp-style/styles/playful-geometric.yml +90 -0
  82. package/gsp/skills/gsp-style/styles/professional.yml +67 -0
  83. package/gsp/skills/gsp-style/styles/retro.yml +85 -0
  84. package/gsp/skills/gsp-style/styles/saas.yml +83 -0
  85. package/gsp/skills/gsp-style/styles/sketch.yml +86 -0
  86. package/gsp/skills/gsp-style/styles/swiss-minimalist.yml +69 -0
  87. package/gsp/skills/gsp-style/styles/terminal.yml +83 -0
  88. package/gsp/skills/gsp-style/styles/vaporwave.yml +84 -0
  89. package/gsp/skills/gsp-style/styles/web3.yml +82 -0
  90. package/gsp/skills/gsp-textures/SKILL.md +132 -0
  91. package/gsp/skills/gsp-typescale/SKILL.md +11 -11
  92. package/gsp/skills/gsp-typography/SKILL.md +108 -0
  93. package/gsp/skills/gsp-update/SKILL.md +1 -2
  94. package/gsp/skills/gsp-video/SKILL.md +101 -0
  95. package/gsp/templates/branding/config.json +1 -1
  96. package/gsp/templates/branding/roadmap.md +9 -9
  97. package/gsp/templates/exports-index.md +8 -8
  98. package/gsp/templates/phases/build.md +1 -1
  99. package/gsp/templates/phases/design.md +1 -1
  100. package/gsp/templates/phases/patterns.md +60 -71
  101. package/gsp/templates/phases/style.md +158 -0
  102. package/gsp/templates/projects/config.json +1 -1
  103. package/gsp/templates/projects/roadmap.md +7 -7
  104. package/gsp/templates/projects/state.md +1 -1
  105. package/package.json +1 -2
  106. package/.claude-plugin/plugin.json +0 -24
  107. package/gsp/agents/gsp-identity-designer.md +0 -74
  108. package/gsp/agents/gsp-pattern-architect.md +0 -189
  109. package/gsp/prompts/01-design-system-architect.md +0 -19
  110. package/gsp/prompts/02-brand-identity-creator.md +0 -16
  111. package/gsp/prompts/03-ui-ux-pattern-master.md +0 -21
  112. package/gsp/prompts/04-marketing-asset-factory.md +0 -14
  113. package/gsp/prompts/05-implementation-spec-expert.md +0 -15
  114. package/gsp/prompts/06-design-critique-partner.md +0 -14
  115. package/gsp/prompts/07-design-trend-synthesizer.md +0 -3
  116. package/gsp/prompts/08-accessibility-auditor.md +0 -23
  117. package/gsp/prompts/09-design-to-code-translator.md +0 -49
  118. package/gsp/prompts/10-project-scoper.md +0 -17
  119. package/gsp/prompts/11-deliverable-reviewer.md +0 -18
  120. package/gsp/prompts/12-project-researcher.md +0 -18
  121. package/gsp/skills/gsp-brand-patterns/SKILL.md +0 -240
@@ -58,5 +58,88 @@ dark_mode:
58
58
  surface: "#1A1A1A"
59
59
  on-background: "#F5F5F0"
60
60
 
61
+ intensity:
62
+ variance: 4 # asymmetric grids but architecturally balanced, offset columns
63
+ motion: 3 # cinematic slow reveals, never flashy — restraint is the point
64
+ density: 2 # extreme negative space — luxury breathes, less is more
65
+
66
+ patterns:
67
+ card:
68
+ border: "border-t {shape.border-width} solid {color.on-background}"
69
+ shadow: "{elevation.shadow-sm} resting, {elevation.shadow-md} on hover — always subtle"
70
+ radius: "0px — strictly rectangular, architectural precision"
71
+ background: "transparent — defined by top-border, not fill"
72
+ texture: "paper noise overlay at 2% opacity across page"
73
+ button-primary:
74
+ background: "{color.accent}"
75
+ border: "none"
76
+ shadow: "{elevation.shadow-md} resting, {elevation.shadow-lg} on hover"
77
+ text: "uppercase, text-xs, tracking-[0.2em], weight 500, white"
78
+ radius: "0px"
79
+ decoration: "gold overlay slides from left on hover via translate-x"
80
+ button-secondary:
81
+ background: "transparent"
82
+ border: "{shape.border-width} solid {color.on-background}"
83
+ text: "uppercase, text-xs, tracking-[0.2em], {color.on-background}"
84
+ radius: "0px"
85
+ input:
86
+ border: "border-b only — {shape.border-width} solid {color.on-background}"
87
+ radius: "0px"
88
+ background: "transparent"
89
+ focus: "border-b-{color.primary} — gold underline, no ring, no glow"
90
+ placeholder: "italic serif ({typography.font-family-primary}), {color.muted}"
91
+ badge:
92
+ shape: "0px radius, thin border"
93
+ text: "text-xs uppercase tracking-[0.25em], {color.muted}"
94
+ nav:
95
+ style: "minimal horizontal with border-bottom separator"
96
+ links: "uppercase text-xs tracking-[0.2em], hover shifts to {color.primary}"
97
+ layout:
98
+ archetype: "asymmetric-editorial"
99
+ max-width: "max-w-[1600px]"
100
+ section-spacing: "py-24 to py-32 — massive vertical breathing room"
101
+ grid-gap: "gap-12 to gap-16"
102
+ asymmetry: "7/5 or 4-offset-by-2 column splits, bottom-left alignment"
103
+ surfaces: "paper noise at 2% opacity — fixed overlay, tactile quality"
104
+ decoration: "vertical text labels (writing-mode: vertical-rl), visible 4-line grid, decorative h-px dividers"
105
+
106
+ constraints:
107
+ never:
108
+ - "border-radius above 0px — everything perfectly rectangular, no exceptions"
109
+ - "harsh or prominent shadows — only soft rgba with low opacity"
110
+ - "pure black (#000000) or pure white (#FFFFFF) — charcoal and alabaster only"
111
+ - "fast animations under 500ms — luxury is deliberate and slow"
112
+ - "vibrant or saturated colors — monochromatic with gold accent only"
113
+ - "centered symmetric layouts — use asymmetry, offset columns, intentional imbalance"
114
+ - "decorative display fonts — only Playfair Display and Inter"
115
+ - "prominent icons — if needed, lucide thin strokes only, functional not decorative"
116
+ - "gold as dominant area color — accent for hover/focus only, never primary fill"
117
+ - "ease-in-out or ease-in easing — mechanical feel breaks luxury"
118
+ always:
119
+ - "grayscale filter on all images by default, color reveals on hover (1500-2000ms)"
120
+ - "gold (#D4AF37) appears on hover states — underlines, borders, text color shifts"
121
+ - "extreme type scale contrast — massive serif headlines vs tiny uppercase labels"
122
+ - "generous negative space — more than feels comfortable"
123
+ - "paper noise texture overlay (2% opacity, fixed position)"
124
+ - "inner borders (inset shadows) on images for subtle framing"
125
+ - "visible architectural grid lines at low opacity"
126
+
127
+ effects:
128
+ interaction-vocabulary: [gold-slide, cinematic-reveal, shadow-deepen, slow-invert]
129
+ hover:
130
+ card: "shadow-deepen — shadow evolves sm→md, barely visible bg shift"
131
+ button-primary: "gold-slide — gold overlay translates from left, shadow deepens"
132
+ button-secondary: "slow-invert — background fills dark, text inverts white"
133
+ image: "cinematic-reveal — grayscale→color over 1500-2000ms, scale-105, shadow deepens"
134
+ link: "gold accent — text shifts to {color.primary} over 500ms"
135
+ active:
136
+ button: "shadow-deepen — shadow increases, no scale"
137
+ focus:
138
+ input: "border-b color shifts to {color.primary} — gold underline only"
139
+ general: "ring-1 ring-{color.on-background} — minimal, elegant"
140
+ transition: "duration-500 to duration-700, ease-out or cubic-bezier(0.25, 0.46, 0.45, 0.94)"
141
+ ambient:
142
+ - "grayscale-hold — all images rest in grayscale, color is earned on interaction"
143
+
61
144
  compatibility: [art-deco, academia]
62
145
  clashes: [neubrutalism, retro, maximalism]
@@ -54,5 +54,88 @@ dark_mode:
54
54
  surface: "#2B2930"
55
55
  on-background: "#E6E1E5"
56
56
 
57
+ intensity:
58
+ variance: 4 # organic blur shapes and asymmetric elevation create interest, but grids stay structured
59
+ motion: 6 # state layers animate smoothly, scale feedback on press, glow reveals on hover
60
+ density: 4 # generous padding, relaxed spacing, content breathes within tonal surfaces
61
+
62
+ patterns:
63
+ card:
64
+ border: "none — tonal surface separation, not borders"
65
+ shadow: "{elevation.shadow-sm} resting, {elevation.shadow-md} on hover"
66
+ radius: "{shape.border-radius-xl}"
67
+ background: "{color.surface}"
68
+ hover: "hover:scale-[1.02] with shadow transition"
69
+ button-primary:
70
+ background: "{color.primary}"
71
+ border: "none"
72
+ shadow: "none resting, {elevation.shadow-md} on hover"
73
+ text: "weight 500, sentence case, {color.on-primary}"
74
+ radius: "rounded-full"
75
+ state-layer: "bg-{color.primary}/90 on hover, /80 on active"
76
+ button-secondary:
77
+ background: "{color.surface}"
78
+ border: "none"
79
+ text: "weight 500, sentence case, on-secondary-container"
80
+ radius: "rounded-full"
81
+ state-layer: "bg-{color.primary}/10 on hover"
82
+ input:
83
+ border: "2px solid {shape.border-color} on bottom only"
84
+ radius: "rounded-t-lg, square bottom"
85
+ background: "surface-container-low ({color.surface} darker)"
86
+ focus: "bottom border shifts to {color.primary}"
87
+ height: "h-14"
88
+ badge:
89
+ shape: "rounded-full"
90
+ text: "text-xs font-medium"
91
+ background: "{color.primary}/15 with {color.primary} text"
92
+ nav:
93
+ style: "horizontal tabs or bottom nav"
94
+ selection: "underline indicator in {color.primary} for tabs"
95
+ hover: "bg-{color.primary}/10 state layer"
96
+ layout:
97
+ archetype: "tonal-surface-hierarchy"
98
+ max-width: "container mx-auto"
99
+ section-spacing: "py-12 to py-24"
100
+ grid-gap: "gap-6 to gap-8"
101
+ surfaces: "tonal — never pure white, layer: background→surface-container→surface-container-low"
102
+ decoration: "organic blur shapes (blur-3xl) in primary/secondary/tertiary at 10-30% opacity"
103
+ hero: "extra-large radius (rounded-[48px]) container with surface-container background"
104
+
105
+ constraints:
106
+ never:
107
+ - "pure white (#FFFFFF) backgrounds — always use tinted surface color"
108
+ - "rectangular buttons — all buttons must be rounded-full (pill-shaped)"
109
+ - "heavy drop shadows — subtle elevation with tonal surfaces preferred"
110
+ - "hover color changes on solid buttons — use state layers (opacity overlays) instead"
111
+ - "sharp corners on major containers — 24px minimum card radius"
112
+ - "borders for container separation — use tonal backgrounds instead"
113
+ - "pure black text — use on-surface (#1C1B1F) with warmth"
114
+ - "flat inputs — filled text field style with bottom border required"
115
+ always:
116
+ - "pill-shaped (rounded-full) buttons on every variant"
117
+ - "organic blur shapes in hero and key sections"
118
+ - "state layer interaction model (opacity overlays, not color shifts)"
119
+ - "active:scale-95 on all clickable elements for tactile feedback"
120
+ - "tonal surface hierarchy (background→container→container-low)"
121
+ - "Material easing cubic-bezier(0.2, 0, 0, 1) on all transitions"
122
+ - "generous border radii: 24px cards, 32-48px hero sections"
123
+
124
+ effects:
125
+ interaction-vocabulary: [state-layer, tactile-press, tonal-step, glow-reveal, hover-scale]
126
+ hover:
127
+ card: "hover-scale — scale-[1.02], shadow steps sm→md"
128
+ button-primary: "state-layer — bg-{color.primary}/90 overlay"
129
+ button-secondary: "state-layer — bg-{color.primary}/10 overlay"
130
+ image: "hover-scale — scale-105 with overflow-hidden"
131
+ active:
132
+ button: "tactile-press — active:scale-95, state-layer at /80"
133
+ focus:
134
+ general: "ring-2 ring-{color.primary} ring-offset-2"
135
+ transition: "duration-200 to duration-300, cubic-bezier(0.2, 0, 0, 1)"
136
+ ambient:
137
+ - "glow-reveal — hidden blur behind badges reveals on hover (opacity-0→30)"
138
+ - "blob-drift — organic background shapes with mix-blend-multiply"
139
+
57
140
  compatibility: [professional, fluent]
58
141
  clashes: [neubrutalism, monochrome, retro]
@@ -54,5 +54,97 @@ tokens:
54
54
  duration-normal: "400ms"
55
55
  easing: "cubic-bezier(0.34, 1.56, 0.64, 1)"
56
56
 
57
+ intensity:
58
+ variance: 10 # broken grids, asymmetric offsets, rotated cards, clashing borders — chaos is the system
59
+ motion: 8 # floating shapes, gradient shifts, bouncy hovers, wiggle animations on everything
60
+ density: 9 # pattern-on-pattern, floating decorations, stacked shadows, emoji accents — no empty pixels
61
+
62
+ patterns:
63
+ card:
64
+ border: "border-4 solid, accent color rotated per card (clashes with background)"
65
+ shadow: "hard stacked — 8px 8px 0 {color-rotate.cyan}, 16px 16px 0 {color-rotate.magenta}"
66
+ radius: "rounded-3xl"
67
+ background: "bg-[#2D1B4E]/80 with backdrop-blur-sm"
68
+ header: "border-b-4 border-dashed in different accent, optional background tint"
69
+ asymmetry: "clip-path corner cut OR rotate-1 to rotate-2"
70
+ button-primary:
71
+ background: "gradient across 3 accents — from-{color-rotate.magenta} via-{color-rotate.purple} to-{color-rotate.cyan}"
72
+ border: "border-4 border-{color-rotate.yellow} — clashing"
73
+ shadow: "glow + hard shadow combined"
74
+ text: "font-black uppercase tracking-widest"
75
+ radius: "rounded-full"
76
+ size: "h-14 px-10 default, h-16 px-12 large"
77
+ button-secondary:
78
+ background: "transparent"
79
+ border: "border-4 border-dashed border-{color-rotate} — rotated accent"
80
+ shadow: "none resting, glow on hover"
81
+ text: "font-bold uppercase"
82
+ radius: "rounded-full"
83
+ fill: "hover fills solid accent, border becomes solid, scale 105%"
84
+ input:
85
+ border: "border-4 border-{color-rotate} — thick and colored"
86
+ radius: "rounded-full for single-line, rounded-2xl for textarea"
87
+ background: "bg-[#2D1B4E]/50 with backdrop-blur-sm"
88
+ focus: "double ring — ring-4 ring-{accent-1}/30 ring-offset-2 ring-offset-{accent-2}, glow shadow"
89
+ text: "text-lg font-bold text-white"
90
+ badge:
91
+ shape: "rounded-full, border-4, accent color per badge"
92
+ text: "font-black text-sm uppercase tracking-widest"
93
+ decoration: "rotate-2 to rotate-6, floating with bounce animation"
94
+ shadow: "glow shadow in badge accent color"
95
+ nav:
96
+ logo: "display font, gradient text or accent color, animated gradient shift"
97
+ links: "bold uppercase, hover scales 110% with color shift"
98
+ mobile: "full-screen overlay with floating shapes and gradient mesh"
99
+ layout:
100
+ archetype: "broken-grid-carnival"
101
+ max-width: "max-w-7xl, hero full-bleed"
102
+ section-spacing: "py-24 to py-32"
103
+ grid-gap: "gap-6 to gap-12, deliberately varied"
104
+ asymmetry: "translate-y offsets on alternating items, rotate-1/-1 on cards, negative margins for overlap"
105
+ surfaces: "mandatory 2-3 pattern layers — dots + stripes + gradient mesh, per section"
106
+ decoration: "5-10 floating SVG shapes per section, oversized background text at opacity-20"
107
+
108
+ constraints:
109
+ never:
110
+ - "matching border and background colors — always clash (magenta bg = yellow border)"
111
+ - "single-layer shadows — minimum 2 layers, preferably 3"
112
+ - "neutral or muted borders — every border is a saturated accent color"
113
+ - "symmetrical grid alignment — offset, rotate, or skew at least every other element"
114
+ - "empty backgrounds — minimum 2 pattern overlays per section"
115
+ - "single accent color per section — rotate through all 5 systematically"
116
+ - "subtle or gentle hover states — every hover combines scale + color + shadow change"
117
+ - "thin borders (1px) — minimum border-2, standard is border-4"
118
+ always:
119
+ - "5-color accent rotation across sections and repeated elements (modulo cycling)"
120
+ - "hard stacked shadows (8px/16px/24px increments) in rotating accent colors"
121
+ - "pattern-on-pattern layering — dots, stripes, checkerboard, gradient mesh"
122
+ - "floating decorative shapes (stars, sparkles, emoji) with animation"
123
+ - "border-4 or border-8 on every card and container"
124
+ - "text-shadow stacking on headlines (2-3 layers in different accent colors)"
125
+ - "backdrop-blur on semi-transparent containers"
126
+ - "display font (Unbounded/Bungee) on hero headlines"
127
+
128
+ effects:
129
+ interaction-vocabulary: [bounce-lift, shadow-stack-grow, color-clash-swap, wiggle-shake, glow-burst]
130
+ hover:
131
+ card: "bounce-lift — scale-[1.02], rotate increases, shadow adds third layer"
132
+ button-primary: "glow-burst — scale-110%, glow opacity +0.2, gradient position shifts"
133
+ button-secondary: "color-clash-swap — fills solid accent, border becomes solid, scale 105%"
134
+ link: "color-clash-swap — text shifts to next accent in rotation"
135
+ badge: "wiggle-shake — rotate oscillates +-3deg rapidly"
136
+ active:
137
+ button: "bounce-lift reverse — scale-95%, shadow reduces to single layer"
138
+ focus:
139
+ input: "glow-burst — double ring system, ring-4 + ring-offset-4 in contrasting accents"
140
+ general: "ring-4 ring-{color-rotate.magenta} ring-offset-4 ring-offset-{color-rotate.cyan}"
141
+ transition: "duration-200 to duration-300, cubic-bezier(0.34, 1.56, 0.64, 1) — bouncy overshoot"
142
+ ambient:
143
+ - "float-drift — decorative shapes bob up/down 10-20px (3-5s ease-in-out infinite)"
144
+ - "wiggle-spin — star/sparkle shapes rotate slowly (8-15s linear infinite)"
145
+ - "gradient-shift — animated gradient text cycles background-position (4s linear infinite)"
146
+ - "pulse-glow — glow shadows oscillate opacity on featured elements (2s ease-in-out)"
147
+ - "bounce-subtle — emoji and shape decorations bounce gently (2-3s ease-in-out infinite)"
148
+
57
149
  compatibility: [vaporwave, cyberpunk]
58
150
  clashes: [swiss-minimalist, professional, monochrome]
@@ -57,5 +57,80 @@ tokens:
57
57
  base: "#12121A"
58
58
  elevated: "#1A1A24"
59
59
 
60
+ intensity:
61
+ variance: 2 # calm, predictable layouts — floating in dark space
62
+ motion: 4 # smooth subtle interactions with ambient glow shifts
63
+ density: 2 # extremely spacious — darkspace as breathing room
64
+
65
+ patterns:
66
+ card:
67
+ background: "rgba(26,26,36,0.6)"
68
+ blur: "backdrop-blur-[8px]"
69
+ border: "{shape.border-width} solid {shape.border-color}"
70
+ shadow: "{elevation.shadow-md}"
71
+ radius: "{shape.border-radius-md}"
72
+ button-primary:
73
+ background: "{color.primary}"
74
+ border: "none"
75
+ shadow: "0 0 20px rgba(245,158,11,0.15) resting"
76
+ text: "weight 500, sentence case, {color.on-primary}"
77
+ radius: "{shape.border-radius-sm}"
78
+ button-secondary:
79
+ background: "transparent"
80
+ border: "{shape.border-width} solid rgba(255,255,255,0.15)"
81
+ text: "weight 400, {color.on-background}"
82
+ radius: "{shape.border-radius-sm}"
83
+ input:
84
+ background: "rgba(26,26,36,0.6)"
85
+ blur: "backdrop-blur-[8px]"
86
+ border: "{shape.border-width} solid {shape.border-color}"
87
+ radius: "{shape.border-radius-sm}"
88
+ focus: "border-{color.primary}/50, ring-2 ring-{color.primary}/20, ambient glow"
89
+ badge:
90
+ background: "rgba(245,158,11,0.15) or glass"
91
+ shape: "rounded-full"
92
+ text: "text-xs, font-medium"
93
+ nav:
94
+ background: "glass panel — rgba(18,18,26,0.8) with backdrop-blur"
95
+ border: "{shape.border-width} solid {shape.border-color}"
96
+ position: "sticky"
97
+ layout:
98
+ archetype: "floating-dark-space"
99
+ max-width: "max-w-6xl"
100
+ section-spacing: "py-24 to py-40 — let dark space breathe"
101
+ grid-gap: "gap-6 to gap-8"
102
+ surfaces: "layered slate tones ({layers.deep} → {layers.base} → {layers.elevated})"
103
+ decoration: "ambient orbs with amber glow, radial gradients, subtle noise"
104
+
105
+ constraints:
106
+ never:
107
+ - "pure black (#000000) as background — use rich slate tones instead"
108
+ - "harsh high-contrast borders — keep border opacity below 15%"
109
+ - "saturated colors beyond amber accent — cool dark palette only"
110
+ - "thick borders (>1px) — subtle and low-opacity always"
111
+ - "bouncy or elastic animations — smooth ease-out only"
112
+ - "flat shadowless elements — everything needs ambient depth cues"
113
+ always:
114
+ - "at least 3 distinct dark layers visible ({layers.deep}, {layers.base}, {layers.elevated})"
115
+ - "warm amber ({color.primary}) as the sole accent — no cold blues"
116
+ - "ambient glow on interactive elements (buttons, highlighted cards)"
117
+ - "glass-effect cards with backdrop-blur and semi-transparent backgrounds"
118
+ - "generous darkspace padding between sections"
119
+ - "subtle noise texture (0.02 opacity) for atmospheric grain"
120
+
121
+ effects:
122
+ interaction-vocabulary: [glow-intensify, alpha-step, soft-press, border-brighten]
123
+ hover:
124
+ card: "alpha-step — border opacity brightens 0.08→0.15, bg opacity increases"
125
+ button: "glow-intensify — glow radius and opacity increase (0.15→0.4)"
126
+ active:
127
+ button: "soft-press — scale-[0.98], glow dims slightly"
128
+ focus:
129
+ general: "ring-2 ring-{color.primary}/50 ring-offset-2 ring-offset-{color.background}"
130
+ transition: "duration-200 to duration-300, ease-out"
131
+ ambient:
132
+ - "orb-drift — large blurred amber circles at 0.02-0.04 opacity, fixed positioning"
133
+ - "glow-pulse — hero badge pulsing dot with amber glow"
134
+
60
135
  compatibility: [modern-dark, terminal]
61
136
  clashes: [botanical, flat-design]
@@ -55,5 +55,93 @@ tokens:
55
55
 
56
56
  gradient-text: "bg-gradient-to-b from-white via-white/95 to-white/70"
57
57
 
58
+ intensity:
59
+ variance: 6 # asymmetric bento grids, varied card spans, off-canvas blob positions
60
+ motion: 8 # animated blobs (8-10s), mouse-tracking spotlights, scroll parallax, stagger entrances
61
+ density: 5 # balanced — generous section spacing, moderate card padding
62
+
63
+ patterns:
64
+ card:
65
+ background: "bg-gradient-to-b from-white/[0.08] to-white/[0.02]"
66
+ border: "1px solid rgba(255,255,255,0.06)"
67
+ shadow: "multi-layer — border-highlight + soft-diffuse + ambient-darkness"
68
+ radius: "{shape.border-radius-md}"
69
+ hover: "border brightens to white/10, accent glow appears, spotlight tracks mouse"
70
+ highlight: "1px gradient at top edge (inner glow line)"
71
+ button-primary:
72
+ background: "{color.primary}"
73
+ border: "inset shadow instead of border"
74
+ shadow: "multi-layer — 0 0 0 1px {color.primary}/50, 0 4px 12px {color.primary}/30, inset 0 1px 0 white/20"
75
+ text: "weight 500, sentence case, white"
76
+ radius: "{shape.border-radius-sm}"
77
+ shine: "pseudo-element gradient sweep on hover"
78
+ button-secondary:
79
+ background: "rgba(255,255,255,0.05)"
80
+ border: "inset shadow only"
81
+ text: "weight 500, {color.on-background}"
82
+ radius: "{shape.border-radius-sm}"
83
+ hover: "bg-white/[0.08], subtle outer glow"
84
+ input:
85
+ background: "#0F0F12"
86
+ border: "1px solid rgba(255,255,255,0.10)"
87
+ radius: "{shape.border-radius-sm}"
88
+ focus: "border-{color.primary}, accent glow ring"
89
+ text: "text-gray-100, placeholder text-gray-500"
90
+ badge:
91
+ shape: "rounded-full"
92
+ border: "1px solid {color.primary}/30"
93
+ text: "font-mono text-xs tracking-widest"
94
+ nav:
95
+ background: "bg-{color.background}/95 backdrop-blur-xl"
96
+ border: "border-b border-white/[0.06]"
97
+ style: "inline links desktop, animated hamburger mobile"
98
+ layout:
99
+ archetype: "asymmetric-bento"
100
+ max-width: "container responsive"
101
+ section-spacing: "py-24 to py-32"
102
+ grid-gap: "gap-4 to gap-8"
103
+ grid: "6-column base, mix col-span-2/3/4, variable row heights"
104
+ surfaces: "never flat — layered gradients + noise texture + grid overlay + ambient blobs"
105
+ decoration: "animated gradient blobs (900-1400px, blur-[150px]), noise at 1.5% opacity, 64px grid at 2%"
106
+ dividers: "border-t border-white/[0.06] or gradient line via-white/10"
107
+
108
+ constraints:
109
+ never:
110
+ - "flat single-color backgrounds — always layer gradients, noise, and ambient light"
111
+ - "pure black (#000000) — use near-blacks like #050506 or #020203"
112
+ - "pure white text — use #EDEDEF or similar off-white"
113
+ - "large hover movements (>8px) — precision, not playfulness"
114
+ - "uniform grids — bento layouts must have variety in card sizes"
115
+ - "harsh visible borders — borders at 6-10% white opacity maximum"
116
+ - "accent color overuse — monochromatic with selective accent highlights"
117
+ - "bouncy or spring animations — expo-out easing only"
118
+ - "missing glow on accent buttons — soft light emission is part of the language"
119
+ always:
120
+ - "multi-layer shadows (border-highlight + diffuse + ambient + optional glow)"
121
+ - "animated ambient blobs in background for cinematic lighting"
122
+ - "gradient text on headlines (white via-white/95 to-white/70 vertical fade)"
123
+ - "noise texture overlay at 1-2% opacity"
124
+ - "mouse-tracking spotlight effect on interactive surfaces"
125
+ - "inner highlight (inset 0 1px 0 white/10) on elevated surfaces"
126
+ - "near-black backgrounds, never pure black"
127
+
128
+ effects:
129
+ interaction-vocabulary: [spotlight-track, glow-intensify, precision-lift, border-brighten, shine-sweep]
130
+ hover:
131
+ card: "spotlight-track — radial gradient follows cursor (300px, 15% opacity), border-brighten"
132
+ button-primary: "glow-intensify — glow radius/opacity increase, shine-sweep across surface"
133
+ button-secondary: "border-brighten — bg-white/[0.08], subtle outer glow appears"
134
+ link: "color brightens, subtle underline"
135
+ active:
136
+ button: "scale-[0.98], shadow reduces depth"
137
+ focus:
138
+ general: "ring-2 ring-{color.primary}/50 ring-offset-2 ring-offset-{color.background}"
139
+ transition: "duration-200 to duration-300, cubic-bezier(0.16, 1, 0.3, 1)"
140
+ ambient:
141
+ - "blob-float — large gradient blobs drift slowly (8-10s ease-in-out infinite, ±20px)"
142
+ - "blob-pulse — accent blob in lower area pulses opacity"
143
+ - "fade-up-stagger — entrance: opacity 0→1, y 24→0, 600ms with 0.08s child stagger"
144
+ - "parallax-fade — hero fades/scales/translates on scroll"
145
+
58
146
  compatibility: [minimal-dark, glassmorphism]
59
147
  clashes: [flat-design, retro, neubrutalism]
@@ -62,5 +62,73 @@ dark_mode:
62
62
  on-background: "#FFFFFF"
63
63
  border-color: "#FFFFFF"
64
64
 
65
+ intensity:
66
+ variance: 3 # editorial asymmetry through type scale, but structurally disciplined
67
+ motion: 1 # near-zero motion — instant binary state changes
68
+ density: 2 # dramatic negative space, editorial breathing room
69
+
70
+ patterns:
71
+ card:
72
+ border: "{shape.border-width} solid {shape.border-color}"
73
+ shadow: "none — zero shadows, depth from inversion and borders"
74
+ radius: "0px"
75
+ background: "{color.background}"
76
+ button-primary:
77
+ background: "{color.primary}"
78
+ border: "none"
79
+ text: "uppercase, tracking-widest, font-medium, text-sm"
80
+ radius: "0px"
81
+ button-secondary:
82
+ background: "transparent"
83
+ border: "{shape.border-width} solid {shape.border-color}"
84
+ text: "uppercase, tracking-widest, {color.on-background}"
85
+ radius: "0px"
86
+ input:
87
+ border: "border-b {shape.border-width} solid {shape.border-color}"
88
+ radius: "0px"
89
+ background: "{color.background}"
90
+ focus: "border thickens to 4px — border-only focus, no ring, no glow"
91
+ badge:
92
+ shape: "0px radius, thin border"
93
+ text: "uppercase, tracking-widest, text-xs"
94
+ nav:
95
+ style: "minimal — logo + sparse links, heavy rule below"
96
+ links: "uppercase tracking-wider, underline appears on hover"
97
+ layout:
98
+ archetype: "editorial-whitespace"
99
+ max-width: "max-w-6xl"
100
+ section-spacing: "py-24 to py-40 — extreme negative space"
101
+ grid-gap: "gap-8 to gap-16"
102
+ surfaces: "horizontal lines, grid, and noise texture at very low opacity — paper-like quality"
103
+ dividers: "4px to 8px black horizontal rules between all major sections"
104
+
105
+ constraints:
106
+ never:
107
+ - "any color besides black, white, and gray — palette is absolute"
108
+ - "box-shadow of any kind — depth from inversion and border weight only"
109
+ - "border-radius above 0px — sharp 90-degree corners everywhere"
110
+ - "gradients — solid fills only"
111
+ - "rounded or pill shapes — angular geometry is non-negotiable"
112
+ - "slow easing or bouncy animation — instant or 100ms maximum"
113
+ - "backdrop-blur or glass effects — strictly flat and opaque"
114
+ always:
115
+ - "serif typography for display and body (Playfair Display, Source Serif 4)"
116
+ - "oversized headlines (8xl to 9xl) as primary visual element"
117
+ - "heavy horizontal rules (4px-8px) between sections"
118
+ - "color inversion (black bg / white text) for emphasis instead of accent colors"
119
+ - "texture overlays (lines, grid, noise) for paper-like depth"
120
+ - "dramatic negative space framing all content"
121
+
122
+ effects:
123
+ interaction-vocabulary: [color-invert, border-thicken, instant-snap]
124
+ hover:
125
+ card: "color-invert — full bg/text/border inversion, 100ms"
126
+ button: "color-invert — black/white swap, instant"
127
+ active:
128
+ button: "instant-snap — no transform, color change only"
129
+ focus:
130
+ general: "outline 3px solid {color.primary} offset 3px — high contrast, no ring"
131
+ transition: "duration-0 to duration-100, linear"
132
+
65
133
  compatibility: [swiss-minimalist, newsprint, bold-typography]
66
134
  clashes: [vaporwave, maximalism, cyberpunk]
@@ -54,5 +54,88 @@ dark_mode:
54
54
  on-background: "#F0F0F0"
55
55
  border-color: "#F0F0F0"
56
56
 
57
+ intensity:
58
+ variance: 8
59
+ motion: 5
60
+ density: 6
61
+
62
+ patterns:
63
+ card:
64
+ border: "{shape.border-width} solid {shape.border-color}"
65
+ shadow: "{elevation.shadow-md} to {elevation.shadow-lg}"
66
+ radius: "rounded-none"
67
+ background: "{color.background}"
68
+ header: "colored background with border-b-4 separator"
69
+ button-primary:
70
+ background: "{color.accent}"
71
+ border: "{shape.border-width} solid {shape.border-color}"
72
+ shadow: "{elevation.shadow-sm}"
73
+ text: "uppercase, weight {typography.font-weight-heading}, tracking-wide"
74
+ radius: "rounded-none"
75
+ button-secondary:
76
+ background: "{color.secondary}"
77
+ border: "{shape.border-width} solid {shape.border-color}"
78
+ shadow: "{elevation.shadow-sm}"
79
+ text: "uppercase, weight {typography.font-weight-heading}, tracking-wide"
80
+ radius: "rounded-none"
81
+ input:
82
+ border: "{shape.border-width} solid {shape.border-color}"
83
+ radius: "rounded-none"
84
+ background: "{color.background}"
85
+ focus: "background fills {color.secondary}, shadow appears, no ring"
86
+ height: "h-14 to h-20"
87
+ badge:
88
+ shape: "rounded-full OR rounded-none with {shape.border-width} border"
89
+ text: "font-black text-sm uppercase tracking-widest"
90
+ decoration: "rotate-1 to rotate-3, absolute positioned"
91
+ nav:
92
+ logo: "bordered box with accent background, uppercase"
93
+ links: "bold uppercase, hover adds border + background + shadow"
94
+ mobile: "hamburger as bordered square with shadow"
95
+ layout:
96
+ archetype: "sticker-collage"
97
+ max-width: "max-w-7xl"
98
+ section-spacing: "py-16 to py-32"
99
+ grid-gap: "gap-8 to gap-12"
100
+ asymmetry: "60/40 splits, offset columns, staggered grids"
101
+ surfaces: "halftone dots, grid lines, or noise overlay — never flat"
102
+ decoration: "rotated sticker elements, overlapping shapes, large background text"
103
+
104
+ constraints:
105
+ never:
106
+ - "backdrop-filter or blur — conflicts with flat, structural aesthetic"
107
+ - "gradient backgrounds — solid color blocks only"
108
+ - "box-shadow with blur > 0 — all shadows must be hard-offset"
109
+ - "border-radius between 1px and 9998px — binary: rounded-none or rounded-full"
110
+ - "subtle grays (#333, #666, #999) — pure black or a saturated color"
111
+ - "ease-in-out easing — mechanical feel requires linear or ease-out"
112
+ - "large empty whitespace — fill with texture, patterns, or decorative elements"
113
+ - "opacity/transparency on surfaces — except texture overlays at low opacity"
114
+ always:
115
+ - "hard-offset shadows (x y 0px 0px) on every elevated element"
116
+ - "visible border-4 border-black on every interactive surface"
117
+ - "uppercase on headings, labels, and buttons"
118
+ - "high contrast — WCAG AA minimum, no subtle gray text"
119
+ - "slight rotation (rotate-1 to rotate-3) on at least some containers"
120
+ - "texture overlay (halftone, grid, or noise) on section backgrounds"
121
+
122
+ effects:
123
+ interaction-vocabulary: [press-down, lift-shadow, snap-rotate, snap-fill]
124
+ hover:
125
+ card: "lift-shadow"
126
+ button: "snap-fill — background darken, fast snap"
127
+ link: "snap-fill — border + background + shadow appear instantly"
128
+ badge: "snap-rotate — rotates further on hover"
129
+ active:
130
+ button: "press-down — translate covers shadow, mechanical click"
131
+ focus:
132
+ input: "snap-fill — background becomes {color.secondary}"
133
+ general: "ring-2 ring-black ring-offset-2"
134
+ transition: "duration-100 to duration-200, ease-linear or ease-out"
135
+ ambient:
136
+ - "slow-spin on decorative stars (10s linear infinite)"
137
+ - "pulse on CTA elements"
138
+ - "bounce on attention badges"
139
+
57
140
  compatibility: [bento-grid, kinetic-typography]
58
141
  clashes: [glassmorphism, claymorphism, liquid-glass]