oh-my-design-cli 1.7.2 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +10 -1
  2. package/.claude/hooks/lib/preferences-writer.cjs +118 -0
  3. package/.claude/hooks/post-edit-watch.cjs +217 -29
  4. package/.claude/hooks/session-end-foldin.cjs +61 -5
  5. package/.claude/hooks/session-state-loader.cjs +49 -1
  6. package/README.ja.md +4 -4
  7. package/README.ko.md +7 -7
  8. package/README.md +7 -7
  9. package/README.zh-TW.md +4 -4
  10. package/agents/omd-master.md +8 -5
  11. package/agents/omd-ux-engineer.md +9 -7
  12. package/agents/omd-ux-writer.md +1 -1
  13. package/data/reference-fingerprints.json +6140 -5534
  14. package/dist/bin/oh-my-design.js +1 -1
  15. package/dist/{install-skills-KDW74C5K.js → install-skills-7UUDOLG2.js} +28 -24
  16. package/dist/install-skills-7UUDOLG2.js.map +1 -0
  17. package/package.json +2 -1
  18. package/skills/omd-designer-review/SKILL.md +34 -0
  19. package/skills/omd-final-qa/SKILL.md +29 -0
  20. package/skills/omd-harness/SKILL.md +8 -1
  21. package/skills/omd-init/SKILL.md +7 -11
  22. package/skills/omd-kr-writer/SKILL.md +73 -3
  23. package/skills/omd-learn/SKILL.md +20 -0
  24. package/skills/omd-reference-capture/SKILL.md +10 -6
  25. package/skills/omd-taste/SKILL.md +79 -0
  26. package/web/references/3o3/DESIGN.md +454 -0
  27. package/web/references/abema/DESIGN.md +535 -0
  28. package/web/references/accupass/DESIGN.md +494 -0
  29. package/web/references/adobe/DESIGN.md +458 -0
  30. package/web/references/danawa/DESIGN.md +477 -0
  31. package/web/references/dropbox/DESIGN.md +445 -0
  32. package/web/references/firstory/DESIGN.md +487 -0
  33. package/web/references/funnow/DESIGN.md +431 -0
  34. package/web/references/google/DESIGN.md +499 -0
  35. package/web/references/greenvines/DESIGN.md +454 -0
  36. package/web/references/greeting/DESIGN.md +462 -0
  37. package/web/references/imweb/DESIGN.md +460 -0
  38. package/web/references/laundrygo/DESIGN.md +434 -0
  39. package/web/references/microsoft/DESIGN.md +508 -0
  40. package/web/references/miricanvas/DESIGN.md +464 -0
  41. package/web/references/modusign/DESIGN.md +524 -0
  42. package/web/references/omnichat/DESIGN.md +499 -0
  43. package/web/references/postype/DESIGN.md +431 -0
  44. package/web/references/rakuten/DESIGN.md +440 -0
  45. package/web/references/ringle/DESIGN.md +444 -0
  46. package/web/references/salesforce/DESIGN.md +473 -0
  47. package/web/references/stores/DESIGN.md +447 -0
  48. package/web/references/teamblind/DESIGN.md +497 -0
  49. package/web/references/timee/DESIGN.md +444 -0
  50. package/web/references/wantedly/DESIGN.md +437 -0
  51. package/dist/install-skills-KDW74C5K.js.map +0 -1
