Files
registry/design-system.md
2025-11-28 10:24:10 +00:00

189 lines
5.1 KiB
Markdown

# Stack.Gallery Design System
Bloomberg terminal-inspired aesthetic with dark theme, sharp corners, and orange/green accent colors.
## Colors (HSL)
### Dark Theme (Default)
| Token | HSL | Hex | Usage |
|--------------------|---------------|---------|------------------------------------|
| background | 0 0% 0% | #000000 | Page background |
| foreground | 0 0% 100% | #FFFFFF | Primary text |
| primary | 33 100% 50% | #FF8000 | Bloomberg orange, CTAs, highlights |
| primary-foreground | 0 0% 0% | #000000 | Text on primary buttons |
| accent | 142 71% 45% | #22C55E | Terminal green, success states |
| accent-foreground | 0 0% 0% | #000000 | Text on accent |
| muted | 0 0% 8% | #141414 | Subtle backgrounds |
| muted-foreground | 0 0% 55% | #8C8C8C | Secondary text, labels |
| card | 0 0% 4% | #0A0A0A | Card backgrounds |
| border | 0 0% 15% | #262626 | All borders, dividers |
| destructive | 0 84% 60% | #EF4444 | Errors, terminal red dots |
### Light Theme
| Token | HSL | Hex |
|------------------|---------------|---------|
| background | 0 0% 100% | #FFFFFF |
| foreground | 0 0% 5% | #0D0D0D |
| primary | 33 100% 45% | #E67300 |
| accent | 142 71% 35% | #16A34A |
| muted | 0 0% 96% | #F5F5F5 |
| muted-foreground | 0 0% 40% | #666666 |
| card | 0 0% 98% | #FAFAFA |
| border | 0 0% 90% | #E5E5E5 |
---
## Typography
### Font Families
```css
--font-mono: 'JetBrains Mono', 'SF Mono', 'Consolas', 'Liberation Mono', monospace;
--font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
```
### Usage
- **Monospace**: All headings, labels, navigation, buttons, data, code
- **Sans-serif**: Body text, descriptions only
### Font Sizes
| Element | Size | Weight | Letter Spacing |
|-----------------|------------------------|--------|-----------------|
| H1 (Hero) | 3rem / 4rem (md) | 700 | -0.02em (tight) |
| H2 (Section) | 1.5rem / 1.875rem (md) | 700 | -0.02em |
| H3 (Card title) | 0.875rem | 600 | normal |
| Labels | 0.75rem | 400 | 0.05em (wider) |
| Body | 0.875rem | 400 | normal |
| Small/Tags | 0.75rem | 400 | 0.05em |
### Text Transform
- Navigation, labels, buttons, tags: `uppercase`
- Body text, descriptions: `normal case`
---
## Spacing & Layout
### Border Radius
```css
--radius: 0px; /* All elements: sharp corners */
```
### Container
- Max width: 1280px
- Padding: 1rem (16px) horizontal
### Grid Gaps
- Section padding: 2rem / 4rem vertical
- Card padding: 1.5rem
- Grid gap: 2rem
### Borders
- Width: 1px
- Color: `var(--border)`
- Used extensively: section dividers, cards, tables, inputs
---
## Components
### Buttons
```css
/* Primary */
height: 40px;
padding: 0 24px;
background: var(--primary);
color: var(--primary-foreground);
font: 700 0.875rem/1 var(--font-mono);
text-transform: uppercase;
border: none;
/* Secondary/Outline */
height: 40px;
padding: 0 24px;
background: transparent;
color: var(--foreground);
border: 1px solid var(--border);
font: 400 0.875rem/1 var(--font-mono);
text-transform: uppercase;
```
### Tags/Badges
```css
padding: 4px 8px;
font: 400 0.75rem/1 var(--font-mono);
color: var(--accent);
background: hsl(var(--accent) / 0.05);
border: 1px solid hsl(var(--accent) / 0.3);
text-transform: uppercase;
```
### Code Blocks
```css
background: var(--card);
border: 1px solid var(--border);
font: 400 0.875rem/1.6 var(--font-mono);
/* Header bar */
background: hsl(var(--muted) / 0.5);
border-bottom: 1px solid var(--border);
padding: 8px 12px;
/* Terminal dots */
.dot-red: var(--destructive) / 0.6
.dot-orange: var(--primary) / 0.6
.dot-green: var(--accent) / 0.6
/* Each dot: 8px x 8px square */
```
### Data Tables
```css
border: 1px solid var(--border);
font: 400 0.75rem/1 var(--font-mono);
/* Header row */
background: var(--muted);
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--muted-foreground);
/* Data cells */
border-bottom: 1px solid var(--border);
padding: 12px 16px;
/* Status indicators */
.supported: var(--accent) /* green */
```
---
## Visual Patterns
1. **Section Headers**: Small colored square (8x8px) + uppercase label + count on right
2. **Grid Dividers**: Use `divide-x` and `divide-y` with border color
3. **Numbering**: Bold primary-colored numbers (01, 02, etc.)
4. **Hover States**: Subtle background change `hsl(var(--muted) / 0.3)`
5. **Status Indicators**: Colored squares or text (green = active/supported)
---
## Icon Library
Using Lucide Icons (stroke-based, 24px default):
- Github, Book, Terminal, Menu, X, Copy, Check
- Size in UI: 16px (`h-4 w-4`) or 20px (`h-5 w-5`)