cdragon 0.1.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.
Files changed (91) hide show
  1. package/README.md +110 -0
  2. package/bin/cdragon.js +170 -0
  3. package/package.json +31 -0
  4. package/skills/agent-browser/SKILL.md +50 -0
  5. package/skills/grill-me/SKILL.md +7 -0
  6. package/skills/herdr-agent/SKILL.md +142 -0
  7. package/skills/herdr-cli/SKILL.md +388 -0
  8. package/skills/herdr-cli/scripts/herdr-agent-run-and-wait +203 -0
  9. package/skills/herdr-cli/scripts/herdr-agent-wait-complete +168 -0
  10. package/skills/notion-presentation/SKILL.md +170 -0
  11. package/skills/notion-presentation/references/example-redis-deck.md +97 -0
  12. package/skills/setup-matt-pocock-skills/SKILL.md +127 -0
  13. package/skills/setup-matt-pocock-skills/domain.md +51 -0
  14. package/skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
  15. package/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
  16. package/skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
  17. package/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  18. package/skills/tdd/SKILL.md +108 -0
  19. package/skills/tdd/mocking.md +59 -0
  20. package/skills/tdd/refactoring.md +10 -0
  21. package/skills/tdd/tests.md +61 -0
  22. package/skills/to-html/SKILL.md +83 -0
  23. package/skills/to-html/designs/INDEX.md +74 -0
  24. package/skills/to-html/designs/airbnb.DESIGN.md +581 -0
  25. package/skills/to-html/designs/airtable.DESIGN.md +275 -0
  26. package/skills/to-html/designs/alipay.DESIGN.md +456 -0
  27. package/skills/to-html/designs/apple.DESIGN.md +566 -0
  28. package/skills/to-html/designs/banksalad.DESIGN.md +621 -0
  29. package/skills/to-html/designs/channeltalk.DESIGN.md +374 -0
  30. package/skills/to-html/designs/clay.DESIGN.md +398 -0
  31. package/skills/to-html/designs/clickhouse.DESIGN.md +374 -0
  32. package/skills/to-html/designs/cohere.DESIGN.md +361 -0
  33. package/skills/to-html/designs/coinone.DESIGN.md +218 -0
  34. package/skills/to-html/designs/coupang.DESIGN.md +502 -0
  35. package/skills/to-html/designs/cursor.DESIGN.md +416 -0
  36. package/skills/to-html/designs/elevenlabs.DESIGN.md +376 -0
  37. package/skills/to-html/designs/expo.DESIGN.md +373 -0
  38. package/skills/to-html/designs/figma.DESIGN.md +490 -0
  39. package/skills/to-html/designs/framer.DESIGN.md +393 -0
  40. package/skills/to-html/designs/freee.DESIGN.md +572 -0
  41. package/skills/to-html/designs/gangnamunni.DESIGN.md +621 -0
  42. package/skills/to-html/designs/gmarket.DESIGN.md +483 -0
  43. package/skills/to-html/designs/gogolook.DESIGN.md +131 -0
  44. package/skills/to-html/designs/hahow.DESIGN.md +158 -0
  45. package/skills/to-html/designs/hashicorp.DESIGN.md +369 -0
  46. package/skills/to-html/designs/hyundaicard.DESIGN.md +177 -0
  47. package/skills/to-html/designs/ibm.DESIGN.md +420 -0
  48. package/skills/to-html/designs/kakaobank.DESIGN.md +548 -0
  49. package/skills/to-html/designs/kakaopay.DESIGN.md +544 -0
  50. package/skills/to-html/designs/karrot.DESIGN.md +445 -0
  51. package/skills/to-html/designs/kdan.DESIGN.md +160 -0
  52. package/skills/to-html/designs/krds.DESIGN.md +997 -0
  53. package/skills/to-html/designs/line.DESIGN.md +431 -0
  54. package/skills/to-html/designs/linear.app.DESIGN.md +548 -0
  55. package/skills/to-html/designs/miro.DESIGN.md +272 -0
  56. package/skills/to-html/designs/mistral.ai.DESIGN.md +353 -0
  57. package/skills/to-html/designs/money-forward.DESIGN.md +401 -0
  58. package/skills/to-html/designs/mongodb.DESIGN.md +357 -0
  59. package/skills/to-html/designs/naver.DESIGN.md +533 -0
  60. package/skills/to-html/designs/nhncloud.DESIGN.md +174 -0
  61. package/skills/to-html/designs/opencode.ai.DESIGN.md +388 -0
  62. package/skills/to-html/designs/pinterest.DESIGN.md +322 -0
  63. package/skills/to-html/designs/posthog.DESIGN.md +430 -0
  64. package/skills/to-html/designs/raycast.DESIGN.md +422 -0
  65. package/skills/to-html/designs/remember.DESIGN.md +460 -0
  66. package/skills/to-html/designs/resend.DESIGN.md +396 -0
  67. package/skills/to-html/designs/sanity.DESIGN.md +449 -0
  68. package/skills/to-html/designs/sendbird.DESIGN.md +285 -0
  69. package/skills/to-html/designs/smarthr.DESIGN.md +404 -0
  70. package/skills/to-html/designs/socar.DESIGN.md +403 -0
  71. package/skills/to-html/designs/spotify.DESIGN.md +265 -0
  72. package/skills/to-html/designs/supabase.DESIGN.md +348 -0
  73. package/skills/to-html/designs/superhuman.DESIGN.md +414 -0
  74. package/skills/to-html/designs/together.ai.DESIGN.md +356 -0
  75. package/skills/to-html/designs/toss.DESIGN.md +655 -0
  76. package/skills/to-html/designs/uber.DESIGN.md +387 -0
  77. package/skills/to-html/designs/upstage.DESIGN.md +232 -0
  78. package/skills/to-html/designs/velog.DESIGN.md +168 -0
  79. package/skills/to-html/designs/vercel.DESIGN.md +479 -0
  80. package/skills/to-html/designs/wanted.DESIGN.md +529 -0
  81. package/skills/to-html/designs/wise.DESIGN.md +276 -0
  82. package/skills/to-html/designs/yanolja.DESIGN.md +463 -0
  83. package/skills/to-html/designs/yeogiotte.DESIGN.md +459 -0
  84. package/skills/to-html/designs/zapier.DESIGN.md +433 -0
  85. package/skills/to-html/designs/zigzag.DESIGN.md +633 -0
  86. package/skills/to-issues/SKILL.md +84 -0
  87. package/skills/to-prd/SKILL.md +75 -0
  88. package/src/colors.js +15 -0
  89. package/src/link.js +47 -0
  90. package/src/prompt.js +137 -0
  91. package/src/skills.js +75 -0
