oh-my-design-cli 1.6.0 → 1.6.2
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/AGENTS.md +1 -1
- package/README.ko.md +12 -0
- package/README.md +49 -0
- package/data/reference-fingerprints.json +957 -2
- package/dist/bin/oh-my-design.js +4 -3
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/{install-skills-IETT2TBJ.js → install-skills-6QFSN5BN.js} +108 -42
- package/dist/install-skills-6QFSN5BN.js.map +1 -0
- package/package.json +9 -3
- package/scripts/postinstall.cjs +6 -6
- package/skills/claude-design/SKILL.md +385 -0
- package/skills/claude-design/references/claude-design-flow.md +425 -0
- package/skills/claude-design/references/codebase-analysis.md +373 -0
- package/skills/claude-design/scripts/analyze_codebase.py +1369 -0
- package/skills/claude-design/scripts/clickable_link.sh +48 -0
- package/skills/claude-design/scripts/collect_source.py +178 -0
- package/skills/claude-design/scripts/drive_claude_design.cjs +378 -0
- package/skills/claude-design/scripts/gather_references.py +437 -0
- package/web/references/91app/DESIGN.md +151 -0
- package/web/references/airtable/DESIGN.md +16 -2
- package/web/references/bithumb/DESIGN.md +170 -0
- package/web/references/bunjang/DESIGN.md +20 -1
- package/web/references/cakeresume/DESIGN.md +162 -0
- package/web/references/catchtable/DESIGN.md +19 -0
- package/web/references/classting/DESIGN.md +251 -0
- package/web/references/classum/DESIGN.md +19 -0
- package/web/references/coinone/DESIGN.md +218 -0
- package/web/references/dabang/DESIGN.md +19 -0
- package/web/references/devsisters/DESIGN.md +253 -0
- package/web/references/dji/DESIGN.md +0 -1
- package/web/references/drnow/DESIGN.md +331 -0
- package/web/references/fastcampus/DESIGN.md +19 -0
- package/web/references/flex/DESIGN.md +19 -0
- package/web/references/flo/DESIGN.md +306 -0
- package/web/references/fugle/DESIGN.md +250 -0
- package/web/references/gmarket/DESIGN.md +19 -0
- package/web/references/gogolook/DESIGN.md +131 -0
- package/web/references/grip/DESIGN.md +250 -0
- package/web/references/hahow/DESIGN.md +158 -0
- package/web/references/hogangnono/DESIGN.md +308 -0
- package/web/references/hyundaicard/DESIGN.md +177 -0
- package/web/references/inflearn/DESIGN.md +19 -0
- package/web/references/jkopay/DESIGN.md +249 -0
- package/web/references/jobkorea/DESIGN.md +310 -0
- package/web/references/kbank/DESIGN.md +18 -0
- package/web/references/kdan/DESIGN.md +160 -0
- package/web/references/kkbox/DESIGN.md +114 -0
- package/web/references/krafton/DESIGN.md +230 -0
- package/web/references/kream/DESIGN.md +18 -0
- package/web/references/laftel/DESIGN.md +253 -0
- package/web/references/lezhin/DESIGN.md +301 -0
- package/web/references/lunit/DESIGN.md +19 -0
- package/web/references/melon/DESIGN.md +153 -0
- package/web/references/momoshop/DESIGN.md +279 -0
- package/web/references/mustit/DESIGN.md +282 -0
- package/web/references/nhncloud/DESIGN.md +174 -0
- package/web/references/oliveyoung/DESIGN.md +19 -0
- package/web/references/payco/DESIGN.md +227 -0
- package/web/references/piccollage/DESIGN.md +277 -0
- package/web/references/rayark/DESIGN.md +132 -0
- package/web/references/riiid/DESIGN.md +228 -0
- package/web/references/sendbird/DESIGN.md +285 -0
- package/web/references/socar/DESIGN.md +18 -0
- package/web/references/toss-securities/DESIGN.md +19 -0
- package/web/references/trenbe/DESIGN.md +252 -0
- package/web/references/tving/DESIGN.md +18 -0
- package/web/references/upbit/DESIGN.md +19 -0
- package/web/references/upstage/DESIGN.md +18 -0
- package/web/references/velog/DESIGN.md +168 -0
- package/web/references/voicetube/DESIGN.md +227 -0
- package/web/references/wadiz/DESIGN.md +19 -0
- package/web/references/webflow/DESIGN.md +16 -2
- package/web/references/yeogiotte/DESIGN.md +19 -0
- package/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +0 -189
- package/data/issues/2026-05-13-multi-surface-schema-rfc.md +0 -67
- package/data/reference-audits/2026-05-13-kr10.md +0 -132
- package/data/reference-audits/2026-05-14-kr10.md +0 -72
- package/data/reference-audits/2026-05-15-kr10.md +0 -124
- package/data/research/2026-05-18-agent-landscape.md +0 -69
- package/data/research/2026-05-18-kr-style-presets.md +0 -572
- package/dist/install-skills-IETT2TBJ.js.map +0 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: gogolook
|
|
3
|
+
name: "Gogolook"
|
|
4
|
+
country: TW
|
|
5
|
+
category: consumer-tech
|
|
6
|
+
homepage: "https://whoscall.com"
|
|
7
|
+
primary_color: "#0CD25F"
|
|
8
|
+
logo:
|
|
9
|
+
type: favicon
|
|
10
|
+
slug: "https://www.google.com/s2/favicons?domain=whoscall.com&sz=128"
|
|
11
|
+
verified: "2026-06-01"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
ds:
|
|
14
|
+
name: Whoscall Brand Guidelines
|
|
15
|
+
url: "https://whoscall.com/en/brand"
|
|
16
|
+
type: brand
|
|
17
|
+
description: Whoscall's official brand page — logo, the documented brand green #0CD25F, and usage guidelines.
|
|
18
|
+
---
|
|
19
|
+
# Design System Inspiration of Gogolook
|
|
20
|
+
|
|
21
|
+
## 1. Visual Theme & Atmosphere
|
|
22
|
+
|
|
23
|
+
Gogolook is the Taiwan TrustTech company behind Whoscall, the caller-ID and anti-scam app, and its design speaks in the language of friendly, reassuring consumer safety rather than cold enterprise security. The world is built on a clean white ground (#FFFFFF) that keeps everything calm and uncluttered, punctuated by a vivid, documented brand green (#0CD25F) that signals "you're protected" without ever feeling alarming. Buttons are fully-rounded pills, soft and tappable, and a big playful rounded display face (Nunito) carries the headlines while Noto Sans handles the body, so the voice reads as approachable and human. The overall feeling is of a trusted neighbor who happens to be excellent at spotting scams: warm, confident, and easy to talk to. Color is used sparingly and purposefully, letting the green do the emotional work of conveying safety against a quiet, bright backdrop. Nothing here shouts; the protection is communicated through friendliness, generous rounding, and a single confident accent rather than through dark, defensive, "security-vendor" visual tropes.
|
|
24
|
+
|
|
25
|
+
## 2. Color Palette & Roles
|
|
26
|
+
- **Whoscall Green #0CD25F** — primary brand color, documented on whoscall.com/en/brand; the core identity hue and the emotional anchor for "trusted protection."
|
|
27
|
+
- **Download-CTA Green #05F067** — the live, slightly brighter near-twin green used on the primary download pill on whoscall.com; carries the main call-to-action.
|
|
28
|
+
- **Light-Green Tint #E6FAEF** — soft pale-green surface used for the premium button background; a gentle, low-pressure accent fill.
|
|
29
|
+
- **Dark Gray #2C3E50** — documented secondary on the brand page; a softened near-black for structure and contrast that avoids harsh pure black.
|
|
30
|
+
- **Primary Text #262626** — the live body and button text color on whoscall.com; warm dark neutral for readability.
|
|
31
|
+
- **White #FFFFFF** — the dominant ground; keeps the experience bright, clean, and reassuring.
|
|
32
|
+
- **Category accent — Pink #F53F90** — a documented live category accent for differentiation and playful color-coding.
|
|
33
|
+
- **Category accent — Teal #019D91** — a second live category accent, complementing the green family with a cooler tone.
|
|
34
|
+
|
|
35
|
+
## 3. Typography Rules
|
|
36
|
+
Two faces split the work cleanly. **Nunito** is the rounded display face — its soft, geometric letterforms reinforce the friendly, approachable character, scaling all the way up to a 118px hero at weight 500. **Noto Sans** handles body copy at 16px, providing neutral, highly legible text with broad multilingual coverage suited to a Taiwan-rooted consumer product. Primary text renders in #262626, a warm dark neutral rather than pure black, keeping even dense copy soft on a white ground. The pairing is deliberate: rounded, expressive headlines invite the reader in, while clean, sober body text keeps trust-critical information clear and credible.
|
|
37
|
+
|
|
38
|
+
## 4. Component Stylings
|
|
39
|
+
|
|
40
|
+
### Primary Download Pill
|
|
41
|
+
|
|
42
|
+
**Default**
|
|
43
|
+
- Background: #05F067
|
|
44
|
+
- Text: #262626
|
|
45
|
+
- Border: none
|
|
46
|
+
- Radius: 100px
|
|
47
|
+
- Padding: 16px 32px
|
|
48
|
+
- Height: 56px
|
|
49
|
+
- Font: 16px / 500
|
|
50
|
+
- Use: primary download call-to-action on whoscall.com
|
|
51
|
+
|
|
52
|
+
### Secondary Demo Pill
|
|
53
|
+
|
|
54
|
+
**Default**
|
|
55
|
+
- Background: rgba(255,255,255,0.8)
|
|
56
|
+
- Text: #262626
|
|
57
|
+
- Border: none
|
|
58
|
+
- Radius: 100px
|
|
59
|
+
- Padding: 16px 32px
|
|
60
|
+
- Height: 56px
|
|
61
|
+
- Font: 16px / 500
|
|
62
|
+
- Use: secondary "demo" action sitting beside the primary download CTA
|
|
63
|
+
|
|
64
|
+
### Premium Button
|
|
65
|
+
|
|
66
|
+
**Default**
|
|
67
|
+
- Background: #E6FAEF
|
|
68
|
+
- Text: #262626
|
|
69
|
+
- Border: none
|
|
70
|
+
- Radius: 40px
|
|
71
|
+
- Padding: 16px 32px
|
|
72
|
+
- Height: 57px
|
|
73
|
+
- Font: 16px / 400
|
|
74
|
+
- Use: premium / upgrade action on a soft light-green surface
|
|
75
|
+
|
|
76
|
+
## 5. Layout Principles
|
|
77
|
+
The composition rests on a generous white ground that gives each element room to breathe, with the bright green CTA acting as the single visual destination on the page. Content is kept calm and uncluttered, so the eye moves naturally from a large rounded Nunito hero down to a clear, tappable pill button. Spacing is comfortable and the hierarchy is unambiguous: one confident primary action, supported by a quieter secondary pill, rather than a wall of competing buttons. The white-first canvas reinforces the brand's reassuring, non-aggressive posture — safety presented as a clean, open, easy-to-navigate space.
|
|
78
|
+
|
|
79
|
+
## 6. Depth & Elevation
|
|
80
|
+
Elevation is restrained and quiet. The interface leans on the white ground and soft pale-green tint surfaces (#E6FAEF) to separate planes rather than heavy shadow stacks, keeping the look flat, bright, and friendly. Depth is implied mainly through the fully-rounded pill geometry and gentle background-color shifts between the white canvas and the light-green premium surface. No documented hard borders are used on the primary actions, so contrast comes from color fill rather than outlines or strong drop shadows.
|
|
81
|
+
|
|
82
|
+
## 7. Do's and Don'ts
|
|
83
|
+
|
|
84
|
+
### Do
|
|
85
|
+
- Lead with the documented Whoscall Green (#0CD25F) as the brand anchor and reserve the brighter #05F067 for the live download CTA.
|
|
86
|
+
- Keep the ground white (#FFFFFF) and let color carry meaning sparingly.
|
|
87
|
+
- Use fully-rounded pill geometry (100px radius) for primary and secondary actions.
|
|
88
|
+
- Pair rounded Nunito display with clean Noto Sans body, and render text in #262626.
|
|
89
|
+
|
|
90
|
+
### Don't
|
|
91
|
+
- Invent dark "security-vendor" backgrounds or aggressive red-alert palettes; the brand reads as friendly protection.
|
|
92
|
+
- Square off the buttons or reduce their rounding — the pill language is core to the approachable feel.
|
|
93
|
+
- Overload the page with multiple competing accents; the category pink (#F53F90) and teal (#019D91) are accents, not primaries.
|
|
94
|
+
- Substitute pure black for text where #262626 is specified.
|
|
95
|
+
|
|
96
|
+
## 8. Responsive Behavior
|
|
97
|
+
The white-first, single-CTA layout is built to stay calm and legible as it scales, with the pill buttons holding their fully-rounded 100px geometry and comfortable 16px 32px padding across contexts. The Nunito display face flexes dramatically — anchored by a 118px hero on large screens — while Noto Sans body stays at a steady 16px for reliable readability on smaller viewports. Because the design depends on color fill rather than fine borders or dense shadow, it degrades gracefully: the green CTA remains the clear focal point regardless of width. (Specific breakpoint values are not documented in the captured data; behavior is described qualitatively.)
|
|
98
|
+
|
|
99
|
+
## 9. Agent Prompt Guide
|
|
100
|
+
When generating UI in Gogolook's style, instruct the agent to: start from a clean white (#FFFFFF) ground; make the single most important action a fully-rounded pill (radius 100px, height 56px, padding 16px 32px, font 16px/500) filled with the live download green #05F067 and dark text #262626; reserve the documented brand green #0CD25F as the identity anchor; add a quieter secondary pill on a translucent white background (rgba(255,255,255,0.8)) with matching geometry; use a softer premium button on a light-green tint surface (#E6FAEF, radius 40px, height 57px, font 16px/400). Set headlines in rounded Nunito (scaling up to a 118px/500 hero) and body in Noto Sans at 16px, all text in #262626. Keep the mood friendly, reassuring, and consumer-grade — approachable protection, never enterprise security. Use category accents pink #F53F90 and teal #019D91 only for light color-coding, never as the dominant hue.
|
|
101
|
+
|
|
102
|
+
## 10. Voice & Tone
|
|
103
|
+
The voice is warm, reassuring, and plainly human — the tone of a trusted neighbor who is genuinely good at spotting scams. It reassures without alarming, choosing friendly confidence over fear-based urgency. Copy should feel approachable and protective at once: clear about safety, never preachy or technical for its own sake. Where a security vendor might say "threat detected," Gogolook would rather say "we've got your back."
|
|
104
|
+
|
|
105
|
+
## 11. Brand Narrative
|
|
106
|
+
Gogolook is a Taiwan TrustTech company, best known for Whoscall, its caller-ID and anti-scam app. Its mission energy is consumer safety made friendly: turning the anxious, technical world of fraud and spam into something approachable, reassuring, and easy to trust. The brand deliberately positions itself as approachable protection rather than enterprise security — a clean white ground, a vivid documented brand green, fully-rounded pill buttons, and a big playful rounded display face together signal that staying safe should feel calm and human, not cold and defensive.
|
|
107
|
+
|
|
108
|
+
## 12. Principles
|
|
109
|
+
- **Approachable protection, not enterprise security** — safety communicated through warmth, rounding, and a single confident green.
|
|
110
|
+
- **Reassure, don't alarm** — bright white grounds and friendly greens replace dark, defensive security tropes.
|
|
111
|
+
- **One confident action** — a single primary pill CTA carries the page; everything else stays quiet.
|
|
112
|
+
- **Friendly by form** — fully-rounded pills and rounded Nunito display make the interface feel human and tappable.
|
|
113
|
+
- **Color with purpose** — green does the emotional work of "you're protected"; accents are used sparingly.
|
|
114
|
+
|
|
115
|
+
## 13. Personas
|
|
116
|
+
- **The Cautious Everyday User** — wants to feel safe from scam calls without learning security jargon; reassured by the calm white ground, friendly green, and one obvious tap target.
|
|
117
|
+
- **The Family Protector** — sets up safety tools for parents or kids and needs a product that looks trustworthy and non-intimidating; the approachable, neighborly tone earns confidence.
|
|
118
|
+
- **The Regional Mobile-First User** — a Taiwan-rooted, multilingual audience served by Noto Sans body text and a clean, legible, mobile-friendly layout.
|
|
119
|
+
|
|
120
|
+
## 14. States
|
|
121
|
+
Documented interactive states beyond the default are not present in the captured data, so additional states (hover, pressed, focus, disabled) should be derived conservatively from the established palette rather than invented. Keep any state treatment within the brand's friendly, low-pressure language: lean on gentle shifts within the green family and the light-green tint (#E6FAEF) for surfaces, and preserve the #262626 text and fully-rounded pill geometry across states. Avoid introducing alarm colors or hard borders that would break the reassuring tone. (No specific hover/pressed/focus values are documented; treat them qualitatively.)
|
|
122
|
+
|
|
123
|
+
## 15. Motion & Easing
|
|
124
|
+
No motion or easing values are documented in the captured data, so motion should be described qualitatively rather than specified numerically. In keeping with the brand's friendly, reassuring character, any motion should feel soft, calm, and welcoming — gentle transitions that match the rounded pill geometry and the unhurried, neighborly tone, never abrupt or alarming. (Specific durations and easing curves are not in the captured data.)
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
**Verified:** 2026-06-01
|
|
128
|
+
**Tier 1 sources:** https://www.gogolook.com/about (corporate brand / company background), https://whoscall.com/en/brand (documented brand color page — Whoscall Green #0CD25F, Dark Gray #2C3E50, White #FFFFFF), https://medium.com/gogolook-tech (brand-owned engineering/tech blog)
|
|
129
|
+
**Tier 2 sources:** getdesign.md/gogolook — NOT LISTED. refero — not listed. Note: documented brand green #0CD25F is the catalog primary; the live download CTA renders the near-twin #05F067.
|
|
130
|
+
**Conflicts unresolved:** none
|
|
131
|
+
**Proof:** see .verification.md (## Proof block)
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: grip
|
|
3
|
+
name: "Grip"
|
|
4
|
+
country: KR
|
|
5
|
+
category: ecommerce
|
|
6
|
+
homepage: "https://www.grip.show"
|
|
7
|
+
primary_color: "#eb2b51"
|
|
8
|
+
logo:
|
|
9
|
+
type: favicon
|
|
10
|
+
slug: "https://www.google.com/s2/favicons?domain=grip.show&sz=256"
|
|
11
|
+
verified: "2026-06-03"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Grip
|
|
16
|
+
|
|
17
|
+
Korea's first live commerce platform — a mobile-first video shopping app where sellers and buyers connect in real time through livestreams, chat, and exclusive in-broadcast deals.
|
|
18
|
+
|
|
19
|
+
## 1. Visual Theme & Atmosphere
|
|
20
|
+
|
|
21
|
+
Grip presents a dark-first, energy-charged visual world tuned for live video commerce. The primary canvas is near-black (#0e1011) — a deliberate cinema-mode choice that keeps product thumbnails and live video feeds visually dominant. Against this dark ground, the brand's signature rose-red (#eb2b51) fires as a call-to-action signal: checkout buttons, coupon highlights, discount badges, and active selection states all pulse in the same hue, creating an unambiguous buy-now urgency. A secondary hot-pink (#ff3c78) appears in borders and icon fills for interactive affordances just below the critical-action tier. The live-streaming avatar ring introduces a vivid gradient (hot-pink to coral #fe0189→#ff583c) that animates with a pulse or ripple when a seller is live — the single most kinetically distinctive element in the UI. A deep purple (#6456dc) serves as a secondary accent for purchase nudges, urgency countdowns, and seller badges, adding a premium-yet-playful counter-note to the red-dominant palette. Typography is set entirely in Pretendard, a Korean variable typeface that reads cleanly at 13–18 px in both dark and light contexts. Component radii cluster at 4–8 px — tight enough to feel structured, not clinical.
|
|
22
|
+
|
|
23
|
+
## 2. Color Palette & Roles
|
|
24
|
+
|
|
25
|
+
- **Primary Rose-Red:** `#eb2b51` — primary CTA buttons, checkout actions, coupon card accents, checkbox fill, discount rate text
|
|
26
|
+
- **Primary Hot-Pink:** `#ff3c78` — lighter interactive affordance, border accents, icon fills, secondary interactive states
|
|
27
|
+
- **Secondary Purple:** `#6456dc` — purchase nudge bar background, timer text, seller badge accent
|
|
28
|
+
- **App Background:** `#0e1011` — root app canvas (dark mode default)
|
|
29
|
+
- **Surface Dark-1:** `#17181a` — bottom navigation bar background
|
|
30
|
+
- **Surface Dark-2:** `#222327` — elevated card surfaces in dark context
|
|
31
|
+
- **Surface Dark-3:** `#404149` — tertiary panel fills
|
|
32
|
+
- **Surface Light:** `#ffffff` — light-mode cart, coupon, and checkout pages
|
|
33
|
+
- **Surface Subtle:** `#f3f3f3` — empty state icon containers, light dividers
|
|
34
|
+
- **Text Primary (dark):** `#eff0f4` — body copy on dark backgrounds
|
|
35
|
+
- **Text Body (light):** `#323232` — product name, price, UI text on white
|
|
36
|
+
- **Text Muted:** `#999999` — secondary labels, conditions, disabled states
|
|
37
|
+
- **Text Subdued:** `#666666` — meta info, timestamps
|
|
38
|
+
- **Border Default:** `#e5e5e5` — card outlines, dividers
|
|
39
|
+
- **Border Subtle:** `#d5d5d5` — light separators, outline button strokes
|
|
40
|
+
- **Error / Danger:** `#ef4343` — toast error, out-of-stock labels
|
|
41
|
+
- **Live avatar ring:** `conic-gradient(from -68deg, #ff2b51, #ffae8e)` — broadcaster live ring
|
|
42
|
+
- **Creator avatar ring:** `conic-gradient(from -68deg, #1ec7be, #1dc3ff)` — creator/seller avatar ring
|
|
43
|
+
|
|
44
|
+
## 3. Typography Rules
|
|
45
|
+
|
|
46
|
+
- **Typeface:** Pretendard (woff2, variable weight 45–920), with Pretendard Fallback (Arial-based) for system fallback
|
|
47
|
+
- **Body / Product name:** 15px / weight 400–500
|
|
48
|
+
- **Price / Emphasis:** 15px / weight 700; discount price 27px / weight 700
|
|
49
|
+
- **Button primary:** 16px / weight 600
|
|
50
|
+
- **Button confirm full-width:** 18px / weight 500
|
|
51
|
+
- **Caption / Meta:** 13px / weight 400–500
|
|
52
|
+
- **Badge / Tag:** 11–12px / weight 500
|
|
53
|
+
- **Page header height:** 56px (CSS export constant)
|
|
54
|
+
- **Letter spacing:** −0.2 px to −0.5 px on headings and price figures; Korean text benefits from tight negative tracking
|
|
55
|
+
- **Line height:** 135–145% for readable body, tabular-nums variant for prices and timers
|
|
56
|
+
|
|
57
|
+
## 4. Component Stylings
|
|
58
|
+
|
|
59
|
+
### Purchase Buttons
|
|
60
|
+
|
|
61
|
+
**Primary CTA (cart checkout)**
|
|
62
|
+
- Background: `#eb2b51`
|
|
63
|
+
- Text: `#ffffff`
|
|
64
|
+
- Radius: 8px
|
|
65
|
+
- Height: 50px
|
|
66
|
+
- Font: 16px / 600
|
|
67
|
+
|
|
68
|
+
**Full-Width Confirm (drawer bottom)**
|
|
69
|
+
- Background: `#eb2b51`
|
|
70
|
+
- Text: `#ffffff`
|
|
71
|
+
- Height: 56px
|
|
72
|
+
- Font: 18px / 500
|
|
73
|
+
|
|
74
|
+
**Dark Secondary (buy now inline)**
|
|
75
|
+
- Background: `#323232`
|
|
76
|
+
- Text: `#ffffff`
|
|
77
|
+
- Radius: 4px
|
|
78
|
+
- Height: 34px
|
|
79
|
+
- Font: 14px / 500
|
|
80
|
+
|
|
81
|
+
**Outline Delete / Cancel**
|
|
82
|
+
- Background: `#ffffff`
|
|
83
|
+
- Text: `#323232`
|
|
84
|
+
- Border: 1px solid `#e5e5e5`
|
|
85
|
+
- Radius: 4px
|
|
86
|
+
- Height: 34px
|
|
87
|
+
- Font: 14px / 500
|
|
88
|
+
|
|
89
|
+
**Shorts / Discovery CTA**
|
|
90
|
+
- Background: `#17181a`
|
|
91
|
+
- Text: `#ffffff`
|
|
92
|
+
- Radius: 6px
|
|
93
|
+
- Height: 40px
|
|
94
|
+
- Font: 15px / 600
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Coupon Card
|
|
99
|
+
|
|
100
|
+
**Active Coupon**
|
|
101
|
+
- Background: `#ffffff`
|
|
102
|
+
- Background: `#fff5f8`
|
|
103
|
+
- Text (price): `#eb2b51`
|
|
104
|
+
- Font: 27px / 700
|
|
105
|
+
|
|
106
|
+
**Claimed / Used Coupon**
|
|
107
|
+
- Background: `#ffffff`
|
|
108
|
+
- Border: 5px solid `#f3f3f3`
|
|
109
|
+
- Text: `#999999`
|
|
110
|
+
- Font: 13px / 500
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### Purchase Nudge Bar
|
|
115
|
+
|
|
116
|
+
**Urgency Countdown**
|
|
117
|
+
- Background: `rgba(47, 23, 253, 0.05)`
|
|
118
|
+
- Text: `#6456dc`
|
|
119
|
+
- Radius: 4px
|
|
120
|
+
- Height: 38px
|
|
121
|
+
- Font: 14px / 500–600
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
**Verified:** 2026-06-03
|
|
125
|
+
**Tier 1 sources:** https://www.grip.show (homepage HTML + CSS bundles via webapp-resource.grip.show/202606020502/_next/static/css/), https://webapp-resource.grip.show/202606020502/_next/static/css/2caceb3098ae7b02.css (main Tailwind utility CSS, 86 KB), https://webapp-resource.grip.show/202606020502/_next/static/css/1f9e9658ee2b291a.css (cart page CSS with button tokens), https://webapp-resource.grip.show/202606020502/_next/static/css/c2bfe78c6e53a384.css (coupon drawer CSS with full-width confirm button), https://gripcorp.co (brand/corp homepage with gradient slogan and propose-button), https://webapp-resource.grip.show/202606020502/_next/static/css/4299887bf9e53336.css (avatar + live ring CSS)
|
|
126
|
+
**Tier 2 sources:** getdesign.md/grip — 0 DESIGN.md files (NOT LISTED). refero — no result found for Grip KR.
|
|
127
|
+
**Conflicts unresolved:** none
|
|
128
|
+
|
|
129
|
+
## 5. Layout Principles
|
|
130
|
+
|
|
131
|
+
Grip is a single-column, mobile-only app (max-width 420px on desktop, 100% on mobile). The root `.main` container is fixed to 420px wide on desktop and stacks vertically: page header (56px fixed top), scrollable content, bottom nav (52px + safe-area bottom). The live video view occupies full viewport height (100dvh) with content layered via absolute positioning. Card grids use gap-based flex rows; product thumbnail grids use 109px fixed-width scroll containers. Horizontal scroll (Indiana Scroll) is used for curation rows, avoiding pagination friction.
|
|
132
|
+
|
|
133
|
+
## 6. Depth & Elevation
|
|
134
|
+
|
|
135
|
+
The UI relies on background-color contrast rather than drop shadows for layering. Bottom nav (`#17181a`) sits above the dark app canvas (`#0e1011`). Drawers and modals emerge from below (vaul-drawer, bottom-sheet pattern) using the Radix animation system. An `rgba(0,0,0,0.1)` scrim is applied to floating overlays. The live avatar ring uses `z-index:-1` on the after-pseudo for the gradient ring to sit behind the avatar circle, giving a halo effect without a shadow. Product thumbnail borders use `outline: 1px solid rgba(0,0,0,0.05)` with `outline-offset:-1px` to avoid layout shift at 8px radius.
|
|
136
|
+
|
|
137
|
+
## 7. Do's and Don'ts
|
|
138
|
+
|
|
139
|
+
### Do
|
|
140
|
+
- Use `#eb2b51` for every primary purchase action — checkout, confirm, coupon claim
|
|
141
|
+
- Present live status with the `#fe0189→#ff583c` animated ring gradient, not a static badge
|
|
142
|
+
- Set prices in 700 weight with tabular-nums to prevent width jitter during countdowns
|
|
143
|
+
- Keep body copy at 15px / 400 on light surfaces for readability at arm's length
|
|
144
|
+
- Use `#6456dc` exclusively for urgency/countdown nudges; don't repurpose it as a general brand color
|
|
145
|
+
- Maintain the 420px max-width constraint in desktop contexts to preserve mobile layout fidelity
|
|
146
|
+
|
|
147
|
+
### Don't
|
|
148
|
+
- Don't use `#ff3c78` as the primary CTA color — it is the lighter interactive affordance, not the checkout signal
|
|
149
|
+
- Don't add shadows to buttons; elevation is communicated through background contrast alone
|
|
150
|
+
- Don't place live-ring gradients on non-live seller avatars — the animation signals active broadcast
|
|
151
|
+
- Don't exceed 8px border-radius on purchase buttons; 24–31px is reserved for pill tags and avatar-adjacent elements
|
|
152
|
+
- Don't use font weight below 500 for interactive UI text; 400 is reserved for body copy and meta descriptions
|
|
153
|
+
|
|
154
|
+
## 8. Responsive Behavior
|
|
155
|
+
|
|
156
|
+
Grip is deliberately non-responsive in the traditional sense — it is a mobile web app. The root `.main` container is fixed at 420px wide and centered on desktop, with `max-width:100%` applied only on actual mobile viewports. At ≤460px the container becomes fluid. The bottom nav respects `env(safe-area-inset-bottom)` for notched devices. The video view layout enforces `min-width:360px` and `min-height:568px` to support older small-screen devices. Desktop visitors receive the 420px centered column; there is no tablet breakpoint.
|
|
157
|
+
|
|
158
|
+
## 9. Agent Prompt Guide
|
|
159
|
+
|
|
160
|
+
To produce Grip-consistent UI:
|
|
161
|
+
- Dark canvas: `background #0e1011`, body text `#eff0f4`, Pretendard 15px/400
|
|
162
|
+
- Primary CTA: `background #eb2b51`, white text, 8px radius, 50px height, 16px/600
|
|
163
|
+
- Secondary action: `background #323232`, white text, 4px radius, 34px height, 14px/500
|
|
164
|
+
- Live indicator: animated gradient ring `#fe0189→#ff583c` on circular avatars, 0.81s cubic-bezier(0.167, 0.166, 1, 1)
|
|
165
|
+
- Price display: 700 weight, tabular-nums, discount rate in `#eb2b51`
|
|
166
|
+
- Urgency nudge bar: `rgba(47,23,253,0.05)` background, `#6456dc` text, 4px radius, 38px height
|
|
167
|
+
- Coupon card: `#fff5f8` tint interior, primary amount in `#eb2b51` 27px/700
|
|
168
|
+
- Section dividers: 1px solid `#f3f3f3` (light) or background-color switch on dark
|
|
169
|
+
- No box-shadow on action elements; rely on background contrast for layering
|
|
170
|
+
|
|
171
|
+
## 10. Voice & Tone
|
|
172
|
+
|
|
173
|
+
**Tone adjectives:** energetic, direct, community-warm
|
|
174
|
+
|
|
175
|
+
| Do | Don't |
|
|
176
|
+
|----|-------|
|
|
177
|
+
| Use short imperative phrases ("지금 바로", "한정 특가") | Write formal or legalistic copy |
|
|
178
|
+
| Address the viewer as a participant in a live event | Address them as a faceless online shopper |
|
|
179
|
+
| Create urgency around the live moment ("지금 방송 중") | Use generic marketing hyperbole unrelated to real-time |
|
|
180
|
+
| Celebrate the seller-buyer relationship by name (Gripper) | Depersonalize the seller as "vendor" or "merchant" |
|
|
181
|
+
|
|
182
|
+
**Voice samples (illustrative):**
|
|
183
|
+
- *"지금 라이브 중! 방송에서만 만나는 특가를 놓치지 마세요."* — live broadcast nudge copy
|
|
184
|
+
- *"그리퍼가 직접 쓰고 추천하는 아이템, 지금 채팅으로 물어보세요."* — seller trust prompt
|
|
185
|
+
- *"1,000만이 선택한 영상 쇼핑, 그립."* — official slogan from og:title meta tag
|
|
186
|
+
|
|
187
|
+
## 11. Brand Narrative
|
|
188
|
+
|
|
189
|
+
Grip was founded in July 2018 by Kim Han-na, a former Naver marketer who had worked on video products including Jam Live and Snow. Along with six co-founders also from Naver and Kakao, she set out to build Korea's first mobile live commerce platform with a single animating belief: anyone with a smartphone should be able to sell anything, anytime, to anyone. The company (GripCompany, 주식회사 그립컴퍼니) is headquartered in Pangyo, Seongnam — the heart of Korea's tech ecosystem. In December 2021 Kakao became Grip’s largest shareholder (~50% stake, ₩180B), anchoring its live-commerce expansion.
|
|
190
|
+
|
|
191
|
+
Rather than replicating home shopping television or social media, Grip defined a third category: personal media commerce. Sellers — called Grippers — broadcast from wherever they are, answer questions live via chat, run in-stream auctions and games, and build loyal fan communities around their product expertise. The platform's patent portfolio reflects this: interactive mechanics like rolling dice, quiz games, and flash-sale countdowns are proprietary differentiators, not commodities.
|
|
192
|
+
|
|
193
|
+
By 2024 the app had surpassed 10 million downloads and runs approximately 1,300 live shows daily. Grip has expanded internationally (US via gripcorp.co, Japan in planning), and operates a B2B arm — Grip Cloud — that powers branded live commerce for third-party retailers. The mission remains unchanged: collapse the distance between the person who made or curated a product and the person who wants it.
|
|
194
|
+
|
|
195
|
+
## 12. Principles
|
|
196
|
+
|
|
197
|
+
1. **Anyone can sell.** The platform is designed so that a single creator with a smartphone has the same surface area as a large retailer. UI implication: seller onboarding, stream tooling, and product listing all default to zero-equipment, zero-staff flows.
|
|
198
|
+
|
|
199
|
+
2. **The live moment is the product.** Urgency is honest, not manufactured — it comes from the real-time nature of the broadcast. UI implication: live badges, countdown timers, and flash prices must always reflect actual live status; never show live signals on recorded or inactive streams.
|
|
200
|
+
|
|
201
|
+
3. **Community over catalogue.** Grip's retention mechanism is the seller-fan relationship, not a product recommendation algorithm. UI implication: seller avatars, follow states, and chat surfaces are given equal or greater prominence than product grids.
|
|
202
|
+
|
|
203
|
+
4. **Mobile-first, always.** The app was born on smartphone screens; desktop is a secondary, framed experience. UI implication: the 420px max-width is a design constraint, not a limitation — all interaction models (swipe, scroll, tap) are thumb-native.
|
|
204
|
+
|
|
205
|
+
5. **Trust through transparency.** Buyers can ask questions live and see the product in real context. UI implication: product info, seller credentials, and review surfaces should never be buried; the chat overlay must remain accessible throughout a broadcast.
|
|
206
|
+
|
|
207
|
+
## 13. Personas
|
|
208
|
+
|
|
209
|
+
*Illustrative Gripper (Seller) — "Minjung, 34, Busan"*
|
|
210
|
+
Runs a small handmade cosmetics business. She goes live three times a week from her kitchen studio, always engaging with regulars by name. She values the chat widget above everything else — it is her storefront window and her customer service desk simultaneously.
|
|
211
|
+
|
|
212
|
+
*Illustrative Buyer / Fan — "Soyeon, 28, Seoul"*
|
|
213
|
+
Follows 12 Grippers in beauty and fashion. She watches live shows on her commute and keeps the app's push notifications on for her favourite sellers. Price is secondary to trust — she buys because she knows the person selling.
|
|
214
|
+
|
|
215
|
+
*Illustrative Discovery Shopper — "Junho, 41, Daejeon"*
|
|
216
|
+
Opens Grip from a search ad for a specific product category. He swipes the home feed without following anyone, attracted by the HOT ranking and the real-time viewer count as a social-proof signal. He rarely revisits without a compelling deal.
|
|
217
|
+
|
|
218
|
+
*Illustrative B2B Brand Manager — "Hyeji, 30, Seoul"*
|
|
219
|
+
Uses Grip Cloud to run branded live events for an apparel label. She cares about the OBS integration, analytics dashboard, and the coupon issuance system — the consumer-facing design language is largely transparent to her.
|
|
220
|
+
|
|
221
|
+
## 14. States
|
|
222
|
+
|
|
223
|
+
- **Empty (Cart):** `#f3f3f3` circle container (64px) with a cart icon in `#c2c2c2`; text "담긴 상품이 없어요" in `#999` 15px/400; CTA to browse shorts in `#17181a` background
|
|
224
|
+
- **Loading (Live video):** full-viewport dark canvas `#111` with centered spinner; video cover div with `background-size:contain` for thumbnail placeholder
|
|
225
|
+
- **Error (Video stream):** gradient fallback `linear-gradient(180deg, #111 49.95%, #29235e)`; error text surfaced in white on the gradient
|
|
226
|
+
- **Error (Cart item — sold out / ended):** text label "품절" in `#e83c3b` 15px/700; product thumbnail at 50% opacity via `.disabled`
|
|
227
|
+
- **Success (Coupon claimed):** action panel switches to `#f8f8f8`; icon color moves from `#eb2b51` to `#999`; label reads "사용 완료"
|
|
228
|
+
- **Skeleton (Product thumbnail):** `border-radius:8px; outline:1px solid rgba(0,0,0,0.05)` on the wrapper; image `aspect-ratio:1/1` prevents layout shift
|
|
229
|
+
- **Disabled (Coupon card):** `opacity:0.5` applied to all child elements inside `.coupon > *`
|
|
230
|
+
- **Timer / Urgency:** `font-variant-numeric:tabular-nums; font-feature-settings:"tnum"` on all countdown displays; color `#6456dc`
|
|
231
|
+
|
|
232
|
+
## 15. Motion & Easing
|
|
233
|
+
|
|
234
|
+
**Duration scale:**
|
|
235
|
+
- Micro (state feedback): 80ms — bottom nav slide (`transition: all 0.08s linear`)
|
|
236
|
+
- Short (UI transitions): 150ms — Tailwind default (`cubic-bezier(0.4, 0, 0.2, 1)`)
|
|
237
|
+
- Medium (drawer open/close): 200–300ms — Radix accordion/drawer (`ease-out`)
|
|
238
|
+
- Long (avatar live animation): 810ms — pulse-border, ripple-border (`cubic-bezier(0.167, 0.166, 1, 1)`)
|
|
239
|
+
|
|
240
|
+
**Easing tokens:**
|
|
241
|
+
- Standard: `cubic-bezier(0.4, 0, 0.2, 1)` (ease-in-out, Material-derived)
|
|
242
|
+
- Decelerate (drawer enter): `ease-out`
|
|
243
|
+
- Live avatar: `cubic-bezier(0.167, 0.167, 0.833, 0.833)` for ripple ring
|
|
244
|
+
- Pulse entry: `cubic-bezier(0.167, 0.166, 1, 1)` for avatar scale pulse (4 iterations then infinite on live)
|
|
245
|
+
|
|
246
|
+
**Rules:**
|
|
247
|
+
- The live-ring animation (ripple-sm: scale 1.02→1.2, opacity 1→0) runs 4× then loops only when `repeat-live-animation` class is applied — indicating an active live session
|
|
248
|
+
- Bottom nav slides out (`translateY(100%)`) with 80ms linear — fast enough to feel native, not abrupt
|
|
249
|
+
- Drawer content uses Vaul/Radix `data-[state=open]` animate-in at 150ms; `data-[state=closed]` at 300ms (asymmetric: opens fast, closes deliberately)
|
|
250
|
+
- No spring physics; all motion is CSS cubic-bezier
|
|
@@ -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)
|