oh-my-design-cli 1.3.9 → 1.5.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.ja.md +8 -8
- package/README.ko.md +7 -7
- package/README.md +50 -16
- package/README.zh-TW.md +8 -8
- package/agents/omd-asset-curator.md +2 -7
- package/agents/omd-codex-image.md +49 -0
- package/agents/omd-designer-review.md +38 -0
- package/agents/omd-final-qa.md +40 -0
- package/agents/omd-kr-writer.md +35 -0
- package/agents/omd-locale-adapter.md +32 -0
- package/agents/omd-master.md +3 -13
- package/agents/omd-orchestrator.md +34 -0
- package/data/reference-audits/2026-05-14-kr10.md +72 -0
- package/data/reference-audits/2026-05-15-kr10.md +124 -0
- package/data/reference-fingerprints.json +253 -3
- package/data/research/2026-05-18-agent-landscape.md +69 -0
- package/data/research/2026-05-18-kr-style-presets.md +572 -0
- package/dist/bin/oh-my-design.js +6 -3
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/{install-skills-MVXVXYAY.js → install-skills-IETT2TBJ.js} +91 -8
- package/dist/install-skills-IETT2TBJ.js.map +1 -0
- package/package.json +9 -3
- package/skills/omd-apply/SKILL.md +0 -1
- package/skills/omd-codex-image/SKILL.md +162 -0
- package/skills/omd-designer-review/SKILL.md +146 -0
- package/skills/omd-final-qa/SKILL.md +153 -0
- package/skills/omd-kr-writer/SKILL.md +229 -0
- package/skills/omd-locale-adapter/SKILL.md +124 -0
- package/skills/omd-orchestrator/SKILL.md +124 -0
- package/web/references/29cm/DESIGN.md +11 -2
- package/web/references/ably/DESIGN.md +12 -2
- package/web/references/airbnb/DESIGN.md +17 -2
- package/web/references/airtable/DESIGN.md +20 -0
- package/web/references/apple/DESIGN.md +17 -2
- package/web/references/baemin/DESIGN.md +11 -2
- package/web/references/banksalad/DESIGN.md +17 -2
- package/web/references/bmw/DESIGN.md +14 -0
- package/web/references/bunjang/DESIGN.md +308 -0
- package/web/references/cal/DESIGN.md +14 -0
- package/web/references/catchtable/DESIGN.md +262 -0
- package/web/references/channeltalk/DESIGN.md +374 -0
- package/web/references/classum/DESIGN.md +217 -0
- package/web/references/claude/DESIGN.md +11 -2
- package/web/references/clay/DESIGN.md +19 -0
- package/web/references/clickhouse/DESIGN.md +19 -0
- package/web/references/cohere/DESIGN.md +20 -0
- package/web/references/coinbase/DESIGN.md +14 -0
- package/web/references/composio/DESIGN.md +14 -0
- package/web/references/coupang/DESIGN.md +17 -2
- package/web/references/cursor/DESIGN.md +20 -0
- package/web/references/dabang/DESIGN.md +210 -0
- package/web/references/dcard/DESIGN.md +11 -2
- package/web/references/elevenlabs/DESIGN.md +20 -0
- package/web/references/expo/DESIGN.md +20 -0
- package/web/references/fastcampus/DESIGN.md +460 -0
- package/web/references/ferrari/DESIGN.md +14 -0
- package/web/references/figma/DESIGN.md +17 -2
- package/web/references/flex/DESIGN.md +309 -0
- package/web/references/framer/DESIGN.md +20 -0
- package/web/references/freee/DESIGN.md +16 -2
- package/web/references/gangnamunni/DESIGN.md +18 -2
- package/web/references/gmarket/DESIGN.md +464 -0
- package/web/references/hashicorp/DESIGN.md +19 -0
- package/web/references/ibm/DESIGN.md +20 -0
- package/web/references/inflearn/DESIGN.md +396 -0
- package/web/references/intercom/DESIGN.md +14 -0
- package/web/references/jumpit/DESIGN.md +366 -0
- package/web/references/kakao/DESIGN.md +14 -0
- package/web/references/kakaobank/DESIGN.md +17 -2
- package/web/references/kakaopay/DESIGN.md +17 -2
- package/web/references/karrot/DESIGN.md +16 -2
- package/web/references/kbank/DESIGN.md +195 -0
- package/web/references/kraken/DESIGN.md +14 -0
- package/web/references/krds/DESIGN.md +17 -2
- package/web/references/kream/DESIGN.md +382 -0
- package/web/references/kurly/DESIGN.md +11 -2
- package/web/references/lamborghini/DESIGN.md +14 -0
- package/web/references/line/DESIGN.md +17 -2
- package/web/references/linear.app/DESIGN.md +17 -2
- package/web/references/lovable/DESIGN.md +14 -0
- package/web/references/lunit/DESIGN.md +249 -0
- package/web/references/mercari/DESIGN.md +11 -2
- package/web/references/minimax/DESIGN.md +14 -0
- package/web/references/mintlify/DESIGN.md +14 -0
- package/web/references/miro/DESIGN.md +20 -0
- package/web/references/mistral.ai/DESIGN.md +20 -0
- package/web/references/mongodb/DESIGN.md +19 -0
- package/web/references/musinsa/DESIGN.md +11 -2
- package/web/references/naver/DESIGN.md +17 -2
- package/web/references/notion/DESIGN.md +11 -2
- package/web/references/nvidia/DESIGN.md +11 -2
- package/web/references/ohouse/DESIGN.md +11 -2
- package/web/references/oliveyoung/DESIGN.md +342 -0
- package/web/references/ollama/DESIGN.md +14 -0
- package/web/references/opencode.ai/DESIGN.md +20 -0
- package/web/references/pinkoi/DESIGN.md +11 -2
- package/web/references/pinterest/DESIGN.md +19 -0
- package/web/references/posthog/DESIGN.md +20 -0
- package/web/references/qanda/DESIGN.md +11 -2
- package/web/references/raycast/DESIGN.md +19 -0
- package/web/references/remember/DESIGN.md +17 -2
- package/web/references/renault/DESIGN.md +14 -0
- package/web/references/replicate/DESIGN.md +14 -0
- package/web/references/resend/DESIGN.md +20 -0
- package/web/references/revolut/DESIGN.md +14 -0
- package/web/references/ridi/DESIGN.md +11 -2
- package/web/references/runwayml/DESIGN.md +14 -0
- package/web/references/sanity/DESIGN.md +20 -0
- package/web/references/sentry/DESIGN.md +14 -0
- package/web/references/socar/DESIGN.md +17 -2
- package/web/references/spacex/DESIGN.md +11 -2
- package/web/references/spotify/DESIGN.md +14 -0
- package/web/references/stripe/DESIGN.md +11 -2
- package/web/references/supabase/DESIGN.md +20 -0
- package/web/references/superhuman/DESIGN.md +20 -0
- package/web/references/tesla/DESIGN.md +11 -2
- package/web/references/together.ai/DESIGN.md +20 -0
- package/web/references/toss/DESIGN.md +16 -2
- package/web/references/toss-securities/DESIGN.md +193 -0
- package/web/references/tving/DESIGN.md +259 -0
- package/web/references/uber/DESIGN.md +19 -0
- package/web/references/upbit/DESIGN.md +276 -0
- package/web/references/upstage/DESIGN.md +214 -0
- package/web/references/vercel/DESIGN.md +17 -2
- package/web/references/voltagent/DESIGN.md +14 -0
- package/web/references/wadiz/DESIGN.md +344 -0
- package/web/references/wanted/DESIGN.md +16 -2
- package/web/references/warp/DESIGN.md +14 -0
- package/web/references/webflow/DESIGN.md +14 -0
- package/web/references/wise/DESIGN.md +19 -0
- package/web/references/x.ai/DESIGN.md +14 -0
- package/web/references/yanolja/DESIGN.md +17 -2
- package/web/references/yeogiotte/DESIGN.md +18 -2
- package/web/references/zapier/DESIGN.md +20 -0
- package/web/references/zigbang/DESIGN.md +12 -2
- package/web/references/zigzag/DESIGN.md +17 -2
- package/agents/omd-3d-blender.md +0 -269
- package/dist/install-skills-MVXVXYAY.js.map +0 -1
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: upstage
|
|
3
|
+
name: Upstage
|
|
4
|
+
display_name_kr: 업스테이지
|
|
5
|
+
country: KR
|
|
6
|
+
category: ai
|
|
7
|
+
homepage: "https://www.upstage.ai"
|
|
8
|
+
primary_color: "#d2ff95"
|
|
9
|
+
logo:
|
|
10
|
+
type: favicon
|
|
11
|
+
slug: "https://www.google.com/s2/favicons?domain=upstage.ai&sz=256"
|
|
12
|
+
verified: "2026-05-15"
|
|
13
|
+
omd: "0.1"
|
|
14
|
+
ds:
|
|
15
|
+
name: Upstage Brand Resource Center
|
|
16
|
+
url: "https://www.upstage.ai/resources/brand-resource-center"
|
|
17
|
+
type: brand
|
|
18
|
+
description: "Upstage's brand resource hub — logo / symbol assets + IP rights statement. Token spec lives only in production CSS (Geist + Espeak proprietary face + violet #5B52FF × plum #3C043B + Solar accent #D2FF95)."
|
|
19
|
+
og_image: "https://cdn.prod.website-files.com/6743d5190bb2b52f38e99e37/680a25ee07a17eed6deeff74_OG.avif"
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Upstage — DESIGN.md
|
|
23
|
+
|
|
24
|
+
> Reference research only. Brand assets, logo, and the proprietary Espeak display face are property of Upstage Co., Ltd. (주식회사 업스테이지). No verbatim taglines, marketing copy, or asset binaries are reproduced. Token values quoted below are factual CSS custom property values observed via live runtime inspection of the public `www.upstage.ai` surface, under analytical fair-use.
|
|
25
|
+
|
|
26
|
+
## 1. Visual Theme & Atmosphere
|
|
27
|
+
|
|
28
|
+
Upstage looks like an enterprise AI company that decided to spend its visual budget on **one purple, one display face, and one rotating word** — and then on absolutely nothing else. The home surface ships in a deep plum hero canvas (`#3C043B`, exposed as `--colors--grey-background`), pairs it with a near-mint Solar accent (`#D2FF95`, a vivid mid-step of the `--colors--green-yellow-*` ladder), and reserves a single interactive violet (`#5B52FF`, observed 55 times across CTAs and links) as the only chromatic gesture that ever does work. The page is built on Webflow, layers Untitled UI and Spark Library tokens underneath an Upstage-namespaced override layer (74 `--*` custom properties on `:root`), and exposes the seams honestly — `_sub---untitled-ui--*`, `_sub---spark-library--*`, and `_sub---elements-webflow-library--*` all coexist on the document root, with the `--colors--*` and `--style--*` prefixes representing the brand's actual decisions. Type is even more disciplined: **Geist** runs 869 of ~930 sampled text elements (~93%), a single custom display face called **Espeak** lights up the hero H1 at 57.6px / weight 600, and the variable industry word inside the hero (`Insurance`, `Healthcare`, `Manufacturing`, `Financial Services`) shifts to a humble **monospace** mid-sentence — a typographic gesture that says *this slot is configurable* without spending a single color or weight to mark it. Radius is binary (797 elements at 0px, 134 at 8px, nothing meaningful between), elevation is effectively zero (the underlying Webflow library exposes one 10%-alpha shadow token, almost never applied), and rhythm comes from surface-color shifts band to band — plum hero → white product band → dark industry grid → white customer band → dark deployment matrix → near-black footer (`#191722`, slightly violet-tinted, not pure black). The atmosphere reads *competent, technical, restrained* — the visual equivalent of an enterprise pitch deck that knows it doesn't need to shout.
|
|
29
|
+
|
|
30
|
+
**Atmospheric anchors**:
|
|
31
|
+
- **Plum-violet axis, not blue.** Where most enterprise AI brands default to a corporate blue, Upstage commits to violet primary (`#5B52FF`) on a plum canvas (`#3C043B`) — distinguishable in a sea of cobalt competitors.
|
|
32
|
+
- **Solar yellow-green as scarcity asset.** `#D2FF95` appears only adjacent to the Solar product narrative — never as a default button surface or section background.
|
|
33
|
+
- **One body family, one display face, one swap.** 93% Geist coverage + Espeak-only hero + monospace industry word = three families, three jobs, no overlap.
|
|
34
|
+
- **Type-as-imagery on industry cards.** Each high-stakes industry (Insurance / Healthcare / Manufacturing / Financial Services) presents as a giant industry word on a dark surface — no stock photography, no industry icons.
|
|
35
|
+
- **Binary geometry.** Sharp (0px) for sections, cards, hero, footer; soft (8px) only for pressable controls and a few content chips. Nothing in between.
|
|
36
|
+
|
|
37
|
+
## 2. Color System
|
|
38
|
+
|
|
39
|
+
### Brand
|
|
40
|
+
| Token | Hex | Live source | Role |
|
|
41
|
+
|---|---|---|---|
|
|
42
|
+
| Upstage Violet (primary) | `#5B52FF` | live computed `rgb(91,82,255)` on `.button.is-secondary` × 2 sampled CTAs; 55 element occurrences | Interactive foreground; link; secondary-button text; filled-primary button background variant |
|
|
43
|
+
| Violet pressed | `#1E116E` | `--_sub---spark-library--foreground-interactive-hover` | Hover / pressed state of primary |
|
|
44
|
+
| Violet deep | `#281CA5` | `--elements-webflow-library--secondary--color-1` | Emphasis / filled-button alt |
|
|
45
|
+
| Solar yellow-green | `#D2FF95` | mid-step of `--colors--green-yellow-*` (50 = `#f6ffe5`); live-observed as decorative accent | **Single-use chromatic accent** tied to the Solar product narrative |
|
|
46
|
+
|
|
47
|
+
### Ink (text)
|
|
48
|
+
| Token | Hex | Frequency in DOM | Role |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| Body gray | `#70757F` | **428 elements (dominant text color)** | Default body, paragraph, muted subhead |
|
|
51
|
+
| Near-black | `#0A0D14` | 58 elements | Headings on light surfaces |
|
|
52
|
+
| Muted purple-gray | `#6E7191` | 20 elements | Secondary muted / footnote |
|
|
53
|
+
| White | `#FFFFFF` | 213 elements | Text & UI on dark surfaces |
|
|
54
|
+
| White @50% | `rgba(255,255,255,0.5)` | 14 elements | Muted secondary copy on dark hero |
|
|
55
|
+
|
|
56
|
+
### Surface
|
|
57
|
+
| Token | Hex | Role |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| Page white | `#FFFFFF` | Default page background |
|
|
60
|
+
| Subtle band | `#F9FAFB` | `--colors--base--subtle` — light section break |
|
|
61
|
+
| Footer near-black | `#191722` | Footer band — *intentionally violet-tinted, not pure `#000`* |
|
|
62
|
+
| Plum decorative | `#3C043B` | `--colors--grey-background` — hero canvas. **Non-obvious choice**: a deep plum named as "grey" in the token system. |
|
|
63
|
+
| Lavender interactive | `#F0ECFD` | `--_sub---spark-library--background--interactive` — active/hover surface |
|
|
64
|
+
| Purple-100 | `#DDE3FF` | `--colors--purple-100` — cool tint for chips / info |
|
|
65
|
+
|
|
66
|
+
### Border
|
|
67
|
+
| Token | Hex | Role |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| Default hairline | `#EEEEEE` | `--border-color--border-primary` |
|
|
70
|
+
| Neutral subtle | `#F7F7FC` | `--_sub---elements-webflow-library--neutral--200` |
|
|
71
|
+
|
|
72
|
+
### Ladders observed (under-layer)
|
|
73
|
+
Untitled UI primary scale (`#fcfaff 25 / #f9f5ff 50 / #f4ebff 100 / #d6bbfb 300 / #6941c6 700`) and Untitled UI gray scale (`#eaecf0 200 / #475467 600 / #101828 900`) sit underneath the Upstage-namespaced surface tokens. Treat them as inherited primitives, not Upstage decisions.
|
|
74
|
+
|
|
75
|
+
## 3. Typography
|
|
76
|
+
|
|
77
|
+
| Slot | Family | Size / Weight | Live evidence |
|
|
78
|
+
|---|---|---|---|
|
|
79
|
+
| Hero H1 | **Espeak**, Arial, sans-serif | 57.6px / 600 | 3 sampled hero phrases |
|
|
80
|
+
| Hero H1 industry swap word | **monospace** (browser default) | 48px / 600 | 4 industry-word swaps |
|
|
81
|
+
| Section H2 | Geist | ~36-48px / 600 | "High-performance AI built by experts" et al. |
|
|
82
|
+
| Body large | Geist | 18px / 400 | **603 elements (dominant body size)** |
|
|
83
|
+
| Body | Geist | 16px / 400 | 115 elements |
|
|
84
|
+
| Button | Geist | 16-18px / 500 | `.button.is-secondary` + inline arrow CTA |
|
|
85
|
+
| Caption / small | Geist | 14px / 400 | 30 elements |
|
|
86
|
+
| Micro / legal | Geist | 12px / 400 | 23 elements |
|
|
87
|
+
|
|
88
|
+
**Weight discipline** (observed): 400 = 786 elements, 500 = 129 (buttons + nav + emphasised body), 600 = 15 (all headings), 700 = 8 (stat/proof labels). **Six weights are not the system — four are.**
|
|
89
|
+
|
|
90
|
+
**Critical voice rule on type**: the hero rotates `Insurance / Finance / Healthcare / Manufacturing` by changing the *font family* mid-sentence (Espeak → monospace), not the color or weight. Any port that wants to reproduce this rotating-vertical hero must keep the typographic shift as the variable-slot signal.
|
|
91
|
+
|
|
92
|
+
## 4. Radius & Geometry
|
|
93
|
+
|
|
94
|
+
| Value | Frequency | Role |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| `0px` | 797 elements | Sections, cards, hero, footer, images |
|
|
97
|
+
| `8px` | 134 elements | Buttons, content chips, hero secondary surfaces |
|
|
98
|
+
| `100%` | 5 elements | Avatar / icon circles |
|
|
99
|
+
| `100px` | 1 element | Single pill |
|
|
100
|
+
| `50%` | 1 element | One round element |
|
|
101
|
+
|
|
102
|
+
**Binary rule**: Upstage's geometry encodes pressability. Sharp = layout. 8px = "you can click this." Nothing in between, no `4px / 12px / 16px` middle terms. Token: `--style--radius-8px: 8px`.
|
|
103
|
+
|
|
104
|
+
## 5. Elevation
|
|
105
|
+
|
|
106
|
+
Effectively **zero box-shadow** on observed elements. The underlying Webflow library exposes `--_sub---elements-webflow-library--general--shadow-03: #14142b1a` (violet-black 10%), but production almost never invokes it. Depth = surface-color contrast (plum → white → dark → near-black) + hairline borders. *Do not import drop-shadow card patterns from neighbour systems if porting this brand — Upstage doesn't ship them.*
|
|
107
|
+
|
|
108
|
+
## 6. Spacing & Layout
|
|
109
|
+
|
|
110
|
+
- **Canvas**: 1280px desktop sweet spot; `--style--max-full-width: 100vw`.
|
|
111
|
+
- **No `--space-*` ladder** exposed on `:root`. Section vertical rhythm appears to use ~64-96px band gaps with 16/24/32 internal step (Webflow class-driven, not token-driven).
|
|
112
|
+
- **Hero alignment**: left-aligned starting ~10% from canvas edge, not centered.
|
|
113
|
+
- **Vertical rhythm = surface flips**: each H2 section change is also a background-color change. The rhythm is *chromatic*, not numerical.
|
|
114
|
+
|
|
115
|
+
## 7. Interactive Components
|
|
116
|
+
|
|
117
|
+
### Primary CTA — multiple variants, one violet
|
|
118
|
+
1. **`Try now`** — persistent top-right of nav. Filled violet `#5B52FF` background, white text, 8px radius, weight 500.
|
|
119
|
+
2. **`Try demo`** — hero inline arrow. Transparent background, white text, `→` arrow glyph, 18px / 500.
|
|
120
|
+
3. **`Learn more →`** — repeated inline across every product / solution card. Text-color inherits section surface (white on dark, violet on light), 18px / 500, no chrome.
|
|
121
|
+
4. **`.button.is-secondary`** (e.g. *Developer Console*, *Learn more* on solution cards) — white pill surface, violet text `#5B52FF`, 8px radius, weight 500. 16px.
|
|
122
|
+
|
|
123
|
+
### Nav (top)
|
|
124
|
+
Transparent over hero, white below. Five primary categories (Products / Solutions / Resources / Company / Pricing) + persistent `Try now` filled CTA on the right.
|
|
125
|
+
|
|
126
|
+
### Card
|
|
127
|
+
Product / solution / customer cards: 8px radius, transparent background, `#70757F` body paragraph, no drop shadow, inline `Learn more →` link as the only interactive affordance.
|
|
128
|
+
|
|
129
|
+
### Industry card (signature)
|
|
130
|
+
Giant industry word (`Insurance` / `Healthcare` / `Manufacturing` / `Financial Services`) at 48px+ as the entire card front. **Typography is the imagery.**
|
|
131
|
+
|
|
132
|
+
## 8. Motion (partially captured)
|
|
133
|
+
|
|
134
|
+
CDP single-pass did not extract transition durations or cubic-bezier curves. Inferred from observed `--_sub---spark-library--background--interactive: #F0ECFD` hover surface: standard Webflow ~150-200ms ease for interactive state changes. **Flagged for UPDATE pass** — exact motion tokens not authoritative here.
|
|
135
|
+
|
|
136
|
+
## 9. Accessibility (observed)
|
|
137
|
+
|
|
138
|
+
- **Body gray `#70757F` on white** ≈ 4.6:1 — passes WCAG AA for normal text (≥4.5:1).
|
|
139
|
+
- **Violet `#5B52FF` on white** (secondary-button text) ≈ 5.2:1 — passes AA comfortably.
|
|
140
|
+
- **White on plum `#3C043B`** = ≥10:1 — strong pass for hero copy.
|
|
141
|
+
- **White @ 50% on plum hero** = ≈5:1 — at AA edge; acceptable for ≥18px text but borderline for finer hero subhead at smaller weights. Flagged as observed-as-shipped trade-off, not a guideline.
|
|
142
|
+
- **No landmark / role inventory verified** in this CDP pass — `<header>`, `<footer>`, `<nav>` are used semantically (positive), but a deeper axe-style audit is out of scope.
|
|
143
|
+
|
|
144
|
+
## 10. Voice & Microcopy (analyst characterisation, no verbatim copy)
|
|
145
|
+
|
|
146
|
+
Upstage's marketing voice is **declarative, enterprise-confident, lightly punchy**. Sentences are short. Heroes state a verb-object intent rather than a feature list. Industry callouts are single nouns (`Insurance`, `Healthcare`) — the brand trusts the reader to fill in the relevance. Section H2s read as engineering-credible category claims ("High-performance AI built by experts", "Flexible deployment, enterprise-ready anywhere") — proof-of-capability framing, not benefit framing.
|
|
147
|
+
|
|
148
|
+
**Tone vector**: technically grounded · enterprise-formal · zero-hype · pragmatic-bilingual (Korean root, English-first marketing).
|
|
149
|
+
|
|
150
|
+
**Fresh OmD-derivation alternatives** (not Upstage copy — illustrative shape-only):
|
|
151
|
+
- *Build the AI. Ship the workflow. We bring the model.*
|
|
152
|
+
- *Enterprise-grade Solar. Deploy where your data lives.*
|
|
153
|
+
- *One model. Four industries. Production-ready.*
|
|
154
|
+
|
|
155
|
+
**Do NOT reproduce** any verbatim Upstage hero, button label, or proof statement in derivative work — voice is the shape only.
|
|
156
|
+
|
|
157
|
+
## 11. Brand Narrative (factual)
|
|
158
|
+
|
|
159
|
+
Upstage Co., Ltd. (주식회사 업스테이지) is a Korean LLM and enterprise AI company headquartered in Gangnam, Seoul, with offices at the Korea Science and Technology Center (한국과학기술회관 2관, 스파크플러스 강남5호점 812-817호, 22 Teheran-ro 7-gil, Gangnam-gu). CEO is **Sunghun Kim (김성훈)**. Business Registration No. 830-88-01918. The company's flagship is the **Solar** family of LLMs (Solar Pro 3 / Pro 2 / Mini) and the **Syn Pro** Japanese-locally-trained LLM. Product surface includes **Document Parse** (PDF/scan → structured), **Information Extract** (key-value structuring), **Studio** (build/deploy agents), **AI Space**, and the **Upstage Marketplace**. Deployment matrix spans API, on-premise, and marketplace channels. Stated industry focus: insurance, healthcare, manufacturing, financial services. Source: live capture of the home + footer + brand-resource-center surfaces on 2026-05-15.
|
|
160
|
+
|
|
161
|
+
Founding-year, total-funding, headcount, and investor list **not verified in this pass** — public profiles (Crunchbase / TheVC) were not consulted to keep scope tight. Flagged for UPDATE.
|
|
162
|
+
|
|
163
|
+
## 12. Personas (inferred — verify before reuse)
|
|
164
|
+
|
|
165
|
+
These are reasoned inferences from the surface IA and proof bands, not user research:
|
|
166
|
+
|
|
167
|
+
- **Enterprise IT decision-maker** — insurance/healthcare/manufacturing CIO or VP of Engineering. Comes in via the Solutions tab, leaves via *Contact us* or *Try demo*. Cares about: deployment options (on-prem vs API), customer logos, compliance posture.
|
|
168
|
+
- **AI/ML engineer** — practitioner evaluating Solar models for production. Comes in via Products → Solar Pro 3 → Developer Console, leaves via Documentation. Cares about: benchmark numbers, pricing per token, latency, fine-tuning paths.
|
|
169
|
+
- **Procurement / partnership lead** — coming in via Partners / Public tenders. Cares about: business credentials (KR business-info disclosure), Newsroom signals, certifications.
|
|
170
|
+
|
|
171
|
+
`[FILL IN]` named personas, demographics, and motivations require Upstage-internal data — left as placeholders.
|
|
172
|
+
|
|
173
|
+
## 13. Anti-Patterns (what NOT to import)
|
|
174
|
+
|
|
175
|
+
1. **Do not introduce a third type family**. Geist + Espeak + monospace-swap is the entire system. A fourth face breaks the rotating-word gesture.
|
|
176
|
+
2. **Do not import drop-shadow card chrome.** Upstage achieves depth via surface-color contrast and hairline borders. Adding `box-shadow: 0 8px 24px rgba(0,0,0,0.08)` will read as a different system entirely.
|
|
177
|
+
3. **Do not soften the binary radius.** Adding `4px` / `12px` / `16px` middle terms erases the layout-vs-pressable distinction.
|
|
178
|
+
4. **Do not over-saturate the Solar yellow-green.** `#D2FF95` works *because* it appears once, near the Solar narrative. Repeating it as a default highlight color cheapens it.
|
|
179
|
+
5. **Do not default to blue.** Cobalt primary is the enterprise-AI cliche Upstage is consciously avoiding. If porting, stay on the violet-plum axis or pick a different non-blue.
|
|
180
|
+
6. **Do not center-align the hero.** Left-aligned hero with the typographic-swap industry word is the brand-defining composition.
|
|
181
|
+
|
|
182
|
+
## 14. References & Citations
|
|
183
|
+
|
|
184
|
+
- **Live capture, home**: `https://www.upstage.ai/` — 44 curated DOM samples, 930+ element frequency sweep, 74 `:root` CSS custom properties, viewport 1280×713 dpr=1, captured 2026-05-15. Method: Chrome DevTools Protocol :9222 / `Runtime.evaluate getComputedStyle`. Browser: Chrome/148.0.7778.97. Raw artifacts in `references/upstage/assets/_reference/_root-vars.json`, `_raw-capture.json`, `_curated-samples.json`, `_structure-raw.json`.
|
|
185
|
+
- **Live capture, Tier-1 brand surface**: `https://www.upstage.ai/resources/brand-resource-center` — HTTP 200, H1 "Brand Resource Center", categories Brand Identity / Product Identity / Media kit / Our leadership, asset distribution only (no token specs). Captured 2026-05-15. Artifact: `_brand-resource-center.json`.
|
|
186
|
+
- **Tier-1 negative**: `design.upstage.ai`, `brand.upstage.ai`, `www.upstage.ai/brand`, `www.upstage.ai/brand-resources` — all 000/404 (verified 2026-05-15 via curl).
|
|
187
|
+
- **Tier-1 codebase negative**: `github.com/UpstageAI` — 12 public repos, all AI/research/cookbook (`UpstageAI/cookbook`, `UpstageAI/Gym`, `UpstageAI/mcp-upstage`, `UpstageAI/opencode`, `UpstageAI/solar-prompt-cookbook`, `UpstageAI/vllm`, …). **Zero design-system / Storybook / token-library repo** as of 2026-05-15.
|
|
188
|
+
- **Tier-2 indexes**: `getdesign.md/upstage` → 200 but no curated entry; `styles.refero.design/?q=upstage` → 200 search shell, no result cards. Both verified 2026-05-15.
|
|
189
|
+
- **Business factual**: `https://www.upstage.ai/resources/brand-resource-center` footer block — KR-mandated business-information disclosure (CEO, registration number, address) reproduced as factual reference, not promotional.
|
|
190
|
+
|
|
191
|
+
## 15. Verification Footer
|
|
192
|
+
|
|
193
|
+
**Verification date**: 2026-05-15
|
|
194
|
+
**Verification method**: live CDP :9222 + Tier 1/2 URL probes + GitHub org enumeration
|
|
195
|
+
**Live-inspect proof**: `references/upstage/assets/_reference/.live-inspect-proof.json` (8 raw_samples, ≥5 required floor)
|
|
196
|
+
**Confidence per section**:
|
|
197
|
+
- §1 Visual theme & §2 Color & §3 Typography & §4 Radius & §5 Elevation & §7 Interactive: **High** (live computed-style evidence)
|
|
198
|
+
- §6 Spacing: **Medium** (no `--space-*` ladder exposed; observations are visual not token-derived)
|
|
199
|
+
- §8 Motion: **Low** — single-pass CDP did not capture transition tokens; flagged UPDATE
|
|
200
|
+
- §9 A11y: **Medium** — contrast computed, but no landmark/role audit run
|
|
201
|
+
- §10 Voice: **High** (analyst characterisation only — no verbatim reproduction)
|
|
202
|
+
- §11 Brand narrative: **High** for HQ / CEO / registration / product names (sourced from public footer); **Low** for funding/headcount/founding-year (not verified this pass)
|
|
203
|
+
- §12 Personas: **Low** (inferred — `[FILL IN]` required before product reuse)
|
|
204
|
+
- §13 Anti-patterns: **High** (derived from live evidence)
|
|
205
|
+
|
|
206
|
+
**Flags (carry into audit row)**:
|
|
207
|
+
1. Tier-1 official DS = **partial-positive** (asset distribution surface exists; token specification does not).
|
|
208
|
+
2. Tier-2 indexes both empty for `upstage` — consistent with the systemic KR-coverage gap.
|
|
209
|
+
3. Espeak display face is a proprietary commissioned typeface — reference-only; substitute with a tonally similar open display in any derivative work.
|
|
210
|
+
4. Solar yellow-green `#D2FF95` is a single-use chromatic accent — repeating it broadly will read as a different brand.
|
|
211
|
+
5. The rotating-industry hero word ships as a **typographic shift (monospace mid-sentence)**, not a color or weight shift — preserve that gesture or the hero composition breaks.
|
|
212
|
+
6. Motion tokens and component-state coverage incomplete — UPDATE pass recommended on a product detail page (e.g. `/products/solar-pro-3`) and Documentation surface.
|
|
213
|
+
|
|
214
|
+
**IP guardrails confirmed**: brand assets reference-only (logos / Espeak face not redistributed); no verbatim Upstage marketing copy quoted; §10 voice samples are fresh OmD-derived shape-only alternatives; KR business-information block reproduced as factual disclosure, not promotion.
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
id: vercel
|
|
3
|
+
name: Vercel
|
|
4
|
+
country: US
|
|
5
|
+
category: developer-tools
|
|
6
|
+
homepage: "https://vercel.com"
|
|
7
|
+
primary_color: "#000000"
|
|
8
|
+
logo:
|
|
9
|
+
type: simpleicons
|
|
10
|
+
slug: vercel
|
|
11
|
+
verified: "2026-05-15"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
ds:
|
|
14
|
+
name: Geist
|
|
15
|
+
url: "https://vercel.com/geist"
|
|
16
|
+
type: system
|
|
17
|
+
description: Vercel's design system with 50+ components, foundations, and brand resources.
|
|
18
|
+
og_image: "https://assets.vercel.com/image/upload/v1709494095/front/design/geist-og.jpg"
|
|
4
19
|
---
|
|
5
20
|
|
|
6
21
|
# Design System Inspiration of Vercel
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: voltagent
|
|
3
|
+
name: VoltAgent
|
|
4
|
+
country: US
|
|
5
|
+
category: ai
|
|
6
|
+
homepage: "https://voltagent.dev"
|
|
7
|
+
primary_color: "#22c55e"
|
|
8
|
+
logo:
|
|
9
|
+
type: github
|
|
10
|
+
slug: VoltAgent
|
|
11
|
+
verified: "2026-05-15"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
---
|
|
14
|
+
|
|
1
15
|
# Design System Inspiration of VoltAgent
|
|
2
16
|
|
|
3
17
|
## 1. Visual Theme & Atmosphere
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: wadiz
|
|
3
|
+
name: Wadiz
|
|
4
|
+
country: KR
|
|
5
|
+
category: fintech
|
|
6
|
+
homepage: "https://www.wadiz.kr"
|
|
7
|
+
primary_color: "#00c4c4"
|
|
8
|
+
logo:
|
|
9
|
+
type: favicon
|
|
10
|
+
slug: "https://www.google.com/s2/favicons?domain=wadiz.kr&sz=256"
|
|
11
|
+
verified: "2026-05-14"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Design System Inspiration of Wadiz
|
|
16
|
+
|
|
17
|
+
## 1. Visual Theme & Atmosphere
|
|
18
|
+
|
|
19
|
+
Wadiz (와디즈) is the design language of **a crowdfunding marketplace that wants to feel like a clean retail catalog, not a charity drive**. Korea has a single dominant rewards-funding platform, and Wadiz long ago decided that *the maker's story belongs in the photography and the copy* — the chrome around it gets out of the way. The system runs on white surfaces (`#ffffff` page, `#fafbfd` surface alt, `#f2f5f8` content shelf), Toss-family near-black ink (`#191f28` heading, `#4e5968` muted, `#6b7684` subtle), and one saturated brand mint (`#00c4c4`) that does every interactive job — CTA fills, checkbox marks, focus outlines, progress fills, loader strokes. The mint is internally labeled `mint` in the CSS module class system (`.Button_mint__2W1nI`), and the supporting pastel `#e6fafa` is its tinted resting surface.
|
|
20
|
+
|
|
21
|
+
The single most distinctive geometric choice is the radius scale. The production bundle contains **112 occurrences of `border-radius: 8px`** and 56 of `4px` — `8px` is the workhorse for cards, buttons, badges, and inputs. There are also 24 instances of `16px` (mostly for hero-tier modals and the top-rounded sheet pattern `16px 16px 0 0`) and 30 instances of `50%` (avatars, indicator dots, the circular maker badge). Wadiz is **medium-soft**: not as flat as Banksalad (2px) and not as plumply consumer as Toss-mobile (12–16px default). 8px reads as *retail catalog* — confident, photographic-product-grid friendly, not toy-like.
|
|
22
|
+
|
|
23
|
+
Typography is **Pretendard only** — no display secondary face — loaded from the Cloudflare CDN (`pretendard/1.3.9/dynamic-subset`) and declared as the family on every text node in the reset (`wui.css`). The default weight is **400** (393 declarations) for body and listing text; **700** (358) appears almost as often for funding amounts, percentages, headings, and the maker name; **500** (109) is the medium-emphasis label weight. Base body size is `15px` (not the more common 14 or 16), and the size scale climbs through `14 → 16 → 18 → 20 → 24 → 28 → 32 → 40 → 48 → 64px` for the home hero. Letter-spacing is essentially zero across the system — Wadiz never tracks Korean tight; only the largest display headings get a `-.03em` adjustment.
|
|
24
|
+
|
|
25
|
+
**Key Characteristics:**
|
|
26
|
+
- Pretendard exclusive — no display accent face
|
|
27
|
+
- Brand mint `#00c4c4` for all interactive moments (`Button_mint`, checkbox, focus, progress, loader)
|
|
28
|
+
- Mint pastel `#e6fafa` as the resting surface of secondary CTAs (tint pattern)
|
|
29
|
+
- 8px radius dominance — medium-soft, retail-catalog feel
|
|
30
|
+
- Toss-family Korean ink palette (`#191f28` / `#4e5968` / `#6b7684` / `#8b95a1`)
|
|
31
|
+
- Four named label colors: `mint`, `yellow` `#fcc500`, `blue` `#4672f9`, `red` `#ff5959` — each with `solid` / `outlined` / `tint` shapes
|
|
32
|
+
- Five-state button system: `contained` / `outlined` / `tint` / `block` / `circular`
|
|
33
|
+
- Surface alternation `#ffffff` → `#fafbfd` → `#f2f5f8` — quiet shelf stacking
|
|
34
|
+
- Single-direction blue-black shadow `0 6px 6px -1px #0a16461a` — never colored, never theatrical
|
|
35
|
+
- `#fcc500` (yellow) for trending / hot-deal labels — the system's hottest visual moment is *promotion*, not error
|
|
36
|
+
|
|
37
|
+
## 2. Color Palette & Roles
|
|
38
|
+
|
|
39
|
+
### Primary
|
|
40
|
+
- **Wadiz Mint** (`#00c4c4`): Primary brand color. Filled CTA backgrounds, link color in body copy, checkbox-checked icon, focus outlines, progress-fill, loader stroke, brand wordmark. A teal-cyan close to Tiffany-green but cooler — readable on white, energetic without being playful.
|
|
41
|
+
- **Mint Hover/Active** (`#07abae`): Foreground color on tinted secondary buttons; *text* color on hover for outlined mint variants. Wadiz uses a *darker* mint on hover (opposite of Banksalad's lighten-on-hover convention).
|
|
42
|
+
- **Mint Tint Surface** (`#e6fafa`): The pastel resting surface for `tint` mint buttons, the hover surface for outlined mint buttons, the success-state surface.
|
|
43
|
+
- **Mint Tint Accent** (`#bef5f5`): Tint-mint hover/active surface — one shade more saturated than `#e6fafa`. Used when a tint button is itself being interacted with.
|
|
44
|
+
|
|
45
|
+
### Heading & Body (Toss-family ink scale)
|
|
46
|
+
- **Heading** (`#191f28`): Maximum-depth ink for headings, funding amounts, maker names. Never `#000`.
|
|
47
|
+
- **Heading Alt** (`#1d2129`): Secondary near-black, used as `--dark` CSS variable for top-bar and high-emphasis fills.
|
|
48
|
+
- **Body** (`#333d4b`): Standard reading text, paragraph copy.
|
|
49
|
+
- **Muted** (`#4e5968`): Secondary descriptions, metadata, list-item descriptions.
|
|
50
|
+
- **Subtle** (`#6b7684`): Captions, time-remaining text, footer copy.
|
|
51
|
+
- **Placeholder** (`#8b95a1`): Input placeholders, the lowest readable tier.
|
|
52
|
+
- **Disabled** (`#b1b8c3` / `#ced4de`): Disabled text and icons.
|
|
53
|
+
|
|
54
|
+
### Surface & Border
|
|
55
|
+
- **Page** (`#ffffff`): Default canvas.
|
|
56
|
+
- **Surface Alt** (`#fafbfd`): Soft alternation — section dividers, "softly different" panels.
|
|
57
|
+
- **Surface Neutral** (`#f2f5f8`): Content-shelf fills, search-bar resting surface, secondary card surface.
|
|
58
|
+
- **Surface Neutral 2** (`#f2f4f6`): A second-pass neutral, used in modal interiors.
|
|
59
|
+
- **Divider** (`#e3e7ee`): Default horizontal rules, table borders.
|
|
60
|
+
- **Input Border** (`#ced4de`): Default input field border.
|
|
61
|
+
|
|
62
|
+
### Label / Badge Family
|
|
63
|
+
Wadiz exposes four named color variants for `LabelBadge`, each with three shapes (`solid` = filled brand; `outlined` = border-only; `tint` = pastel surface + saturated foreground). These badges power the funding-state chips that sit on every campaign card — *오픈예정*, *오픈중*, *얼리버드*, *마감임박*, *앵콜*, *인기*.
|
|
64
|
+
|
|
65
|
+
- **Yellow** — `solid` `#fcc500` (text `#fff`), `tint` surface `#fffae1` (text `#fcc500`). For trending / hot-deal / 인기 (popular).
|
|
66
|
+
- **Blue** — `solid` `#4672f9` (text `#fff`), `tint` surface `#ecf2ff` (text `#4672f9`), `accent` surface `#d7e3ff`, alt `#325ad7`, pale-link `#5a87ff`. For info, neutral state tags, secondary CTAs.
|
|
67
|
+
- **Red** — `solid` `#ff5959` (text `#fff`), `tint` surface `#fff0f0` (text `#ff5959`), `accent` surface `#ffdcdc`, strong `#e43131`, softs `#ff6666`/`#ff7777`. For *마감임박* (deadline closing), refund, withdraw, validation error.
|
|
68
|
+
- **Mint** — the same `#00c4c4` family used for primary CTA — when used as a label, signals "active funding" / "오픈중".
|
|
69
|
+
|
|
70
|
+
### Semantic
|
|
71
|
+
- **Success Green** (`#00af84`): Used sparingly — paid / completed / shipped states only. Brand mint is the default success color; this deeper teal-green appears only when a "this is a financial settlement, not just an interaction" tone is needed.
|
|
72
|
+
- **Alert Red** (`#ff5959` family): All error and urgency. The deadline-closing chip is the only place red ever feels celebratory rather than punitive.
|
|
73
|
+
- **Image Error Thumb** (`#ffb9b9`): The placeholder background when a reward thumbnail fails to load — a soft pink-red, not a gray, so the failure is *visible* without being scary.
|
|
74
|
+
|
|
75
|
+
### Overlay / Modal
|
|
76
|
+
- **Scrim Light** (`rgba(0,0,0,.06)` / `.15` / `.32` / `.4`): Tier of darkening overlays for menus, popovers, modals, full-sheet.
|
|
77
|
+
- **White Veil** (`rgba(255,255,255,.7)` / `.9` / `.95`): For sticky headers on photography-rich pages.
|
|
78
|
+
|
|
79
|
+
## 3. Typography Rules
|
|
80
|
+
|
|
81
|
+
### Font Family
|
|
82
|
+
- **Primary**: `Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif`
|
|
83
|
+
- **Display Accent**: None — Pretendard does the entire job
|
|
84
|
+
- Variable-axis Pretendard supplies 400/500/700 weights as needed; subset CSS is dynamic via cdnjs Pretendard 1.3.9
|
|
85
|
+
- Base body size: **15px** (not 14, not 16 — a deliberate Korean-rendering choice; Pretendard's 15px reads cleaner than 14px at typical Korean line lengths)
|
|
86
|
+
|
|
87
|
+
### Hierarchy
|
|
88
|
+
|
|
89
|
+
| Role | Family | Size | Weight | Line Height | Notes |
|
|
90
|
+
|---|---|---|---|---|---|
|
|
91
|
+
| Hero numeral (funded amount %) | Pretendard | 64px | 700 | 1.1 | The biggest moment — campaign success % on detail pages |
|
|
92
|
+
| H1 page | Pretendard | 40–48px | 700 | 1.2 | Home banner copy, category landing |
|
|
93
|
+
| H2 section | Pretendard | 32px | 700 | 1.25 | Section titles ("지금 오픈 중", "인기 펀딩") |
|
|
94
|
+
| H3 card title | Pretendard | 24px | 700 | 1.3 | Maker name on detail, modal headings |
|
|
95
|
+
| Card title (project) | Pretendard | 18px | 700 | 1.35 | Reward card project title (2-line clamp) |
|
|
96
|
+
| Lead body | Pretendard | 17px | 400 | 1.5 | Short paragraph leads |
|
|
97
|
+
| Body default | Pretendard | 15px | 400 | 1.55 | Description text, body copy (base) |
|
|
98
|
+
| Body emphasis | Pretendard | 15px | 500 | 1.55 | In-paragraph emphasis, button labels |
|
|
99
|
+
| Label / metadata | Pretendard | 14px | 400/500 | 1.4 | Time-remaining, supporter count, category tag |
|
|
100
|
+
| Caption | Pretendard | 13px | 400 | 1.4 | Helper text, fine print |
|
|
101
|
+
| Small label | Pretendard | 12px | 400/700 | 1.3 | Badge text, micro-tags |
|
|
102
|
+
| Micro | Pretendard | 10px | 400 | 1.3 | Footer fine print only |
|
|
103
|
+
|
|
104
|
+
Weight distribution (counted in production bundle): **400 = 393×, 700 = 358×, 500 = 109×.** The near-parity of 400 and 700 is the signal — every body paragraph is 400, every funding amount and percentage is 700, and the eye learns to bounce between the two. Wadiz never uses 300 (light) — there is no "elegant thin display" in the system.
|
|
105
|
+
|
|
106
|
+
### Letter Spacing
|
|
107
|
+
- Default: **0** (no tracking on Korean body)
|
|
108
|
+
- Largest display only: **-0.03em** (rare; visible only in the very biggest home-hero numerals)
|
|
109
|
+
|
|
110
|
+
## 4. Spacing & Layout
|
|
111
|
+
|
|
112
|
+
### Spacing Scale (px)
|
|
113
|
+
|
|
114
|
+
The system follows a roughly 4-multiple scale, but with specific opinionated stops:
|
|
115
|
+
|
|
116
|
+
`4 → 8 → 12 → 16 → 20 → 24 → 32 → 40 → 48 → 64`
|
|
117
|
+
|
|
118
|
+
Most observed gaps cluster around `16` (card padding), `20` (vertical rhythm between card sections), `24` (between-card gutter), and `32` (between section blocks). The 64px stop is rare — used as the top-padding on hero sections and the spacing under the biggest funding-amount numeral.
|
|
119
|
+
|
|
120
|
+
### Layout
|
|
121
|
+
|
|
122
|
+
- **Page max-width**: ~1200px content rail centered with auto margins; full-bleed hero photography routinely breaks out
|
|
123
|
+
- **Card grid**: 4-column on desktop home (240–280px each), 2-column on tablet, 1-column on mobile
|
|
124
|
+
- **Card aspect**: Reward thumbnail is 4:3, with a 16:9 variant on the hero carousel
|
|
125
|
+
- **Header height**: ~64px fixed, with a `rgba(255,255,255,.95)` veil so the photography behind it stays half-readable
|
|
126
|
+
- **Section vertical rhythm**: 32–48px between sections, 16–20px within a card
|
|
127
|
+
- **Card padding**: 16px on listing cards, 20–24px on detail-page cards
|
|
128
|
+
|
|
129
|
+
### Radius
|
|
130
|
+
|
|
131
|
+
`8px` is the system default (112 occurrences). The full scale:
|
|
132
|
+
|
|
133
|
+
- **3px** (26x): The smallest chip / inline indicator
|
|
134
|
+
- **4px** (56x): Inline tag, mini-badge
|
|
135
|
+
- **8px** (112x): Buttons, cards, inputs, modal — *the default for everything*
|
|
136
|
+
- **16px** (24x): Hero modals, the bottom-sheet pattern (rounded only at top: `16px 16px 0 0`, 3x)
|
|
137
|
+
- **50%** (30x): Avatars, indicator dots, circular maker badges
|
|
138
|
+
- **100px / 999em** (6 + 3x): Pill-shaped filter chips and the "see more" floating button
|
|
139
|
+
|
|
140
|
+
The 2px radius variant exists (7x) but is reserved for technical contexts — chart legend swatches, image-crop frames — not the user-facing UI.
|
|
141
|
+
|
|
142
|
+
## 5. Components
|
|
143
|
+
|
|
144
|
+
### Buttons
|
|
145
|
+
|
|
146
|
+
The most distinctive system in the bundle. Class names follow the pattern `.Button_<role>__<hash>` with five orthogonal axes:
|
|
147
|
+
|
|
148
|
+
1. **Color variant**: `mint` (brand) · `blue` (info) · `red` (destructive) · `yellow` (promo) · `green` (success)
|
|
149
|
+
2. **Shape variant**: `contained` (filled) · `outlined` (border-only, default) · `tint` (pastel surface + saturated label)
|
|
150
|
+
3. **Width**: default · `block` (full-row)
|
|
151
|
+
4. **Geometry**: rectangular · `circular` · `badge` (chip-sized)
|
|
152
|
+
5. **State**: default · `hover` · `active` · `disabled` · `loading`
|
|
153
|
+
|
|
154
|
+
**Primary CTA (filled mint contained)**:
|
|
155
|
+
- Background `#00c4c4`, text `#ffffff`, border-color `#00c4c4`, radius `8px`
|
|
156
|
+
- Hover: background stays `#00c4c4` with subtle inner-shadow shift
|
|
157
|
+
- Active: background and text desaturate to `#07abae`-family
|
|
158
|
+
|
|
159
|
+
**Secondary CTA (outlined mint)**:
|
|
160
|
+
- Background `transparent`, text `#00c4c4`, border `1px solid #00c4c4`
|
|
161
|
+
- Hover: background `#e6fafa`, text `#07abae`
|
|
162
|
+
|
|
163
|
+
**Tint button (the Wadiz signature)**:
|
|
164
|
+
- Background `#e6fafa`, text `#00c4c4`, border `1px solid #e6fafa`
|
|
165
|
+
- Hover: background `#bef5f5`, text `#07abae`
|
|
166
|
+
- This is the third button shape — neither filled-loud nor outlined-quiet — and it carries the most visual weight in marketing modules
|
|
167
|
+
|
|
168
|
+
### Label Badges
|
|
169
|
+
|
|
170
|
+
The funding-state vocabulary. Pattern `.LabelBadge_<color>__<hash>.LabelBadge_<shape>__<hash>`:
|
|
171
|
+
|
|
172
|
+
- **solid**: `border: solid 1px <hue>; background-color: <hue>; color: #fff;`
|
|
173
|
+
- **outlined**: `border: solid 1px <hue>; background-color: #fff; color: <hue>;`
|
|
174
|
+
- **tint**: `border: solid 1px <pastel>; background-color: <pastel>; color: <hue>;`
|
|
175
|
+
|
|
176
|
+
The 12 combinations cover every funding state (오픈예정 = blue outlined, 오픈중 = mint solid, 얼리버드 = yellow tint, 마감임박 = red solid, 앵콜 = blue solid, 인기 = yellow solid). The reversed badge (`ReversalLabelBadge`) is for dark-background photography overlays.
|
|
177
|
+
|
|
178
|
+
### Reward Card
|
|
179
|
+
|
|
180
|
+
The single most-shipped component. Structure:
|
|
181
|
+
|
|
182
|
+
- **Thumbnail** (4:3, radius `8px` at the top): Lazy-loaded with `opacity 0 → 1` 0.25s ease-in-out fade — `.CardThumbnail_visible__343f4`
|
|
183
|
+
- **Error state**: When the thumbnail fails, `background-color: #ffb9b9` (soft pink-red) — a recognizable Wadiz failure state, not a gray box
|
|
184
|
+
- **LabelBadge row**: 1–2 chips at top-left (`마감임박` + `얼리버드`)
|
|
185
|
+
- **Maker line**: `font-size: 13px`, `color: #6b7684` — small, secondary
|
|
186
|
+
- **Title**: `font-size: 18px`, `font-weight: 700`, `color: #191f28`, 2-line clamp
|
|
187
|
+
- **Funding row**: Percentage `28px / 700 / #00c4c4` + supporter count `14px / 400 / #4e5968`
|
|
188
|
+
- **Progress bar**: 4px tall, radius `2px`, fill `#00c4c4`, track `#f2f5f8`
|
|
189
|
+
|
|
190
|
+
### Inputs
|
|
191
|
+
|
|
192
|
+
- Border `1px solid #ced4de`, radius `8px`, padding `12–14px 16px`, font `15px / 400 / #333d4b`
|
|
193
|
+
- Focus: border `#00c4c4`, no shadow ring (Wadiz prefers a colored border change over an outline glow)
|
|
194
|
+
- Disabled: background `#fafbfd`, text `#b1b8c3`
|
|
195
|
+
- Error: border `#ff5959`, helper-text below in `#ff5959 / 13px`
|
|
196
|
+
|
|
197
|
+
### Header / Navigation
|
|
198
|
+
|
|
199
|
+
- Fixed top, height ~64px, background `rgba(255,255,255,.95)` so photography below stays half-visible
|
|
200
|
+
- Logo wordmark left, primary nav center (펀딩 · 프리오더 · 비즈니스 · 모집 · 광고 · 와디즈 매니저), search + login right
|
|
201
|
+
- Drop shadow `0 1px #0000000f` — barely a hairline
|
|
202
|
+
|
|
203
|
+
### Modal / Sheet
|
|
204
|
+
|
|
205
|
+
- Desktop modal: radius `16px`, shadow `0 16px 16px -1px #0a16461a, 0 0 5px #0a16460f`, max-width `~480px`, padding `32px`
|
|
206
|
+
- Mobile bottom-sheet: radius `16px 16px 0 0` (top corners only), full-width, slide-up
|
|
207
|
+
- Scrim `rgba(0,0,0,.4)`
|
|
208
|
+
|
|
209
|
+
### Tooltip / Popover
|
|
210
|
+
|
|
211
|
+
- Background `rgba(17,17,17,.8)`, text `#ffffff`, radius `4px`, padding `8px 12px`, font `12px / 400`
|
|
212
|
+
- Shadow `0 15px 30px #00000026`
|
|
213
|
+
|
|
214
|
+
## 6. Imagery & Iconography
|
|
215
|
+
|
|
216
|
+
### Imagery
|
|
217
|
+
|
|
218
|
+
Wadiz's photography is **the product**. Every campaign supplies its own hero — a kitchen tool against a colored backdrop, a maker holding a prototype in a workshop, a flat-lay of a fashion drop. The system never overrides this with a heavy chrome — the white surface, 8px radii, and quiet shadow exist so the imagery carries the entire emotional load. The home page is essentially a 4-column gallery of *other people's photography*, separated by `#f2f5f8` shelf neutrals.
|
|
219
|
+
|
|
220
|
+
The single Wadiz-controlled image moment is **the loader** — a "waffle" loader (the literal class is `Loader_waffle-loader-color__sANH-`) that animates the brand mint `#00c4c4` in a stroked-rectangle pulse. This is the only place Wadiz puts its mint *on* photography rather than next to it.
|
|
221
|
+
|
|
222
|
+
### Iconography
|
|
223
|
+
|
|
224
|
+
- **Style**: Outlined, 1.5-2px stroke, 24px default canvas; filled variants exist for active/selected states
|
|
225
|
+
- **Hit area**: 40-44px around 24px icons
|
|
226
|
+
- **Color**: Inherits text color by default (`#4e5968` for muted nav, `#191f28` for primary, `#00c4c4` for active)
|
|
227
|
+
- **Common icons**: Heart (즐겨찾기), bell (알림), search (검색), share (공유), filter (필터), close (X), chevron-down (드롭다운), check (확인 — uses mint), exclamation (마감임박 — uses red)
|
|
228
|
+
|
|
229
|
+
## 7. Motion & Interaction
|
|
230
|
+
|
|
231
|
+
- **Default easing**: `ease-in-out` for thumbnail fade-in (0.25s); the system avoids `cubic-bezier` show-off curves
|
|
232
|
+
- **Page transitions**: Instant — Wadiz is a content site, not a marketing scroll experience
|
|
233
|
+
- **Hover**: Cards do a barely-perceptible lift (`box-shadow 0 6px 6px → 0 32px 40px -2px`) — the resting elevation thickens, no translate
|
|
234
|
+
- **CTA hover**: Color shift only (no scale, no shadow change) — text `#00c4c4 → #07abae` on outlined, background tint deepens on filled
|
|
235
|
+
- **Loading**: The waffle loader is the global loading affordance — never a spinner, never a skeleton on the home grid (the imagery loads with `opacity 0 → 1`, which IS the skeleton)
|
|
236
|
+
- **Tap feedback** (mobile): Active state is the same as hover — saturated mint becomes `#07abae`, tint surface darkens to `#bef5f5`
|
|
237
|
+
- **Transitions**: `transition-property: opacity` `0.25s ease-in-out` is the most common; nothing animates color transitions
|
|
238
|
+
- **Scroll**: No parallax, no reveal-on-scroll; the page is a quiet vertical river
|
|
239
|
+
|
|
240
|
+
## 8. Voice & Microcopy
|
|
241
|
+
|
|
242
|
+
Wadiz writes in **Korean polite-casual** — `~해요` / `~하세요` tone, not formal `~합니다`. The voice is **the assistant standing next to a maker's product, explaining without selling**. Funding amounts are stated as facts, not exclamations. The system avoids superlative marketing language ("최고", "최강", "혁신적") — when something is selling well, the label badge does the work (인기 yellow solid), not the copy.
|
|
243
|
+
|
|
244
|
+
### Microcopy patterns observed
|
|
245
|
+
|
|
246
|
+
- Funding status: `오픈예정` · `오픈중` · `얼리버드` · `마감임박` · `종료` · `앵콜` — short, factual
|
|
247
|
+
- Empty state: descriptive without apology — `아직 등록된 펀딩이 없어요` (rather than 죄송합니다)
|
|
248
|
+
- Confirm dialogs: action-oriented buttons — `확인` / `취소`, never `예` / `아니오`
|
|
249
|
+
- Loading: silent (the waffle loader is the only signal — no copy)
|
|
250
|
+
- Errors: specific not vague — `해당 펀딩은 종료되었어요` rather than "오류가 발생했습니다"
|
|
251
|
+
- Time: relative — `3시간 남음` · `5일 남음` (not absolute timestamps in feed)
|
|
252
|
+
- CTA verbs: `펀딩하기` · `알림받기` · `공유하기` · `더보기` — *-하기* gerund pattern, not imperative `해라`
|
|
253
|
+
|
|
254
|
+
### IP guardrail
|
|
255
|
+
This DESIGN.md does **not** quote verbatim Wadiz taglines or marketing copy. The patterns above describe the *shape* of the voice (gerund -하기 verbs, polite-casual ~해요, factual funding-state labels) and are independently reproducible. Brand assets and product photography referenced in §1 / §6 are observational only — not for redistribution.
|
|
256
|
+
|
|
257
|
+
## 9. Accessibility & States
|
|
258
|
+
|
|
259
|
+
- **Focus ring**: 2px solid `#00c4c4` outline with `2px` offset (observed on `Checkbox_icon`)
|
|
260
|
+
- **Contrast**: Heading `#191f28` on white = 17.1:1 (AAA). Body `#333d4b` on white = 12.6:1 (AAA). Mint CTA `#00c4c4` on white = 2.3:1 — *fails AA for text but Wadiz uses `#fff` text on the filled mint, which is 2.7:1*. **This is the system's known weak point**: filled mint buttons have white text at borderline AA. The outlined and tint variants flip the contrast (`#00c4c4` text on `#e6fafa` surface = 2.4:1, also weak). For accessibility-critical surfaces, the outlined mint with a dark text override should be considered.
|
|
261
|
+
- **Disabled**: Text `#b1b8c3` on `#fafbfd` = ~2.7:1 (intentionally low — disabled IS the signal)
|
|
262
|
+
- **Hit area**: Minimum 40x40px (mobile increases to 44x44)
|
|
263
|
+
- **Labels**: All inputs paired with persistent above-field labels, never placeholder-as-label
|
|
264
|
+
- **Error state**: Color (`#ff5959`) + iconography (`!` icon) + helper text — never color alone
|
|
265
|
+
|
|
266
|
+
## 10. Philosophy & Principles
|
|
267
|
+
|
|
268
|
+
Wadiz's design philosophy can be read off the production system without needing brand-published manifestos:
|
|
269
|
+
|
|
270
|
+
1. **The product is the photograph.** White surfaces, 8px radii, hairline shadows — every visual decision in the chrome exists to keep the maker's image at the visual center. The brand mint never colorizes a thumbnail; it only colorizes the chrome that frames the thumbnail.
|
|
271
|
+
|
|
272
|
+
2. **Funding state is a vocabulary, not a sentiment.** Six named states (`오픈예정` / `오픈중` / `얼리버드` / `마감임박` / `앵콜` / `인기`) × three badge shapes (`solid` / `outlined` / `tint`) × four color hues = 72 valid badges. The system over-builds this surface so that no two campaigns ever feel "the same" in a feed.
|
|
273
|
+
|
|
274
|
+
3. **Mint is the verb.** The brand color appears almost exclusively on things you can *do* — buttons, links, checkboxes, focus, progress, loader. Mint is never decorative; if it's there, it's interactive.
|
|
275
|
+
|
|
276
|
+
4. **Korean ink, not black.** The `#191f28 → #4e5968 → #6b7684 → #8b95a1` scale is the Toss-family ink scale, now standard across Korean fintech-adjacent products. Wadiz adopting it positions itself in the *trustworthy Korean product* register rather than the *international marketplace* register that pure black or warm-near-black would suggest.
|
|
277
|
+
|
|
278
|
+
5. **Tint over outline.** The most distinctive button shape in the system is `tint` — pastel surface + saturated label — and it carries the marketing weight that outline buttons carry on most sites. This is a deliberate softening of the page rhythm: the eye lands on tint surfaces before it lands on outlined ones.
|
|
279
|
+
|
|
280
|
+
## 11. Personas (Speculative — Not Brand-Confirmed)
|
|
281
|
+
|
|
282
|
+
> ⚠️ The named personas below are *inferred from the surfaces*, not from a published Wadiz brand document. They are FILL-IN candidates for designers building Wadiz-adjacent products. Replace with audience-specific research before shipping.
|
|
283
|
+
|
|
284
|
+
- **The supporter (`서포터`)**: 25–45, mostly mobile, browses on subway during commute, supports 2–6 campaigns/year averaging 30–80k₩ each. Wants short campaign titles, clear *얼리버드* eligibility, and *마감임박* urgency cues. Cares about the maker's story for ~30 seconds before deciding.
|
|
285
|
+
- **The maker (`메이커`)**: 28–45, small studio or 1-person brand, ships 1–3 campaigns/year. Spends days inside Wadiz Studio (the back-office) writing campaign copy and uploading photography. Sees Wadiz as their pop-up retail moment, not their permanent store.
|
|
286
|
+
- **The browser (`구경꾼`)**: 20–40, no recent funding, opens Wadiz on a hot-deal notification ~weekly. Will scroll for 5 minutes, save 2 items, fund 1 in 4 sessions.
|
|
287
|
+
|
|
288
|
+
## 12. Anti-Patterns (System-Level)
|
|
289
|
+
|
|
290
|
+
- **No verbatim Wadiz taglines** — voice patterns yes, brand copy no
|
|
291
|
+
- **No "최고" / "최강" / "혁신적" marketing superlatives** — funding state vocabulary does the work
|
|
292
|
+
- **No drop-shadows with brand color** — shadows are always blue-black tinted, never mint
|
|
293
|
+
- **No mint on photography** — mint colorizes chrome, not images (the waffle loader is the single exception)
|
|
294
|
+
- **No 12px+ radius on functional buttons** — that's the consumer-app idiom; Wadiz stays at 8px to read as catalog
|
|
295
|
+
- **No skeleton placeholders on the home grid** — the opacity fade-in IS the loading state
|
|
296
|
+
- **No serif** — Pretendard is the entire system
|
|
297
|
+
- **No black `#000`** — `#191f28` is the floor
|
|
298
|
+
|
|
299
|
+
## 13. Reference Examples (User-Side)
|
|
300
|
+
|
|
301
|
+
- **Home rewards feed** (`/`) — the 4-column reward-card grid with funding-state badges
|
|
302
|
+
- **Category listing** (`/web/wreward/category/<id>`) — filtered grid with persistent filter chips
|
|
303
|
+
- **Campaign detail** (`/web/campaign/<id>`) — hero photography full-bleed, sticky funding panel right rail
|
|
304
|
+
- **Funding sheet** (mobile bottom-sheet pattern) — `16px 16px 0 0` rounded top, slide-up, `rgba(0,0,0,.4)` scrim
|
|
305
|
+
|
|
306
|
+
## 14. Notes on Adaptation
|
|
307
|
+
|
|
308
|
+
When borrowing Wadiz's language for a related product:
|
|
309
|
+
|
|
310
|
+
- If you're building a **rewards marketplace**, keep the white-page + 8px-radius + tint-button trio — that's the legible Wadiz signature
|
|
311
|
+
- If you're building a **non-funding catalog** (e.g., gallery commerce), drop the funding-state badges entirely and the system reads as a generic-but-clean Korean catalog (you've lost the IP)
|
|
312
|
+
- If you're building a **fintech adjacent surface**, swap mint `#00c4c4` for your brand hue, keep the Toss-family ink scale, keep the tint-button pattern — that's the broadly-applicable layer
|
|
313
|
+
- The brand color is **the only swap-out point**. Everything else is industry-standard Korean product hygiene and is fine to keep.
|
|
314
|
+
|
|
315
|
+
## 15. Footer — Verification
|
|
316
|
+
|
|
317
|
+
**Verified:** 2026-05-14
|
|
318
|
+
|
|
319
|
+
**Tier 1 — Live capture (primary):**
|
|
320
|
+
- `https://www.wadiz.kr/` (home, 58.3KB HTML)
|
|
321
|
+
- `https://www.wadiz.kr/web/wreward/category/289` (category listing, 58.0KB HTML)
|
|
322
|
+
- `https://www.wadiz.kr/web/main` (main route, 58.4KB HTML)
|
|
323
|
+
- `https://static.wadiz.kr/main/main.css` — **936KB production bundle, authoritative**. All `#00c4c4` (111×), `#191f28` (208×), radius (`8px` 112×), font-weight (`700` 358×), and named button-variant classes (`Button_mint`, `Button_blue`, `Button_red`, `Button_yellow`, `LabelBadge_solid`/`outlined`/`tint`) directly observed
|
|
324
|
+
- `https://static.wadiz.kr/static/web/wui.css` — reset + body font-family canonical declaration
|
|
325
|
+
- Proof: `assets/_reference/.live-inspect-proof.json` (5 surfaces, 8 raw_samples, full token-frequency table)
|
|
326
|
+
|
|
327
|
+
**Tier 1 fallback note:** CDP `:9222` WebSocket connection blocked by Chrome `--remote-allow-origins` guard (handshake 403). Substituted with direct `curl` of the production CSS bundle — which is *higher signal* than runtime sampling because it exposes the entire token system in one file rather than only the styles applied to currently-rendered DOM. Reproducible: any reader can `curl -sL https://static.wadiz.kr/main/main.css | grep -c "#00c4c4"` and recover the same `111` occurrence count.
|
|
328
|
+
|
|
329
|
+
**Tier 1 brand-owned docs:** Wadiz tech blog (`blog.wadiz.kr`) is known to publish a "와디즈 디자인 시스템 구축하기" article (referenced in Wadiz search results); direct article URL returned 404 on this verification pass — likely renamed or moved. **Followup**: re-discover the canonical URL in next UPDATE pass. The blog post's existence is acknowledged here, but no claims in §1–14 above depend on it — every claim is sourced to the live production CSS.
|
|
330
|
+
|
|
331
|
+
**Tier 2 — Cross-check directories:**
|
|
332
|
+
- `getdesign.md/wadiz` → **empty** (no entry)
|
|
333
|
+
- `styles.refero.design/?q=wadiz` → **empty** (no entry)
|
|
334
|
+
|
|
335
|
+
**Tier 3 — Reconcile:**
|
|
336
|
+
- No conflicts found. The CSS bundle is internally consistent and matches the rendered HTML structure across all three surfaces.
|
|
337
|
+
- Known weak spot: filled mint CTA contrast is borderline AA (white text on `#00c4c4` = 2.7:1). Documented in §9, not "fixed" — it is the system as shipped.
|
|
338
|
+
|
|
339
|
+
**Confidence:** **High** — single 936KB production CSS bundle is the canonical token source; named variant classes (`Button_mint`, `LabelBadge_yellow`) confirm internal design-system vocabulary; three HTML surfaces confirm consistent application. No `(unverified live)` flags on any §1–9 token.
|
|
340
|
+
|
|
341
|
+
**Known gaps / Followup:**
|
|
342
|
+
1. Re-discover canonical URL for the "와디즈 디자인 시스템 구축하기" blog post (linked in Wadiz internal search, 404 on direct fetch) — would upgrade §10 from "inferred from production system" to "brand-confirmed"
|
|
343
|
+
2. Detail-page (`/campaign/<id>`) and funding-sheet flows not inspected this pass — UPDATE pass recommended to verify §5 sticky funding panel + funding sheet measurements
|
|
344
|
+
3. §11 personas explicitly marked as inferred — replace with audience research before any production use
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
id: wanted
|
|
3
|
+
name: Wanted
|
|
4
|
+
country: KR
|
|
5
|
+
category: productivity
|
|
6
|
+
homepage: "https://www.wanted.co.kr"
|
|
7
|
+
primary_color: "#0066ff"
|
|
8
|
+
logo:
|
|
9
|
+
type: favicon
|
|
10
|
+
slug: "https://www.google.com/s2/favicons?domain=wanted.co.kr&sz=256"
|
|
11
|
+
verified: "2026-05-15"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
ds:
|
|
14
|
+
name: Wanted Montage
|
|
15
|
+
url: "https://montage.wanted.co.kr/"
|
|
16
|
+
type: system
|
|
17
|
+
description: Wanted's Montage design system docs — components, foundations, Wanted Sans, and the brandcenter resource hub.
|
|
4
18
|
---
|
|
5
19
|
|
|
6
20
|
# Design System Inspiration of Wanted (원티드)
|