savant-code 0.0.21 → 0.0.23

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 (79) hide show
  1. package/README.md +16 -8
  2. package/launcher.js +192 -5
  3. package/package.json +3 -2
  4. package/savant-design-systems/SKILL.md +12 -0
  5. package/savant-design-systems/manifest.json +2541 -0
  6. package/savant-design-systems/resources/airbnb-design-analysis.json +983 -0
  7. package/savant-design-systems/resources/airtable-design-analysis.json +931 -0
  8. package/savant-design-systems/resources/apple-design-analysis.json +920 -0
  9. package/savant-design-systems/resources/binance-design-analysis.json +1068 -0
  10. package/savant-design-systems/resources/bmw-design-analysis.json +912 -0
  11. package/savant-design-systems/resources/bmw-m-design-analysis.json +824 -0
  12. package/savant-design-systems/resources/bugatti-design-analysis.json +746 -0
  13. package/savant-design-systems/resources/cal-com-design-analysis.json +913 -0
  14. package/savant-design-systems/resources/claude-design-analysis.json +1007 -0
  15. package/savant-design-systems/resources/clay-design-analysis.json +919 -0
  16. package/savant-design-systems/resources/clickhouse-design-analysis.json +926 -0
  17. package/savant-design-systems/resources/cohere-design-analysis.json +725 -0
  18. package/savant-design-systems/resources/coinbase-design-analysis.json +998 -0
  19. package/savant-design-systems/resources/composio-design-analysis.json +851 -0
  20. package/savant-design-systems/resources/cursor-design-analysis.json +934 -0
  21. package/savant-design-systems/resources/dell-1996-inspired.json +1042 -0
  22. package/savant-design-systems/resources/elevenlabs.json +551 -0
  23. package/savant-design-systems/resources/expo-design-analysis.json +879 -0
  24. package/savant-design-systems/resources/ferrari-design-analysis.json +874 -0
  25. package/savant-design-systems/resources/figma-design-analysis.json +928 -0
  26. package/savant-design-systems/resources/framer-design-analysis.json +891 -0
  27. package/savant-design-systems/resources/hashicorp-design-analysis.json +909 -0
  28. package/savant-design-systems/resources/hp-design-analysis.json +1077 -0
  29. package/savant-design-systems/resources/ibm-design-analysis.json +881 -0
  30. package/savant-design-systems/resources/intercom-design-analysis.json +876 -0
  31. package/savant-design-systems/resources/kraken.json +172 -0
  32. package/savant-design-systems/resources/lamborghini.json +335 -0
  33. package/savant-design-systems/resources/linear-design-analysis.json +890 -0
  34. package/savant-design-systems/resources/lovable.json +345 -0
  35. package/savant-design-systems/resources/mastercard.json +412 -0
  36. package/savant-design-systems/resources/meta-design-analysis.json +1121 -0
  37. package/savant-design-systems/resources/minimax-design-analysis.json +1220 -0
  38. package/savant-design-systems/resources/mintlify-design-analysis.json +1418 -0
  39. package/savant-design-systems/resources/miro-design-analysis.json +1364 -0
  40. package/savant-design-systems/resources/mistral-ai-design-analysis.json +1286 -0
  41. package/savant-design-systems/resources/mongodb-design-analysis.json +1276 -0
  42. package/savant-design-systems/resources/nike-design-analysis.json +938 -0
  43. package/savant-design-systems/resources/nintendo-com-2001-analysis.json +1082 -0
  44. package/savant-design-systems/resources/notion-design-analysis.json +1368 -0
  45. package/savant-design-systems/resources/nvidia-design-analysis.json +1023 -0
  46. package/savant-design-systems/resources/ollama-design-analysis.json +863 -0
  47. package/savant-design-systems/resources/opencode-design-analysis.json +806 -0
  48. package/savant-design-systems/resources/pinterest-design-analysis.json +953 -0
  49. package/savant-design-systems/resources/playstation-design-analysis.json +1053 -0
  50. package/savant-design-systems/resources/posthog-design-analysis.json +1146 -0
  51. package/savant-design-systems/resources/raycast.json +716 -0
  52. package/savant-design-systems/resources/renault-design-analysis.json +916 -0
  53. package/savant-design-systems/resources/replicate-design-analysis.json +986 -0
  54. package/savant-design-systems/resources/resend-design-analysis.json +942 -0
  55. package/savant-design-systems/resources/revolut-design-analysis.json +1008 -0
  56. package/savant-design-systems/resources/runwayml.json +291 -0
  57. package/savant-design-systems/resources/sanity.json +404 -0
  58. package/savant-design-systems/resources/sentri-inspired-design-analysis.json +953 -0
  59. package/savant-design-systems/resources/shopifi-inspired-design-analysis.json +921 -0
  60. package/savant-design-systems/resources/slacc-inspired-design-analysis.json +799 -0
  61. package/savant-design-systems/resources/spacex-inspired-design-analysis.json +598 -0
  62. package/savant-design-systems/resources/spotify.json +293 -0
  63. package/savant-design-systems/resources/starbucks.json +627 -0
  64. package/savant-design-systems/resources/stripi-inspired-design-analysis.json +805 -0
  65. package/savant-design-systems/resources/supabase.json +509 -0
  66. package/savant-design-systems/resources/superhumon-inspired-design-analysis.json +740 -0
  67. package/savant-design-systems/resources/tesla.json +333 -0
  68. package/savant-design-systems/resources/theverge.json +386 -0
  69. package/savant-design-systems/resources/together-ai-inspired-design-analysis.json +1099 -0
  70. package/savant-design-systems/resources/uber-inspired-design-analysis.json +1067 -0
  71. package/savant-design-systems/resources/vercel-inspired-design-analysis.json +1261 -0
  72. package/savant-design-systems/resources/vodafone-inspired-design-analysis.json +912 -0
  73. package/savant-design-systems/resources/voltagent-inspired-design-analysis.json +929 -0
  74. package/savant-design-systems/resources/warp-inspired-design-analysis.json +946 -0
  75. package/savant-design-systems/resources/webflow-inspired-design-analysis.json +1033 -0
  76. package/savant-design-systems/resources/wired-inspired-design-analysis.json +877 -0
  77. package/savant-design-systems/resources/wise-inspired-design-analysis.json +916 -0
  78. package/savant-design-systems/resources/xai-inspired-design-analysis.json +820 -0
  79. package/savant-design-systems/resources/zapier-inspired-design-analysis.json +915 -0
