@ijfw/memory-server 1.3.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.
- package/bin/ijfw +27 -0
- package/bin/ijfw-dashboard +180 -0
- package/bin/ijfw-dispatch-plan +41 -0
- package/bin/ijfw-memorize +273 -0
- package/bin/ijfw-memory +51 -0
- package/fixtures/demo-target.js +28 -0
- package/package.json +53 -0
- package/src/api-client.js +190 -0
- package/src/audit-roster.js +315 -0
- package/src/caps.js +37 -0
- package/src/cold-scan-runner.mjs +37 -0
- package/src/compute/edges.js +155 -0
- package/src/compute/extract.js +560 -0
- package/src/compute/fts5.js +420 -0
- package/src/compute/graph-auto-index.js +191 -0
- package/src/compute/graph-lock.js +114 -0
- package/src/compute/index.js +18 -0
- package/src/compute/migration-runner.js +116 -0
- package/src/compute/migrations/001-initial.js +23 -0
- package/src/compute/migrations/002-porter-stemming-source.js +139 -0
- package/src/compute/migrations/003-tier-semantic.js +69 -0
- package/src/compute/migrations/004-kg-tables.js +83 -0
- package/src/compute/migrations/005-stale-candidate.js +72 -0
- package/src/compute/python-resolver.js +106 -0
- package/src/compute/runner-vm.js +185 -0
- package/src/compute/runner.js +416 -0
- package/src/compute/sandbox-detect.js +122 -0
- package/src/compute/sandbox-linux.js +164 -0
- package/src/compute/sandbox-macos.js +167 -0
- package/src/compute/sandbox-windows.js +63 -0
- package/src/compute/schema.sql +118 -0
- package/src/compute/staleness.js +239 -0
- package/src/compute/synonyms.js +367 -0
- package/src/compute/traverse.js +180 -0
- package/src/cost/aggregator.js +229 -0
- package/src/cost/pricing.js +134 -0
- package/src/cost/readers/claude.js +179 -0
- package/src/cost/readers/codex.js +131 -0
- package/src/cost/readers/gemini.js +111 -0
- package/src/cost/savings.js +243 -0
- package/src/cross-dispatcher.js +437 -0
- package/src/cross-orchestrator-cli.js +1885 -0
- package/src/cross-orchestrator.js +598 -0
- package/src/cross-project-search.js +114 -0
- package/src/dashboard-client.html +1180 -0
- package/src/dashboard-server.js +895 -0
- package/src/design-companion.js +81 -0
- package/src/dispatch/colon-syntax.js +732 -0
- package/src/dispatch-planner.js +235 -0
- package/src/dream/cooldown.js +105 -0
- package/src/dream/runner.mjs +373 -0
- package/src/dream/staleness-wiring.js +195 -0
- package/src/feedback-detector.js +57 -0
- package/src/hero-line.js +115 -0
- package/src/importers/claude-mem.js +152 -0
- package/src/importers/cli.js +311 -0
- package/src/importers/common.js +84 -0
- package/src/importers/discover.js +235 -0
- package/src/importers/rtk.js +107 -0
- package/src/intent-router.js +221 -0
- package/src/lib/atomic-io.js +201 -0
- package/src/lib/cache.js +33 -0
- package/src/lib/npm-view.js +104 -0
- package/src/lib/status-card.js +95 -0
- package/src/lib/token.js +85 -0
- package/src/memory/fts5.js +349 -0
- package/src/memory/migration-runner.js +116 -0
- package/src/memory/migrations/001-fts5-init.js +26 -0
- package/src/memory/migrations/002-tier-semantic.js +60 -0
- package/src/memory/migrations/003-stale-candidate.js +60 -0
- package/src/memory/reader.js +300 -0
- package/src/memory/recall-counter.js +76 -0
- package/src/memory/schema.sql +79 -0
- package/src/memory/search.js +431 -0
- package/src/memory/staleness.js +237 -0
- package/src/memory/tier-promotion.js +377 -0
- package/src/memory/tokenize.js +63 -0
- package/src/project-type-detector.js +866 -0
- package/src/prompt-check.js +171 -0
- package/src/ralph-allowlist.js +88 -0
- package/src/receipts.js +129 -0
- package/src/redactor.js +107 -0
- package/src/sandbox.js +275 -0
- package/src/sanitizer.js +69 -0
- package/src/scan-resume.js +167 -0
- package/src/schema.js +82 -0
- package/src/search-bm25.js +108 -0
- package/src/server.js +1414 -0
- package/src/swarm-config.js +80 -0
- package/src/trident/dispatch.js +211 -0
- package/src/trident/lens-health.js +253 -0
- package/src/update-apply.js +79 -0
- package/src/update-check.js +136 -0
- package/src/vectors.js +178 -0
- package/templates/design/bento-grid.md +84 -0
- package/templates/design/brutalist-luxe.md +82 -0
- package/templates/design/cinematic-dark.md +82 -0
- package/templates/design/data-dense-dashboard.md +88 -0
- package/templates/design/editorial-warm.md +81 -0
- package/templates/design/glassmorphic.md +84 -0
- package/templates/design/magazine-editorial.md +84 -0
- package/templates/design/maximalist-vibrant.md +85 -0
- package/templates/design/neo-swiss-tech.md +85 -0
- package/templates/design/swiss-minimal.md +80 -0
- package/templates/design/terminal-native.md +83 -0
- package/templates/design/warm-organic.md +84 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Editorial Warm - DESIGN.md
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
Magazine editorial meets warm minimalism - the feeling of a well-designed print publication on screen. Serif headings lend authority and permanence; generous leading invites reading rather than scanning. The warm off-white background and earthy palette create intimacy without losing professionalism. Use for newsletters, blogs, content-heavy landing pages, and any product where the prose itself is the feature.
|
|
5
|
+
|
|
6
|
+
## 2. Color Palette & Roles
|
|
7
|
+
- `--color-bg`: #FAF8F5 (page background - warm parchment)
|
|
8
|
+
- `--color-surface`: #F2EFE9 (card/panel surface)
|
|
9
|
+
- `--color-border`: #DDD8CF (dividers, input borders)
|
|
10
|
+
- `--color-text-primary`: #2C2420 (headings, primary content - warm near-black)
|
|
11
|
+
- `--color-text-secondary`: #7A6F66 (supporting text, labels)
|
|
12
|
+
- `--color-accent`: #C0622F (CTAs, links, highlights - terracotta)
|
|
13
|
+
- `--color-accent-hover`: #9E4D22 (interactive accent state)
|
|
14
|
+
- `--color-muted`: #B0A89E (placeholder text, disabled)
|
|
15
|
+
- `--color-rule`: #D8D2C8 (horizontal rules, section dividers)
|
|
16
|
+
|
|
17
|
+
## 3. Typography Rules
|
|
18
|
+
- **Display font**: Playfair Display - Google Fonts - weights 400, 700, 900
|
|
19
|
+
- **Body font**: Inter - Google Fonts - weights 400, 500
|
|
20
|
+
- **Mono font**: JetBrains Mono - for code, data, inline technical references
|
|
21
|
+
- **Scale**: Display 60px / H1 42px / H2 30px / H3 22px / Body 17px / Small 14px
|
|
22
|
+
- **Line height**: 1.75 for body / 1.15 for display headings
|
|
23
|
+
- **Letter spacing**: 0 for body / -0.01em for H1-H2 / 0.01em for small caps labels
|
|
24
|
+
- **Font loading**: `@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700;900&family=Inter:wght@400;500&family=JetBrains+Mono&display=swap')`
|
|
25
|
+
|
|
26
|
+
## 4. Component Stylings
|
|
27
|
+
### Buttons
|
|
28
|
+
Primary: background `--color-accent`, white text, `font-family: Inter`, `font-weight: 500`, `border-radius: 4px`, `padding: 12px 24px`. Hover: `--color-accent-hover`. Secondary: transparent, `1px solid --color-accent`, `color: --color-accent`. No shadows on either.
|
|
29
|
+
|
|
30
|
+
### Cards
|
|
31
|
+
Background `--color-surface`, `border: 1px solid --color-border`, `border-radius: 6px`, `padding: 32px`. Top accent line optional: `border-top: 3px solid --color-accent`. Title in Playfair Display, body in Inter.
|
|
32
|
+
|
|
33
|
+
### Navigation
|
|
34
|
+
Height 64px, `border-bottom: 1px solid --color-rule`, background `--color-bg`. Wordmark in Playfair Display weight 700. Nav links in Inter weight 500, `font-size: 14px`. Active: `color: --color-accent`.
|
|
35
|
+
|
|
36
|
+
### Inputs
|
|
37
|
+
`background: --color-bg`, `border: 1px solid --color-border`, `border-radius: 4px`, `padding: 11px 14px`, `font-size: 16px`, `font-family: Inter`. Focus: `border-color: --color-accent`, `outline: 2px solid rgba(192,98,47,0.15)`. Placeholder: `--color-muted`.
|
|
38
|
+
|
|
39
|
+
### Badges / Chips
|
|
40
|
+
`background: --color-surface`, `border: 1px solid --color-border`, `border-radius: 4px`, `padding: 3px 10px`, `font-size: 12px`, `font-family: Inter`, `font-weight: 500`, `color: --color-text-secondary`. Subtle and unobtrusive.
|
|
41
|
+
|
|
42
|
+
## 5. Layout Principles
|
|
43
|
+
- **Grid**: 12-column, 28px gutters
|
|
44
|
+
- **Max width**: 1100px (content column max 720px for long-form prose)
|
|
45
|
+
- **Section padding**: 80px vertical
|
|
46
|
+
- **Spacing scale**: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 80 / 120px
|
|
47
|
+
- **Whitespace philosophy**: generous - long-form content demands room to breathe
|
|
48
|
+
|
|
49
|
+
## 6. Depth & Elevation
|
|
50
|
+
- **Surface hierarchy**: Level 0 = `--color-bg`, Level 1 = `--color-surface`, Level 2 = `#E8E3DB`
|
|
51
|
+
- **Shadow tokens**: low = `0 1px 4px rgba(44,36,32,0.06)`; mid = `0 4px 16px rgba(44,36,32,0.08)`; high = none (modals use backdrop instead)
|
|
52
|
+
- **Border usage**: warm 1px borders throughout; `--color-rule` for horizontal dividers between sections
|
|
53
|
+
|
|
54
|
+
## 7. Do's and Don'ts
|
|
55
|
+
**Do:**
|
|
56
|
+
- Use Playfair Display for all display text, pull quotes, and section headers
|
|
57
|
+
- Set body text at 17px minimum - this aesthetic rewards reading, not scanning
|
|
58
|
+
- Use horizontal rules (`--color-rule`) liberally to divide content regions
|
|
59
|
+
- Lean into asymmetry: large serif headline + tighter caption below
|
|
60
|
+
- Use terracotta accent sparingly - one CTA per viewport maximum
|
|
61
|
+
|
|
62
|
+
**Don't:**
|
|
63
|
+
- Use a pure white or pure black background - the warmth is load-bearing
|
|
64
|
+
- Mix Playfair Display at small sizes (below 18px it loses authority)
|
|
65
|
+
- Use bold Inter for headings - Playfair Display owns that role
|
|
66
|
+
- Crowd the content column; the 720px prose limit exists for readability
|
|
67
|
+
- Apply accent color to decorative elements; it must signal action or importance
|
|
68
|
+
|
|
69
|
+
## 8. Responsive Behavior
|
|
70
|
+
- **Mobile breakpoint**: 375px
|
|
71
|
+
- **Tablet breakpoint**: 768px
|
|
72
|
+
- **Touch targets**: minimum 44px
|
|
73
|
+
- **Typography scaling**: Display drops to 36px / H1 to 28px / body stays 17px on mobile
|
|
74
|
+
- **Layout collapse**: prose column goes full-width at 768px with 20px side padding; section padding reduces to 48px
|
|
75
|
+
|
|
76
|
+
## 9. Agent Prompt Guide
|
|
77
|
+
Use these prompts with Claude Design or ijfw-design to stay on-system:
|
|
78
|
+
|
|
79
|
+
- **New screen**: "Build a [screen type] following the Editorial Warm DESIGN.md. Match the color tokens and type scale exactly."
|
|
80
|
+
- **Component**: "Add a [component] that fits the Editorial Warm aesthetic - reference section 4 for styling rules."
|
|
81
|
+
- **Variant**: "Create a [light/dark/compact] variant of this screen. Keep the same token names, adjust the values."
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Glassmorphic - DESIGN.md
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
Frosted glass and layered depth - surfaces that feel suspended in front of a rich background rather than sitting on a flat plane. The blur and translucency create a sense of atmosphere and space that flat design cannot achieve. Works best over gradient backgrounds (dark or vibrant light). Use for dashboards, mobile-inspired web apps, SaaS onboarding flows, and landing pages that need a contemporary, tactile feel without resorting to skeuomorphism.
|
|
5
|
+
|
|
6
|
+
## 2. Color Palette & Roles
|
|
7
|
+
- `--color-bg-start`: #0F0C29 (gradient background start - deep indigo)
|
|
8
|
+
- `--color-bg-end`: #302B63 (gradient background end - mid purple)
|
|
9
|
+
- `--color-bg-gradient`: linear-gradient(135deg, #0F0C29 0%, #302B63 60%, #24243E 100%)
|
|
10
|
+
- `--color-surface`: rgba(255,255,255,0.08) (frosted card surface)
|
|
11
|
+
- `--color-surface-hover`: rgba(255,255,255,0.12) (interactive surface state)
|
|
12
|
+
- `--color-border`: rgba(255,255,255,0.18) (frosted border)
|
|
13
|
+
- `--color-border-strong`: rgba(255,255,255,0.28) (active/focused border)
|
|
14
|
+
- `--color-text-primary`: #F2F2F7 (headings, primary content)
|
|
15
|
+
- `--color-text-secondary`: rgba(242,242,247,0.55) (supporting text, labels)
|
|
16
|
+
- `--color-accent`: #7C6FFF (CTAs, links - soft violet)
|
|
17
|
+
- `--color-accent-hover`: #9B91FF (interactive accent state)
|
|
18
|
+
- `--color-blur`: blur(16px) (primary backdrop filter value)
|
|
19
|
+
|
|
20
|
+
## 3. Typography Rules
|
|
21
|
+
- **Display font**: Inter - Google Fonts - weights 300, 400, 600, 700
|
|
22
|
+
- **Body font**: Inter - Google Fonts - weights 400, 500
|
|
23
|
+
- **Mono font**: JetBrains Mono - for data, stats, code snippets
|
|
24
|
+
- **Scale**: Display 56px / H1 40px / H2 28px / H3 20px / Body 15px / Small 13px
|
|
25
|
+
- **Line height**: 1.6 for body / 1.1 for display
|
|
26
|
+
- **Letter spacing**: 0 for body / -0.02em for display
|
|
27
|
+
- **Font loading**: `@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono&display=swap')`
|
|
28
|
+
|
|
29
|
+
## 4. Component Stylings
|
|
30
|
+
### Buttons
|
|
31
|
+
Primary: `background: --color-accent`, white text, `font-weight: 600`, `border-radius: 10px`, `padding: 11px 24px`. Hover: `--color-accent-hover`. Secondary: `background: rgba(255,255,255,0.1)`, `border: 1px solid --color-border`, `color: --color-text-primary`, `backdrop-filter: blur(8px)`. Both have `border-radius: 10px`.
|
|
32
|
+
|
|
33
|
+
### Cards
|
|
34
|
+
`background: --color-surface`, `backdrop-filter: blur(16px)`, `-webkit-backdrop-filter: blur(16px)`, `border: 1px solid --color-border`, `border-radius: 16px`, `padding: 28px`. Hover state shifts to `--color-surface-hover`. Top highlight: `box-shadow: inset 0 1px 0 rgba(255,255,255,0.15)`.
|
|
35
|
+
|
|
36
|
+
### Navigation
|
|
37
|
+
Height 60px, `background: rgba(15,12,41,0.6)`, `backdrop-filter: blur(20px)`, `border-bottom: 1px solid --color-border`. Sticky. Nav items: Inter 14px, `color: --color-text-secondary`. Active: `color: --color-text-primary`, `background: rgba(255,255,255,0.08)`, `border-radius: 8px`, `padding: 6px 14px`.
|
|
38
|
+
|
|
39
|
+
### Inputs
|
|
40
|
+
`background: rgba(255,255,255,0.06)`, `backdrop-filter: blur(8px)`, `border: 1px solid --color-border`, `border-radius: 10px`, `padding: 11px 14px`, `color: --color-text-primary`, `font-size: 15px`. Focus: `border-color: --color-border-strong`, `box-shadow: 0 0 0 3px rgba(124,111,255,0.2)`. Placeholder: `--color-text-secondary`.
|
|
41
|
+
|
|
42
|
+
### Badges / Chips
|
|
43
|
+
`background: rgba(124,111,255,0.15)`, `border: 1px solid rgba(124,111,255,0.3)`, `color: #B5AFFF`, `border-radius: 8px`, `padding: 3px 10px`, `font-size: 12px`, `font-weight: 500`. Status variants shift the rgba hue only.
|
|
44
|
+
|
|
45
|
+
## 5. Layout Principles
|
|
46
|
+
- **Grid**: 12-column, 24px gutters
|
|
47
|
+
- **Max width**: 1200px
|
|
48
|
+
- **Section padding**: 80px vertical
|
|
49
|
+
- **Spacing scale**: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 80px
|
|
50
|
+
- **Whitespace philosophy**: balanced - glass surfaces need breathing room but the gradient fills the void
|
|
51
|
+
|
|
52
|
+
## 6. Depth & Elevation
|
|
53
|
+
- **Surface hierarchy**: Level 0 = gradient bg, Level 1 = `blur(16px)` card, Level 2 = `blur(24px)` modal
|
|
54
|
+
- **Shadow tokens**: low = `0 4px 16px rgba(0,0,0,0.3)`; mid = `0 8px 32px rgba(0,0,0,0.4)`; high = `0 24px 48px rgba(0,0,0,0.5)`
|
|
55
|
+
- **Border usage**: always present on glass surfaces - the 1px rgba border is what defines the glass edge
|
|
56
|
+
|
|
57
|
+
## 7. Do's and Don'ts
|
|
58
|
+
**Do:**
|
|
59
|
+
- Always set a rich gradient or image background - frosted glass needs something behind it to blur
|
|
60
|
+
- Use `-webkit-backdrop-filter` alongside `backdrop-filter` for Safari support
|
|
61
|
+
- Layer cards at slightly different blur levels to create visual depth hierarchy
|
|
62
|
+
- Use `rgba` borders consistently - hard opaque borders destroy the glass effect
|
|
63
|
+
- Keep border-radius in the 12-20px range; glass surfaces should feel soft
|
|
64
|
+
|
|
65
|
+
**Don't:**
|
|
66
|
+
- Use glassmorphic surfaces on a flat solid background - the effect collapses
|
|
67
|
+
- Stack more than three blur layers (each adds GPU cost and visual noise)
|
|
68
|
+
- Use high-saturation opaque backgrounds for cards - it fights the blur
|
|
69
|
+
- Mix sharp-cornered and glass-rounded components on the same screen
|
|
70
|
+
- Apply `backdrop-filter` to components that overlap scrolling content (causes jank)
|
|
71
|
+
|
|
72
|
+
## 8. Responsive Behavior
|
|
73
|
+
- **Mobile breakpoint**: 375px
|
|
74
|
+
- **Tablet breakpoint**: 768px
|
|
75
|
+
- **Touch targets**: minimum 44px
|
|
76
|
+
- **Typography scaling**: Display drops to 36px / H1 to 26px on mobile
|
|
77
|
+
- **Layout collapse**: 12-col → single column; cards stack vertically; border-radius reduces slightly to 12px; blur intensity stays identical
|
|
78
|
+
|
|
79
|
+
## 9. Agent Prompt Guide
|
|
80
|
+
Use these prompts with Claude Design or ijfw-design to stay on-system:
|
|
81
|
+
|
|
82
|
+
- **New screen**: "Build a [screen type] following the Glassmorphic DESIGN.md. Match the color tokens and type scale exactly."
|
|
83
|
+
- **Component**: "Add a [component] that fits the Glassmorphic aesthetic - reference section 4 for styling rules."
|
|
84
|
+
- **Variant**: "Create a [light/dark/compact] variant of this screen. Keep the same token names, adjust the values."
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Magazine Editorial - DESIGN.md
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
Editorial flow and feature-story hierarchy - the visual grammar of a digital magazine where the article itself is the product. Mixed typography is the design technique: condensed headers command attention, serif body text rewards sustained reading, pull quotes interrupt and anchor. Newsprint-warm background. Structured column grids simulate the multi-column layouts of long-form print journalism. Use for media publications, long-form content platforms, newsletters, digital magazines, and any product where writing is the primary value delivered.
|
|
5
|
+
|
|
6
|
+
## 2. Color Palette & Roles
|
|
7
|
+
- `--color-bg`: #F8F5EE (page background - newsprint warm)
|
|
8
|
+
- `--color-surface`: #FFFFFF (article card, feature surface)
|
|
9
|
+
- `--color-surface-tint`: #F1EDE4 (sidebar, secondary section background)
|
|
10
|
+
- `--color-border`: #DDD6C8 (dividers, column rules)
|
|
11
|
+
- `--color-border-rule`: #C8BFB0 (strong section rules, column separators)
|
|
12
|
+
- `--color-text-primary`: #1A1612 (headings, bylines - warm near-black)
|
|
13
|
+
- `--color-text-body`: #2E2822 (body text - slightly lighter for long reads)
|
|
14
|
+
- `--color-text-secondary`: #7A6F62 (labels, captions, datelines)
|
|
15
|
+
- `--color-accent`: #B5292A (CTAs, section tags, highlights - editorial red)
|
|
16
|
+
- `--color-accent-hover`: #8C1E1E (interactive accent state)
|
|
17
|
+
- `--color-pull-quote`: #3D3530 (pull quote text - distinct from body)
|
|
18
|
+
- `--color-byline`: #5C5148 (byline, source attribution)
|
|
19
|
+
|
|
20
|
+
## 3. Typography Rules
|
|
21
|
+
- **Display font**: Barlow Condensed - Google Fonts - weights 600, 700, 800 (headlines, section labels)
|
|
22
|
+
- **Body font**: Merriweather - Google Fonts - weights 300, 400, 700 (long-form article body)
|
|
23
|
+
- **Mono font**: JetBrains Mono - for inline data, pull statistics, code
|
|
24
|
+
- **Scale**: Display 72px / H1 48px / H2 32px / H3 22px / Body 18px / Caption 13px
|
|
25
|
+
- **Line height**: 1.85 for body (Merriweather needs room) / 1.0 for Barlow Condensed display
|
|
26
|
+
- **Letter spacing**: 0 for body / 0.01em for display / 0.1em for uppercase section tags
|
|
27
|
+
- **Font loading**: `@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Merriweather:wght@300;400;700&family=JetBrains+Mono&display=swap')`
|
|
28
|
+
|
|
29
|
+
## 4. Component Stylings
|
|
30
|
+
### Buttons
|
|
31
|
+
Primary: `background: --color-accent`, white text, `font-family: Barlow Condensed`, `font-weight: 700`, `border-radius: 3px`, `padding: 10px 24px`, `letter-spacing: 0.06em`, uppercase. Hover: `--color-accent-hover`. Secondary: `background: transparent`, `border: 2px solid --color-border-rule`, `color: --color-text-primary`, `font-family: Barlow Condensed`, `font-weight: 600`.
|
|
32
|
+
|
|
33
|
+
### Cards
|
|
34
|
+
Article card: `background: --color-surface`, `border-bottom: 2px solid --color-border-rule`, `border-radius: 0`, `padding: 24px 0`. Title in Barlow Condensed 700, body preview in Merriweather 300. Byline in Inter or system-sans 13px `--color-byline`. Feature card: full-width `border-top: 4px solid --color-accent`.
|
|
35
|
+
|
|
36
|
+
### Navigation
|
|
37
|
+
Height 52px, `border-bottom: 2px solid --color-text-primary`, background `--color-bg`. Publication name in Barlow Condensed weight 800, `font-size: 22px`, uppercase. Section nav below: 44px, `border-bottom: 1px solid --color-border`, items in Barlow Condensed 600 13px uppercase, `letter-spacing: 0.08em`. Active: `color: --color-accent`.
|
|
38
|
+
|
|
39
|
+
### Inputs
|
|
40
|
+
`background: --color-surface`, `border: 1px solid --color-border`, `border-radius: 2px`, `padding: 10px 12px`, `font-family: Merriweather`, `font-size: 15px`. Focus: `border-color: --color-accent`, `box-shadow: none`. Placeholder: `--color-text-secondary`. Search bar uses Barlow Condensed.
|
|
41
|
+
|
|
42
|
+
### Badges / Chips
|
|
43
|
+
Section tags: `background: --color-accent`, `color: white`, `border-radius: 2px`, `padding: 3px 8px`, `font-family: Barlow Condensed`, `font-weight: 700`, `font-size: 11px`, uppercase, `letter-spacing: 0.08em`. Neutral tag: `background: --color-surface-tint`, `border: 1px solid --color-border`, `color: --color-text-secondary`.
|
|
44
|
+
|
|
45
|
+
## 5. Layout Principles
|
|
46
|
+
- **Grid**: multi-column editorial - 3-col primary (content / content / sidebar) plus full-width feature rows
|
|
47
|
+
- **Max width**: 1280px (prose column max 680px for article body)
|
|
48
|
+
- **Section padding**: 64px vertical
|
|
49
|
+
- **Spacing scale**: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96px
|
|
50
|
+
- **Whitespace philosophy**: structured - whitespace is column gutters and inter-article rules, not empty margins
|
|
51
|
+
|
|
52
|
+
## 6. Depth & Elevation
|
|
53
|
+
- **Surface hierarchy**: Level 0 = `--color-bg`, Level 1 = `--color-surface` (white), Level 2 = `--color-surface-tint`
|
|
54
|
+
- **Shadow tokens**: low = `0 1px 4px rgba(26,22,18,0.06)`; mid = none; high = `0 8px 32px rgba(26,22,18,0.1)` for featured overlays
|
|
55
|
+
- **Border usage**: horizontal rules are the primary separator; `--color-border-rule` for strong breaks, `--color-border` for subtle ones; vertical column rules optional
|
|
56
|
+
|
|
57
|
+
## 7. Do's and Don'ts
|
|
58
|
+
**Do:**
|
|
59
|
+
- Use Barlow Condensed weight 800 for all headlines - the condensed proportions are the system's voice
|
|
60
|
+
- Set Merriweather body text at 18px with `line-height: 1.85` - this typeface is designed for long reads
|
|
61
|
+
- Use pull quotes as layout anchors: Barlow Condensed 700, large (28-36px), `color: --color-pull-quote`, `border-left: 4px solid --color-accent`
|
|
62
|
+
- Include bylines, datelines, and reading-time labels using `--color-byline` and `font-size: 13px`
|
|
63
|
+
- Use `border-top: 4px solid --color-accent` to mark feature-tier articles visually
|
|
64
|
+
|
|
65
|
+
**Don't:**
|
|
66
|
+
- Use Merriweather for UI labels or navigation - it's a reading typeface, not a UI typeface
|
|
67
|
+
- Use rounded corners; this aesthetic is flush and ruled, not soft
|
|
68
|
+
- Apply decorative gradients; the warmth comes from the paper tones, not color effects
|
|
69
|
+
- Shrink body type below 17px; Merriweather at small sizes loses its authority
|
|
70
|
+
- Mix editorial red accent with a secondary accent; one signal color for editorial emphasis
|
|
71
|
+
|
|
72
|
+
## 8. Responsive Behavior
|
|
73
|
+
- **Mobile breakpoint**: 375px
|
|
74
|
+
- **Tablet breakpoint**: 768px
|
|
75
|
+
- **Touch targets**: minimum 44px
|
|
76
|
+
- **Typography scaling**: Display drops to 44px / H1 to 32px / body stays 17px (down from 18px) on mobile
|
|
77
|
+
- **Layout collapse**: 3-col → single column at 768px; sidebar becomes collapsed section at bottom; column rules become horizontal dividers; prose column goes full-width with 20px padding
|
|
78
|
+
|
|
79
|
+
## 9. Agent Prompt Guide
|
|
80
|
+
Use these prompts with Claude Design or ijfw-design to stay on-system:
|
|
81
|
+
|
|
82
|
+
- **New screen**: "Build a [screen type] following the Magazine Editorial DESIGN.md. Match the color tokens and type scale exactly."
|
|
83
|
+
- **Component**: "Add a [component] that fits the Magazine Editorial aesthetic - reference section 4 for styling rules."
|
|
84
|
+
- **Variant**: "Create a [light/dark/compact] variant of this screen. Keep the same token names, adjust the values."
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Maximalist Vibrant - DESIGN.md
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
Rich, layered, expressive - the energy of a design tool's own marketing site turned into a system. Multiple hues live together not in chaos but in deliberate orchestration. Gradients are bold and purposeful, type sizing is used as composition, and the overall effect is one of creative confidence. Use for creative tools, collaboration platforms, marketing-forward SaaS, launch pages, and products aimed at makers, designers, and builders who expect their software to have a personality.
|
|
5
|
+
|
|
6
|
+
## 2. Color Palette & Roles
|
|
7
|
+
- `--color-bg`: #0E0E14 (page background - near-black with purple undertone)
|
|
8
|
+
- `--color-surface`: #17171F (card/panel surface)
|
|
9
|
+
- `--color-border`: #2A2A38 (dividers, input borders)
|
|
10
|
+
- `--color-text-primary`: #F4F4FA (headings, primary content)
|
|
11
|
+
- `--color-text-secondary`: #8888A0 (supporting text, labels)
|
|
12
|
+
- `--color-violet`: #7C5CFC (primary gradient stop / main accent)
|
|
13
|
+
- `--color-pink`: #F040A0 (secondary gradient / hover accent)
|
|
14
|
+
- `--color-cyan`: #00D4FF (tertiary accent - used in gradients and highlights)
|
|
15
|
+
- `--color-yellow`: #FFE040 (pop accent - used for emphasis, badges)
|
|
16
|
+
- `--color-gradient-primary`: linear-gradient(135deg, #7C5CFC 0%, #F040A0 100%)
|
|
17
|
+
- `--color-gradient-secondary`: linear-gradient(135deg, #00D4FF 0%, #7C5CFC 100%)
|
|
18
|
+
- `--color-accent`: #7C5CFC (default single-color accent for links/focus)
|
|
19
|
+
- `--color-accent-hover`: #9B80FF (interactive accent state)
|
|
20
|
+
|
|
21
|
+
## 3. Typography Rules
|
|
22
|
+
- **Display font**: DM Sans - Google Fonts - weights 400, 500, 700, 900
|
|
23
|
+
- **Body font**: DM Sans - Google Fonts - weights 400, 500
|
|
24
|
+
- **Mono font**: JetBrains Mono - for code, data, metrics
|
|
25
|
+
- **Scale**: Display 72px / H1 48px / H2 32px / H3 22px / Body 16px / Small 13px
|
|
26
|
+
- **Line height**: 1.55 for body / 1.05 for display
|
|
27
|
+
- **Letter spacing**: -0.01em for body / -0.03em for display and H1
|
|
28
|
+
- **Font loading**: `@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700;900&family=JetBrains+Mono&display=swap')`
|
|
29
|
+
|
|
30
|
+
## 4. Component Stylings
|
|
31
|
+
### Buttons
|
|
32
|
+
Primary: `background: --color-gradient-primary`, white text, `font-weight: 700`, `border-radius: 10px`, `padding: 12px 28px`. Hover: lighten gradient via `filter: brightness(1.1)`. Secondary: `background: rgba(124,92,252,0.12)`, `border: 1px solid rgba(124,92,252,0.4)`, `color: #9B80FF`, `border-radius: 10px`. Both have gradient hover glow.
|
|
33
|
+
|
|
34
|
+
### Cards
|
|
35
|
+
`background: --color-surface`, `border: 1px solid --color-border`, `border-radius: 16px`, `padding: 28px`. Featured cards: gradient border via `background: linear-gradient(--color-surface, --color-surface) padding-box, --color-gradient-primary border-box`, `border: 2px solid transparent`. Hover: `transform: translateY(-2px)`, mild shadow.
|
|
36
|
+
|
|
37
|
+
### Navigation
|
|
38
|
+
Height 64px, `background: rgba(14,14,20,0.8)`, `backdrop-filter: blur(12px)`, `border-bottom: 1px solid --color-border`. Logo can use gradient fill on wordmark text. Nav items: DM Sans 15px, `color: --color-text-secondary`. Active: gradient underline 2px or full gradient text via `background-clip: text`.
|
|
39
|
+
|
|
40
|
+
### Inputs
|
|
41
|
+
`background: --color-surface`, `border: 1px solid --color-border`, `border-radius: 10px`, `padding: 12px 14px`, `color: --color-text-primary`, `font-size: 15px`. Focus: `border-color: --color-violet`, `box-shadow: 0 0 0 3px rgba(124,92,252,0.2)`. Placeholder: `--color-text-secondary`.
|
|
42
|
+
|
|
43
|
+
### Badges / Chips
|
|
44
|
+
Gradient: `background: --color-gradient-primary`, white text, `border-radius: 20px`, `padding: 4px 12px`, `font-size: 12px`, `font-weight: 700`. Yellow pop: `background: --color-yellow`, `color: #0E0E14`, same shape. Muted: `background: rgba(124,92,252,0.15)`, `color: #9B80FF`.
|
|
45
|
+
|
|
46
|
+
## 5. Layout Principles
|
|
47
|
+
- **Grid**: 12-column, 24px gutters
|
|
48
|
+
- **Max width**: 1280px
|
|
49
|
+
- **Section padding**: 96px vertical
|
|
50
|
+
- **Spacing scale**: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96 / 128px
|
|
51
|
+
- **Whitespace philosophy**: balanced - dense sections alternate with open hero areas; gradients fill the void
|
|
52
|
+
|
|
53
|
+
## 6. Depth & Elevation
|
|
54
|
+
- **Surface hierarchy**: Level 0 = `--color-bg`, Level 1 = `--color-surface`, Level 2 = `#1F1F2A`
|
|
55
|
+
- **Shadow tokens**: low = `0 4px 16px rgba(0,0,0,0.4)`; mid = `0 8px 32px rgba(0,0,0,0.5)`; glow = `0 0 32px rgba(124,92,252,0.3)`
|
|
56
|
+
- **Border usage**: 1px `--color-border` as baseline; gradient borders for featured/hero components
|
|
57
|
+
|
|
58
|
+
## 7. Do's and Don'ts
|
|
59
|
+
**Do:**
|
|
60
|
+
- Use the gradient as a design element in its own right - full-bleed gradient sections are welcome
|
|
61
|
+
- Mix accent colors deliberately; violet is primary, pink secondary, cyan tertiary - not interchangeable
|
|
62
|
+
- Use DM Sans weight 900 for display text; it punches at this size
|
|
63
|
+
- Apply the gradient border technique for cards that need to feel premium
|
|
64
|
+
- Use `--color-yellow` as a true pop accent - one badge or highlight per section maximum
|
|
65
|
+
|
|
66
|
+
**Don't:**
|
|
67
|
+
- Use all four accent colors in one component - each component gets at most two
|
|
68
|
+
- Make the background lighter than `#17171F` - contrast is the foundation here
|
|
69
|
+
- Apply gradient to body text; gradient is reserved for display and interactive elements
|
|
70
|
+
- Round corners beyond 20px (chips/badges) or 16px (cards); circular shapes break the grid feel
|
|
71
|
+
- Use flat single-color CTAs - this palette earns its gradients
|
|
72
|
+
|
|
73
|
+
## 8. Responsive Behavior
|
|
74
|
+
- **Mobile breakpoint**: 375px
|
|
75
|
+
- **Tablet breakpoint**: 768px
|
|
76
|
+
- **Touch targets**: minimum 44px
|
|
77
|
+
- **Typography scaling**: Display drops to 44px / H1 to 32px on mobile; weight 900 preserved
|
|
78
|
+
- **Layout collapse**: 12-col → single column; gradient hero sections go full-width; padding reduces to 48px
|
|
79
|
+
|
|
80
|
+
## 9. Agent Prompt Guide
|
|
81
|
+
Use these prompts with Claude Design or ijfw-design to stay on-system:
|
|
82
|
+
|
|
83
|
+
- **New screen**: "Build a [screen type] following the Maximalist Vibrant DESIGN.md. Match the color tokens and type scale exactly."
|
|
84
|
+
- **Component**: "Add a [component] that fits the Maximalist Vibrant aesthetic - reference section 4 for styling rules."
|
|
85
|
+
- **Variant**: "Create a [light/dark/compact] variant of this screen. Keep the same token names, adjust the values."
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Neo Swiss Tech - DESIGN.md
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
Modern Swiss grid discipline fused with tech product precision - the aesthetic of tools used by engineers who care about their environment. Mid-dark background that isn't a full terminal black, cool grey palette that's systematic rather than decorative, one electric accent that marks exactly what matters. Tight spacing signals density of thought without feeling cramped. Use for developer tools, productivity apps, command palettes, dashboards, and any product that must feel fast and deliberate.
|
|
5
|
+
|
|
6
|
+
## 2. Color Palette & Roles
|
|
7
|
+
- `--color-bg`: #141414 (page background - precise dark grey)
|
|
8
|
+
- `--color-surface`: #1C1C1C (card/panel surface)
|
|
9
|
+
- `--color-surface-raised`: #242424 (elevated panels, popovers)
|
|
10
|
+
- `--color-border`: #323232 (dividers, input borders)
|
|
11
|
+
- `--color-border-focus`: #4A4A4A (focused/active border)
|
|
12
|
+
- `--color-text-primary`: #EBEBEB (headings, primary content)
|
|
13
|
+
- `--color-text-secondary`: #737373 (supporting text, labels)
|
|
14
|
+
- `--color-text-tertiary`: #484848 (disabled, placeholder)
|
|
15
|
+
- `--color-accent`: #3B82F6 (CTAs, links, active states - electric blue)
|
|
16
|
+
- `--color-accent-hover`: #60A5FA (interactive accent state)
|
|
17
|
+
- `--color-accent-dim`: rgba(59,130,246,0.12) (accent tint backgrounds)
|
|
18
|
+
- `--color-success`: #22C55E
|
|
19
|
+
- `--color-error`: #EF4444
|
|
20
|
+
|
|
21
|
+
## 3. Typography Rules
|
|
22
|
+
- **Display font**: DM Sans - Google Fonts - weights 400, 500, 700
|
|
23
|
+
- **Body font**: DM Sans - Google Fonts - weights 400, 500
|
|
24
|
+
- **Mono font**: JetBrains Mono - for code, metrics, IDs, timestamps
|
|
25
|
+
- **Scale**: Display 52px / H1 36px / H2 26px / H3 20px / Body 14px / Small 12px
|
|
26
|
+
- **Line height**: 1.6 for body / 1.1 for display
|
|
27
|
+
- **Letter spacing**: 0 for body / -0.02em for display / 0.04em for uppercase labels
|
|
28
|
+
- **Font loading**: `@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=JetBrains+Mono:wght@400;500&display=swap')`
|
|
29
|
+
|
|
30
|
+
## 4. Component Stylings
|
|
31
|
+
### Buttons
|
|
32
|
+
Primary: `background: --color-accent`, white text, `font-weight: 500`, `border-radius: 6px`, `padding: 8px 18px`, `font-size: 14px`. Hover: `background: --color-accent-hover`. Secondary: `background: --color-surface-raised`, `border: 1px solid --color-border`, `color: --color-text-primary`, `border-radius: 6px`. Ghost: transparent, `color: --color-text-secondary`, hover `color: --color-text-primary`.
|
|
33
|
+
|
|
34
|
+
### Cards
|
|
35
|
+
`background: --color-surface`, `border: 1px solid --color-border`, `border-radius: 8px`, `padding: 20px`. Active/selected: `border-color: --color-accent`, `background: rgba(59,130,246,0.04)`. No shadow on resting state; `box-shadow: 0 2px 8px rgba(0,0,0,0.4)` on hover.
|
|
36
|
+
|
|
37
|
+
### Navigation
|
|
38
|
+
Height 52px, `border-bottom: 1px solid --color-border`, background `--color-bg`. Items: DM Sans 13px, `font-weight: 500`, `color: --color-text-secondary`. Active: `color: --color-text-primary`, `background: --color-surface`, `border-radius: 6px`, `padding: 5px 10px`. Keyboard shortcut hints visible inline.
|
|
39
|
+
|
|
40
|
+
### Inputs
|
|
41
|
+
`background: --color-bg`, `border: 1px solid --color-border`, `border-radius: 6px`, `padding: 8px 12px`, `font-size: 14px`, `color: --color-text-primary`. Focus: `border-color: --color-accent`, `box-shadow: 0 0 0 3px --color-accent-dim`. Placeholder: `--color-text-tertiary`.
|
|
42
|
+
|
|
43
|
+
### Badges / Chips
|
|
44
|
+
`background: --color-surface-raised`, `border: 1px solid --color-border`, `border-radius: 4px`, `padding: 2px 8px`, `font-size: 11px`, `font-family: JetBrains Mono`, `color: --color-text-secondary`. Accent variant: `background: --color-accent-dim`, `border-color: rgba(59,130,246,0.3)`, `color: --color-accent-hover`.
|
|
45
|
+
|
|
46
|
+
## 5. Layout Principles
|
|
47
|
+
- **Grid**: 12-column, 20px gutters
|
|
48
|
+
- **Max width**: 1280px
|
|
49
|
+
- **Section padding**: 64px vertical
|
|
50
|
+
- **Spacing scale**: 4 / 8 / 12 / 16 / 20 / 24 / 32 / 48 / 64px
|
|
51
|
+
- **Whitespace philosophy**: tight but breathing - data-forward sections use 4px base unit; marketing sections use 8px base unit
|
|
52
|
+
|
|
53
|
+
## 6. Depth & Elevation
|
|
54
|
+
- **Surface hierarchy**: Level 0 = `#141414`, Level 1 = `#1C1C1C`, Level 2 = `#242424`
|
|
55
|
+
- **Shadow tokens**: low = `0 1px 4px rgba(0,0,0,0.5)`; mid = `0 4px 16px rgba(0,0,0,0.6)`; high = `0 12px 40px rgba(0,0,0,0.7)`
|
|
56
|
+
- **Border usage**: 1px borders at every level transition; no border on same-level adjacencies
|
|
57
|
+
|
|
58
|
+
## 7. Do's and Don'ts
|
|
59
|
+
**Do:**
|
|
60
|
+
- Use the electric blue accent precisely - it points to exactly one action at a time
|
|
61
|
+
- Show keyboard shortcuts, IDs, and technical metadata using JetBrains Mono
|
|
62
|
+
- Build compact 52px nav and 48px input height; every pixel of height counts
|
|
63
|
+
- Use the 4px spacing base unit for dense data tables; switch to 8px for content sections
|
|
64
|
+
- Surface `--color-success` and `--color-error` for any status output - they're in the system
|
|
65
|
+
|
|
66
|
+
**Don't:**
|
|
67
|
+
- Round corners beyond 8px - this aesthetic is about precision, not friendliness
|
|
68
|
+
- Use the accent color for more than one primary CTA per viewport
|
|
69
|
+
- Mix DM Sans and JetBrains Mono on the same line (alternating is fine; inline mixing is not)
|
|
70
|
+
- Use gradients for fills; single flat accent color only
|
|
71
|
+
- Add decorative shadows to resting cards - shadow is reserved for interaction state
|
|
72
|
+
|
|
73
|
+
## 8. Responsive Behavior
|
|
74
|
+
- **Mobile breakpoint**: 375px
|
|
75
|
+
- **Tablet breakpoint**: 768px
|
|
76
|
+
- **Touch targets**: minimum 44px
|
|
77
|
+
- **Typography scaling**: Display drops to 32px / H1 to 24px on mobile; body stays 14px
|
|
78
|
+
- **Layout collapse**: sidebar → bottom sheet; 12-col → single column; command palette hides keyboard hints; section padding reduces to 32px
|
|
79
|
+
|
|
80
|
+
## 9. Agent Prompt Guide
|
|
81
|
+
Use these prompts with Claude Design or ijfw-design to stay on-system:
|
|
82
|
+
|
|
83
|
+
- **New screen**: "Build a [screen type] following the Neo Swiss Tech DESIGN.md. Match the color tokens and type scale exactly."
|
|
84
|
+
- **Component**: "Add a [component] that fits the Neo Swiss Tech aesthetic - reference section 4 for styling rules."
|
|
85
|
+
- **Variant**: "Create a [light/dark/compact] variant of this screen. Keep the same token names, adjust the values."
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Swiss Minimal - DESIGN.md
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
International Swiss typographic school applied to digital product. Clean, rational, and precise - every element earns its place. White space is the primary design material, not a gap between things. The grid is visible in the structure even when invisible on screen. Use this aesthetic for tools, documentation sites, SaaS dashboards, and developer-facing products where clarity signals trust.
|
|
5
|
+
|
|
6
|
+
## 2. Color Palette & Roles
|
|
7
|
+
- `--color-bg`: #FFFFFF (page background)
|
|
8
|
+
- `--color-surface`: #F7F7F7 (card/panel surface)
|
|
9
|
+
- `--color-border`: #E2E2E2 (dividers, input borders)
|
|
10
|
+
- `--color-text-primary`: #111111 (headings, primary content)
|
|
11
|
+
- `--color-text-secondary`: #6B6B6B (supporting text, labels)
|
|
12
|
+
- `--color-accent`: #D42B2B (CTAs, links, highlights)
|
|
13
|
+
- `--color-accent-hover`: #A81E1E (interactive accent state)
|
|
14
|
+
- `--color-muted`: #ABABAB (placeholder text, disabled)
|
|
15
|
+
|
|
16
|
+
## 3. Typography Rules
|
|
17
|
+
- **Display font**: Inter - Google Fonts - weights 300, 400, 500, 700
|
|
18
|
+
- **Body font**: Inter - Google Fonts - weight 400, 500
|
|
19
|
+
- **Mono font**: JetBrains Mono - for code, data, terminal elements
|
|
20
|
+
- **Scale**: Display 64px / H1 40px / H2 28px / H3 20px / Body 16px / Small 13px
|
|
21
|
+
- **Line height**: 1.6 for body / 1.1 for display
|
|
22
|
+
- **Letter spacing**: 0 for body / -0.02em for display and H1
|
|
23
|
+
- **Font loading**: `@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&family=JetBrains+Mono&display=swap')`
|
|
24
|
+
|
|
25
|
+
## 4. Component Stylings
|
|
26
|
+
### Buttons
|
|
27
|
+
Primary: background `--color-accent`, white text, `font-weight: 500`, `border-radius: 2px`, `padding: 10px 20px`. No shadow. Hover shifts to `--color-accent-hover`. Secondary: transparent background, `1px solid --color-border`, text `--color-text-primary`.
|
|
28
|
+
|
|
29
|
+
### Cards
|
|
30
|
+
Background `--color-surface`, `border: 1px solid --color-border`, `border-radius: 2px`, `padding: 24px`. No shadow - border provides definition. Content left-aligned with a clear typographic hierarchy.
|
|
31
|
+
|
|
32
|
+
### Navigation
|
|
33
|
+
Height 56px, `border-bottom: 1px solid --color-border`, background `--color-bg`. Logo/wordmark left. Nav items spaced 32px apart. Active item: `font-weight: 700`, thin `2px solid --color-accent` underline.
|
|
34
|
+
|
|
35
|
+
### Inputs
|
|
36
|
+
`border: 1px solid --color-border`, `border-radius: 2px`, `padding: 10px 12px`, `font-size: 15px`. Focus: `border-color: --color-text-primary`, no colored ring. Placeholder: `--color-muted`.
|
|
37
|
+
|
|
38
|
+
### Badges / Chips
|
|
39
|
+
`border: 1px solid --color-border`, `border-radius: 2px`, `padding: 2px 8px`, `font-size: 12px`, `font-weight: 500`, uppercase text, `letter-spacing: 0.04em`. Background `--color-surface`.
|
|
40
|
+
|
|
41
|
+
## 5. Layout Principles
|
|
42
|
+
- **Grid**: 12-column, 24px gutters
|
|
43
|
+
- **Max width**: 1200px
|
|
44
|
+
- **Section padding**: 96px vertical
|
|
45
|
+
- **Spacing scale**: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96 / 128px
|
|
46
|
+
- **Whitespace philosophy**: extreme - sections breathe, content never crowds
|
|
47
|
+
|
|
48
|
+
## 6. Depth & Elevation
|
|
49
|
+
- **Surface hierarchy**: Level 0 = `--color-bg`, Level 1 = `--color-surface`, Level 2 = `#EFEFEF`
|
|
50
|
+
- **Shadow tokens**: none for low elevation; `0 1px 3px rgba(0,0,0,0.07)` for modals only
|
|
51
|
+
- **Border usage**: solid 1px at every surface boundary; no decorative borders
|
|
52
|
+
|
|
53
|
+
## 7. Do's and Don'ts
|
|
54
|
+
**Do:**
|
|
55
|
+
- Let whitespace carry weight - resist filling every gap
|
|
56
|
+
- Use font weight and size exclusively for hierarchy (no color contrast as a crutch)
|
|
57
|
+
- Keep border-radius at 0-2px; rounding softens the system's authority
|
|
58
|
+
- One accent color only; never mix accent colors
|
|
59
|
+
- Align everything to the 8px grid
|
|
60
|
+
|
|
61
|
+
**Don't:**
|
|
62
|
+
- Add shadows to cards or buttons - they break the flat surface logic
|
|
63
|
+
- Use more than two font weights on a single screen
|
|
64
|
+
- Use decorative icons or illustration; functional icons only
|
|
65
|
+
- Center large blocks of body text
|
|
66
|
+
- Introduce gradient fills anywhere in the UI
|
|
67
|
+
|
|
68
|
+
## 8. Responsive Behavior
|
|
69
|
+
- **Mobile breakpoint**: 375px
|
|
70
|
+
- **Tablet breakpoint**: 768px
|
|
71
|
+
- **Touch targets**: minimum 44px
|
|
72
|
+
- **Typography scaling**: Display drops to 40px / H1 to 28px on mobile
|
|
73
|
+
- **Layout collapse**: 12-col → 4-col on mobile; gutters reduce to 16px; section padding reduces to 48px
|
|
74
|
+
|
|
75
|
+
## 9. Agent Prompt Guide
|
|
76
|
+
Use these prompts with Claude Design or ijfw-design to stay on-system:
|
|
77
|
+
|
|
78
|
+
- **New screen**: "Build a [screen type] following the Swiss Minimal DESIGN.md. Match the color tokens and type scale exactly."
|
|
79
|
+
- **Component**: "Add a [component] that fits the Swiss Minimal aesthetic - reference section 4 for styling rules."
|
|
80
|
+
- **Variant**: "Create a [light/dark/compact] variant of this screen. Keep the same token names, adjust the values."
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Terminal Native - DESIGN.md
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
Developer terminal aesthetic - the UI feels like it was born in a shell session and grew into a product. Monospace everywhere, dark to the bone, single neon accent cutting through the black. Information density is a feature, not a problem. Use for CLIs with web UIs, developer tools, API explorers, monitoring dashboards, and any product where the primary user has a `.zshrc` file.
|
|
5
|
+
|
|
6
|
+
## 2. Color Palette & Roles
|
|
7
|
+
- `--color-bg`: #0D0D0D (page background - terminal black)
|
|
8
|
+
- `--color-surface`: #161616 (card/panel surface)
|
|
9
|
+
- `--color-surface-raised`: #1E1E1E (elevated panels, dropdowns)
|
|
10
|
+
- `--color-border`: #2A2A2A (dividers, input borders)
|
|
11
|
+
- `--color-text-primary`: #E8E8E8 (headings, primary content)
|
|
12
|
+
- `--color-text-secondary`: #7A7A7A (supporting text, labels, comments)
|
|
13
|
+
- `--color-accent`: #00FF88 (CTAs, active states, highlights - terminal green)
|
|
14
|
+
- `--color-accent-hover`: #00CC6E (interactive accent state)
|
|
15
|
+
- `--color-accent-dim`: rgba(0,255,136,0.12) (accent tint for backgrounds)
|
|
16
|
+
- `--color-error`: #FF4C4C (error states)
|
|
17
|
+
- `--color-warning`: #FFB020 (warning states)
|
|
18
|
+
|
|
19
|
+
## 3. Typography Rules
|
|
20
|
+
- **Display font**: JetBrains Mono - Google Fonts - weights 400, 700, 800
|
|
21
|
+
- **Body font**: JetBrains Mono - Google Fonts - weight 400, 500
|
|
22
|
+
- **Mono font**: JetBrains Mono - everything is mono; this is the system
|
|
23
|
+
- **Scale**: Display 48px / H1 32px / H2 24px / H3 18px / Body 14px / Small 12px
|
|
24
|
+
- **Line height**: 1.65 for body / 1.2 for display
|
|
25
|
+
- **Letter spacing**: 0 for body / -0.01em for display
|
|
26
|
+
- **Font loading**: `@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700;800&display=swap')`
|
|
27
|
+
|
|
28
|
+
## 4. Component Stylings
|
|
29
|
+
### Buttons
|
|
30
|
+
Primary: background `--color-accent`, `color: #000000`, `font-family: JetBrains Mono`, `font-weight: 700`, `border-radius: 3px`, `padding: 9px 18px`, `font-size: 13px`. Hover: `--color-accent-hover`. Secondary: transparent, `border: 1px solid --color-accent`, `color: --color-accent`. Both uppercase with `letter-spacing: 0.04em`.
|
|
31
|
+
|
|
32
|
+
### Cards
|
|
33
|
+
Background `--color-surface`, `border: 1px solid --color-border`, `border-radius: 4px`, `padding: 20px`. Optional left accent bar: `border-left: 2px solid --color-accent`. Content uses strict monospace hierarchy.
|
|
34
|
+
|
|
35
|
+
### Navigation
|
|
36
|
+
Height 48px, `border-bottom: 1px solid --color-border`, background `--color-bg`. Items in JetBrains Mono 13px. Active: `color: --color-accent`. Prompt-style separator (`>` or `$`) can precede the active item.
|
|
37
|
+
|
|
38
|
+
### Inputs
|
|
39
|
+
`background: #111111`, `border: 1px solid --color-border`, `border-radius: 3px`, `padding: 9px 12px`, `font-family: JetBrains Mono`, `font-size: 13px`, `color: --color-text-primary`. Focus: `border-color: --color-accent`, `box-shadow: 0 0 0 2px --color-accent-dim`. Cursor blink effect on focus optional.
|
|
40
|
+
|
|
41
|
+
### Badges / Chips
|
|
42
|
+
`background: --color-accent-dim`, `border: 1px solid rgba(0,255,136,0.25)`, `color: --color-accent`, `border-radius: 3px`, `padding: 2px 8px`, `font-size: 11px`, `font-weight: 700`, uppercase. Error variant uses `--color-error` at same opacity ratios.
|
|
43
|
+
|
|
44
|
+
## 5. Layout Principles
|
|
45
|
+
- **Grid**: 12-column, 16px gutters
|
|
46
|
+
- **Max width**: 1280px
|
|
47
|
+
- **Section padding**: 48px vertical
|
|
48
|
+
- **Spacing scale**: 4 / 8 / 12 / 16 / 20 / 24 / 32 / 48 / 64px
|
|
49
|
+
- **Whitespace philosophy**: tight - every pixel used; silence is still legible
|
|
50
|
+
|
|
51
|
+
## 6. Depth & Elevation
|
|
52
|
+
- **Surface hierarchy**: Level 0 = `--color-bg` (#0D0D0D), Level 1 = `--color-surface` (#161616), Level 2 = `--color-surface-raised` (#1E1E1E)
|
|
53
|
+
- **Shadow tokens**: low = `0 1px 3px rgba(0,0,0,0.6)`; mid = `0 4px 12px rgba(0,0,0,0.8)`; glow = `0 0 12px rgba(0,255,136,0.15)`
|
|
54
|
+
- **Border usage**: every surface boundary gets a 1px border; glow border optional on active/selected state
|
|
55
|
+
|
|
56
|
+
## 7. Do's and Don'ts
|
|
57
|
+
**Do:**
|
|
58
|
+
- Use monospace for everything - mixing sans-serif breaks the terminal frame
|
|
59
|
+
- Use the neon accent at full saturation for interactive elements only
|
|
60
|
+
- Show raw data, hex values, and technical strings without sanitizing the aesthetic
|
|
61
|
+
- Use `--color-error` and `--color-warning` for semantic status, not decoration
|
|
62
|
+
- Embrace information density; pack data into compact rows
|
|
63
|
+
|
|
64
|
+
**Don't:**
|
|
65
|
+
- Round corners beyond 4px - terminal UIs are sharp
|
|
66
|
+
- Use gradients anywhere in the layout
|
|
67
|
+
- Add imagery or illustration; icons must be outline/stroke only
|
|
68
|
+
- Use the accent color as a background fill for large areas
|
|
69
|
+
- Lighten the background to improve "accessibility" - contrast lives in the text colors
|
|
70
|
+
|
|
71
|
+
## 8. Responsive Behavior
|
|
72
|
+
- **Mobile breakpoint**: 375px
|
|
73
|
+
- **Tablet breakpoint**: 768px
|
|
74
|
+
- **Touch targets**: minimum 44px
|
|
75
|
+
- **Typography scaling**: Display drops to 28px / body stays 14px - monospace reads small
|
|
76
|
+
- **Layout collapse**: sidebar collapses to bottom drawer; grid goes single column; padding reduces to 16px
|
|
77
|
+
|
|
78
|
+
## 9. Agent Prompt Guide
|
|
79
|
+
Use these prompts with Claude Design or ijfw-design to stay on-system:
|
|
80
|
+
|
|
81
|
+
- **New screen**: "Build a [screen type] following the Terminal Native DESIGN.md. Match the color tokens and type scale exactly."
|
|
82
|
+
- **Component**: "Add a [component] that fits the Terminal Native aesthetic - reference section 4 for styling rules."
|
|
83
|
+
- **Variant**: "Create a [light/dark/compact] variant of this screen. Keep the same token names, adjust the values."
|