@@ -0,0 +1,174 @@
1
+ ---
2
+ id: "nhncloud"
3
+ name: "NHN Cloud"
4
+ country: KR
5
+ category: backend-devops
6
+ homepage: "https://www.nhncloud.com"
7
+ primary_color: "#125DE6"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=nhncloud.com&sz=128"
11
+ verified: "2026-06-01"
12
+ omd: "0.1"
13
+ ds:
14
+ name: TOAST UI
15
+ url: "https://ui.toast.com"
16
+ type: system
17
+ description: NHN's official open-source component library (TUI Grid/Editor/Calendar/Chart/Image-Editor), MIT-licensed under the nhn GitHub org and documented at ui.toast.com.
18
+ ---
19
+ # Design System Inspiration of NHN Cloud
20
+
21
+ ## 1. Visual Theme & Atmosphere
22
+
23
+ NHN Cloud presents two distinct but related faces, and the brand's character lives in the gap between them. The corporate marketing site is confident and saturated — a vivid #125DE6 blue carried on large, fully-rounded pill CTAs that feel approachable and modern, anchored by clean near-black text on Pretendard Variable. The TOAST UI open-source widget library is the engineering counterpart: tighter, more functional, and a touch cooler in hue, leaning on a lighter accent blue (#00a9ff) and small 4px corner radii built for dense data interfaces like grids and editors. Where the corporate site sells trust and scale, the component library optimizes for legibility and information density. Together they read as one company speaking two registers — the marketing voice for executives evaluating an enterprise cloud, and the practitioner voice for developers embedding NHN's tools. The consistent thread is a blue-forward, clean, no-nonsense Korean enterprise aesthetic that never feels playful for its own sake.
24
+
25
+ ## 2. Color Palette & Roles
26
+ The brand operates across two surfaces, each with its own blue.
27
+
28
+ **Corporate site (live nhncloud.com)**
29
+ - Brand primary blue: #125DE6 (rgb 18,93,230) — every primary CTA
30
+ - Dark CTA: #111111 — high-contrast alternate action
31
+ - Newsletter input border: #51565F
32
+ - Muted text: #727781
33
+ - Body text: near-black
34
+
35
+ **TOAST UI (source-verified CSS)**
36
+ - Accent blue: #00a9ff — primary interactive accent
37
+ - Hover / active blue: #0088d9
38
+ - Light tint: #e5f6ff
39
+ - Secondary blue: #009bf2
40
+ - Error red: #fa2828
41
+ - Neutral background: #f7f9fc
42
+
43
+ Roles: on the corporate surface, #125DE6 is reserved for the single most important action on a section, with #111111 serving as a dark high-contrast alternate. On TOAST UI, #00a9ff drives interactive accents with #0088d9 as the hover/active darkening and #e5f6ff as a soft selection/tint fill; #fa2828 is the dedicated error signal and #f7f9fc the calm neutral canvas behind widgets.
44
+
45
+ ## 3. Typography Rules
46
+ The corporate site uses Pretendard Variable throughout. Body copy is set at 16px; primary CTAs render at 15px / 400; a secondary heading-style CTA steps up to 17px / 500 for slightly more presence. The TOAST UI library defaults to a compact 13px body, appropriate for the data-dense grids and editors it powers. The hierarchy is restrained: weight moves between 400 and 500 rather than relying on heavy display weights, and size differences are modest, keeping the overall feel even and professional. Use Pretendard Variable for any corporate-aligned interface and the smaller 13px scale when matching the embedded TOAST UI surface.
47
+
48
+ ## 4. Component Stylings
49
+
50
+ ### Primary CTA (Corporate)
51
+
52
+ **Vivid-blue pill**
53
+ - Background: #125DE6
54
+ - Text: #FFFFFF
55
+ - Border: none
56
+ - Radius: 30px
57
+ - Padding: 8px 19px
58
+ - Height: 40px
59
+ - Font: 15px / 400
60
+ - Use: the primary call-to-action on corporate marketing sections
61
+
62
+ ### Dark CTA (Corporate)
63
+
64
+ **Near-black pill**
65
+ - Background: #111111
66
+ - Text: #FFFFFF
67
+ - Border: none
68
+ - Radius: 30px
69
+ - Height: 40px
70
+ - Font: 15px / 400
71
+ - Use: high-contrast alternate primary action
72
+
73
+ ### Outline CTA on Dark (Corporate)
74
+
75
+ **Ghost pill**
76
+ - Background: transparent
77
+ - Text: #FFFFFF
78
+ - Border: 1px solid #FFFFFF
79
+ - Radius: 30px
80
+ - Height: 50px
81
+ - Font: 17px / 500
82
+ - Use: larger secondary action placed over a dark section
83
+
84
+ ### Newsletter Input (Corporate)
85
+
86
+ **Transparent field**
87
+ - Background: transparent
88
+ - Text: #727781
89
+ - Border: 1px solid #51565F
90
+ - Radius: 6px
91
+ - Height: 42px
92
+ - Font: 14px / 400
93
+ - Use: email capture field in the newsletter/footer area
94
+
95
+ ### TOAST UI Widget Element (Source)
96
+
97
+ **Compact surface**
98
+ - Background: #f7f9fc
99
+ - Text: near-black
100
+ - Border: derived from accent #00a9ff on interactive states
101
+ - Radius: 4px
102
+ - Font: 13px / 400
103
+ - Use: base styling for TOAST UI grid/editor widgets
104
+
105
+ **Interactive (accent)**
106
+ - Background: #e5f6ff
107
+ - Border: #00a9ff
108
+ - Use: selected / accented state within the widget
109
+
110
+ **Hover / active**
111
+ - Border: #0088d9
112
+ - Use: hover and active darkening of the accent
113
+
114
+ ## 5. Layout Principles
115
+ The corporate site favors generous, breathing layouts where a single saturated CTA anchors each section against ample whitespace, letting the vivid blue do the work of directing attention. Fully-rounded 30px pills are placed as clear focal points rather than crowded clusters. The TOAST UI surface inverts this priority: it is built for density, with the calm #f7f9fc neutral background framing tight, legible grids and editors at the 13px scale and small 4px radii that keep many adjacent cells visually quiet. Match the corporate layout when designing marketing or top-of-funnel pages, and the TOAST UI layout when designing functional, data-heavy application screens.
116
+
117
+ ## 6. Depth & Elevation
118
+ NHN Cloud reads as a fundamentally flat, modern system on both surfaces — depth is expressed through color contrast and crisp 1px borders rather than heavy shadow. On the corporate site, separation comes from the saturated #125DE6 (or #111111) fill standing out against light backgrounds, and from thin 1px outlines such as the #51565F input border and the #FFFFFF ghost-button stroke. On TOAST UI, the #f7f9fc neutral canvas and small 4px-radius elements establish quiet layering, with the #00a9ff accent and #e5f6ff tint lifting interactive elements forward through hue rather than elevation. Keep elevation subtle: prefer contrast and hairline borders over drop shadows.
119
+
120
+ ## 7. Do's and Don'ts
121
+
122
+ ### Do
123
+ - Reserve #125DE6 for the single primary action on a corporate section.
124
+ - Use Pretendard Variable for corporate-aligned interfaces.
125
+ - Use fully-rounded 30px pills for corporate CTAs and the compact 4px radius for TOAST UI elements.
126
+ - Keep the two surfaces visually distinct: vivid #125DE6 for corporate, lighter #00a9ff for TOAST UI.
127
+
128
+ ### Don't
129
+ - Blur the two blues — #125DE6 (corporate) and #00a9ff (TOAST UI) are not interchangeable.
130
+ - Introduce heavy drop shadows; rely on color contrast and 1px borders.
131
+ - Crowd multiple saturated pills together; let one CTA lead.
132
+ - Use the dense 13px scale on marketing pages or the large pills inside data grids.
133
+
134
+ ## 8. Responsive Behavior
135
+ Component sizing in the blob points to comfortable, finger-friendly targets: corporate CTAs stand at 40px high (50px for the larger ghost button) and the newsletter input at 42px, with rounded 30px pills that stay legible at small widths. The Pretendard Variable type scale — 16px body, 15px and 17px CTAs — remains readable across breakpoints without restyling. The TOAST UI surface, designed for embedding, holds its compact 13px scale and 4px radii so that grids and editors retain density on whatever container they sit in. Preserve these heights and radii across viewports; scale layout and spacing rather than re-theming the components.
136
+
137
+ ## 9. Agent Prompt Guide
138
+ When generating UI in the NHN Cloud style, first decide which surface you are matching. For corporate/marketing work, use Pretendard Variable, set body at 16px, and render the primary CTA as a fully-rounded 30px pill with background #125DE6, white text, 15px / 400, 40px tall, padding 8px 19px; offer #111111 as a dark alternate and a transparent ghost button with a 1px #FFFFFF border (50px, 17px / 500) over dark sections; style inputs as transparent fields with a 1px #51565F border, 6px radius, 42px height, #727781 text at 14px / 400. For TOAST UI / application work, use the 13px scale, 4px radii, an #f7f9fc neutral background, the #00a9ff accent with #0088d9 hover and #e5f6ff tint, #009bf2 as a secondary blue, and #fa2828 for errors. Never mix the two blues, and never invent shadows the system doesn't use.
139
+
140
+ ## 10. Voice & Tone
141
+ NHN Cloud speaks in two registers tied to its two surfaces. The corporate voice is confident, trust-building, and enterprise-minded — selling scale, reliability, and partnership to decision-makers, with bold blue CTAs that invite a clear next step. The TOAST UI voice is the practitioner's: precise, functional, and documentation-driven, addressing developers who want their widgets to work predictably. Keep corporate copy assured and outcome-focused; keep TOAST UI copy exact and utilitarian.
142
+
143
+ ## 11. Brand Narrative
144
+ NHN Cloud is the enterprise cloud arm of NHN Corp, headquartered in Pangyo, Korea. Its identity is built on two complementary pillars: a polished corporate presence that markets cloud infrastructure to enterprises, and TOAST UI — NHN's open-source component library (TUI Grid, Editor, Calendar, Chart, Image-Editor) released MIT-licensed under the nhn GitHub organization and documented at ui.toast.com. This pairing mirrors how strong product companies maintain a marketing surface and a developer surface side by side: the corporate site earns trust at the buying level, while TOAST UI earns credibility at the building level. The brand's story is one of a Korean enterprise that both sells the cloud and contributes the tools developers use on top of it.
145
+
146
+ ## 12. Principles
147
+ - Two surfaces, one brand: corporate marketing and TOAST UI are parallel systems, each internally consistent.
148
+ - Blue-forward clarity: a single saturated blue leads attention on each surface.
149
+ - Flat and clean: contrast and hairline borders over shadow.
150
+ - Density where it counts: marketing breathes; application widgets pack tight at 13px / 4px.
151
+ - Restraint in type: weights stay between 400 and 500.
152
+
153
+ ## 13. Personas
154
+ - Enterprise buyer: evaluating NHN Cloud for infrastructure; meets the confident corporate site, vivid #125DE6 CTAs, and Pretendard Variable copy.
155
+ - Developer / integrator: embedding TOAST UI widgets; works in the compact 13px, 4px-radius surface with the #00a9ff accent system.
156
+ - Korean enterprise team: expecting a clean, professional, blue-forward Korean cloud aesthetic across both touchpoints.
157
+
158
+ ## 14. States
159
+ - Default (corporate CTA): #125DE6 background, white text, 30px pill.
160
+ - Default (TOAST UI accent): #00a9ff accent on #f7f9fc neutral background.
161
+ - Hover / active (TOAST UI): accent darkens to #0088d9.
162
+ - Selected / tinted (TOAST UI): #e5f6ff light tint fill with #00a9ff edge.
163
+ - Error (TOAST UI): #fa2828 red.
164
+ - Input resting (corporate): transparent field, 1px #51565F border, #727781 text.
165
+
166
+ ## 15. Motion & Easing
167
+ No motion or easing values were captured in live inspection, so specifics are not asserted here. In keeping with the system's flat, clean, contrast-driven character, treat motion as restrained and functional: brief, confident transitions on the corporate CTAs and the lightest possible state feedback on TOAST UI's dense widgets, where the #00a9ff → #0088d9 darkening communicates interaction without distracting from data. Favor subtle, purposeful movement over decorative animation.
168
+
169
+ ---
170
+ **Verified:** 2026-06-01
171
+ **Tier 1 sources:** https://www.nhncloud.com (live corporate DOM — #125DE6 primary CTAs, #111111 dark CTA, #51565F input border, #727781 muted text, Pretendard Variable 16/15/17px), https://ui.toast.com (TOAST UI system entry point — open-source widget library), https://github.com/nhn (nhn org source CSS — tui.grid grid.css #00a9ff/#0088d9/#e5f6ff 13px, tui.editor editor.css #00a9ff/#009bf2/#fa2828/#f7f9fc radius 4px)
172
+ **Tier 2 sources:** getdesign.md/nhncloud — NOT LISTED. refero — not listed. Note: corporate brand blue #125DE6 differs from TOAST UI accent #00a9ff (two surfaces).
173
+ **Conflicts unresolved:** none
174
+ **Proof:** see .verification.md (## Proof block)
@@ -0,0 +1,388 @@
1
+ ---
2
+ id: opencode.ai
3
+ name: OpenCode AI
4
+ country: US
5
+ category: ai
6
+ homepage: "https://opencode.ai"
7
+ primary_color: "#000000"
8
+ logo:
9
+ type: github
10
+ slug: opencode-ai
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ds:
14
+ name: OpenCode Brand
15
+ url: "https://opencode.ai/brand"
16
+ type: brand
17
+ description: OpenCode's terminal-oriented logo and brand assets.
18
+ og_image: "https://opencode.ai/social-share.png"
19
+ ---
20
+
21
+ # Design System Inspiration of OpenCode
22
+
23
+ ## 1. Visual Theme & Atmosphere
24
+
25
+ OpenCode's website embodies a terminal-native, monospace-first aesthetic that reflects its identity as an open source AI coding agent. The entire visual system is built on a stark dark-on-light contrast using a near-black background (`#201d1d`) with warm off-white text (`#fdfcfc`). This isn't a generic dark theme -- it's a warm, slightly reddish-brown dark that feels like a sophisticated terminal emulator rather than a cold IDE. The warm undertone in both the darks and lights (notice the subtle red channel in `#201d1d` -- rgb(32, 29, 29)) creates a cohesive, lived-in quality.
26
+
27
+ Berkeley Mono is the sole typeface, establishing an unapologetic monospace identity. Every element -- headings, body text, buttons, navigation -- shares this single font family, creating a unified "everything is code" philosophy. The heading at 38px bold with 1.50 line-height is generous and readable, while body text at 16px with weight 500 provides a slightly heavier-than-normal reading weight that enhances legibility on screen. The monospace grid naturally enforces alignment and rhythm across the layout.
28
+
29
+ The color system is deliberately minimal. The primary palette consists of just three functional tones: the warm near-black (`#201d1d`), a medium warm gray (`#9a9898`), and a bright off-white (`#fdfcfc`). Semantic colors borrow from the Apple HIG palette -- blue accent (`#007aff`), red danger (`#ff3b30`), green success (`#30d158`), orange warning (`#ff9f0a`) -- giving the interface familiar, trustworthy signal colors without adding brand complexity. Borders use a subtle warm transparency (`rgba(15, 0, 0, 0.12)`) that ties into the warm undertone of the entire system.
30
+
31
+ **Key Characteristics:**
32
+ - Berkeley Mono as the sole typeface -- monospace everywhere, no sans-serif or serif voices
33
+ - Warm near-black primary (`#201d1d`) with reddish-brown undertone, not pure black
34
+ - Off-white text (`#fdfcfc`) with warm tint, not pure white
35
+ - Minimal 4px border radius throughout -- sharp, utilitarian corners
36
+ - 8px base spacing system scaling up to 96px
37
+ - Apple HIG-inspired semantic colors (blue, red, green, orange)
38
+ - Transparent warm borders using `rgba(15, 0, 0, 0.12)`
39
+ - Email input with generous 20px padding and 6px radius -- the most generous component radius
40
+ - Single button variant: dark background, light text, tight vertical padding (4px 20px)
41
+ - Underlined links as default link style, reinforcing the text-centric identity
42
+
43
+ ### Do's and Don'ts
44
+
45
+ - **DO** use Berkeley Mono everywhere — headings, body, buttons, navigation, labels. The single-font system IS the brand.
46
+ - **DON'T** introduce a sans-serif or serif voice — even for "marketing" copy. Mixing voices breaks OpenCode's terminal-native identity.
47
+ - **DO** use warm dark `#201d1d` (rgb 32, 29, 29) as background — the subtle red undertone is intentional.
48
+ - **DON'T** use pure `#000000` or cool grays — they feel like generic dark themes, not OpenCode's lived-in terminal warmth.
49
+ - **DO** use warm off-white `#fdfcfc` for foreground text — pure white is too cold against the warm dark.
50
+ - **DO** use 4px border radius universally — sharp, utilitarian corners match the developer-tool aesthetic.
51
+ - **DON'T** use rounded or pill-shaped components — that's consumer/marketing language.
52
+ - **DO** apply Apple HIG semantic colors (blue `#007aff`, red `#ff3b30`, green `#30d158`, orange `#ff9f0a`) for status — they're trustworthy signals without adding brand complexity.
53
+ - **DON'T** invent custom semantic colors — the Apple palette is the convention developers expect.
54
+ - **DO** underline links by default — text-centric identity reinforces "everything is code."
55
+ - **DON'T** use color-only link styling without underline — accessibility AND identity benefit from the underline.
56
+
57
+ ## 2. Color Palette & Roles
58
+
59
+ ### Primary
60
+ - **OpenCode Dark** (`#201d1d`): Primary background, button fills, link text. A warm near-black with subtle reddish-brown warmth -- rgb(32, 29, 29).
61
+ - **OpenCode Light** (`#fdfcfc`): Primary text on dark surfaces, button text. A barely-warm off-white that avoids clinical pure white.
62
+ - **Mid Gray** (`#9a9898`): Secondary text, muted links. A neutral warm gray that bridges dark and light.
63
+
64
+ ### Secondary
65
+ - **Dark Surface** (`#302c2c`): Slightly lighter than primary dark, used for elevated surfaces and subtle differentiation.
66
+ - **Border Gray** (`#646262`): Stronger borders, outline rings on interactive elements.
67
+ - **Light Surface** (`#f1eeee`): Light mode surface, subtle background variation.
68
+
69
+ ### Accent
70
+ - **Accent Blue** (`#007aff`): Primary accent, links, interactive highlights. Apple system blue.
71
+ - **Accent Blue Hover** (`#0056b3`): Darker blue for hover states.
72
+ - **Accent Blue Active** (`#004085`): Deepest blue for pressed/active states.
73
+
74
+ ### Semantic
75
+ - **Danger Red** (`#ff3b30`): Error states, destructive actions. Apple system red.
76
+ - **Danger Hover** (`#d70015`): Darker red for hover on danger elements.
77
+ - **Danger Active** (`#a50011`): Deepest red for pressed danger states.
78
+ - **Success Green** (`#30d158`): Success states, positive feedback. Apple system green.
79
+ - **Warning Orange** (`#ff9f0a`): Warning states, caution signals. Apple system orange.
80
+ - **Warning Hover** (`#cc7f08`): Darker orange for hover on warning elements.
81
+ - **Warning Active** (`#995f06`): Deepest orange for pressed warning states.
82
+
83
+ ### Text Scale
84
+ - **Text Muted** (`#6e6e73`): Muted labels, disabled text, placeholder content.
85
+ - **Text Secondary** (`#424245`): Secondary text on light backgrounds, captions.
86
+
87
+ ### Border
88
+ - **Border Warm** (`rgba(15, 0, 0, 0.12)`): Primary border color, warm transparent black with red tint.
89
+ - **Border Tab** (`#9a9898`): Tab underline border, 2px solid bottom.
90
+ - **Border Outline** (`#646262`): 1px solid outline border for containers.
91
+
92
+ ## 3. Typography Rules
93
+
94
+ ### Font Family
95
+ - **Universal**: `Berkeley Mono`, with fallbacks: `IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace`
96
+
97
+ ### Hierarchy
98
+
99
+ | Role | Size | Weight | Line Height | Notes |
100
+ |------|------|--------|-------------|-------|
101
+ | Heading 1 | 38px (2.38rem) | 700 | 1.50 | Hero headlines, page titles |
102
+ | Heading 2 | 16px (1.00rem) | 700 | 1.50 | Section titles, bold emphasis |
103
+ | Body | 16px (1.00rem) | 400 | 1.50 | Standard body text, paragraphs |
104
+ | Body Medium | 16px (1.00rem) | 500 | 1.50 | Links, button text, nav items |
105
+ | Body Tight | 16px (1.00rem) | 500 | 1.00 (tight) | Compact labels, tab items |
106
+ | Caption | 14px (0.88rem) | 400 | 2.00 (relaxed) | Footnotes, metadata, small labels |
107
+
108
+ ### Principles
109
+ - **One font, one voice**: Berkeley Mono is used exclusively. There is no typographic variation between display, body, and code -- everything speaks in the same monospace register. Hierarchy is achieved through size and weight alone.
110
+ - **Weight as hierarchy**: 700 for headings, 500 for interactive/medium emphasis, 400 for body text. Three weight levels create the entire hierarchy.
111
+ - **Generous line-height**: 1.50 as the standard line-height gives text room to breathe within the monospace grid. The relaxed 2.00 line-height on captions creates clear visual separation.
112
+ - **Tight for interaction**: Interactive elements (tabs, compact labels) use 1.00 line-height for dense, clickable targets.
113
+
114
+ ## 4. Component Stylings
115
+
116
+ ### Buttons
117
+
118
+ **Primary (Dark Fill)**
119
+ - Background: `#201d1d` (OpenCode Dark)
120
+ - Text: `#fdfcfc` (OpenCode Light)
121
+ - Padding: 4px 20px
122
+ - Radius: 4px
123
+ - Font: 16px Berkeley Mono, weight 500, line-height 2.00 (relaxed)
124
+ - Outline: `rgb(253, 252, 252) none 0px`
125
+ - Use: Primary CTAs, main actions
126
+
127
+ ### Inputs
128
+
129
+ **Email Input**
130
+ - Background: `#f8f7f7` (light neutral)
131
+ - Text: `#201d1d`
132
+ - Border: `1px solid rgba(15, 0, 0, 0.12)`
133
+ - Padding: 20px
134
+ - Radius: 6px
135
+ - Font: Berkeley Mono, standard size
136
+ - Use: Form fields, email capture
137
+
138
+ ### Links
139
+
140
+ **Default Link**
141
+ - Color: `#201d1d`
142
+ - Decoration: underline 1px
143
+ - Font-weight: 500
144
+ - Use: Primary text links in body content
145
+
146
+ **Light Link**
147
+ - Color: `#fdfcfc`
148
+ - Decoration: none
149
+ - Use: Links on dark backgrounds, navigation
150
+
151
+ **Muted Link**
152
+ - Color: `#9a9898`
153
+ - Decoration: none
154
+ - Use: Footer links, secondary navigation
155
+
156
+ ### Tabs
157
+
158
+ **Tab Navigation**
159
+ - Border-bottom: `2px solid #9a9898` (active tab indicator)
160
+ - Font: 16px, weight 500, line-height 1.00
161
+ - Use: Section switching, content filtering
162
+
163
+ ### Navigation
164
+ - Clean horizontal layout with Berkeley Mono throughout
165
+ - Brand logotype left-aligned in monospace
166
+ - Links at 16px weight 500 with underline decoration
167
+ - Dark background matching page background
168
+ - No backdrop blur or transparency -- solid surfaces only
169
+
170
+ ### Image Treatment
171
+ - Terminal/code screenshots as hero imagery
172
+ - Dark terminal aesthetic with monospace type
173
+ - Minimal borders, content speaks for itself
174
+
175
+ ### Distinctive Components
176
+
177
+ **Terminal Hero**
178
+ - Full-width dark terminal window as hero element
179
+ - ASCII art / stylized logo within terminal frame
180
+ - Monospace command examples with syntax highlighting
181
+ - Reinforces the CLI-first identity of the product
182
+
183
+ **Feature List**
184
+ - Bulleted feature items with Berkeley Mono text
185
+ - Weight 500 for feature names, 400 for descriptions
186
+ - Tight vertical spacing between items
187
+ - No cards or borders -- pure text layout
188
+
189
+ **Email Capture**
190
+ - Light background input (`#f8f7f7`) contrasting dark page
191
+ - Generous 20px padding for comfortable typing
192
+ - 6px radius -- the roundest element in the system
193
+ - Newsletter/waitlist pattern
194
+
195
+ ## 5. Layout Principles
196
+
197
+ ### Spacing System
198
+ - Base unit: 8px
199
+ - Fine scale: 1px, 2px, 4px (sub-8px for borders and micro-adjustments)
200
+ - Standard scale: 8px, 12px, 16px, 20px, 24px
201
+ - Extended scale: 32px, 40px, 48px, 64px, 80px, 96px
202
+ - The system follows a clean 4/8px grid with consistent doubling
203
+
204
+ ### Grid & Container
205
+ - Max content width: approximately 800-900px (narrow, reading-optimized)
206
+ - Single-column layout as the primary pattern
207
+ - Centered content with generous horizontal margins
208
+ - Hero section: full-width dark terminal element
209
+ - Feature sections: single-column text blocks
210
+ - Footer: multi-column link grid
211
+
212
+ ### Whitespace Philosophy
213
+ - **Monospace rhythm**: The fixed-width nature of Berkeley Mono creates a natural vertical grid. Line-heights of 1.50 and 2.00 maintain consistent rhythm.
214
+ - **Narrow and focused**: Content is constrained to a narrow column, creating generous side margins that focus attention on the text.
215
+ - **Sections through spacing**: No decorative dividers. Sections are separated by generous vertical spacing (48-96px) rather than borders or background changes.
216
+
217
+ ### Border Radius Scale
218
+ - Micro (4px): Default for all elements -- buttons, containers, badges
219
+ - Input (6px): Form inputs get slightly more roundness
220
+ - The entire system uses just two radius values, reinforcing the utilitarian aesthetic
221
+
222
+ ## 6. Depth & Elevation
223
+
224
+ | Level | Treatment | Use |
225
+ |-------|-----------|-----|
226
+ | Flat (Level 0) | No shadow, no border | Default state for most elements |
227
+ | Border Subtle (Level 1) | `1px solid rgba(15, 0, 0, 0.12)` | Section dividers, input borders, horizontal rules |
228
+ | Border Tab (Level 2) | `2px solid #9a9898` bottom only | Active tab indicator |
229
+ | Border Outline (Level 3) | `1px solid #646262` | Container outlines, elevated elements |
230
+
231
+ **Shadow Philosophy**: OpenCode's depth system is intentionally flat. There are no box-shadows in the extracted tokens -- zero shadow values were detected. Depth is communicated exclusively through border treatments and background color shifts. This flatness is consistent with the terminal aesthetic: terminals don't have shadows, and neither does OpenCode. The three border levels (transparent warm, tab indicator, solid outline) create sufficient visual hierarchy without any elevation illusion.
232
+
233
+ ### Decorative Depth
234
+ - Background color shifts between `#201d1d` and `#302c2c` create subtle surface differentiation
235
+ - Transparent borders at 12% opacity provide barely-visible structure
236
+ - The warm reddish tint in border colors (`rgba(15, 0, 0, 0.12)`) ties borders to the overall warm dark palette
237
+ - No gradients, no blurs, no ambient effects -- pure flat terminal aesthetic
238
+
239
+ ## 7. Interaction & Motion
240
+
241
+ ### Hover States
242
+ - Links: color shift from default to accent blue (`#007aff`) or underline style change
243
+ - Buttons: subtle background lightening or border emphasis
244
+ - Accent blue provides a three-stage hover sequence: `#007aff` → `#0056b3` → `#004085` (default → hover → active)
245
+ - Danger red: `#ff3b30` → `#d70015` → `#a50011`
246
+ - Warning orange: `#ff9f0a` → `#cc7f08` → `#995f06`
247
+
248
+ ### Focus States
249
+ - Border-based focus: increased border opacity or solid border color
250
+ - No shadow-based focus rings -- consistent with the flat, no-shadow aesthetic
251
+ - Keyboard focus likely uses outline or border color shift to accent blue
252
+
253
+ ### Transitions
254
+ - Minimal transitions expected -- terminal-inspired interfaces favor instant state changes
255
+ - Color transitions: 100-150ms for subtle state feedback
256
+ - No scale, rotate, or complex transform animations
257
+
258
+ ## 8. Responsive Behavior
259
+
260
+ ### Breakpoints
261
+ | Name | Width | Key Changes |
262
+ |------|-------|-------------|
263
+ | Mobile | <640px | Single column, reduced padding, heading scales down |
264
+ | Tablet | 640-1024px | Content width expands, slight padding increase |
265
+ | Desktop | >1024px | Full content width (~800-900px centered), maximum whitespace |
266
+
267
+ ### Touch Targets
268
+ - Buttons with 4px 20px padding provide adequate horizontal touch area
269
+ - Input fields with 20px padding ensure comfortable mobile typing
270
+ - Tab items at 16px with tight line-height may need mobile adaptation
271
+
272
+ ### Collapsing Strategy
273
+ - Hero heading: 38px → 28px → 24px on smaller screens
274
+ - Navigation: horizontal links → hamburger/drawer on mobile
275
+ - Feature lists: maintain single-column, reduce horizontal padding
276
+ - Terminal hero: maintain full-width, reduce internal padding
277
+ - Footer columns: multi-column → stacked single column
278
+ - Section spacing: 96px → 64px → 48px on mobile
279
+
280
+ ### Image Behavior
281
+ - Terminal screenshots maintain aspect ratio and border treatment
282
+ - Full-width elements scale proportionally
283
+ - Monospace type maintains readability at all sizes due to fixed-width nature
284
+
285
+ ## 9. Agent Prompt Guide
286
+
287
+ ### Quick Color Reference
288
+ - Page background: `#201d1d` (warm near-black)
289
+ - Primary text: `#fdfcfc` (warm off-white)
290
+ - Secondary text: `#9a9898` (warm gray)
291
+ - Muted text: `#6e6e73`
292
+ - Accent: `#007aff` (blue)
293
+ - Danger: `#ff3b30` (red)
294
+ - Success: `#30d158` (green)
295
+ - Warning: `#ff9f0a` (orange)
296
+ - Button bg: `#201d1d`, button text: `#fdfcfc`
297
+ - Border: `rgba(15, 0, 0, 0.12)` (warm transparent)
298
+ - Input bg: `#f8f7f7`, input border: `rgba(15, 0, 0, 0.12)`
299
+
300
+ ### Example Component Prompts
301
+ - "Create a hero section on `#201d1d` warm dark background. Headline at 38px Berkeley Mono weight 700, line-height 1.50, color `#fdfcfc`. Subtitle at 16px weight 400, color `#9a9898`. Primary CTA button (`#201d1d` bg with `1px solid #646262` border, 4px radius, 4px 20px padding, `#fdfcfc` text at weight 500)."
302
+ - "Design a feature list: single-column on `#201d1d` background. Feature name at 16px Berkeley Mono weight 700, color `#fdfcfc`. Description at 16px weight 400, color `#9a9898`. No cards, no borders -- pure text with 16px vertical gap between items."
303
+ - "Build an email capture form: `#f8f7f7` background input, `1px solid rgba(15, 0, 0, 0.12)` border, 6px radius, 20px padding. Adjacent dark button (`#201d1d` bg, `#fdfcfc` text, 4px radius, 4px 20px padding). Berkeley Mono throughout."
304
+ - "Create navigation: sticky `#201d1d` background. 16px Berkeley Mono weight 500 for links, `#fdfcfc` text. Brand name left-aligned in monospace. Links with underline decoration. No blur, no transparency -- solid dark surface."
305
+ - "Design a footer: `#201d1d` background, multi-column link grid. Links at 16px Berkeley Mono weight 400, color `#9a9898`. Section headers at weight 700. Border-top `1px solid rgba(15, 0, 0, 0.12)` separator."
306
+
307
+ ### Iteration Guide
308
+ 1. Berkeley Mono is the only font -- never introduce a second typeface. Size and weight create all hierarchy.
309
+ 2. Keep surfaces flat: no shadows, no gradients, no blur effects. Use borders and background shifts only.
310
+ 3. The warm undertone matters: use `#201d1d` not `#000000`, use `#fdfcfc` not `#ffffff`. The reddish warmth is subtle but essential.
311
+ 4. Border radius is 4px everywhere except inputs (6px). Never use rounded pills or large radii.
312
+ 5. Semantic colors follow Apple HIG: `#007aff` blue, `#ff3b30` red, `#30d158` green, `#ff9f0a` orange. Each has hover and active darkened variants.
313
+ 6. Three-stage interaction: default → hover (darkened) → active (deeply darkened) for all semantic colors.
314
+ 7. Borders use `rgba(15, 0, 0, 0.12)` -- a warm transparent dark, not neutral gray. This ties borders to the warm palette.
315
+ 8. Spacing follows an 8px grid: 8, 16, 24, 32, 40, 48, 64, 80, 96px. Use 4px for fine adjustments only.
316
+
317
+ ## 10. Voice & Tone
318
+
319
+ OpenCode's voice is **OSS-AI-coding-direct and CLI-fluent.** "오픈 소스 AI 코딩 에이전트" — open-source AI coding agent positioning. Warm dark canvas + 4px sharp radius signal "premium developer tool with OSS heritage."
320
+
321
+ | Context | Tone |
322
+ |---|---|
323
+ | CTA | Verb. "다운로드", "문서 읽기", "Try it" |
324
+ | Marketing | CLI-first. `curl -fsSL https://opencode.ai/install | sh` as hero |
325
+ | Documentation | Code-block-heavy, terminal-output-rich |
326
+ | Error | Specific. "Model not configured. Run `opencode setup`." |
327
+
328
+ **Voice samples**
329
+ - Marketing CTAs: *"다운로드"* / *"문서 읽기"* <!-- verified: opencode.ai homepage 2026-05 -->
330
+ - Hero install snippet: *"curl -fsSL https://opencode.ai/install | sh"* <!-- verified: opencode.ai homepage -->
331
+
332
+ **Forbidden phrases.** "Revolutionary AI coding". Generic Cursor-comparison framing.
333
+
334
+ ## 11. Brand Narrative
335
+
336
+ OpenCode is the **open-source AI coding agent** built by **SST (Serverless Stack)** team — designed for terminal-first workflows ([opencode.ai](https://opencode.ai/), [GitHub: sst/opencode](https://github.com/sst/opencode)). Created by **Dax Raad** alongside SST co-founders **Jay (Frank's partner from University of Waterloo, Anomaly co-founder)** and **Frank Wang (CTO)**, with **Adam Elmore** ([Tech Funding News — OpenCode background story](https://techfundingnews.com/opencode-the-background-story-on-the-most-popular-open-source-coding-agent-in-the-world/), [Baseten — Conversation with Dax](https://www.baseten.co/blog/building-ai-agents-open-code-and-open-source-a-conversation-with-dax/)). **SST origin**: Jay + Frank met **first week at University of Waterloo**, launched **Anomaly** (Jay CEO / Frank CTO) → in **2021 took Serverless Stack (SST) through Y Combinator** raising **$1M post-demo-day** with backing from founders of **PayPal, LinkedIn, Yelp, YouTube** — SST grew to **25,000 GitHub stars** and turned profitable in 2025. **OpenCode launched June 19 2024** built from day one as a **server-client architecture** to connect to any frontend (terminal, desktop, web, mobile). Reached **650,000 monthly active users in 5 months** — one of the fastest adoption curves in developer tooling. Dax Raad is also creator of **Zen** (commerce-tech tool, Tier 1 confirms "Zen 알아보기" CTA on opencode.ai homepage cross-promotes Zen). Position: serious developer tool that respects CLI heritage while integrating LLM capabilities.
337
+
338
+ ## 12. Principles
339
+
340
+ 1. **OSS by default.** *UI implication:* GitHub link prominent; self-hosted-first.
341
+ 2. **Warm dark canvas.** Borders `rgba(15,0,0,0.12)` warm transparent. *UI implication:* preserve warmth.
342
+ 3. **4px sharp radius.** *UI implication:* never round more.
343
+ 4. **8px grid.** *UI implication:* preserve 8px spacing; 4px fine adjustments only.
344
+ 5. **CLI install is the marketing.** *UI implication:* hero shows actual install command.
345
+
346
+ ## 13. Personas
347
+
348
+ *Personas are fictional archetypes informed by OpenCode user segments (terminal-first developers, OSS-enthusiast engineers, indie SaaS), not individual people.*
349
+
350
+ **Sergey Volkov, 35, Berlin.** Senior engineer. OpenCode as terminal-native Cursor alternative.
351
+
352
+ **Sofia Russo, 28, Milan.** Indie developer. Self-hosts OpenCode for privacy.
353
+
354
+ **Marcus Chen, 41, San Francisco.** Engineering manager. Evaluates OpenCode + Claude vs Cursor.
355
+
356
+ ## 14. States
357
+
358
+ | State | Treatment |
359
+ |---|---|
360
+ | **Empty (no projects)** | "Open a folder" CTA |
361
+ | **Empty (no chat)** | "Try `opencode chat`" CLI snippet |
362
+ | **Loading (model)** | Per-token streaming |
363
+ | **Loading (file applying)** | Diff view with applying state |
364
+ | **Error (model)** | Specific provider error |
365
+ | **Error (apply)** | Diff stays visible + retry |
366
+ | **Success (changes)** | File pulse on changed files |
367
+ | **Success (commit)** | Multi-file diff success summary |
368
+ | **Skeleton (file tree)** | Warm dark placeholders |
369
+ | **Disabled (no model configured)** | Setup link |
370
+ | **Loading (long agent)** | Persistent progress |
371
+
372
+ ## 15. Motion & Easing
373
+
374
+ | Token | Value | Use |
375
+ |---|---|---|
376
+ | `motion-instant` | 0ms | Selection |
377
+ | `motion-fast` | 150ms | Hover |
378
+ | `motion-standard` | 250ms | Modal, panel |
379
+
380
+ Standard cubic-bezier; no bounce. `prefers-reduced-motion: reduce` removes hover transitions.
381
+
382
+ ---
383
+
384
+ **Verified:** 2026-05-08 (omd:migrate run 43 — Apple-tier)
385
+ **Tier 1 sources:** opencode.ai home + /docs (live DOM via playwright — Primary **`#201d1d` Coffee Charcoal** 4px / 40-42px / 8×16×8×10 asym (icon-spacing) / 16px·**500**; Inverse `#fdfcfc` Soft White 4px (Zen cross-promo); install-snippet text-only tabs color-state; doc sidebar `#f8f7f7` active. **Warm-cast color discipline** — no pure black/white anywhere).
386
+ **Tier 2 sources:** styles.refero.design / getdesign.md — no record.
387
+ **Tier 2 (Philosophy/founders/SST):** opencode.ai/about, GitHub sst/opencode, Tech Funding News (OpenCode background), Baseten (Dax conversation), Codacy blog.
388
+ **Style ref:** `stripe`. **Conflicts unresolved:** none. **Earlier addition:** Zen cross-promo Inverse Primary + install-snippet tab system + warm-cast discipline missed by prior pass.