@@ -0,0 +1,293 @@
1
+ {
2
+ "schemaVersion": "1",
3
+ "id": "spotify",
4
+ "displayName": "Spotify",
5
+ "description": "Design system Spotify",
6
+ "source": "embedded",
7
+ "status": "curated-reference",
8
+ "targets": [
9
+ "terminal",
10
+ "react"
11
+ ],
12
+ "contentPath": "packages/design-systems/library/spotify.design.md",
13
+ "sourceContentHash": "72e964a6cf551d0603f9854f2f42ee08e97ad4d9e17e037f50f6233508288295",
14
+ "normalizedContentHash": "335f5a19ec2381adb55204a7abd41c408d90e596d8f86b12f5b25abce14adf24",
15
+ "provenance": {
16
+ "sourceRepository": "VoltAgent/awesome-design-md",
17
+ "sourceRevision": "working-tree-curated-snapshot",
18
+ "sourcePath": "packages/design-systems/library/spotify.design.md",
19
+ "license": "MIT"
20
+ },
21
+ "fonts": [],
22
+ "tokens": {
23
+ "colors": {
24
+ "primary": "#121212",
25
+ "foreground": "#181818",
26
+ "background": "#1f1f1f"
27
+ },
28
+ "typography": {
29
+ "body": {
30
+ "fontFamily": "system-ui, sans-serif",
31
+ "fontSize": "16px",
32
+ "lineHeight": "1.5"
33
+ }
34
+ },
35
+ "spacing": {
36
+ "md": "16px"
37
+ },
38
+ "radius": {
39
+ "md": "8px"
40
+ },
41
+ "components": {},
42
+ "extensions": {}
43
+ }
44
+ }
45
+
46
+ ---
47
+
48
+ # Design System Inspired by Spotify
49
+
50
+ ## 1. Visual Theme & Atmosphere
51
+
52
+ Spotify's web interface is a dark, immersive music player that wraps listeners in a near-black cocoon (`#121212`, `#181818`, `#1f1f1f`) where album art and content become the primary source of color. The design philosophy is "content-first darkness" — the UI recedes into shadow so that music, podcasts, and playlists can glow. Every surface is a shade of charcoal, creating a theater-like environment where the only true color comes from the iconic Spotify Green (`#1ed760`) and the album artwork itself.
53
+
54
+ The typography uses SpotifyMixUI and SpotifyMixUITitle — proprietary fonts from the CircularSp family (Circular by Lineto, customized for Spotify) with an extensive fallback stack that includes Arabic, Hebrew, Cyrillic, Greek, Devanagari, and CJK fonts, reflecting Spotify's global reach. The type system is compact and functional: 700 (bold) for emphasis and navigation, 600 (semibold) for secondary emphasis, and 400 (regular) for body. Buttons use uppercase with positive letter-spacing (1.4px–2px) for a systematic, label-like quality.
55
+
56
+ What distinguishes Spotify is its pill-and-circle geometry. Primary buttons use 500px–9999px radius (full pill), circular play buttons use 50% radius, and search inputs are 500px pills. Combined with heavy shadows (`rgba(0,0,0,0.5) 0px 8px 24px`) on elevated elements and a unique inset border-shadow combo (`rgb(18,18,18) 0px 1px 0px, rgb(124,124,124) 0px 0px 0px 1px inset`), the result is an interface that feels like a premium audio device — tactile, rounded, and built for touch.
57
+
58
+ **Key Characteristics:**
59
+ - Near-black immersive dark theme (`#121212`–`#1f1f1f`) — UI disappears behind content
60
+ - Spotify Green (`#1ed760`) as singular brand accent — never decorative, always functional
61
+ - SpotifyMixUI/CircularSp font family with global script support
62
+ - Pill buttons (500px–9999px) and circular controls (50%) — rounded, touch-optimized
63
+ - Uppercase button labels with wide letter-spacing (1.4px–2px)
64
+ - Heavy shadows on elevated elements (`rgba(0,0,0,0.5) 0px 8px 24px`)
65
+ - Semantic colors: negative red (`#f3727f`), warning orange (`#ffa42b`), announcement blue (`#539df5`)
66
+ - Album art as the primary color source — the UI is achromatic by design
67
+
68
+ ## 2. Color Palette & Roles
69
+
70
+ ### Primary Brand
71
+ - **Spotify Green** (`#1ed760`): Primary brand accent — play buttons, active states, CTAs
72
+ - **Near Black** (`#121212`): Deepest background surface
73
+ - **Dark Surface** (`#181818`): Cards, containers, elevated surfaces
74
+ - **Mid Dark** (`#1f1f1f`): Button backgrounds, interactive surfaces
75
+
76
+ ### Text
77
+ - **White** (`#ffffff`): `--text-base`, primary text
78
+ - **Silver** (`#b3b3b3`): Secondary text, muted labels, inactive nav
79
+ - **Near White** (`#cbcbcb`): Slightly brighter secondary text
80
+ - **Light** (`#fdfdfd`): Near-pure white for maximum emphasis
81
+
82
+ ### Semantic
83
+ - **Negative Red** (`#f3727f`): `--text-negative`, error states
84
+ - **Warning Orange** (`#ffa42b`): `--text-warning`, warning states
85
+ - **Announcement Blue** (`#539df5`): `--text-announcement`, info states
86
+
87
+ ### Surface & Border
88
+ - **Dark Card** (`#252525`): Elevated card surface
89
+ - **Mid Card** (`#272727`): Alternate card surface
90
+ - **Border Gray** (`#4d4d4d`): Button borders on dark
91
+ - **Light Border** (`#7c7c7c`): Outlined button borders, muted links
92
+ - **Separator** (`#b3b3b3`): Divider lines
93
+ - **Light Surface** (`#eeeeee`): Light-mode buttons (rare)
94
+ - **Spotify Green Border** (`#1db954`): Green accent border variant
95
+
96
+ ### Shadows
97
+ - **Heavy** (`rgba(0,0,0,0.5) 0px 8px 24px`): Dialogs, menus, elevated panels
98
+ - **Medium** (`rgba(0,0,0,0.3) 0px 8px 8px`): Cards, dropdowns
99
+ - **Inset Border** (`rgb(18,18,18) 0px 1px 0px, rgb(124,124,124) 0px 0px 0px 1px inset`): Input border-shadow combo
100
+
101
+ ## 3. Typography Rules
102
+
103
+ ### Font Families
104
+ - **Title**: `SpotifyMixUITitle`, fallbacks: `CircularSp-Arab, CircularSp-Hebr, CircularSp-Cyrl, CircularSp-Grek, CircularSp-Deva, Helvetica Neue, helvetica, arial, Hiragino Sans, Hiragino Kaku Gothic ProN, Meiryo, MS Gothic`
105
+ - **UI / Body**: `SpotifyMixUI`, same fallback stack
106
+
107
+ ### Hierarchy
108
+
109
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
110
+ |------|------|------|--------|-------------|----------------|-------|
111
+ | Section Title | SpotifyMixUITitle | 24px (1.50rem) | 700 | normal | normal | Bold title weight |
112
+ | Feature Heading | SpotifyMixUI | 18px (1.13rem) | 600 | 1.30 (tight) | normal | Semibold section heads |
113
+ | Body Bold | SpotifyMixUI | 16px (1.00rem) | 700 | normal | normal | Emphasized text |
114
+ | Body | SpotifyMixUI | 16px (1.00rem) | 400 | normal | normal | Standard body |
115
+ | Button Uppercase | SpotifyMixUI | 14px (0.88rem) | 600–700 | 1.00 (tight) | 1.4px–2px | `text-transform: uppercase` |
116
+ | Button | SpotifyMixUI | 14px (0.88rem) | 700 | normal | 0.14px | Standard button |
117
+ | Nav Link Bold | SpotifyMixUI | 14px (0.88rem) | 700 | normal | normal | Navigation |
118
+ | Nav Link | SpotifyMixUI | 14px (0.88rem) | 400 | normal | normal | Inactive nav |
119
+ | Caption Bold | SpotifyMixUI | 14px (0.88rem) | 700 | 1.50–1.54 | normal | Bold metadata |
120
+ | Caption | SpotifyMixUI | 14px (0.88rem) | 400 | normal | normal | Metadata |
121
+ | Small Bold | SpotifyMixUI | 12px (0.75rem) | 700 | 1.50 | normal | Tags, counts |
122
+ | Small | SpotifyMixUI | 12px (0.75rem) | 400 | normal | normal | Fine print |
123
+ | Badge | SpotifyMixUI | 10.5px (0.66rem) | 600 | 1.33 | normal | `text-transform: capitalize` |
124
+ | Micro | SpotifyMixUI | 10px (0.63rem) | 400 | normal | normal | Smallest text |
125
+
126
+ ### Principles
127
+ - **Bold/regular binary**: Most text is either 700 (bold) or 400 (regular), with 600 used sparingly. This creates a clear visual hierarchy through weight contrast rather than size variation.
128
+ - **Uppercase buttons as system**: Button labels use uppercase + wide letter-spacing (1.4px–2px), creating a systematic "label" voice distinct from content text.
129
+ - **Compact sizing**: The range is 10px–24px — narrower than most systems. Spotify's type is compact and functional, designed for scanning playlists, not reading articles.
130
+ - **Global script support**: The extensive fallback stack (Arabic, Hebrew, Cyrillic, Greek, Devanagari, CJK) reflects Spotify's 180+ market reach.
131
+
132
+ ## 4. Component Stylings
133
+
134
+ ### Buttons
135
+
136
+ **Dark Pill**
137
+ - Background: `#1f1f1f`
138
+ - Text: `#ffffff` or `#b3b3b3`
139
+ - Padding: 8px 16px
140
+ - Radius: 9999px (full pill)
141
+ - Use: Navigation pills, secondary actions
142
+
143
+ **Dark Large Pill**
144
+ - Background: `#181818`
145
+ - Text: `#ffffff`
146
+ - Padding: 0px 43px
147
+ - Radius: 500px
148
+ - Use: Primary app navigation buttons
149
+
150
+ **Light Pill**
151
+ - Background: `#eeeeee`
152
+ - Text: `#181818`
153
+ - Radius: 500px
154
+ - Use: Light-mode CTAs (cookie consent, marketing)
155
+
156
+ **Outlined Pill**
157
+ - Background: transparent
158
+ - Text: `#ffffff`
159
+ - Border: `1px solid #7c7c7c`
160
+ - Padding: 4px 16px 4px 36px (asymmetric for icon)
161
+ - Radius: 9999px
162
+ - Use: Follow buttons, secondary actions
163
+
164
+ **Circular Play**
165
+ - Background: `#1f1f1f`
166
+ - Text: `#ffffff`
167
+ - Padding: 12px
168
+ - Radius: 50% (circle)
169
+ - Use: Play/pause controls
170
+
171
+ ### Cards & Containers
172
+ - Background: `#181818` or `#1f1f1f`
173
+ - Radius: 6px–8px
174
+ - No visible borders on most cards
175
+ - Hover: slight background lightening
176
+ - Shadow: `rgba(0,0,0,0.3) 0px 8px 8px` on elevated
177
+
178
+ ### Inputs
179
+ - Search input: `#1f1f1f` background, `#ffffff` text
180
+ - Radius: 500px (pill)
181
+ - Padding: 12px 96px 12px 48px (icon-aware)
182
+ - Focus: border becomes `#000000`, outline `1px solid`
183
+
184
+ ### Navigation
185
+ - Dark sidebar with SpotifyMixUI 14px weight 700 for active, 400 for inactive
186
+ - `#b3b3b3` muted color for inactive items, `#ffffff` for active
187
+ - Circular icon buttons (50% radius)
188
+ - Spotify logo top-left in green
189
+
190
+ ## 5. Layout Principles
191
+
192
+ ### Spacing System
193
+ - Base unit: 8px
194
+ - Scale: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 14px, 15px, 16px, 20px
195
+
196
+ ### Grid & Container
197
+ - Sidebar (fixed) + main content area
198
+ - Grid-based album/playlist cards
199
+ - Full-width now-playing bar at bottom
200
+ - Responsive content area fills remaining space
201
+
202
+ ### Whitespace Philosophy
203
+ - **Dark compression**: Spotify packs content densely — playlist grids, track lists, and navigation are all tightly spaced. The dark background provides visual rest between elements without needing large gaps.
204
+ - **Content density over breathing room**: This is an app, not a marketing site. Every pixel serves the listening experience.
205
+
206
+ ### Border Radius Scale
207
+ - Minimal (2px): Badges, explicit tags
208
+ - Subtle (4px): Inputs, small elements
209
+ - Standard (6px): Album art containers, cards
210
+ - Comfortable (8px): Sections, dialogs
211
+ - Medium (10px–20px): Panels, overlay elements
212
+ - Large (100px): Large pill buttons
213
+ - Pill (500px): Primary buttons, search input
214
+ - Full Pill (9999px): Navigation pills, search
215
+ - Circle (50%): Play buttons, avatars, icons
216
+
217
+ ## 6. Depth & Elevation
218
+
219
+ | Level | Treatment | Use |
220
+ |-------|-----------|-----|
221
+ | Base (Level 0) | `#121212` background | Deepest layer, page background |
222
+ | Surface (Level 1) | `#181818` or `#1f1f1f` | Cards, sidebar, containers |
223
+ | Elevated (Level 2) | `rgba(0,0,0,0.3) 0px 8px 8px` | Dropdown menus, hover cards |
224
+ | Dialog (Level 3) | `rgba(0,0,0,0.5) 0px 8px 24px` | Modals, overlays, menus |
225
+ | Inset (Border) | `rgb(18,18,18) 0px 1px 0px, rgb(124,124,124) 0px 0px 0px 1px inset` | Input borders |
226
+
227
+ **Shadow Philosophy**: Spotify uses notably heavy shadows for a dark-themed app. The 0.5 opacity shadow at 24px blur creates a dramatic "floating in darkness" effect for dialogs and menus, while the 0.3 opacity at 8px blur provides a more subtle card lift. The unique inset border-shadow combination on inputs creates a recessed, tactile quality.
228
+
229
+ ## 7. Do's and Don'ts
230
+
231
+ ### Do
232
+ - Use near-black backgrounds (`#121212`–`#1f1f1f`) — depth through shade variation
233
+ - Apply Spotify Green (`#1ed760`) only for play controls, active states, and primary CTAs
234
+ - Use pill shape (500px–9999px) for all buttons — circular (50%) for play controls
235
+ - Apply uppercase + wide letter-spacing (1.4px–2px) on button labels
236
+ - Keep typography compact (10px–24px range) — this is an app, not a magazine
237
+ - Use heavy shadows (`0.3–0.5 opacity`) for elevated elements on dark backgrounds
238
+ - Let album art provide color — the UI itself is achromatic
239
+
240
+ ### Don't
241
+ - Don't use Spotify Green decoratively or on backgrounds — it's functional only
242
+ - Don't use light backgrounds for primary surfaces — the dark immersion is core
243
+ - Don't skip the pill/circle geometry on buttons — square buttons break the identity
244
+ - Don't use thin/subtle shadows — on dark backgrounds, shadows need to be heavy to be visible
245
+ - Don't add additional brand colors — green + achromatic grays is the complete palette
246
+ - Don't use relaxed line-heights — Spotify's typography is compact and dense
247
+ - Don't expose raw gray borders — use shadow-based or inset borders instead
248
+
249
+ ## 8. Responsive Behavior
250
+
251
+ ### Breakpoints
252
+ | Name | Width | Key Changes |
253
+ |------|-------|-------------|
254
+ | Mobile Small | <425px | Compact mobile layout |
255
+ | Mobile | 425–576px | Standard mobile |
256
+ | Tablet | 576–768px | 2-column grid |
257
+ | Tablet Large | 768–896px | Expanded layout |
258
+ | Desktop Small | 896–1024px | Sidebar visible |
259
+ | Desktop | 1024–1280px | Full desktop layout |
260
+ | Large Desktop | >1280px | Expanded grid |
261
+
262
+ ### Collapsing Strategy
263
+ - Sidebar: full → collapsed → hidden
264
+ - Album grid: 5 columns → 3 → 2 → 1
265
+ - Now-playing bar: maintained at all sizes
266
+ - Search: pill input maintained, width adjusts
267
+ - Navigation: sidebar → bottom bar on mobile
268
+
269
+ ## 9. Agent Prompt Guide
270
+
271
+ ### Quick Color Reference
272
+ - Background: Near Black (`#121212`)
273
+ - Surface: Dark Card (`#181818`)
274
+ - Text: White (`#ffffff`)
275
+ - Secondary text: Silver (`#b3b3b3`)
276
+ - Accent: Spotify Green (`#1ed760`)
277
+ - Border: `#4d4d4d`
278
+ - Error: Negative Red (`#f3727f`)
279
+
280
+ ### Example Component Prompts
281
+ - "Create a dark card: #181818 background, 8px radius. Title at 16px SpotifyMixUI weight 700, white text. Subtitle at 14px weight 400, #b3b3b3. Shadow rgba(0,0,0,0.3) 0px 8px 8px on hover."
282
+ - "Design a pill button: #1f1f1f background, white text, 9999px radius, 8px 16px padding. 14px SpotifyMixUI weight 700, uppercase, letter-spacing 1.4px."
283
+ - "Build a circular play button: Spotify Green (#1ed760) background, #000000 icon, 50% radius, 12px padding."
284
+ - "Create search input: #1f1f1f background, white text, 500px radius, 12px 48px padding. Inset border: rgb(124,124,124) 0px 0px 0px 1px inset."
285
+ - "Design navigation sidebar: #121212 background. Active items: 14px weight 700, white. Inactive: 14px weight 400, #b3b3b3."
286
+
287
+ ### Iteration Guide
288
+ 1. Start with #121212 — everything lives in near-black darkness
289
+ 2. Spotify Green for functional highlights only (play, active, CTA)
290
+ 3. Pill everything — 500px for large, 9999px for small, 50% for circular
291
+ 4. Uppercase + wide tracking on buttons — the systematic label voice
292
+ 5. Heavy shadows (0.3–0.5 opacity) for elevation — light shadows are invisible on dark
293
+ 6. Album art provides all the color — the UI stays achromatic