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.
- package/README.md +110 -0
- package/bin/cdragon.js +170 -0
- package/package.json +31 -0
- package/skills/agent-browser/SKILL.md +50 -0
- package/skills/grill-me/SKILL.md +7 -0
- package/skills/herdr-agent/SKILL.md +142 -0
- package/skills/herdr-cli/SKILL.md +388 -0
- package/skills/herdr-cli/scripts/herdr-agent-run-and-wait +203 -0
- package/skills/herdr-cli/scripts/herdr-agent-wait-complete +168 -0
- package/skills/notion-presentation/SKILL.md +170 -0
- package/skills/notion-presentation/references/example-redis-deck.md +97 -0
- package/skills/setup-matt-pocock-skills/SKILL.md +127 -0
- package/skills/setup-matt-pocock-skills/domain.md +51 -0
- package/skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
- package/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
- package/skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
- package/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
- package/skills/tdd/SKILL.md +108 -0
- package/skills/tdd/mocking.md +59 -0
- package/skills/tdd/refactoring.md +10 -0
- package/skills/tdd/tests.md +61 -0
- package/skills/to-html/SKILL.md +83 -0
- package/skills/to-html/designs/INDEX.md +74 -0
- package/skills/to-html/designs/airbnb.DESIGN.md +581 -0
- package/skills/to-html/designs/airtable.DESIGN.md +275 -0
- package/skills/to-html/designs/alipay.DESIGN.md +456 -0
- package/skills/to-html/designs/apple.DESIGN.md +566 -0
- package/skills/to-html/designs/banksalad.DESIGN.md +621 -0
- package/skills/to-html/designs/channeltalk.DESIGN.md +374 -0
- package/skills/to-html/designs/clay.DESIGN.md +398 -0
- package/skills/to-html/designs/clickhouse.DESIGN.md +374 -0
- package/skills/to-html/designs/cohere.DESIGN.md +361 -0
- package/skills/to-html/designs/coinone.DESIGN.md +218 -0
- package/skills/to-html/designs/coupang.DESIGN.md +502 -0
- package/skills/to-html/designs/cursor.DESIGN.md +416 -0
- package/skills/to-html/designs/elevenlabs.DESIGN.md +376 -0
- package/skills/to-html/designs/expo.DESIGN.md +373 -0
- package/skills/to-html/designs/figma.DESIGN.md +490 -0
- package/skills/to-html/designs/framer.DESIGN.md +393 -0
- package/skills/to-html/designs/freee.DESIGN.md +572 -0
- package/skills/to-html/designs/gangnamunni.DESIGN.md +621 -0
- package/skills/to-html/designs/gmarket.DESIGN.md +483 -0
- package/skills/to-html/designs/gogolook.DESIGN.md +131 -0
- package/skills/to-html/designs/hahow.DESIGN.md +158 -0
- package/skills/to-html/designs/hashicorp.DESIGN.md +369 -0
- package/skills/to-html/designs/hyundaicard.DESIGN.md +177 -0
- package/skills/to-html/designs/ibm.DESIGN.md +420 -0
- package/skills/to-html/designs/kakaobank.DESIGN.md +548 -0
- package/skills/to-html/designs/kakaopay.DESIGN.md +544 -0
- package/skills/to-html/designs/karrot.DESIGN.md +445 -0
- package/skills/to-html/designs/kdan.DESIGN.md +160 -0
- package/skills/to-html/designs/krds.DESIGN.md +997 -0
- package/skills/to-html/designs/line.DESIGN.md +431 -0
- package/skills/to-html/designs/linear.app.DESIGN.md +548 -0
- package/skills/to-html/designs/miro.DESIGN.md +272 -0
- package/skills/to-html/designs/mistral.ai.DESIGN.md +353 -0
- package/skills/to-html/designs/money-forward.DESIGN.md +401 -0
- package/skills/to-html/designs/mongodb.DESIGN.md +357 -0
- package/skills/to-html/designs/naver.DESIGN.md +533 -0
- package/skills/to-html/designs/nhncloud.DESIGN.md +174 -0
- package/skills/to-html/designs/opencode.ai.DESIGN.md +388 -0
- package/skills/to-html/designs/pinterest.DESIGN.md +322 -0
- package/skills/to-html/designs/posthog.DESIGN.md +430 -0
- package/skills/to-html/designs/raycast.DESIGN.md +422 -0
- package/skills/to-html/designs/remember.DESIGN.md +460 -0
- package/skills/to-html/designs/resend.DESIGN.md +396 -0
- package/skills/to-html/designs/sanity.DESIGN.md +449 -0
- package/skills/to-html/designs/sendbird.DESIGN.md +285 -0
- package/skills/to-html/designs/smarthr.DESIGN.md +404 -0
- package/skills/to-html/designs/socar.DESIGN.md +403 -0
- package/skills/to-html/designs/spotify.DESIGN.md +265 -0
- package/skills/to-html/designs/supabase.DESIGN.md +348 -0
- package/skills/to-html/designs/superhuman.DESIGN.md +414 -0
- package/skills/to-html/designs/together.ai.DESIGN.md +356 -0
- package/skills/to-html/designs/toss.DESIGN.md +655 -0
- package/skills/to-html/designs/uber.DESIGN.md +387 -0
- package/skills/to-html/designs/upstage.DESIGN.md +232 -0
- package/skills/to-html/designs/velog.DESIGN.md +168 -0
- package/skills/to-html/designs/vercel.DESIGN.md +479 -0
- package/skills/to-html/designs/wanted.DESIGN.md +529 -0
- package/skills/to-html/designs/wise.DESIGN.md +276 -0
- package/skills/to-html/designs/yanolja.DESIGN.md +463 -0
- package/skills/to-html/designs/yeogiotte.DESIGN.md +459 -0
- package/skills/to-html/designs/zapier.DESIGN.md +433 -0
- package/skills/to-html/designs/zigzag.DESIGN.md +633 -0
- package/skills/to-issues/SKILL.md +84 -0
- package/skills/to-prd/SKILL.md +75 -0
- package/src/colors.js +15 -0
- package/src/link.js +47 -0
- package/src/prompt.js +137 -0
- package/src/skills.js +75 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hahow
|
|
3
|
+
name: "Hahow"
|
|
4
|
+
country: TW
|
|
5
|
+
category: education
|
|
6
|
+
homepage: "https://hahow.in"
|
|
7
|
+
primary_color: "#00CCB4"
|
|
8
|
+
logo:
|
|
9
|
+
type: favicon
|
|
10
|
+
slug: "https://www.google.com/s2/favicons?domain=hahow.in&sz=128"
|
|
11
|
+
verified: "2026-06-01"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
ds:
|
|
14
|
+
name: "hahow-design"
|
|
15
|
+
url: "https://github.com/hahow/hahow-design"
|
|
16
|
+
type: system
|
|
17
|
+
description: "Hahow's open-source design-system theme — Primary/Secondary token scales (Primary 500 #00ccb4)."
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Design System Inspiration of Hahow
|
|
21
|
+
|
|
22
|
+
## 1. Visual Theme & Atmosphere
|
|
23
|
+
|
|
24
|
+
Hahow (好學校) is Taiwan's leading EdTech course marketplace, and its interface carries the warmth of a place that wants you to keep learning rather than the polish of a place that wants to close a sale. The atmosphere is friendly, approachable, and unmistakably human: a soft gray-blue page canvas of #F5F7F9 lets bright content breathe, while a vivid brand teal of #00CCB4 — drawn directly from Hahow's own open-source design tokens — signals interactivity and energy without ever shouting. Cards and buttons settle on a gentle 8px radius that rounds every hard edge into something inviting, and text sits in calm near-black #262626 for comfortable, sustained reading. Warm promotional accents in orange #FA8C16 and coral #F65F55 punctuate the surface where excitement is earned — a sale, a featured course, a moment worth noticing. Set throughout in PingFang TC, the typography feels native and legible to a Traditional-Chinese audience. The overall effect is encouraging and personable, the opposite of corporate sterility — a learning surface that feels like a good teacher: clear, warm, and on your side.
|
|
25
|
+
|
|
26
|
+
## 2. Color Palette & Roles
|
|
27
|
+
|
|
28
|
+
Hahow's color system is anchored by a teal Primary scale published in its open-source `hahow-design` theme, layered over a quiet neutral canvas and lifted by warm promotional accents.
|
|
29
|
+
|
|
30
|
+
- **Brand / Primary 500** — #00CCB4. The signature teal; interactive emphasis, brand identity, primary action text.
|
|
31
|
+
- **Primary 100** — #A3FFE8. Lightest teal tint for subtle fills and soft backgrounds.
|
|
32
|
+
- **Primary 400** — #23D9BD. A slightly deeper teal step for hover and gradient transitions.
|
|
33
|
+
- **Primary 800** — #006166. Deep teal for high-contrast text or pressed states on teal surfaces.
|
|
34
|
+
- **Primary 900** — #00444D. Darkest teal anchor for the scale.
|
|
35
|
+
- **Secondary 500** — #FFB940. Warm amber accent; complementary highlight to the teal.
|
|
36
|
+
- **Page background** — #F5F7F9. Soft gray-blue canvas behind all content.
|
|
37
|
+
- **Body text** — #262626 (near-black), with secondary text at rgba(0,0,0,0.65).
|
|
38
|
+
- **Promotional orange** — #FA8C16. Energetic accent for sales and featured callouts.
|
|
39
|
+
- **Coral** — #F65F55. Warm secondary promotional accent.
|
|
40
|
+
- **Chip fill** — rgba(0,0,0,0.04). Faint neutral wash for tags and metadata chips.
|
|
41
|
+
|
|
42
|
+
## 3. Typography Rules
|
|
43
|
+
|
|
44
|
+
- **Typeface:** PingFang TC across the interface — native, legible Traditional-Chinese rendering.
|
|
45
|
+
- **Body:** 16px, primary text color #262626.
|
|
46
|
+
- **Heading:** 24px at weight 600.
|
|
47
|
+
- **Secondary text:** rgba(0,0,0,0.65) for de-emphasized labels and metadata.
|
|
48
|
+
- **Hierarchy principle:** lean on size and the near-black body color for contrast; reserve teal #00CCB4 for interactive text rather than headings, keeping reading surfaces calm.
|
|
49
|
+
|
|
50
|
+
## 4. Component Stylings
|
|
51
|
+
|
|
52
|
+
### Button
|
|
53
|
+
|
|
54
|
+
**Teal Outline (primary action)**
|
|
55
|
+
- Background: transparent
|
|
56
|
+
- Text: #00CCB4
|
|
57
|
+
- Border: 2px solid #DCF9F3
|
|
58
|
+
- Radius: 8px
|
|
59
|
+
- Padding: not separately verified
|
|
60
|
+
- Height: 42px
|
|
61
|
+
- Font: 16px / 600
|
|
62
|
+
- Use: primary call-to-action on the live hahow.in surface
|
|
63
|
+
|
|
64
|
+
**White Card Button**
|
|
65
|
+
- Background: #FFFFFF
|
|
66
|
+
- Text: #595959
|
|
67
|
+
- Border: not separately verified
|
|
68
|
+
- Radius: 8px
|
|
69
|
+
- Padding: not separately verified
|
|
70
|
+
- Height: not separately verified
|
|
71
|
+
- Font: not separately verified
|
|
72
|
+
- Use: neutral card-level action sitting on the gray-blue canvas
|
|
73
|
+
|
|
74
|
+
### Tag Chip
|
|
75
|
+
|
|
76
|
+
**Default**
|
|
77
|
+
- Background: rgba(0,0,0,0.04)
|
|
78
|
+
- Text: rgba(0,0,0,0.65)
|
|
79
|
+
- Border: none
|
|
80
|
+
- Radius: 20px
|
|
81
|
+
- Padding: not separately verified
|
|
82
|
+
- Height: 33px
|
|
83
|
+
- Font: 14px / 400
|
|
84
|
+
- Use: metadata, category, and filter tags
|
|
85
|
+
|
|
86
|
+
## 5. Layout Principles
|
|
87
|
+
|
|
88
|
+
- Content sits on a soft gray-blue #F5F7F9 canvas, letting white cards and bright accents read as the foreground.
|
|
89
|
+
- Rounded geometry is consistent: 8px on cards and buttons, 20px (fully rounded) on tag chips.
|
|
90
|
+
- Generous, calm spacing keeps the marketplace browsable rather than dense — the surface invites scanning across many courses.
|
|
91
|
+
- Teal is used sparingly as an interactive signal, never as a flood, preserving the quiet neutral base.
|
|
92
|
+
|
|
93
|
+
## 6. Depth & Elevation
|
|
94
|
+
|
|
95
|
+
Hahow's elevation language is restrained and soft rather than dramatic. White cards (#FFFFFF) lift off the gray-blue #F5F7F9 canvas largely through tonal contrast and rounded 8px corners rather than heavy shadow. The teal outline button uses a 2px solid #DCF9F3 border — a pale teal ring — to define its edge instead of a drop shadow, reinforcing a flat, friendly aesthetic. Depth here is implied by layering light surfaces over the muted background, keeping the interface airy and approachable. (Exact shadow values were not captured in the blob and are intentionally not specified.)
|
|
96
|
+
|
|
97
|
+
## 7. Do's and Don'ts
|
|
98
|
+
|
|
99
|
+
### Do
|
|
100
|
+
- Anchor interactive emphasis in the brand teal #00CCB4 from the official tokens.
|
|
101
|
+
- Keep body text in near-black #262626 and secondary text in rgba(0,0,0,0.65) for calm, readable hierarchy.
|
|
102
|
+
- Use the soft #F5F7F9 canvas to let white cards and bright accents stand out.
|
|
103
|
+
- Reserve warm orange #FA8C16 and coral #F65F55 for genuinely promotional moments.
|
|
104
|
+
|
|
105
|
+
### Don't
|
|
106
|
+
- Flood surfaces with teal — it is a signal, not a background.
|
|
107
|
+
- Sharpen the corners; the 8px (and 20px chip) radii are core to the friendly feel.
|
|
108
|
+
- Introduce a heavy, corporate shadow language that contradicts the flat, warm aesthetic.
|
|
109
|
+
- Substitute a non-native typeface for PingFang TC in Traditional-Chinese contexts.
|
|
110
|
+
|
|
111
|
+
## 8. Responsive Behavior
|
|
112
|
+
|
|
113
|
+
The live hahow.in marketplace is a course-browsing surface built to scale from desktop grids to mobile stacks. Cards keep their 8px radius and white #FFFFFF fill across breakpoints, and tag chips stay fully rounded at 20px so metadata remains legible when reflowed. Touch targets hold comfortable heights — the teal outline button at 42px and tag chips at 33px — that translate naturally to mobile tapping. (Specific breakpoint widths were not captured in the blob and are not specified here; the verified pattern is consistent rounding, consistent color roles, and generous tap-friendly sizing across viewports.)
|
|
114
|
+
|
|
115
|
+
## 9. Agent Prompt Guide
|
|
116
|
+
|
|
117
|
+
When generating UI in Hahow's style, instruct the agent: "Use a soft gray-blue page background (#F5F7F9) with white (#FFFFFF) content cards at 8px radius. Make the primary action a teal outline button — transparent background, #00CCB4 text, 2px solid #DCF9F3 border, 8px radius, 42px height, 16px/600 PingFang TC. Render tags as fully-rounded chips (20px radius, 33px height) with a rgba(0,0,0,0.04) fill and rgba(0,0,0,0.65) text at 14px/400. Keep body text near-black (#262626) at 16px and headings at 24px/600. Use teal #00CCB4 only for interactive emphasis. Reserve orange #FA8C16 and coral #F65F55 strictly for promotional callouts. Aim for a warm, encouraging, human EdTech tone — friendly, never corporate."
|
|
118
|
+
|
|
119
|
+
## 10. Voice & Tone
|
|
120
|
+
|
|
121
|
+
Hahow's voice is encouraging and human — the tone of a supportive teacher and a welcoming community of learners (好學校 literally means "good school"). It is warm and approachable rather than corporate or transactional, celebrating curiosity and the act of learning itself. Microcopy should feel like gentle encouragement: inviting people to start, to keep going, to share what they know. Even promotional moments, signaled by the warm orange and coral accents, carry friendliness over hard-sell urgency.
|
|
122
|
+
|
|
123
|
+
## 11. Brand Narrative
|
|
124
|
+
|
|
125
|
+
Hahow built Taiwan's leading EdTech course marketplace on a simple, human premise: everyone has something to learn and something to teach. As 好學校 — "the good school" — it positions itself as an open, encouraging place where knowledge moves between people rather than being handed down from an institution. The visual identity reinforces that story: a bright, friendly teal pulled from its own open-source design system, a soft and unintimidating canvas, rounded approachable shapes, and native Traditional-Chinese typography. Every choice tells the same narrative — learning here is warm, accessible, and on your side.
|
|
126
|
+
|
|
127
|
+
## 12. Principles
|
|
128
|
+
|
|
129
|
+
- **Warmth over polish** — feel like a good teacher, not a sales funnel.
|
|
130
|
+
- **Calm canvas, bright signals** — let the soft #F5F7F9 base carry quiet content while teal and warm accents earn attention.
|
|
131
|
+
- **Rounded and approachable** — consistent 8px / 20px radii keep every surface inviting.
|
|
132
|
+
- **Native and legible** — PingFang TC and near-black #262626 text serve a Traditional-Chinese audience comfortably.
|
|
133
|
+
- **Restraint with the brand color** — teal #00CCB4 marks interaction; it is never wallpaper.
|
|
134
|
+
|
|
135
|
+
## 13. Personas
|
|
136
|
+
|
|
137
|
+
- **The Curious Learner** — browsing the marketplace for a new skill; needs a calm, scannable surface where featured courses (orange/coral accents) stand out and primary actions (teal outline button) are obvious and inviting.
|
|
138
|
+
- **The Knowledge-Sharing Instructor** — creating and publishing courses; needs the platform to feel encouraging and credible, with friendly rounded components and warm tone that lower the barrier to teaching.
|
|
139
|
+
- **The Returning Member** — coming back to continue learning; relies on consistent color roles and tap-friendly components across devices to pick up quickly.
|
|
140
|
+
|
|
141
|
+
## 14. States
|
|
142
|
+
|
|
143
|
+
- **Default action:** teal outline button — transparent background, #00CCB4 text, 2px solid #DCF9F3 border, 8px radius, 42px height.
|
|
144
|
+
- **Neutral / card action:** white card button — #FFFFFF background, #595959 text, 8px radius.
|
|
145
|
+
- **Metadata / tag:** chip — rgba(0,0,0,0.04) fill, rgba(0,0,0,0.65) text, 20px radius, 33px height, 14px/400.
|
|
146
|
+
- **Promotional emphasis:** warm orange #FA8C16 and coral #F65F55 accents for sales and featured callouts.
|
|
147
|
+
- (Hover, pressed, focus, and disabled state values were not captured in the blob and are intentionally not specified; the teal token scale — Primary 400 #23D9BD, Primary 800 #006166 — provides the natural darker steps for any hover/pressed treatment.)
|
|
148
|
+
|
|
149
|
+
## 15. Motion & Easing
|
|
150
|
+
|
|
151
|
+
Hahow's motion language was not captured with specific values in the blob, so no durations or easing curves are specified here. In keeping with the brand's warm, approachable, flat aesthetic, transitions should read as gentle and encouraging rather than abrupt — soft enough to match the rounded geometry and calm canvas, with the teal token scale (Primary 400 #23D9BD into Primary 500 #00CCB4) available for smooth interactive color transitions.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
**Verified:** 2026-06-01
|
|
155
|
+
**Tier 1 sources:** https://hahow.in (live homepage live-DOM inspect), https://business.hahow.in (brand-owned regional business surface), https://github.com/hahow (brand-owned org hosting the open-source design tokens)
|
|
156
|
+
**Tier 2 sources:** getdesign.md/hahow — NOT LISTED. refero — not listed.
|
|
157
|
+
**Conflicts unresolved:** none
|
|
158
|
+
**Proof:** see .verification.md (## Proof block)
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hashicorp
|
|
3
|
+
name: Hashicorp
|
|
4
|
+
country: US
|
|
5
|
+
category: backend-devops
|
|
6
|
+
homepage: "https://www.hashicorp.com"
|
|
7
|
+
primary_color: "#000000"
|
|
8
|
+
logo:
|
|
9
|
+
type: simpleicons
|
|
10
|
+
slug: hashicorp
|
|
11
|
+
verified: "2026-05-15"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
ds:
|
|
14
|
+
name: Helios
|
|
15
|
+
url: "https://helios.hashicorp.design"
|
|
16
|
+
type: system
|
|
17
|
+
description: HashiCorp's design system documenting components and foundations.
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Design System Inspiration of HashiCorp
|
|
21
|
+
|
|
22
|
+
## 1. Visual Theme & Atmosphere
|
|
23
|
+
|
|
24
|
+
HashiCorp's website is enterprise infrastructure made tangible — a design system that must communicate the complexity of cloud infrastructure management while remaining approachable. The visual language splits between two modes: a clean white light-mode for informational sections and a dramatic dark-mode (`#15181e`, `#0d0e12`) for hero areas and product showcases, creating a day/night duality that mirrors the "build in light, deploy in dark" developer workflow.
|
|
25
|
+
|
|
26
|
+
The typography is anchored by a custom brand font (HashiCorp Sans, loaded as `__hashicorpSans_96f0ca`) that carries substantial weight — literally. Headings use 600–700 weights with tight line-heights (1.17–1.19), creating dense, authoritative text blocks that communicate enterprise confidence. The hero headline at 82px weight 600 with OpenType `"kern"` enabled is not decorative — it's infrastructure-grade typography.
|
|
27
|
+
|
|
28
|
+
What distinguishes HashiCorp is its multi-product color system. Each product in the portfolio has its own brand color — Terraform purple (`#7b42bc`), Vault yellow (`#ffcf25`), Waypoint teal (`#14c6cb`), Vagrant blue (`#1868f2`) — and these colors appear throughout as accent tokens via a CSS custom property system (`--mds-color-*`). This creates a design system within a design system: the parent brand is black-and-white with blue accents, while each child product injects its own chromatic identity.
|
|
29
|
+
|
|
30
|
+
The component system uses the `mds` (Markdown Design System) prefix, indicating a systematic, token-driven approach where colors, spacing, and states are all managed through CSS variables. Shadows are remarkably subtle — dual-layer micro-shadows using `rgba(97, 104, 117, 0.05)` that are nearly invisible but provide just enough depth to separate interactive surfaces from the background.
|
|
31
|
+
|
|
32
|
+
**Key Characteristics:**
|
|
33
|
+
- Dual-mode: clean white sections + dramatic dark (`#15181e`) hero/product areas
|
|
34
|
+
- Custom HashiCorp Sans font with 600–700 weights and `"kern"` feature
|
|
35
|
+
- Multi-product color system via `--mds-color-*` CSS custom properties
|
|
36
|
+
- Product brand colors: Terraform purple, Vault yellow, Waypoint teal, Vagrant blue
|
|
37
|
+
- Uppercase letter-spaced captions (13px, weight 600, 1.3px letter-spacing)
|
|
38
|
+
- Micro-shadows: dual-layer at 0.05 opacity — depth through whisper, not shout
|
|
39
|
+
- Token-driven `mds` component system with semantic variable names
|
|
40
|
+
- Tight border radius: 2px–8px, nothing pill-shaped or circular
|
|
41
|
+
- System-ui fallback stack for secondary text
|
|
42
|
+
|
|
43
|
+
## 2. Color Palette & Roles
|
|
44
|
+
|
|
45
|
+
### Brand Primary
|
|
46
|
+
- **Black** (`#000000`): Primary brand color, text on light surfaces, `--mds-color-hcp-brand`
|
|
47
|
+
- **Dark Charcoal** (`#15181e`): Dark mode backgrounds, hero sections
|
|
48
|
+
- **Near Black** (`#0d0e12`): Deepest dark mode surface, form inputs on dark
|
|
49
|
+
|
|
50
|
+
### Neutral Scale
|
|
51
|
+
- **Light Gray** (`#f1f2f3`): Light backgrounds, subtle surfaces
|
|
52
|
+
- **Mid Gray** (`#d5d7db`): Borders, button text on dark
|
|
53
|
+
- **Cool Gray** (`#b2b6bd`): Border accents (at 0.1–0.4 opacity)
|
|
54
|
+
- **Dark Gray** (`#656a76`): Helper text, secondary labels, `--mds-form-helper-text-color`
|
|
55
|
+
- **Charcoal** (`#3b3d45`): Secondary text on light, button borders
|
|
56
|
+
- **Near White** (`#efeff1`): Primary text on dark surfaces
|
|
57
|
+
|
|
58
|
+
### Product Brand Colors
|
|
59
|
+
- **Terraform Purple** (`#7b42bc`): `--mds-color-terraform-button-background`
|
|
60
|
+
- **Vault Yellow** (`#ffcf25`): `--mds-color-vault-button-background`
|
|
61
|
+
- **Waypoint Teal** (`#14c6cb`): `--mds-color-waypoint-button-background-focus`
|
|
62
|
+
- **Waypoint Teal Hover** (`#12b6bb`): `--mds-color-waypoint-button-background-hover`
|
|
63
|
+
- **Vagrant Blue** (`#1868f2`): `--mds-color-vagrant-brand`
|
|
64
|
+
- **Purple Accent** (`#911ced`): `--mds-color-palette-purple-300`
|
|
65
|
+
- **Visited Purple** (`#a737ff`): `--mds-color-foreground-action-visited`
|
|
66
|
+
|
|
67
|
+
### Semantic Colors
|
|
68
|
+
- **Action Blue** (`#1060ff`): Primary action links on dark
|
|
69
|
+
- **Link Blue** (`#2264d6`): Primary links on light
|
|
70
|
+
- **Bright Blue** (`#2b89ff`): Active links, hover accent
|
|
71
|
+
- **Amber** (`#bb5a00`): `--mds-color-palette-amber-200`, warning states
|
|
72
|
+
- **Amber Light** (`#fbeabf`): `--mds-color-palette-amber-100`, warning backgrounds
|
|
73
|
+
- **Vault Faint Yellow** (`#fff9cf`): `--mds-color-vault-radar-gradient-faint-stop`
|
|
74
|
+
- **Orange** (`#a9722e`): `--mds-color-unified-core-orange-6`
|
|
75
|
+
- **Red** (`#731e25`): `--mds-color-unified-core-red-7`, error states
|
|
76
|
+
- **Navy** (`#101a59`): `--mds-color-unified-core-blue-7`
|
|
77
|
+
|
|
78
|
+
### Shadows
|
|
79
|
+
- **Micro Shadow** (`rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`): Default card/button elevation
|
|
80
|
+
- **Focus Outline**: `3px solid var(--mds-color-focus-action-external)` — systematic focus ring
|
|
81
|
+
|
|
82
|
+
## 3. Typography Rules
|
|
83
|
+
|
|
84
|
+
### Font Families
|
|
85
|
+
- **Primary Brand**: `__hashicorpSans_96f0ca` (HashiCorp Sans), with fallback: `__hashicorpSans_Fallback_96f0ca`
|
|
86
|
+
- **System UI**: `system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial`
|
|
87
|
+
|
|
88
|
+
### Hierarchy
|
|
89
|
+
|
|
90
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
91
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
92
|
+
| Display Hero | HashiCorp Sans | 82px (5.13rem) | 600 | 1.17 (tight) | normal | `"kern"` enabled |
|
|
93
|
+
| Section Heading | HashiCorp Sans | 52px (3.25rem) | 600 | 1.19 (tight) | normal | `"kern"` enabled |
|
|
94
|
+
| Feature Heading | HashiCorp Sans | 42px (2.63rem) | 700 | 1.19 (tight) | -0.42px | Negative tracking |
|
|
95
|
+
| Sub-heading | HashiCorp Sans | 34px (2.13rem) | 600–700 | 1.18 (tight) | normal | Feature blocks |
|
|
96
|
+
| Card Title | HashiCorp Sans | 26px (1.63rem) | 700 | 1.19 (tight) | normal | Card and panel headings |
|
|
97
|
+
| Small Title | HashiCorp Sans | 19px (1.19rem) | 700 | 1.21 (tight) | normal | Compact headings |
|
|
98
|
+
| Body Emphasis | HashiCorp Sans | 17px (1.06rem) | 600–700 | 1.18–1.35 | normal | Bold body text |
|
|
99
|
+
| Body Large | system-ui | 20px (1.25rem) | 400–600 | 1.50 | normal | Hero descriptions |
|
|
100
|
+
| Body | system-ui | 16px (1.00rem) | 400–500 | 1.63–1.69 (relaxed) | normal | Standard body text |
|
|
101
|
+
| Nav Link | system-ui | 15px (0.94rem) | 500 | 1.60 (relaxed) | normal | Navigation items |
|
|
102
|
+
| Small Body | system-ui | 14px (0.88rem) | 400–500 | 1.29–1.71 | normal | Secondary content |
|
|
103
|
+
| Caption | system-ui | 13px (0.81rem) | 400–500 | 1.23–1.69 | normal | Metadata, footer links |
|
|
104
|
+
| Uppercase Label | HashiCorp Sans | 13px (0.81rem) | 600 | 1.69 (relaxed) | 1.3px | `text-transform: uppercase` |
|
|
105
|
+
|
|
106
|
+
### Principles
|
|
107
|
+
- **Brand/System split**: HashiCorp Sans for headings and brand-critical text; system-ui for body, navigation, and functional text. The brand font carries the weight, system-ui carries the words.
|
|
108
|
+
- **Kern always on**: All HashiCorp Sans text enables OpenType `"kern"` — letterfitting is non-negotiable.
|
|
109
|
+
- **Tight headings**: Every heading uses 1.17–1.21 line-height, creating dense, stacked text blocks that feel infrastructural — solid, load-bearing.
|
|
110
|
+
- **Relaxed body**: Body text uses 1.50–1.69 line-height (notably generous), creating comfortable reading rhythm beneath the dense headings.
|
|
111
|
+
- **Uppercase labels as wayfinding**: 13px uppercase with 1.3px letter-spacing serves as the systematic category/section marker — always HashiCorp Sans weight 600.
|
|
112
|
+
|
|
113
|
+
## 4. Component Stylings
|
|
114
|
+
|
|
115
|
+
### Buttons
|
|
116
|
+
|
|
117
|
+
**Primary Dark**
|
|
118
|
+
- Background: `#15181e`
|
|
119
|
+
- Text: `#d5d7db`
|
|
120
|
+
- Padding: 9px 9px 9px 15px (asymmetric, more left padding)
|
|
121
|
+
- Radius: 5px
|
|
122
|
+
- Border: `1px solid rgba(178, 182, 189, 0.4)`
|
|
123
|
+
- Shadow: `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`
|
|
124
|
+
- Focus: `3px solid var(--mds-color-focus-action-external)`
|
|
125
|
+
- Hover: uses `--mds-color-surface-interactive` token
|
|
126
|
+
|
|
127
|
+
**Secondary White**
|
|
128
|
+
- Background: `#ffffff`
|
|
129
|
+
- Text: `#3b3d45`
|
|
130
|
+
- Padding: 8px 12px
|
|
131
|
+
- Radius: 4px
|
|
132
|
+
- Hover: `--mds-color-surface-interactive` + low-shadow elevation
|
|
133
|
+
- Focus: `3px solid transparent` outline
|
|
134
|
+
- Clean, minimal appearance
|
|
135
|
+
|
|
136
|
+
**Product-Colored Buttons**
|
|
137
|
+
- Terraform: background `#7b42bc`
|
|
138
|
+
- Vault: background `#ffcf25` (dark text)
|
|
139
|
+
- Waypoint: background `#14c6cb`, hover `#12b6bb`
|
|
140
|
+
- Each product button follows the same structural pattern but uses its brand color
|
|
141
|
+
|
|
142
|
+
### Badges / Pills
|
|
143
|
+
- Background: `#42225b` (deep purple)
|
|
144
|
+
- Text: `#efeff1`
|
|
145
|
+
- Padding: 3px 7px
|
|
146
|
+
- Radius: 5px
|
|
147
|
+
- Border: `1px solid rgb(180, 87, 255)`
|
|
148
|
+
- Font: 16px
|
|
149
|
+
|
|
150
|
+
### Inputs
|
|
151
|
+
|
|
152
|
+
**Text Input (Dark Mode)**
|
|
153
|
+
- Background: `#0d0e12`
|
|
154
|
+
- Text: `#efeff1`
|
|
155
|
+
- Border: `1px solid rgb(97, 104, 117)`
|
|
156
|
+
- Padding: 11px
|
|
157
|
+
- Radius: 5px
|
|
158
|
+
- Focus: `3px solid var(--mds-color-focus-action-external)` outline
|
|
159
|
+
|
|
160
|
+
**Checkbox**
|
|
161
|
+
- Background: `#0d0e12`
|
|
162
|
+
- Border: `1px solid rgb(97, 104, 117)`
|
|
163
|
+
- Radius: 3px
|
|
164
|
+
|
|
165
|
+
### Links
|
|
166
|
+
- **Action Blue on Light**: `#2264d6`, hover → blue-600 variable, underline on hover
|
|
167
|
+
- **Action Blue on Dark**: `#1060ff` or `#2b89ff`, underline on hover
|
|
168
|
+
- **White on Dark**: `#ffffff`, transparent underline → visible underline on hover
|
|
169
|
+
- **Neutral on Light**: `#3b3d45`, transparent underline → visible underline on hover
|
|
170
|
+
- **Light on Dark**: `#efeff1`, similar hover pattern
|
|
171
|
+
- All links use `var(--wpl-blue-600)` as hover color
|
|
172
|
+
|
|
173
|
+
### Cards & Containers
|
|
174
|
+
- Light mode: white background, micro-shadow elevation
|
|
175
|
+
- Dark mode: `#15181e` or darker surfaces
|
|
176
|
+
- Radius: 8px for cards and containers
|
|
177
|
+
- Product showcase cards with gradient borders or accent lighting
|
|
178
|
+
|
|
179
|
+
### Navigation
|
|
180
|
+
- Clean horizontal nav with mega-menu dropdowns
|
|
181
|
+
- HashiCorp logo left-aligned
|
|
182
|
+
- system-ui 15px weight 500 for links
|
|
183
|
+
- Product categories organized by lifecycle management group
|
|
184
|
+
- "Get started" and "Contact us" CTAs in header
|
|
185
|
+
- Dark mode variant for hero sections
|
|
186
|
+
|
|
187
|
+
## 5. Layout Principles
|
|
188
|
+
|
|
189
|
+
### Spacing System
|
|
190
|
+
- Base unit: 8px
|
|
191
|
+
- Scale: 2px, 3px, 4px, 6px, 7px, 8px, 9px, 11px, 12px, 16px, 20px, 24px, 32px, 40px, 48px
|
|
192
|
+
|
|
193
|
+
### Grid & Container
|
|
194
|
+
- Max content width: ~1150px (xl breakpoint)
|
|
195
|
+
- Full-width dark hero sections with contained content
|
|
196
|
+
- Card grids: 2–3 column layouts
|
|
197
|
+
- Generous horizontal padding at desktop scale
|
|
198
|
+
|
|
199
|
+
### Breakpoints
|
|
200
|
+
| Name | Width | Key Changes |
|
|
201
|
+
|------|-------|-------------|
|
|
202
|
+
| Mobile Small | <375px | Tight single column |
|
|
203
|
+
| Mobile | 375–480px | Standard mobile |
|
|
204
|
+
| Small Tablet | 480–600px | Minor adjustments |
|
|
205
|
+
| Tablet | 600–768px | 2-column grids begin |
|
|
206
|
+
| Small Desktop | 768–992px | Full nav visible |
|
|
207
|
+
| Desktop | 992–1120px | Standard layout |
|
|
208
|
+
| Large Desktop | 1120–1440px | Max-width content |
|
|
209
|
+
| Ultra-wide | >1440px | Centered, generous margins |
|
|
210
|
+
|
|
211
|
+
### Whitespace Philosophy
|
|
212
|
+
- **Enterprise breathing room**: Generous vertical spacing between sections (48px–80px+) communicates stability and seriousness.
|
|
213
|
+
- **Dense headings, spacious body**: Tight line-height headings sit above relaxed body text, creating visual "weight at the top" of each section.
|
|
214
|
+
- **Dark as canvas**: Dark hero sections use extra vertical padding to let 3D illustrations and gradients breathe.
|
|
215
|
+
|
|
216
|
+
### Border Radius Scale
|
|
217
|
+
- Minimal (2px): Links, small inline elements
|
|
218
|
+
- Subtle (3px): Checkboxes, small inputs
|
|
219
|
+
- Standard (4px): Secondary buttons
|
|
220
|
+
- Comfortable (5px): Primary buttons, badges, inputs
|
|
221
|
+
- Card (8px): Cards, containers, images
|
|
222
|
+
|
|
223
|
+
## 6. Depth & Elevation
|
|
224
|
+
|
|
225
|
+
| Level | Treatment | Use |
|
|
226
|
+
|-------|-----------|-----|
|
|
227
|
+
| Flat (Level 0) | No shadow | Default surfaces, text blocks |
|
|
228
|
+
| Whisper (Level 1) | `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px` | Cards, buttons, interactive surfaces |
|
|
229
|
+
| Focus (Level 2) | `3px solid var(--mds-color-focus-action-external)` outline | Focus rings — color-matched to context |
|
|
230
|
+
|
|
231
|
+
**Shadow Philosophy**: HashiCorp uses arguably the subtlest shadow system in modern web design. The dual-layer shadows at 5% opacity are nearly invisible — they exist not to create visual depth but to signal interactivity. If you can see the shadow, it's too strong. This restraint communicates the enterprise value of stability — nothing floats, nothing is uncertain.
|
|
232
|
+
|
|
233
|
+
## 7. Do's and Don'ts
|
|
234
|
+
|
|
235
|
+
### Do
|
|
236
|
+
- Use HashiCorp Sans for headings and brand text, system-ui for body and UI text
|
|
237
|
+
- Enable `"kern"` on all HashiCorp Sans text
|
|
238
|
+
- Use product brand colors ONLY for their respective products (Terraform = purple, Vault = yellow, etc.)
|
|
239
|
+
- Apply uppercase labels at 13px weight 600 with 1.3px letter-spacing for section markers
|
|
240
|
+
- Keep shadows at the "whisper" level (0.05 opacity dual-layer)
|
|
241
|
+
- Use the `--mds-color-*` token system for consistent color application
|
|
242
|
+
- Maintain the tight-heading / relaxed-body rhythm (1.17–1.21 vs 1.50–1.69 line-heights)
|
|
243
|
+
- Use `3px solid` focus outlines for accessibility
|
|
244
|
+
|
|
245
|
+
### Don't
|
|
246
|
+
- Don't use product brand colors outside their product context (no Terraform purple on Vault content)
|
|
247
|
+
- Don't increase shadow opacity above 0.1 — the whisper level is intentional
|
|
248
|
+
- Don't use pill-shaped buttons (>8px radius) — the sharp, minimal radius is structural
|
|
249
|
+
- Don't skip the `"kern"` feature on headings — the font requires it
|
|
250
|
+
- Don't use HashiCorp Sans for small body text — it's designed for 17px+ heading use
|
|
251
|
+
- Don't mix product colors in the same component — each product has one color
|
|
252
|
+
- Don't use pure black (`#000000`) for dark backgrounds — use `#15181e` or `#0d0e12`
|
|
253
|
+
- Don't forget the asymmetric button padding — 9px 9px 9px 15px is intentional
|
|
254
|
+
|
|
255
|
+
## 8. Responsive Behavior
|
|
256
|
+
|
|
257
|
+
### Breakpoints
|
|
258
|
+
| Name | Width | Key Changes |
|
|
259
|
+
|------|-------|-------------|
|
|
260
|
+
| Mobile | <768px | Single column, hamburger nav, stacked CTAs |
|
|
261
|
+
| Tablet | 768–992px | 2-column grids, nav begins expanding |
|
|
262
|
+
| Desktop | 992–1150px | Full layout, mega-menu nav |
|
|
263
|
+
| Large | >1150px | Max-width centered, generous margins |
|
|
264
|
+
|
|
265
|
+
### Collapsing Strategy
|
|
266
|
+
- Hero: 82px → 52px → 42px heading sizes
|
|
267
|
+
- Navigation: mega-menu → hamburger
|
|
268
|
+
- Product cards: 3-column → 2-column → stacked
|
|
269
|
+
- Dark sections maintain full-width but compress padding
|
|
270
|
+
- Buttons: inline → full-width stacked on mobile
|
|
271
|
+
|
|
272
|
+
## 9. Agent Prompt Guide
|
|
273
|
+
|
|
274
|
+
### Quick Color Reference
|
|
275
|
+
- Light bg: `#ffffff`, `#f1f2f3`
|
|
276
|
+
- Dark bg: `#15181e`, `#0d0e12`
|
|
277
|
+
- Text light: `#000000`, `#3b3d45`
|
|
278
|
+
- Text dark: `#efeff1`, `#d5d7db`
|
|
279
|
+
- Links: `#2264d6` (light), `#1060ff` (dark), `#2b89ff` (active)
|
|
280
|
+
- Helper text: `#656a76`
|
|
281
|
+
- Borders: `rgba(178, 182, 189, 0.4)`, `rgb(97, 104, 117)`
|
|
282
|
+
- Focus: `3px solid` product-appropriate color
|
|
283
|
+
|
|
284
|
+
### Example Component Prompts
|
|
285
|
+
- "Create a hero on dark background (#15181e). Headline at 82px HashiCorp Sans weight 600, line-height 1.17, kern enabled, white text. Sub-text at 20px system-ui weight 400, line-height 1.50, #d5d7db text. Two buttons: primary dark (#15181e, 5px radius, 9px 15px padding) and secondary white (#ffffff, 4px radius, 8px 12px padding)."
|
|
286
|
+
- "Design a product card: white background, 8px radius, dual-layer shadow at rgba(97,104,117,0.05). Title at 26px HashiCorp Sans weight 700, body at 16px system-ui weight 400 line-height 1.63."
|
|
287
|
+
- "Build an uppercase section label: 13px HashiCorp Sans weight 600, line-height 1.69, letter-spacing 1.3px, text-transform uppercase, #656a76 color."
|
|
288
|
+
- "Create a product-specific CTA button: Terraform → #7b42bc background, Vault → #ffcf25 with dark text, Waypoint → #14c6cb. All: 5px radius, 500 weight text, 16px system-ui."
|
|
289
|
+
- "Design a dark form: #0d0e12 input background, #efeff1 text, 1px solid rgb(97,104,117) border, 5px radius, 11px padding. Focus: 3px solid accent-color outline."
|
|
290
|
+
|
|
291
|
+
### Iteration Guide
|
|
292
|
+
1. Always start with the mode decision: light (white) for informational, dark (#15181e) for hero/product
|
|
293
|
+
2. HashiCorp Sans for headings only (17px+), system-ui for everything else
|
|
294
|
+
3. Shadows are at whisper level (0.05 opacity) — if visible, reduce
|
|
295
|
+
4. Product colors are sacred — each product owns exactly one color
|
|
296
|
+
5. Focus rings are always 3px solid, color-matched to product context
|
|
297
|
+
6. Uppercase labels are the systematic wayfinding pattern — 13px, 600, 1.3px tracking
|
|
298
|
+
|
|
299
|
+
## 10. Voice & Tone
|
|
300
|
+
|
|
301
|
+
HashiCorp's voice is **infrastructure-engineer-fluent** — speaks the language of platform teams who manage clouds, secrets, and clusters. Copy is capability-driven, with strong open-source narrative. Each product (Terraform, Vault, Consul, Nomad, Boundary, Packer, Waypoint) has its own micro-brand within the HashiCorp identity.
|
|
302
|
+
|
|
303
|
+
| Context | Tone |
|
|
304
|
+
|---|---|
|
|
305
|
+
| CTA | Verb. "Try Terraform", "Get started", "Sign up" |
|
|
306
|
+
| Marketing | Product-specific. Terraform copy ≠ Vault copy ≠ Consul copy |
|
|
307
|
+
| Documentation | HCL/CLI heavy, deep code examples |
|
|
308
|
+
| Error (apply) | Plan diff + specific resource error |
|
|
309
|
+
|
|
310
|
+
**Voice samples**
|
|
311
|
+
- Marketing tagline (KR): *"혁신을 위한 인프라"* <!-- verified: hashicorp.com/ko homepage 2026-05 -->
|
|
312
|
+
|
|
313
|
+
**Forbidden phrases.** Marketing superlatives without numbers. "Revolutionary infrastructure" framing.
|
|
314
|
+
|
|
315
|
+
## 11. Brand Narrative
|
|
316
|
+
|
|
317
|
+
HashiCorp was founded **2012** in San Francisco by **Mitchell Hashimoto** and **Armon Dadgar** — classmates at the **University of Washington's Paul G. Allen School of Computer Science**, where they met **2008** working on a research project to make then-emerging Amazon/Microsoft public-cloud tech accessible to scientists ([HashiCorp — Origin Story](https://www.hashicorp.com/en/about/origin-story), [HashiCorp — Wikipedia](https://en.wikipedia.org/wiki/HashiCorp)). Hashimoto was already running open-source **Vagrant**; he created **Terraform**, which became the de-facto standard for infrastructure-as-code. The product family expanded to **Vault** (secrets), **Consul** (service mesh), **Nomad** (orchestration), **Boundary**, **Packer**, and **Waypoint**. **NASDAQ IPO 2021-12-09** under ticker **HCP**, priced at **$80/share** (above $68-72 range), valuing HashiCorp at **~$13B**. **IBM announced acquisition April 24 2024 for $6.4B**; deal **closed February 27 2025** after regulatory review, bringing HashiCorp into IBM's hybrid cloud strategy ([IBM acquisition closed — HashiCorp blog](https://www.hashicorp.com/en/blog/hashicorp-officially-joins-the-ibm-family), [Logan Bartlett podcast — Dadgar 48hrs after IBM sale](https://www.theloganbartlettshow.com/archive/ep-102-armon-dadgar-hashicorp-co-founder-reflects-48-hours-after-selling-to-ibm)). **Hashimoto resigned December 2023** ahead of the IBM deal — later launched **Ghostty** (GPU-accelerated terminal, public Dec 2024) and joined **Vercel's board March 2026** ([BusinessWire — Vercel + Hashimoto](https://www.businesswire.com/news/home/20260318957008/en/Vercel-Appoints-Mitchell-Hashimoto-Co-Founder-of-HashiCorp-and-Creator-of-Terraform-to-Board-of-Directors)). The brand voice retains its open-source-first, platform-engineering register.
|
|
318
|
+
|
|
319
|
+
## 12. Principles
|
|
320
|
+
|
|
321
|
+
1. **Infrastructure as code.** Every product expects HCL or equivalent declarative input. *UI implication:* CLI-first; UI dashboards exist but never replace HCL primacy.
|
|
322
|
+
2. **Multi-cloud is the default.** *UI implication:* every concept is provider-agnostic in copy; specific provider logos appear only in integration grids.
|
|
323
|
+
3. **Each product has a color, none are loud.** Terraform `#7B42BC` purple, Vault `#FFEC6E` yellow-green, Consul `#E03875` magenta — but used sparingly. *UI implication:* product-specific brand color appears only on hero + product nav.
|
|
324
|
+
4. **3px focus rings, color-matched.** *UI implication:* don't use generic blue focus; match to the active product theme.
|
|
325
|
+
5. **Uppercase labels for wayfinding.** *UI implication:* tab labels and section dividers can use uppercase 13px / 600 / 1.3px tracking — systematic, never decorative.
|
|
326
|
+
|
|
327
|
+
## 13. Personas
|
|
328
|
+
|
|
329
|
+
*Personas are fictional archetypes informed by HashiCorp user segments (platform engineers, DevOps leads, security architects), not individual people.*
|
|
330
|
+
|
|
331
|
+
**Sergey Volkov, 38, Berlin.** Senior platform engineer. Manages Terraform state for 120+ AWS accounts. Vault for production secrets.
|
|
332
|
+
|
|
333
|
+
**Priya Krishnan, 31, Bengaluru.** SRE at fintech. Consul service mesh + Nomad orchestration replacing K8s for specific workloads.
|
|
334
|
+
|
|
335
|
+
**Marcus Davies, 45, London.** Security architect. Vault is the entire reason their compliance audit passed.
|
|
336
|
+
|
|
337
|
+
## 14. States
|
|
338
|
+
|
|
339
|
+
| State | Treatment |
|
|
340
|
+
|---|---|
|
|
341
|
+
| **Empty (no resources)** | "Define resources in your `.tf` file" + sample HCL block |
|
|
342
|
+
| **Empty (no secrets)** | "Add your first secret" CTA + CLI command |
|
|
343
|
+
| **Loading (terraform apply)** | Plan diff visible + apply progress per resource |
|
|
344
|
+
| **Loading (state)** | Per-resource spinner |
|
|
345
|
+
| **Error (plan)** | HCL line:column + specific resource + recommended fix |
|
|
346
|
+
| **Error (apply)** | Resource-level rollback option |
|
|
347
|
+
| **Success (apply)** | Resource list + state-locked indicator clear |
|
|
348
|
+
| **Success (rotate)** | Vault rotation timestamp + next-rotation due date |
|
|
349
|
+
| **Skeleton (resource list)** | Dark cards with charcoal borders |
|
|
350
|
+
| **Disabled (locked state)** | Lock icon + "State locked by user@team" |
|
|
351
|
+
| **Loading (long apply)** | Real-time per-resource progress |
|
|
352
|
+
|
|
353
|
+
## 15. Motion & Easing
|
|
354
|
+
|
|
355
|
+
| Token | Value | Use |
|
|
356
|
+
|---|---|---|
|
|
357
|
+
| `motion-instant` | 0ms | Toggle |
|
|
358
|
+
| `motion-fast` | 150ms | Hover |
|
|
359
|
+
| `motion-standard` | 250ms | Modal, panel |
|
|
360
|
+
|
|
361
|
+
Standard cubic-bezier; no bounce. **Focus rings** never animate — appear instant for accessibility. `prefers-reduced-motion: reduce` removes panel slide-ins.
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
**Verified:** 2026-05-08 (omd:migrate run 27 — Apple-tier)
|
|
366
|
+
**Tier 1 sources:** hashicorp.com/en home + /en/products/terraform (live DOM via playwright — Shared Primary **`#1060ff`** HC Blue 5px / 36-48px / 16px·500; Light Secondary `#fafafa`/`#3b3d45` 5px; nav 4px sub-distinction; **per-product accent system** confirmed via Terraform Purple `#7b42bc`).
|
|
367
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
368
|
+
**Tier 2 (Philosophy/IPO/IBM):** Wikipedia (HashiCorp), HashiCorp Origin Story, Mayfield (UW Allen School origin), HashiCorp blog (IBM close 2025-02), BusinessWire (Hashimoto Vercel board 2026-03), Logan Bartlett Show ep 102 (Dadgar 48hrs post-sale).
|
|
369
|
+
**Style ref:** `stripe`. **Conflicts unresolved:** none. **Earlier mistake reverted:** prior footer captured nav-only — canonical Primary is `#1060ff` HC Blue with documented per-product-accent pattern (Terraform Purple).
|