picasso-skill 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,95 +0,0 @@
1
- # Anti-Patterns Reference
2
-
3
- This is the most important reference file. These are the patterns that make AI-generated interfaces immediately recognizable. Avoid all of them.
4
-
5
- ---
6
-
7
- ## Typography Anti-Patterns
8
-
9
- - **Inter everywhere.** The default safe choice. It signals "I did not think about fonts."
10
- - **Roboto, Arial, Helvetica, system-ui as primary.** Same problem.
11
- - **Space Grotesk on repeat.** Overused in AI/crypto contexts. Pick something else.
12
- - **Light (300) weight for body text.** Hard to read on most screens.
13
- - **Centered paragraphs.** Center alignment works for 1-2 lines (headings, quotes). Never for body text.
14
- - **No max-width on text.** Lines spanning 1400px are unreadable. Cap at 600-750px for body text.
15
- - **All caps without letter-spacing.** All-caps text needs 0.08-0.15em spacing to be legible.
16
- - **More than 3 font families.** Two is ideal. Three is the maximum.
17
- - **Font size under 14px for body text.** Especially on mobile.
18
-
19
- ---
20
-
21
- ## Color Anti-Patterns
22
-
23
- - **Purple gradient on white background.** The signature AI slop aesthetic.
24
- - **Pure black text (#000000).** Always use tinted near-black (e.g., oklch(0.15 0.02 260)).
25
- - **Pure gray (#808080, #cccccc).** Always tint neutrals toward the palette hue.
26
- - **Gray text on colored backgrounds.** Creates low contrast and looks washed out.
27
- - **Full-saturation brand colors for large surfaces.** Reserve maximum chroma for small accents. Large areas need reduced saturation.
28
- - **Too many accent colors.** One primary, one secondary maximum. More creates visual chaos.
29
- - **Using opacity instead of actual color values.** opacity:0.5 on colored elements creates inconsistent results depending on background.
30
- - **No dark mode consideration.** Even if not implementing dark mode, design with the possibility in mind.
31
-
32
- ---
33
-
34
- ## Layout Anti-Patterns
35
-
36
- - **Everything centered vertically and horizontally.** Creates a lifeless vertical highway. Use left-aligned content with intentional centering for specific elements.
37
- - **Cards nested inside cards.** One level of card is usually enough. Nesting creates visual confusion about hierarchy.
38
- - **Wrapping everything in cards.** Not every piece of content needs a container with rounded corners and a shadow. Sometimes flat sections, dividers, or whitespace work better.
39
- - **Uniform rounded corners on everything.** Vary border-radius by context: pills for tags (999px), subtle rounding for cards (8-12px), sharper for data elements (4px).
40
- - **Equal spacing everywhere.** Groups need tighter internal spacing and wider external spacing. Without this, there is no visual structure.
41
- - **Three or four equal columns at every breakpoint.** Asymmetric grids (2:1, 3:2) are more interesting and create clearer hierarchy.
42
- - **Content that could belong to any product.** If the layout has no personality, the design is not done.
43
-
44
- ---
45
-
46
- ## Motion Anti-Patterns
47
-
48
- - **Bounce/elastic easing.** Feels dated and gimmicky. Use ease-out curves.
49
- - **Animating everything on the page.** Creates visual noise. Animate the important moments.
50
- - **transition: all 0.3s.** Animates properties you did not intend. Be specific: `transition: opacity 0.2s, transform 0.3s`.
51
- - **No loading feedback.** User clicks a button and nothing happens for 2 seconds. Always show progress.
52
- - **Spinner for content areas.** Use skeleton screens instead. Spinners should be reserved for small inline actions.
53
- - **Animation without prefers-reduced-motion handling.** Always provide a reduced-motion path.
54
-
55
- ---
56
-
57
- ## Interaction Anti-Patterns
58
-
59
- - **Placeholder text as the only label.** Disappears on focus. Inaccessible.
60
- - **outline: none without replacement.** Keyboard users lose all orientation.
61
- - **Hover-only interactions.** Must have keyboard and touch equivalents.
62
- - **Custom scrollbars that break native behavior.** Users expect scrolling to work natively.
63
- - **Toast notifications for errors.** They disappear. Use inline error messages instead.
64
- - **Alert/confirm dialogs for minor actions.** Blocking the entire page for "Are you sure?" on non-destructive actions.
65
- - **No focus trapping in modals.** Tab key escapes the modal and the user gets lost.
66
- - **Links that look like buttons and buttons that look like links.** Use the correct element for the correct purpose.
67
-
68
- ---
69
-
70
- ## Code Anti-Patterns
71
-
72
- - **div soup.** Use semantic HTML: nav, main, section, article, aside, header, footer.
73
- - **Inline styles for everything.** Use CSS variables, modules, or Tailwind. Inline styles cannot be overridden or themed.
74
- - **!important everywhere.** If specificity requires !important, the CSS architecture is broken.
75
- - **z-index: 9999.** Use a z-index scale (1, 10, 20, 30...) with named CSS variables.
76
- - **Fixed pixel values for everything.** Use rem for typography and spacing, em for component-internal sizing, px only for borders and shadows.
77
- - **console.log left in production.** Clean it up.
78
-
79
- ---
80
-
81
- ## Content Anti-Patterns
82
-
83
- - **"Lorem ipsum" in final deliverables.** Use real or realistic content. Design without content is decoration.
84
- - **Stock photo people smiling at laptops.** If using imagery, make it contextual.
85
- - **"Click here" link text.** Links should describe their destination: "View documentation" not "Click here".
86
- - **"Submit" button text.** Use the specific action: "Create account", "Send message", "Save changes".
87
- - **Walls of text without hierarchy.** Break content with headings, spacing, and visual rhythm.
88
-
89
- ---
90
-
91
- ## The Overall Pattern to Avoid
92
-
93
- The "AI slop" aesthetic is recognizable by its combination of: Inter/Roboto font, purple/blue gradient accents, evenly spaced centered layouts, uniform card grids with identical rounded corners, and generic stock imagery. Any single element might be fine in isolation. Together, they signal "an AI made this with zero human judgment."
94
-
95
- The antidote is intentionality. Every choice (font, color, spacing, layout, animation) should be a conscious decision tied to the specific context of what you are building.
@@ -1,174 +0,0 @@
1
- # Color and Contrast Reference
2
-
3
- ## Table of Contents
4
- 1. Color Space and Manipulation
5
- 2. Palette Construction
6
- 3. Tinted Neutrals
7
- 4. Dark Mode
8
- 5. Accessibility
9
- 6. CSS Variables Pattern
10
- 7. Common Mistakes
11
-
12
- ---
13
-
14
- ## 1. Color Space and Manipulation
15
-
16
- Use OKLCH for perceptually uniform color. Unlike HSL, OKLCH ensures that colors at the same lightness value actually appear equally bright to the human eye.
17
-
18
- ```css
19
- /* OKLCH: lightness (0-1), chroma (0-0.4), hue (0-360) */
20
- --accent: oklch(0.65 0.25 25); /* vibrant red-orange */
21
- --accent-hover: oklch(0.60 0.28 25); /* darker, more saturated */
22
- --accent-muted: oklch(0.75 0.08 25); /* same hue, much less chroma */
23
- ```
24
-
25
- For programmatic palette generation, adjust lightness for tints/shades, chroma for saturation, and hue for variation. OKLCH makes this predictable.
26
-
27
- ---
28
-
29
- ## 2. Palette Construction
30
-
31
- ### The 60-30-10 Rule
32
- - 60% dominant (surface/background)
33
- - 30% secondary (cards, sections, supporting elements)
34
- - 10% accent (CTAs, active states, highlights)
35
-
36
- ### Building a Palette
37
- 1. Start with the accent color (the brand or action color)
38
- 2. Derive a surface color: very low chroma version of the accent hue
39
- 3. Build neutral scale: tinted toward the accent hue (never pure gray)
40
- 4. Add a semantic layer: success (green family), warning (amber), error (red), info (blue)
41
- 5. Generate dark mode variants by inverting the lightness scale, not the colors
42
-
43
- ### Token Structure
44
- ```css
45
- :root {
46
- /* Surfaces */
47
- --surface-0: oklch(0.99 0.005 80); /* page background */
48
- --surface-1: oklch(0.97 0.008 80); /* card background */
49
- --surface-2: oklch(0.94 0.01 80); /* elevated/hover surface */
50
- --surface-3: oklch(0.90 0.012 80); /* active/selected surface */
51
-
52
- /* Text */
53
- --text-primary: oklch(0.15 0.02 80);
54
- --text-secondary: oklch(0.40 0.02 80);
55
- --text-tertiary: oklch(0.55 0.015 80);
56
-
57
- /* Accent */
58
- --accent: oklch(0.55 0.25 30);
59
- --accent-hover: oklch(0.50 0.28 30);
60
- --accent-subtle: oklch(0.92 0.04 30);
61
-
62
- /* Borders */
63
- --border: oklch(0.88 0.01 80);
64
- --border-strong: oklch(0.78 0.015 80);
65
-
66
- /* Semantic */
67
- --success: oklch(0.55 0.18 145);
68
- --warning: oklch(0.65 0.18 70);
69
- --error: oklch(0.55 0.22 25);
70
- }
71
- ```
72
-
73
- ---
74
-
75
- ## 3. Tinted Neutrals
76
-
77
- Never use pure gray (#808080, rgb(128,128,128), etc.). Always tint neutrals toward the dominant hue of the palette. This creates warmth and cohesion.
78
-
79
- **Warm neutrals** (tinted toward amber/brown): suited for editorial, luxury, organic brands
80
- **Cool neutrals** (tinted toward blue/slate): suited for tech, data, professional tools
81
- **Neutral neutrals** (tinted toward the accent hue at very low chroma): the most versatile approach
82
-
83
- ```css
84
- /* Instead of #333333 */
85
- --text-primary: oklch(0.25 0.015 260); /* cool-tinted dark */
86
-
87
- /* Instead of #f5f5f5 */
88
- --surface-bg: oklch(0.97 0.005 260); /* cool-tinted light */
89
- ```
90
-
91
- ---
92
-
93
- ## 4. Dark Mode
94
-
95
- Dark mode is not "invert everything." Follow these rules:
96
-
97
- 1. Surface colors get darker but retain their hue tint
98
- 2. Text colors flip but never become pure white (use oklch lightness 0.93-0.97)
99
- 3. Accent colors often need a lightness bump (+0.05 to +0.10) to maintain contrast
100
- 4. Shadows become less visible on dark surfaces; use subtle inner glows or border effects instead
101
- 5. Elevation in dark mode goes lighter (higher surfaces are lighter), opposite of light mode
102
- 6. Images and illustrations may need reduced brightness/contrast (`filter: brightness(0.9)`)
103
-
104
- ```css
105
- [data-theme="dark"] {
106
- --surface-0: oklch(0.13 0.01 260);
107
- --surface-1: oklch(0.17 0.012 260);
108
- --surface-2: oklch(0.21 0.015 260);
109
- --text-primary: oklch(0.93 0.01 260);
110
- --text-secondary: oklch(0.70 0.01 260);
111
- --border: oklch(0.25 0.01 260);
112
- }
113
- ```
114
-
115
- ---
116
-
117
- ## 5. Accessibility
118
-
119
- ### Contrast Requirements (WCAG 2.2)
120
- - Normal text (<24px or <18.66px bold): 4.5:1 minimum
121
- - Large text (>=24px or >=18.66px bold): 3:1 minimum
122
- - UI components and graphical objects: 3:1 minimum
123
- - Focus indicators: 3:1 against adjacent colors
124
-
125
- ### Testing
126
- Use OKLCH lightness difference as a quick heuristic: a difference of 0.40+ between text and background lightness values usually passes AA. For precise checking, use the APCA (Advanced Perceptual Contrast Algorithm) when possible, as it better represents human perception than WCAG 2.x contrast ratios.
127
-
128
- ### Color Blindness
129
- Never use color as the only way to convey information. Pair color with icons, patterns, or text labels. Test palettes with a deuteranopia/protanopia simulator.
130
-
131
- ---
132
-
133
- ## 6. CSS Variables Pattern
134
-
135
- Define all colors as CSS custom properties. Group by function, not by color name.
136
-
137
- ```css
138
- /* Good: semantic naming */
139
- --color-surface: ...;
140
- --color-text: ...;
141
- --color-accent: ...;
142
- --color-border: ...;
143
-
144
- /* Bad: literal naming */
145
- --blue: ...;
146
- --dark-gray: ...;
147
- --light-blue: ...;
148
- ```
149
-
150
- For component-level overrides:
151
- ```css
152
- .card {
153
- --card-bg: var(--surface-1);
154
- --card-border: var(--border);
155
- background: var(--card-bg);
156
- border: 1px solid var(--card-border);
157
- }
158
- .card.highlighted {
159
- --card-bg: var(--accent-subtle);
160
- --card-border: var(--accent);
161
- }
162
- ```
163
-
164
- ---
165
-
166
- ## 7. Common Mistakes
167
-
168
- - Using pure black (#000) for text (use tinted near-black instead)
169
- - Using gray text on colored backgrounds (low contrast, hard to read)
170
- - Applying opacity to achieve lighter colors (makes elements look washed out; use chroma reduction instead)
171
- - Using too many accent colors (one primary accent, one secondary maximum)
172
- - Forgetting to test dark mode after building light mode
173
- - Using brand colors at full saturation for large surfaces (they vibrate and cause eye strain; reserve full chroma for small accents)
174
- - Not providing hover/focus states with visible color change
@@ -1,113 +0,0 @@
1
- # Component Patterns Reference
2
-
3
- Standard component taxonomy, naming conventions, and state patterns drawn from 90+ real-world design systems and 2,500+ implementations (sourced from component.gallery).
4
-
5
- ## Standard Component Names
6
-
7
- Use these names consistently. When building a component, check this list first. Do not invent new names for solved patterns.
8
-
9
- ### Navigation
10
- - **Navbar / Navigation Bar**: Top-level site navigation. Contains logo, links, actions.
11
- - **Sidebar / Side Navigation**: Vertical navigation panel, typically on the left.
12
- - **Breadcrumb**: Shows the user's location in a hierarchy. e.g., Home > Products > Shoes.
13
- - **Tabs**: Horizontal set of toggles for switching between views within a section.
14
- - **Pagination**: Controls for navigating between pages of content.
15
- - **Bottom Navigation / Tab Bar**: Mobile-only bottom navigation with 3-5 icon+label items.
16
- - **Menu / Dropdown Menu**: A list of options revealed on click, typically from a button.
17
- - **Command Palette / Command Menu**: Keyboard-driven search-and-action overlay (Cmd+K pattern).
18
-
19
- ### Content
20
- - **Card**: A bounded container for a unit of content (image, title, description, action).
21
- - **Accordion / Disclosure**: Expandable/collapsible sections in a vertical stack.
22
- - **Carousel / Slider**: Multiple slides navigated via swipe, scroll, or buttons.
23
- - **Table / Data Table**: Structured rows and columns for tabular data.
24
- - **List / List Item**: Ordered or unordered vertical sequence of items.
25
- - **Tree View**: Nested hierarchical content (file explorer, category browser).
26
- - **Timeline**: Chronological sequence of events.
27
- - **Empty State**: Placeholder shown when a section has no content yet.
28
-
29
- ### Input
30
- - **Text Input / Text Field**: Single-line text entry.
31
- - **Textarea**: Multi-line text entry.
32
- - **Select / Dropdown**: Choose one option from a list.
33
- - **Combobox / Autocomplete**: Text input with filtered dropdown suggestions.
34
- - **Checkbox**: Binary on/off selection (multiple selections allowed).
35
- - **Radio / Radio Group**: Select exactly one option from a set.
36
- - **Toggle / Switch**: Binary on/off with immediate effect (no form submission needed).
37
- - **Slider / Range**: Select a value within a numeric range by dragging.
38
- - **Date Picker**: Calendar-based date selection.
39
- - **File Upload**: Interface for selecting and uploading files.
40
- - **Search Input**: Text input with search semantics (clear button, submit on enter).
41
-
42
- ### Feedback
43
- - **Alert / Banner**: Non-interactive message at the top of a page or section.
44
- - **Toast / Snackbar**: Temporary notification that auto-dismisses. Bottom of screen.
45
- - **Modal / Dialog**: Overlay requiring user attention before returning to the page.
46
- - **Popover**: Small overlay anchored to a trigger element, often for contextual info.
47
- - **Tooltip**: Brief label shown on hover/focus, never interactive.
48
- - **Progress Bar**: Linear indicator of completion (determinate or indeterminate).
49
- - **Spinner / Loading Indicator**: Circular animation indicating a pending operation.
50
- - **Skeleton / Placeholder**: Gray shapes matching expected content layout during load.
51
- - **Badge / Tag / Chip**: Small label for status, category, or count.
52
-
53
- ### Actions
54
- - **Button**: Primary interactive element for triggering actions.
55
- - **Icon Button**: Button with only an icon (must have aria-label).
56
- - **Button Group**: Set of related buttons displayed together.
57
- - **Floating Action Button (FAB)**: Prominent circular button for the primary action (mobile).
58
- - **Link / Anchor**: Navigation to another page or resource.
59
-
60
- ### Layout
61
- - **Container**: Max-width wrapper centering content on the page.
62
- - **Divider / Separator**: Visual line separating content sections.
63
- - **Grid**: Multi-column layout system.
64
- - **Stack**: Vertical or horizontal arrangement with consistent spacing.
65
- - **Aspect Ratio**: Container maintaining a fixed width:height ratio.
66
-
67
- ## Component State Matrix
68
-
69
- Every interactive component needs these states defined:
70
-
71
- | State | Visual Treatment |
72
- |---|---|
73
- | Default | Base appearance |
74
- | Hover | Subtle change: background lightens/darkens, cursor changes |
75
- | Focus | High-contrast outline (2px accent, 2px offset) |
76
- | Active / Pressed | Slight scale-down (0.97-0.98), darkened background |
77
- | Disabled | 50% opacity, cursor: not-allowed, no hover/focus effects |
78
- | Loading | Spinner or skeleton replacing content, pointer-events: none |
79
- | Error | Error-colored border, inline error message |
80
- | Selected / Active | Accent background or border, checkmark indicator |
81
- | Dragging | Elevated shadow, slight rotation, reduced opacity on source |
82
-
83
- ## Compound Component Pattern
84
-
85
- For components with multiple sub-parts, use the dot notation compound pattern:
86
-
87
- ```tsx
88
- <Dialog>
89
- <Dialog.Trigger>Open</Dialog.Trigger>
90
- <Dialog.Content>
91
- <Dialog.Title>Confirm</Dialog.Title>
92
- <Dialog.Description>Are you sure?</Dialog.Description>
93
- <Dialog.Footer>
94
- <Dialog.Close>Cancel</Dialog.Close>
95
- <Button>Confirm</Button>
96
- </Dialog.Footer>
97
- </Dialog.Content>
98
- </Dialog>
99
- ```
100
-
101
- This pattern appears in: Radix UI, shadcn/ui, Headless UI, Reach UI, Ark UI.
102
-
103
- ## Component Sizing Convention
104
-
105
- Use a consistent sizing scale across all components:
106
-
107
- | Size | Height | Font Size | Padding | Use Case |
108
- |---|---|---|---|---|
109
- | xs | 28px | 12px | 4px 8px | Dense UIs, inline tags |
110
- | sm | 32px | 13px | 6px 12px | Secondary actions, compact forms |
111
- | md | 40px | 14px | 8px 16px | Default for most components |
112
- | lg | 48px | 16px | 12px 24px | Primary actions, hero sections |
113
- | xl | 56px | 18px | 16px 32px | Landing page CTAs |
@@ -1,176 +0,0 @@
1
- # Design System Reference
2
-
3
- ## Table of Contents
4
- 1. DESIGN.md Format
5
- 2. Theme Generation
6
- 3. Token Structure
7
- 4. Pre-Built Themes
8
-
9
- ---
10
-
11
- ## 1. DESIGN.md Format
12
-
13
- When generating a design system document, follow this structure (derived from the Google Stitch DESIGN.md format, extended by VoltAgent):
14
-
15
- ```markdown
16
- # DESIGN.md
17
-
18
- ## 1. Visual Theme & Atmosphere
19
- Describe the mood, density, and design philosophy. Is this minimal or dense?
20
- Warm or cold? Playful or serious? What existing products or aesthetics does it
21
- reference?
22
-
23
- ## 2. Color Palette & Roles
24
- | Token | Hex | Role |
25
- |---|---|---|
26
- | surface-primary | #fafaf9 | Page background |
27
- | surface-secondary | #f5f5f4 | Card/section background |
28
- | text-primary | #1c1917 | Headings and body text |
29
- | text-secondary | #57534e | Supporting text, labels |
30
- | accent | #dc2626 | CTAs, active states, links |
31
- | accent-hover | #b91c1c | Hover state for accent |
32
- | accent-subtle | #fef2f2 | Accent-tinted background |
33
- | border | #e7e5e4 | Default borders |
34
- | success | #16a34a | Success states |
35
- | warning | #d97706 | Warning states |
36
- | error | #dc2626 | Error states |
37
-
38
- ## 3. Typography Rules
39
- | Level | Font | Size | Weight | Line Height | Letter Spacing |
40
- |---|---|---|---|---|---|
41
- | Display | [Display Font] | 3rem | 700 | 1.1 | -0.02em |
42
- | H1 | [Display Font] | 2.25rem | 700 | 1.15 | -0.01em |
43
- | H2 | [Display Font] | 1.875rem | 600 | 1.2 | -0.01em |
44
- | H3 | [Body Font] | 1.5rem | 600 | 1.25 | 0 |
45
- | Body | [Body Font] | 1rem | 400 | 1.6 | 0 |
46
- | Small | [Body Font] | 0.875rem | 400 | 1.5 | 0 |
47
- | Caption | [Body Font] | 0.75rem | 500 | 1.4 | 0.02em |
48
- | Code | [Mono Font] | 0.875rem | 400 | 1.6 | 0 |
49
-
50
- ## 4. Component Styling
51
- ### Buttons
52
- | Variant | Background | Text | Border | Radius | Padding |
53
- |---|---|---|---|---|---|
54
- | Primary | accent | white | none | 8px | 12px 24px |
55
- | Secondary | transparent | text-primary | 1px border | 8px | 12px 24px |
56
- | Ghost | transparent | text-secondary | none | 8px | 12px 24px |
57
- | Destructive | error | white | none | 8px | 12px 24px |
58
-
59
- States: hover (darken bg 5%), active (darken 10%, scale 0.98), disabled (opacity 0.5), focus (2px accent outline, 2px offset).
60
-
61
- ### Cards
62
- Background: surface-secondary. Border: 1px border. Radius: 12px.
63
- Padding: 24px. Shadow: 0 1px 3px rgba(0,0,0,0.05).
64
- Hover: shadow increases to 0 4px 12px rgba(0,0,0,0.08).
65
-
66
- ### Inputs
67
- Height: 44px. Border: 1px border. Radius: 8px. Padding: 0 12px.
68
- Focus: 2px accent border, subtle accent glow.
69
- Error: error border, error message below.
70
- Disabled: opacity 0.5, cursor not-allowed.
71
-
72
- ### Navigation
73
- Describe the navigation pattern (sidebar, top bar, tabs) with specific dimensions,
74
- colors, and active/hover states.
75
-
76
- ## 5. Layout Principles
77
- Spacing scale: 4, 8, 12, 16, 24, 32, 48, 64, 96.
78
- Max content width: [value]px.
79
- Grid: [columns] columns with [gap]px gaps.
80
- Page margins: [value]px on desktop, [value]px on mobile.
81
-
82
- ## 6. Depth & Elevation
83
- | Level | Shadow | Use |
84
- |---|---|---|
85
- | 0 | none | Flat elements, inline content |
86
- | 1 | 0 1px 2px rgba(0,0,0,0.05) | Cards, dropdowns |
87
- | 2 | 0 4px 12px rgba(0,0,0,0.08) | Floating elements, hover cards |
88
- | 3 | 0 8px 24px rgba(0,0,0,0.12) | Modals, dialogs |
89
- | 4 | 0 16px 48px rgba(0,0,0,0.16) | Popovers, overlays |
90
-
91
- ## 7. Do's and Don'ts
92
- ### Do
93
- - [specific guidance for this design system]
94
-
95
- ### Don't
96
- - [specific anti-patterns to avoid]
97
-
98
- ## 8. Responsive Behavior
99
- Breakpoints: [values].
100
- Mobile navigation: [pattern].
101
- Column collapse strategy: [how grids simplify].
102
- Touch target minimum: 48px.
103
-
104
- ## 9. Agent Prompt Guide
105
- Quick reference for AI agents building with this system:
106
- - Primary color: [hex]
107
- - Background: [hex]
108
- - Font family: [name]
109
- - Border radius: [value]
110
- - Spacing unit: [value]
111
- ```
112
-
113
- ---
114
-
115
- ## 2. Theme Generation
116
-
117
- When creating a custom theme, follow this process:
118
-
119
- 1. **Start with the accent color.** This is usually the brand color or the primary action color.
120
- 2. **Derive surfaces.** Take the accent hue, reduce chroma to near-zero, and create a lightness scale.
121
- 3. **Build the text scale.** Tint near-black toward the accent hue for warmth.
122
- 4. **Choose fonts.** Match the emotional register (serif for editorial/luxury, sans for tech/modern, mono for developer/terminal).
123
- 5. **Set border radius.** 0px for brutalist, 4-8px for professional, 12-16px for friendly, 999px for pill-shaped.
124
- 6. **Define shadows.** Match the overall aesthetic (no shadows for flat designs, layered shadows for elevated designs).
125
-
126
- ---
127
-
128
- ## 3. Token Structure
129
-
130
- Organize tokens by function, not by value:
131
-
132
- ```
133
- --color-surface-{0-3} Backgrounds, from page to elevated
134
- --color-text-{primary,secondary,tertiary} Text hierarchy
135
- --color-accent Primary action color
136
- --color-accent-{hover,subtle} Accent variants
137
- --color-border Default borders
138
- --color-{success,warning,error,info} Semantic states
139
- --space-{1-24} Spacing scale
140
- --radius-{sm,md,lg,full} Border radius
141
- --shadow-{sm,md,lg,xl} Elevation
142
- --font-{display,body,mono} Font families
143
- --text-{xs,sm,base,lg,xl,2xl,3xl,4xl} Type scale
144
- ```
145
-
146
- ---
147
-
148
- ## 4. Pre-Built Themes
149
-
150
- ### Midnight Terminal
151
- Dark background, green accent, monospace-forward. Suited for developer tools.
152
- - Surface: oklch(0.12 0.01 150) to oklch(0.20 0.015 150)
153
- - Accent: oklch(0.70 0.20 150) (terminal green)
154
- - Font: JetBrains Mono + IBM Plex Sans
155
- - Radius: 4px
156
-
157
- ### Warm Editorial
158
- Cream background, serif headings, generous whitespace. Suited for content-heavy sites.
159
- - Surface: oklch(0.97 0.01 60) to oklch(0.93 0.015 60)
160
- - Accent: oklch(0.45 0.15 25) (warm red)
161
- - Font: Instrument Serif + Source Sans 3
162
- - Radius: 2px
163
-
164
- ### Swiss Precision
165
- White background, strict grid, no decoration. Suited for professional tools.
166
- - Surface: oklch(0.99 0.002 0) to oklch(0.95 0.005 0)
167
- - Accent: oklch(0.50 0.25 250) (blue)
168
- - Font: Helvetica Neue / Outfit + DM Sans
169
- - Radius: 0px
170
-
171
- ### Soft Pastel
172
- Light pastel background, rounded elements, friendly. Suited for consumer apps.
173
- - Surface: oklch(0.97 0.02 280) to oklch(0.93 0.03 280)
174
- - Accent: oklch(0.60 0.20 280) (soft purple)
175
- - Font: Nunito + Nunito Sans
176
- - Radius: 16px
@@ -1,54 +0,0 @@
1
- # Generative Art Reference
2
-
3
- ## Process
4
-
5
- ### Step 1: Algorithmic Philosophy
6
- Before writing code, write a manifesto (4-6 paragraphs) that describes the computational aesthetic. Name the movement (1-2 words). Describe how the philosophy manifests through computational processes, noise functions, particle behaviors, temporal evolution, and parametric variation.
7
-
8
- ### Step 2: Implementation
9
- Express the philosophy through p5.js with seeded randomness. The algorithm should be 90% generative, 10% parameters.
10
-
11
- ### Core Technical Requirements
12
-
13
- **Seeded Randomness:**
14
- ```javascript
15
- let seed = 12345;
16
- randomSeed(seed);
17
- noiseSeed(seed);
18
- ```
19
- Same seed always produces the same output. Different seeds reveal different facets.
20
-
21
- **Parameter Structure:**
22
- ```javascript
23
- let params = {
24
- seed: 12345,
25
- particleCount: 1000,
26
- noiseScale: 0.005,
27
- speed: 1.5,
28
- // Add parameters specific to the algorithm
29
- };
30
- ```
31
-
32
- **Single-File HTML:**
33
- Everything inline, no external files except p5.js CDN:
34
- ```html
35
- <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.7.0/p5.min.js"></script>
36
- ```
37
-
38
- ### Required UI Features
39
- 1. **Seed navigation**: prev/next/random buttons, seed display, jump-to-seed input
40
- 2. **Parameter controls**: sliders for numeric values, color pickers for palette
41
- 3. **Actions**: regenerate, reset defaults, download PNG
42
-
43
- ### Philosophy Examples
44
-
45
- **Flow Fields**: Layered Perlin noise driving particle trails. Thousands of particles follow vector forces, accumulating into organic density maps.
46
-
47
- **Quantum Harmonics**: Particles on a grid with phase values evolving through sine waves. Constructive/destructive interference creates emergent patterns.
48
-
49
- **Stochastic Crystallization**: Randomized circle packing or Voronoi tessellation. Random points evolve through relaxation algorithms until equilibrium.
50
-
51
- **Recursive Whispers**: Branching structures that subdivide recursively, constrained by golden ratios with noise perturbations.
52
-
53
- ### Quality Bar
54
- The output should look like it was refined by a computational artist over hundreds of iterations. Every parameter should feel carefully tuned. The result should reward sustained viewing.