@@ -0,0 +1,524 @@
1
+ ---
2
+ id: modusign
3
+ name: Modusign
4
+ display_name_kr: 모두싸인
5
+ country: KR
6
+ category: saas
7
+ homepage: "https://www.modusign.co.kr"
8
+ primary_color: "#fed05f"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=modusign.co.kr&sz=128"
12
+ verified: "2026-06-10"
13
+ added: "2026-06-10"
14
+ omd: "0.1"
15
+ tokens:
16
+ source: live-extract
17
+ extracted: "2026-06-10"
18
+ note: "primary = signature CTA yellow (#fed05f) with darker yellow border (#ffc533); pricing surface runs a parallel blue system (#217aff CTA, #4b75e7 check marks, #e2e9fe column tint). Flat shadowless chrome, 6/8/12px radius ladder."
19
+ colors:
20
+ primary: "#fed05f"
21
+ primary-border: "#ffc533"
22
+ primary-deep: "#ffb90a"
23
+ primary-tint: "#fff8e6"
24
+ plan-blue: "#217aff"
25
+ check-blue: "#4b75e7"
26
+ blue-tint: "#e2e9fe"
27
+ gov-navy: "#08236d"
28
+ ink: "#212121"
29
+ ink-alt: "#222222"
30
+ body: "#333333"
31
+ secondary: "#474747"
32
+ muted: "#707070"
33
+ faint: "#999999"
34
+ canvas: "#ffffff"
35
+ surface: "#fafafa"
36
+ surface-alt: "#f5f5f5"
37
+ hairline-faint: "#f0f0f0"
38
+ hairline: "#e6e6e6"
39
+ hairline-strong: "#cccccc"
40
+ table-line: "#dddddd"
41
+ black: "#000000"
42
+ link: "#0000ee"
43
+ error: "#ff4d4f"
44
+ typography:
45
+ family: { sans: "Pretendard" }
46
+ display-hero: { size: 68, weight: 700, lineHeight: 1.40, tracking: -1.2, use: "Homepage hero headline" }
47
+ display: { size: 56, weight: 700, lineHeight: 1.40, tracking: -0.4, use: "Page/section H1" }
48
+ section: { size: 45, weight: 700, lineHeight: 1.40, tracking: -0.4, use: "Section H2" }
49
+ subsection: { size: 36, weight: 700, lineHeight: 1.40, tracking: -0.4, use: "Feature block H3" }
50
+ tab-label: { size: 24, weight: 700, tracking: -0.4, use: "Industry/department section tabs" }
51
+ sub-tab: { size: 18, weight: 500, tracking: -0.4, use: "Feature sub-tabs" }
52
+ body: { size: 16, weight: 400, lineHeight: 1.60, tracking: -0.4, use: "Standard reading text" }
53
+ button: { size: 16, weight: 700, tracking: -0.4, use: "Hero/section CTA label" }
54
+ button-sm: { size: 14, weight: 700, tracking: -0.4, use: "Header compact CTA label" }
55
+ caption: { size: 14, weight: 400, tracking: -0.4, use: "Footer links, fine print" }
56
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 30, xxl: 36 }
57
+ rounded: { sm: 6, md: 8, lg: 12, xl: 16, full: 100 }
58
+ shadow:
59
+ none: "none"
60
+ components:
61
+ button-primary: { type: button, bg: "#fed05f", fg: "#000000", border: "1px solid #ffc533", radius: "8px", padding: "12px 24px", height: "52px", font: "16px / 700 Pretendard", use: "무료 체험 시작 — the signature yellow primary CTA" }
62
+ button-secondary: { type: button, bg: "#ffffff", fg: "#000000", border: "1px solid #cccccc", radius: "8px", padding: "12px 24px", height: "52px", font: "16px / 700 Pretendard", use: "도입 문의 — outlined secondary CTA, always paired with primary" }
63
+ button-dark: { type: button, bg: "#000000", fg: "#ffffff", radius: "8px", padding: "12px 24px", height: "52px", font: "16px / 700 Pretendard", use: "Enterprise plan / 고급 기능 문의 emphasis CTA" }
64
+ button-plan-blue: { type: button, bg: "#217aff", fg: "#ffffff", radius: "8px", padding: "12px 24px", height: "52px", font: "16px / 700 Pretendard", use: "Highlighted pricing plan CTA (무료체험 신청)" }
65
+ button-gov-navy: { type: button, bg: "#08236d", fg: "#ffffff", radius: "8px", padding: "8px 24px", height: "44px", font: "16px / 700 Pretendard", use: "공공기관(GOV) 도입 문의하기 in comparison table" }
66
+ input-stepper: { type: input, bg: "#ffffff", fg: "#222222", border: "1px solid #e6e6e6", radius: "6px", height: "38px", font: "16px / 400 Pretendard", use: "Pricing seat/document count input" }
67
+ card-step: { type: card, bg: "#f5f5f5", fg: "#222222", border: "1px solid #e6e6e6", radius: "8px", padding: "24px 24px 36px", use: "How-it-works step card (active); inactive twin is #ffffff" }
68
+ banner-cta: { type: card, bg: "#fed05f", fg: "#212121", border: "1px solid #ffb90a", radius: "12px", padding: "30px 36px", use: "Footer conversion banner — yellow + grey twin pair" }
69
+ toggle-billing: { type: tab, active: "bg #ffffff + text #333333 700 + 1px #f0f0f0 border, 8px radius", disabled: "#999999 inactive label on 100px pill", use: "Pricing 월 결제 / 1년 약정 billing toggle" }
70
+ tab-industry: { type: tab, active: "text #ffffff + 700 weight", disabled: "#474747 inactive label", use: "산업별/부서별 tabs on dark customer band" }
71
+ components_harvested: true
72
+ ---
73
+
74
+ # Design System Inspiration of Modusign
75
+
76
+ ## 1. Visual Theme & Atmosphere
77
+
78
+ Modusign (모두싸인) is Korea's market-leading e-signature platform, and its marketing surface reads like a confident, conversion-tuned B2B SaaS site that has chosen warmth over corporate chill. The canvas is plain white (`#ffffff`) with charcoal text (`#333333` body, `#212121` headings), but the personality lives in one decision: the primary action is always a warm egg-yolk yellow (`#fed05f`) button outlined in a deeper honey yellow (`#ffc533`) with black text. In a category dominated by trust-blue (DocuSign, Adobe Sign), Modusign signs its name in yellow — friendly, optimistic, and impossible to miss against the white-and-grey page.
79
+
80
+ Typography is single-family and declarative: **Pretendard everywhere**, from the 68px weight-700 hero ("서명이 필요한 모든 곳에 국내 1위 전자서명 모두싸인") down to 14px footer links. Headings run consistently at weight 700 with a generous 1.4 line-height — taller than the tight Korean-startup norm — and a global -0.4px letter-spacing (tightening to -1.2px on the hero). There is no display/body font split; hierarchy is carried purely by size (68 → 56 → 45 → 36 → 16) and the weight flip between 700 headings and 400 body.
81
+
82
+ Depth is essentially absent: live inspection found `box-shadow: none` across nav, CTAs, cards, and pricing chrome on all three inspected surfaces. Separation is done with hairlines on a finely-stepped grey ladder (`#f0f0f0` → `#e6e6e6` → `#dddddd` → `#cccccc`) and flat tinted panels (`#fafafa`, `#f5f5f5`, yellow-tint `#fff8e6`). The radius system is a tidy 6/8/12px ladder — 6px compact header controls, 8px standard CTAs and cards, 12px feature panels and conversion banners — with a single 100px pill reserved for the pricing billing toggle. One charming quirk: text links across the site render in unstyled browser-default blue (`#0000ee`), underlined — an artifact of the Webflow build that has become a de-facto part of the brand's plain, pragmatic look.
83
+
84
+ **Key Characteristics:**
85
+ - Signature yellow CTA system — `#fed05f` fill, `#ffc533` border, black text — the single brand accent on white
86
+ - Pretendard-only typography; weight 700 headings vs 400 body is the entire hierarchy device
87
+ - Flat, shadowless chrome — hairline greys and tinted panels do all the separating
88
+ - 6/8/12px radius ladder, with a 100px pill only on the pricing toggle
89
+ - A parallel blue system on the pricing surface — `#217aff` plan CTA, `#4b75e7` feature-check marks, `#e2e9fe` highlighted-column tint
90
+ - Black (`#000000`) used as a real button color for enterprise-grade emphasis
91
+ - Browser-default link blue (`#0000ee`) on text links — pragmatic, unpolished, oddly honest
92
+ - Dark navy `#08236d` reserved for the government (GOV) plan action
93
+
94
+ ## 2. Color Palette & Roles
95
+
96
+ ### Primary (Yellow System)
97
+ - **Modusign Yellow** (`#fed05f`): The primary CTA fill — "무료 체험 시작" buttons in header, hero, and footer banner. The single saturated brand accent.
98
+ - **Honey Border** (`#ffc533`): The 1px border that frames every standard yellow CTA, giving the flat button a crisp edge.
99
+ - **Deep Honey** (`#ffb90a`): Border on the large footer conversion banner; also appears as small accent text.
100
+ - **Yellow Tint** (`#fff8e6`): Pale warm surface for yellow-tinted info panels.
101
+
102
+ ### Pricing Blue System
103
+ - **Plan Blue** (`#217aff`): CTA fill on the highlighted (recommended) pricing plan, and blue accent text on pricing copy.
104
+ - **Check Blue** (`#4b75e7`): The feature-check marks filling the pricing comparison table — the most frequent non-neutral color on the pricing surface.
105
+ - **Blue Tint** (`#e2e9fe`): Background tint of the highlighted plan column.
106
+ - **GOV Navy** (`#08236d`): Dark navy fill on the 공공기관(GOV) "도입 문의하기" button.
107
+
108
+ ### Text Hierarchy
109
+ - **Ink** (`#212121`): Hero headline and strongest emphasis text.
110
+ - **Ink Alt** (`#222222`): Card body and pricing table text.
111
+ - **Body Charcoal** (`#333333`): The document default — body copy, most headings.
112
+ - **Secondary** (`#474747`): Inactive tab labels, footer column links.
113
+ - **Muted** (`#707070`): Legal links, fine print.
114
+ - **Faint** (`#999999`): Inactive toggle labels, placeholder-grade text.
115
+ - **Pure Black** (`#000000`): CTA label text on yellow/white buttons, and a true button background for dark emphasis CTAs.
116
+
117
+ ### Surface & Hairlines
118
+ - **Pure White** (`#ffffff`): Page background, cards, plan CTA text.
119
+ - **Surface** (`#fafafa`): Soft grey panel and free-plan button fill.
120
+ - **Surface Alt** (`#f5f5f5`): Step cards and the grey conversion-banner twin.
121
+ - **Hairline Faint** (`#f0f0f0`): Lightest border — selected toggle, grey banner.
122
+ - **Hairline** (`#e6e6e6`): Standard card and input borders.
123
+ - **Table Line** (`#dddddd`): Pricing comparison-table grid lines.
124
+ - **Hairline Strong** (`#cccccc`): Outlined secondary-CTA border.
125
+
126
+ ### Functional
127
+ - **Link Blue** (`#0000ee`): Browser-default blue on underlined text links ("소개서 받기", "자세히 알아보기") — a site-wide Webflow quirk kept in production.
128
+ - **Error Red** (`#ff4d4f`): Required-field marks and validation messaging on the 도입 문의 consult form.
129
+
130
+ ## 3. Typography Rules
131
+
132
+ ### Font Family
133
+ - **Single family**: `Pretendard` (with sans-serif fallback) for every role — display, body, UI, footer. No secondary or display font.
134
+
135
+ ### Hierarchy
136
+
137
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
138
+ |------|------|------|--------|-------------|----------------|-------|
139
+ | Display Hero | Pretendard | 68px (4.25rem) | 700 | 1.40 (95.2px) | -1.2px | Homepage hero only |
140
+ | Display | Pretendard | 56px (3.50rem) | 700 | 1.40 (78.4px) | -0.4px | Page/section H1 |
141
+ | Section | Pretendard | 45px (2.81rem) | 700 | 1.40 (63px) | -0.4px | Section H2 |
142
+ | Sub-section | Pretendard | 36px (2.25rem) | 700 | 1.40 (50.4px) | -0.4px | Feature block H3 |
143
+ | Tab Label | Pretendard | 24px (1.50rem) | 700 active / 400 inactive | — | -0.4px | 산업별/부서별 tabs |
144
+ | Sub-tab | Pretendard | 18px (1.13rem) | 500/400 | — | -0.4px | Feature sub-tabs |
145
+ | Body | Pretendard | 16px (1.00rem) | 400 | 1.60 (25.6px) | -0.4px | Standard reading text |
146
+ | Button | Pretendard | 16px (1.00rem) | 700 | — | -0.4px | Hero/section CTA |
147
+ | Button Small | Pretendard | 14px (0.88rem) | 700 | — | -0.4px | Header compact CTA |
148
+ | Caption | Pretendard | 14px (0.88rem) | 400–500 | — | -0.4px | Footer links, fine print |
149
+
150
+ ### Principles
151
+ - **One family, two weights**: Pretendard 700 for everything that asserts, 400 for everything that explains. 500 appears only on minor UI labels.
152
+ - **Generous 1.4 heading line-height**: multi-line Korean headlines breathe — taller than the compressed look common in KR fintech.
153
+ - **Global -0.4px tracking**: applied site-wide; only the 68px hero tightens further to -1.2px.
154
+ - **Size does the talking**: a steep 68 → 56 → 45 → 36 → 16 scale carries hierarchy without color or family changes.
155
+
156
+ ## 4. Component Stylings
157
+
158
+ ### Buttons
159
+
160
+ **Primary (무료 체험 시작)**
161
+ - Background: `#fed05f`
162
+ - Text: `#000000`
163
+ - Border: 1px solid `#ffc533`
164
+ - Radius: 8px
165
+ - Padding: 12px 24px
166
+ - Height: 52px
167
+ - Font: 16px / 700 / Pretendard
168
+ - Use: The yellow free-trial CTA — hero, section closers, footer banner
169
+
170
+ **Primary Compact (header)**
171
+ - Background: `#fed05f`
172
+ - Text: `#000000`
173
+ - Border: 1px solid `#ffc533`
174
+ - Radius: 6px
175
+ - Padding: 8px 16px
176
+ - Height: 44px
177
+ - Font: 14px / 700 / Pretendard
178
+ - Use: Sticky-header CTA pair, right-aligned
179
+
180
+ **Secondary Outline (도입 문의)**
181
+ - Background: `#ffffff`
182
+ - Text: `#000000`
183
+ - Border: 1px solid `#cccccc`
184
+ - Radius: 8px
185
+ - Padding: 12px 24px
186
+ - Height: 52px
187
+ - Font: 16px / 700 / Pretendard
188
+ - Use: Consult/sales CTA, always paired to the left of the yellow primary
189
+
190
+ **Dark Emphasis**
191
+ - Background: `#000000`
192
+ - Text: `#ffffff`
193
+ - Radius: 8px
194
+ - Padding: 12px 24px
195
+ - Height: 52px
196
+ - Font: 16px / 700 / Pretendard
197
+ - Use: Enterprise plan CTA, 고급 기능 문의
198
+
199
+ **Plan Blue (pricing highlight)**
200
+ - Background: `#217aff`
201
+ - Text: `#ffffff`
202
+ - Radius: 8px
203
+ - Padding: 12px 24px
204
+ - Height: 52px
205
+ - Font: 16px / 700 / Pretendard
206
+ - Use: 무료체험 신청 on the recommended plan card (column tinted `#e2e9fe`)
207
+
208
+ **Free Plan**
209
+ - Background: `#fafafa`
210
+ - Text: `#212121`
211
+ - Border: 1px solid `#999999`
212
+ - Radius: 8px
213
+ - Padding: 12px 24px
214
+ - Height: 52px
215
+ - Font: 16px / 700 / Pretendard
216
+ - Use: Free-tier plan CTA
217
+
218
+ **GOV Navy**
219
+ - Background: `#08236d`
220
+ - Text: `#ffffff`
221
+ - Radius: 8px
222
+ - Padding: 8px 24px
223
+ - Height: 44px
224
+ - Font: 16px / 700 / Pretendard
225
+ - Use: 행정·공공기관 요금제 "도입 문의하기" in the comparison table
226
+
227
+ ### Inputs
228
+
229
+ **Count Stepper (pricing)**
230
+ - Background: `#ffffff`
231
+ - Text: `#222222`
232
+ - Border: 1px solid `#e6e6e6`
233
+ - Radius: 6px
234
+ - Height: 38px
235
+ - Font: 16px / 400 / Pretendard
236
+ - Use: Seat/document count input on the pricing calculator
237
+
238
+ ### Cards & Containers
239
+
240
+ **Step Card (active)**
241
+ - Background: `#f5f5f5`
242
+ - Text: `#222222`
243
+ - Border: 1px solid `#e6e6e6`
244
+ - Radius: 8px
245
+ - Padding: 24px 24px 36px
246
+ - Use: How-it-works step cards (문서 준비 → 서명 요청 → 계약 체결 → 계약 관리); inactive sibling is `#ffffff` with a white border
247
+
248
+ **Conversion Banner (yellow)**
249
+ - Background: `#fed05f`
250
+ - Text: `#212121`
251
+ - Border: 1px solid `#ffb90a`
252
+ - Radius: 12px
253
+ - Padding: 30px 36px
254
+ - Use: Footer "무료 체험 시작" banner; sits beside a grey twin (`#f5f5f5` bg, 1px `#f0f0f0` border)
255
+
256
+ ### Tabs & Toggles
257
+
258
+ **Billing Toggle (pricing)**
259
+ - Active: white `#ffffff` bg, `#333333` text, 700 weight, 8px radius, 1px solid `#f0f0f0`
260
+ - Inactive: transparent on a 100px pill track, `#999999` text, 400 weight
261
+ - Font: 16px / Pretendard
262
+ - Use: 월 결제 / 1년 약정(~50% 할인) billing switch
263
+
264
+ **Industry Tabs (dark band)**
265
+ - Active: `#ffffff` text, 700 weight
266
+ - Inactive: `#474747` text, 400 weight
267
+ - Radius: 8px
268
+ - Font: 24px / Pretendard
269
+ - Use: 산업별 / 부서별 customer-case tabs on the dark section
270
+
271
+ **Feature Sub-tab**
272
+ - Background: `#ffffff` (selected card)
273
+ - Text: `#5c5c5c`
274
+ - Radius: 12px
275
+ - Padding: 16px
276
+ - Font: 18px / Pretendard
277
+ - Use: 계약 준비 / 체결 / 관리 feature switcher on /features
278
+
279
+ ### Navigation
280
+ - White sticky header, 80px tall, no shadow
281
+ - Links: Pretendard 16px / 400, `#000000` text, 8px 16px padding
282
+ - CTA pair right-aligned: outlined 도입 문의 + yellow 무료 체험 시작 (compact 6px-radius variants)
283
+
284
+ ### Text Links
285
+ - Color: `#0000ee` (browser-default blue), underlined
286
+ - Use: Inline "자세히 알아보기", "소개서 받기", GOV plan links — kept unstyled site-wide
287
+
288
+ ---
289
+ **Verified:** 2026-06-10
290
+ **Tier 1 sources:** https://www.modusign.co.kr (live inspect), https://modusign.co.kr/pricing (live inspect), https://modusign.co.kr/features (live inspect), https://blog.modusign.co.kr (official blog)
291
+ **Tier 2 sources:** none available (getdesign.md/modusign 404; styles.refero.design ?q=modusign not listed)
292
+ **Conflicts unresolved:** none
293
+
294
+ ## 5. Layout Principles
295
+
296
+ ### Spacing System
297
+ - Base unit: 4px
298
+ - Measured scale: 4px, 8px, 12px, 16px, 24px, 30px, 36px
299
+ - Standard CTA padding is 12px 24px; the large conversion banner pads at 30px 36px
300
+
301
+ ### Grid & Container
302
+ - Centered single-column hero with the 68px headline and a paired CTA row beneath
303
+ - How-it-works flows as a 4-step horizontal card row (8px-radius cards, active step tinted grey)
304
+ - Customer-case section runs as a dark full-width band with white-text tabs
305
+ - Pricing is a classic plan-card row over a long hairline comparison table (`#dddddd` grid lines), with the recommended column tinted `#e2e9fe`
306
+ - Footer conversion area is a side-by-side banner pair: grey consult banner + yellow trial banner
307
+
308
+ ### Whitespace Philosophy
309
+ - **Conversion-first rhythm**: every scroll-depth ends in a CTA pair; whitespace exists to frame the next yellow button.
310
+ - **Flat segmentation**: sections alternate white, soft grey (`#fafafa`), and dark bands; no shadows anywhere — separation is tint and hairline.
311
+ - **Dense where it sells, airy where it persuades**: the pricing comparison table is tightly gridded while marketing sections keep generous 1.4 line-height headlines and wide gaps.
312
+
313
+ ### Border Radius Scale
314
+ - Small (6px): header compact CTAs, stepper inputs
315
+ - Medium (8px): standard CTAs, step cards, plan buttons — the workhorse
316
+ - Large (12px): feature panels, conversion banners, feature sub-tabs
317
+ - XL (16px): occasional large media containers
318
+ - Pill (100px): pricing billing-toggle track only
319
+
320
+ ## 6. Depth & Elevation
321
+
322
+ | Level | Treatment | Use |
323
+ |-------|-----------|-----|
324
+ | Flat (Level 0) | No shadow | Everything — nav, cards, CTAs, pricing chrome |
325
+ | Tint (Level 1) | `#fafafa` / `#f5f5f5` / `#fff8e6` / `#e2e9fe` background shift | Panel and column separation |
326
+ | Hairline (Level 2) | 1px `#f0f0f0` → `#e6e6e6` → `#dddddd` → `#cccccc` | Cards, inputs, tables, outlined buttons |
327
+ | Color block (Level 3) | `#fed05f` / `#000000` / `#08236d` solid fills | CTAs and dark bands carry all the visual weight |
328
+
329
+ **Shadow Philosophy**: Modusign is a fully flat system — live inspection returned `box-shadow: none` on every nav, button, heading, card, and pricing element across the homepage, pricing, and features surfaces. Elevation is replaced by a four-step hairline ladder and tinted panels; when the design needs emphasis it reaches for a solid color block (yellow CTA, black button, dark customer band) rather than depth. This keeps the page light and print-like, and makes the yellow primary read even louder against the unshadowed white.
330
+
331
+ ## 7. Do's and Don'ts
332
+
333
+ ### Do
334
+ - Reserve the yellow pair — `#fed05f` fill + `#ffc533` border — exclusively for the primary free-trial action
335
+ - Put black text on yellow CTAs; white text is for black, blue, and navy buttons only
336
+ - Pair every primary CTA with the outlined `#cccccc` secondary (도입 문의) on its left
337
+ - Keep the system flat: hairlines (`#f0f0f0`–`#cccccc`) and tints, never drop shadows
338
+ - Use Pretendard 700 for all headings with 1.4 line-height and -0.4px tracking
339
+ - Keep the 6/8/12px radius ladder; 8px is the default for buttons and cards
340
+ - Use the blue system (`#217aff`, `#4b75e7`, `#e2e9fe`) only inside pricing/plan contexts
341
+ - Use `#000000` as a legitimate button background for enterprise-grade emphasis
342
+
343
+ ### Don't
344
+ - Use yellow for non-primary actions — it is the single conversion signal
345
+ - Add drop shadows or gradients to cards and CTAs — the system is strictly flat
346
+ - Mix a second display font — Pretendard owns every role
347
+ - Use trust-blue as the brand primary — blue is a pricing-context accent, not the identity
348
+ - Round CTAs into pills — 100px radius belongs only to the billing-toggle track
349
+ - Set headings below weight 700 — the 700/400 flip is the entire hierarchy device
350
+ - Style body links into brand colors — the default `#0000ee` underlined link is the established pattern
351
+ - Crowd the hero — one headline, one subline, one CTA pair
352
+
353
+ ## 8. Responsive Behavior
354
+
355
+ ### Breakpoints
356
+ | Name | Width | Key Changes |
357
+ |------|-------|-------------|
358
+ | Mobile | <640px | Single column, hero scales down, CTA pair stacks |
359
+ | Tablet | 640–1024px | 2-up step cards, condensed nav |
360
+ | Desktop | 1024–1440px | Full layout, 4-step card row, side-by-side banners |
361
+
362
+ ### Touch Targets
363
+ - Standard CTAs at 52px height with 12px 24px padding — comfortably tappable
364
+ - Header compact CTAs at 44px height
365
+ - Pricing table CTAs at 44px height with 8px 24px padding
366
+
367
+ ### Collapsing Strategy
368
+ - Hero: 68px headline compresses on mobile, weight 700 and dark ink maintained
369
+ - Step cards: 4-across → stacked vertical flow
370
+ - Pricing comparison table: horizontal scroll on narrow viewports
371
+ - Footer banner pair: side-by-side → stacked, yellow banner last (closest to thumb)
372
+
373
+ ### Image Behavior
374
+ - Product screenshots sit flat (no shadow) inside 8–12px-radius containers
375
+ - The dark customer band keeps full-bleed treatment at all sizes
376
+
377
+ ## 9. Agent Prompt Guide
378
+
379
+ ### Quick Color Reference
380
+ - Primary CTA: Modusign Yellow (`#fed05f`) + border (`#ffc533`), black text
381
+ - Banner border: Deep Honey (`#ffb90a`)
382
+ - Background: White (`#ffffff`); panels `#fafafa` / `#f5f5f5`; warm tint `#fff8e6`
383
+ - Headings: Ink (`#212121`) / Body (`#333333`)
384
+ - Muted ladder: `#474747` → `#707070` → `#999999`
385
+ - Hairlines: `#f0f0f0` → `#e6e6e6` → `#dddddd` → `#cccccc`
386
+ - Pricing accents: Plan Blue (`#217aff`), Check Blue (`#4b75e7`), column tint (`#e2e9fe`), GOV Navy (`#08236d`)
387
+ - Dark CTA: Black (`#000000`); text links: default blue (`#0000ee`); error: `#ff4d4f`
388
+
389
+ ### Example Component Prompts
390
+ - "Create a hero on white. Headline 68px Pretendard weight 700, line-height 1.4, letter-spacing -1.2px, color #212121. Below, a CTA pair: outlined button (white bg, 1px solid #cccccc, black text, 8px radius, 12px 24px padding, 16px/700) and a yellow primary (#fed05f bg, 1px solid #ffc533 border, #000000 text, same geometry) labeled '무료 체험 시작'."
391
+ - "Design a 4-step process row: cards with #f5f5f5 background (active) or #ffffff, 1px solid #e6e6e6, 8px radius, 24px 24px 36px padding, no shadow. Step title 16px Pretendard 700, body 16px/400 #222222."
392
+ - "Build a pricing plan card set: recommended column tinted #e2e9fe with a #217aff CTA (white text, 8px radius, 52px height); free plan CTA #fafafa bg with 1px #999999 border; enterprise CTA solid #000000 with white text. Comparison table below with #dddddd grid lines and #4b75e7 check marks."
393
+ - "Create a footer conversion banner pair: left card #f5f5f5 with 1px #f0f0f0 border, right card #fed05f with 1px #ffb90a border, both 12px radius and 30px 36px padding, titles 16px Pretendard, no shadow."
394
+
395
+ ### Iteration Guide
396
+ 1. Yellow (`#fed05f` + `#ffc533` border) appears exactly once per viewport — the primary action
397
+ 2. Everything is flat: if you reach for a shadow, use a hairline or tint instead
398
+ 3. Pretendard 700 vs 400 is the only weight contrast; headings get 1.4 line-height
399
+ 4. Radius: 6px compact, 8px default, 12px panels, 100px only for the billing toggle
400
+ 5. Blue belongs to pricing; navy `#08236d` belongs to GOV; black is the enterprise button
401
+ 6. Body text is `#333333` with -0.4px tracking at 16px/1.6
402
+ 7. Keep text links default-blue `#0000ee` and underlined — it's the site's pragmatic signature
403
+
404
+ ---
405
+
406
+ ## 10. Voice & Tone
407
+
408
+ Modusign's voice is **direct, rank-claiming, and reassuring** — a market leader that states its position as plain fact ("국내 1위 전자서명") and then immediately lowers the barrier to entry ("무료 체험 시작"). Copy is short, declarative Korean with almost no English loanword decoration; the product explains contracts, a stressful legal domain, in the language of completion and relief: 시작부터 끝까지, 한번에. There is no exclamation-mark hype — confidence is carried by superlatives that are verifiable claims (업계 최다 고객) rather than adjectives.
409
+
410
+ | Context | Tone |
411
+ |---|---|
412
+ | Hero headlines | Rank-as-fact + universal scope. "서명이 필요한 모든 곳에 국내 1위 전자서명 모두싸인." |
413
+ | Feature copy | Completion-framed, end-to-end. "계약의 시작부터 끝까지, 모두싸인으로." |
414
+ | CTAs | Low-friction imperatives. "무료 체험 시작", "도입 문의", "맞춤 상담 받기". |
415
+ | Trust/legal copy | Sober and concrete. "법적 효력 및 강력한 보안" — states the guarantee, no drama. |
416
+ | Blog/guides | Practical advisor voice — HR/legal how-tos, case studies, checklists. |
417
+ | Customer proof | Numbers do the talking: industries, departments, customer counts. |
418
+
419
+ **Voice samples (verbatim from live site, 2026-06-10):**
420
+ - "서명이 필요한 모든 곳에 국내 1위 전자서명 모두싸인" — homepage hero H1 (rank-as-fact + universal scope). *(verified live 2026-06-10)*
421
+ - "계약의 시작부터 끝까지, 모두싸인으로" — features page H1 (end-to-end completion promise). *(verified live 2026-06-10)*
422
+ - "계약 준비, 체결, 관리를 한번에" — features H2 (workflow compression into one tool). *(verified live 2026-06-10)*
423
+ - "모든 산업 및 부서에서 이용하고 있습니다" — homepage section H1 (ubiquity as social proof). *(verified live 2026-06-10)*
424
+
425
+ **Forbidden register**: exclamation-heavy urgency, fear-based legal threats ("계약서 잘못 쓰면 큰일 납니다"), untranslated legalese left unexplained, discount-mall promotion tone on the core product.
426
+
427
+ ## 11. Brand Narrative
428
+
429
+ Modusign (모두싸인) was founded in **December 2015** by CEO **이영준 (Lee Young-jun)** with the mission **"계약이 모두에게 더 간편하고 안전할 수 있도록 바꾼다"** (change contracts to be simpler and safer for everyone) and the vision **"계약의 표준이 된다"** (become the standard for contracts). The name itself is the thesis — 모두(everyone) + 싸인(sign): electronic signatures shouldn't be an enterprise luxury but something every business, school, hospital, and government office can use. The founding rejection was paper-and-stamp contract culture — printing, couriering, stamping, scanning, and filing — which Korean organizations endured as a cost of doing business.
430
+
431
+ A decade in, the claim "국내 1위" is carried by published numbers: over **320,000 companies and institutions**, around **9.6 million users**, and tens of millions of completed documents, with the founder noting the company fields acquisition offers every year ([한국일보 interview, 2026-01](https://www.hankookilbo.com/News/Read/A2026012015580004845)). The product has grown from simple e-signing into contract infrastructure — web service, API integration (연동형), on-premise deployment, a government edition (GOV), and **모두싸인 캐비닛**, an AI contract-management layer. Lee has framed the next chapter explicitly: *"전자계약 넘어 AI 기반 CLM으로 확장할 것"* — beyond e-contracts to AI-based contract lifecycle management ([모두싸인 공식 블로그/전자신문, 2024-12](https://blog.modusign.co.kr/news/pr/etnews_2412)).
432
+
433
+ The design follows the mission's populism: where global e-signature incumbents dress in institutional trust-blue, Modusign chooses a warm yellow CTA on plain white — approachable over imposing. What it refuses: intimidating legal chrome, gated "request a demo" funnels (the free trial is always one yellow button away), and decorative depth. What it embraces: flat pragmatic surfaces, rank-as-fact copy, and a conversion path so consistent that the yellow button effectively *is* the brand.
434
+
435
+ ## 12. Principles
436
+
437
+ 1. **Everyone signs.** The name is the principle — contracts for 모두, not just legal teams. *UI implication:* the free-trial CTA is permanent, yellow, and one click from every viewport; no feature is hidden behind sales gates.
438
+ 2. **State rank, then lower the bar.** "국내 1위" is asserted as fact and immediately followed by a free entry point. *UI implication:* pair every leadership claim with a low-friction action (무료 체험) and verifiable numbers, never adjectives alone.
439
+ 3. **End-to-end or nothing.** 시작부터 끝까지 — preparation, signing, and management live in one product. *UI implication:* show workflows as connected step cards (문서 준비 → 서명 요청 → 계약 체결 → 계약 관리), not isolated feature grids.
440
+ 4. **Flat is honest.** A legal-infrastructure product shouldn't decorate. *UI implication:* no shadows or gradients; hairlines, tints, and solid color blocks carry all structure.
441
+ 5. **Warmth where the law is cold.** Yellow against legal grey. *UI implication:* keep the single warm accent for action moments; let trust copy (법적 효력, 보안) stay sober charcoal-on-white.
442
+
443
+ ## 13. Personas
444
+
445
+ *Personas below are fictional archetypes informed by publicly observable Modusign customer segments (HR/legal teams, SMB operators, public-sector administrators), not individual people.*
446
+
447
+ **박민지, 33, 서울.** HR manager at a 200-person company drowning in 연봉계약서 season. Sends batch signature requests through Modusign and tracks who hasn't signed from one dashboard. Chose it because employees could sign on KakaoTalk without installing anything.
448
+
449
+ **정태호, 45, 대구.** Runs a franchise food company signing dozens of supplier and store contracts monthly. Doesn't care about "digital transformation" rhetoric — he cares that a contract that took four days of couriering now closes the same afternoon, with legal validity he can show his lawyer.
450
+
451
+ **김은영, 38, 세종.** Public-institution administrator evaluating the GOV edition. Needs security certifications, audit trails, and on-premise options before anything else; the 법적효력/보안 page and 감사추적인증서 are the first things she reads.
452
+
453
+ **이준혁, 29, 판교.** Backend developer embedding signatures into his company's SaaS via the Modusign API (연동형). Judges the product by docs quality and webhook reliability, and appreciated starting the integration from a free trial instead of a sales call.
454
+
455
+ ## 14. States
456
+
457
+ | State | Treatment |
458
+ |---|---|
459
+ | **Empty (no documents yet)** | White canvas, one charcoal (`#333333`) sentence stating no contracts yet, and a single yellow `#fed05f` CTA to send the first signature request. No illustration noise. |
460
+ | **Empty (no search/filter results)** | Faint (`#999999`) single line with the active filter summary visible so the user can widen scope. |
461
+ | **Loading (dashboard/list)** | Flat skeleton bars on `#f5f5f5` at final row dimensions, 8px radius. No shimmer-shadow — flat pulse consistent with the shadowless system. |
462
+ | **Loading (pricing calculator)** | Inline recalculation; previous totals remain visible, never a blanked panel. |
463
+ | **Error (signature request failed)** | Inline `#ff4d4f` message naming the failed step and a plain-language fix, plus retry. Never a bare "오류가 발생했습니다". |
464
+ | **Error (form validation)** | Field-level `#ff4d4f` required marks and a message describing what a valid value is — matches the live 도입 문의 form pattern. |
465
+ | **Success (contract completed)** | Calm inline confirmation; the document row itself shows the completed status, with the audit-trail link immediately available. No confetti. |
466
+ | **Success (request sent)** | Brief toast, sentence case, past tense ("서명 요청을 보냈습니다"), auto-dismiss. |
467
+ | **Skeleton** | `#f5f5f5` blocks with `#e6e6e6` hairline edges at final dimensions, 8px radius. |
468
+ | **Disabled** | Labels drop to `#999999` on unchanged flat surfaces; the yellow CTA desaturates toward `#fff8e6` rather than turning grey, preserving the brand read. |
469
+
470
+ ## 15. Motion & Easing
471
+
472
+ **Durations**:
473
+
474
+ | Token | Value | Use |
475
+ |---|---|---|
476
+ | `motion-fast` | 120ms | Hover, toggle, tab switch |
477
+ | `motion-standard` | 200ms | Card reveal, accordion, dropdown |
478
+ | `motion-slow` | 320ms | Section transitions, step-flow advance |
479
+
480
+ **Easings**:
481
+
482
+ | Token | Curve | Use |
483
+ |---|---|---|
484
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — cards, panels, toasts |
485
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
486
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions (tabs, toggles) |
487
+
488
+ **Motion rules**: Motion is utilitarian and sparse, matching the flat visual system — tab switches and the billing toggle slide at `motion-fast / ease-standard`; how-it-works step cards advance with a quiet fade at `motion-standard`. Nothing bounces: a legal-infrastructure product signals steadiness, not playfulness. The one permitted emphasis is the yellow CTA's hover, a brief background deepen toward `#ffc533` at `motion-fast`. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and the product remains fully functional.
489
+
490
+ <!--
491
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
492
+
493
+ Tier 1 live inspect (2026-06-10) via playwright getComputedStyle on
494
+ https://www.modusign.co.kr, https://modusign.co.kr/pricing, https://modusign.co.kr/features:
495
+ - Hero H1 "서명이 필요한 모든 곳에 국내 1위 전자서명 모두싸인" — Pretendard 68px / 700 / -1.2px / rgb(33,33,33)
496
+ - Primary CTA "무료 체험 시작" — bg rgb(254,208,95) #fed05f / border rgb(255,197,51) #ffc533 / radius 8px / black text
497
+ - Pricing blue system — #217aff plan CTA, #4b75e7 table check marks, #e2e9fe highlighted column
498
+ - box-shadow: none across all inspected chrome (flat system)
499
+ Raw samples: web/references/modusign/.verification.md
500
+
501
+ Token-level claims (§1–9) are sourced from this live inspection.
502
+
503
+ Voice samples (§10) are verbatim from the live homepage/features pages, captured 2026-06-10.
504
+
505
+ Brand narrative (§11) verified sources:
506
+ - 한국일보 founder interview (2026-01): founded by 이영준; 국내 1위; ~330,000 client
507
+ organizations; annual acquisition offers.
508
+ https://www.hankookilbo.com/News/Read/A2026012015580004845
509
+ - 모두싸인 공식 블로그 PR archive (electimes/etnews repost, 2024-12): 이영준 quote
510
+ "전자계약 넘어 AI 기반 CLM으로 확장할 것"; 32만 기업/기관, 960만 이용자 scale figures.
511
+ https://blog.modusign.co.kr/news/pr/etnews_2412
512
+ - Mission "계약이 모두에게 더 간편하고 안전할 수 있도록 바꾼다" and vision "계약의 표준이
513
+ 된다" as reported in Korean startup media (스타트업투데이, 매일일보) discovered via
514
+ WebSearch 2026-06-10; founding date December 2015.
515
+
516
+ Personas (§13) are fictional archetypes informed by publicly observable Modusign
517
+ customer segments (HR/legal, SMB, public sector, API developers). Names are
518
+ illustrative; they do not refer to real people.
519
+
520
+ Interpretive claims (e.g., "yellow against legal grey", "flat is honest", the
521
+ disabled-state and motion specifications) are editorial readings extending the
522
+ observed design system, not directly sourced Modusign statements — motion tokens
523
+ in §15 are illustrative conventions consistent with the observed flat system.
524
+ -->