oh-my-design-cli 1.8.6 → 1.8.7

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 (36) hide show
  1. package/README.ja.md +4 -4
  2. package/README.ko.md +6 -6
  3. package/README.md +6 -6
  4. package/README.zh-TW.md +4 -4
  5. package/data/reference-fingerprints.json +722 -3
  6. package/package.json +1 -1
  7. package/web/references/airbridge/DESIGN.md +451 -0
  8. package/web/references/bigin/DESIGN.md +454 -0
  9. package/web/references/buzzvil/DESIGN.md +457 -0
  10. package/web/references/cafe24/DESIGN.md +472 -0
  11. package/web/references/codeit/DESIGN.md +470 -0
  12. package/web/references/datarize/DESIGN.md +451 -0
  13. package/web/references/elice/DESIGN.md +445 -0
  14. package/web/references/furiosaai/DESIGN.md +450 -0
  15. package/web/references/goorm/DESIGN.md +470 -0
  16. package/web/references/greencar/DESIGN.md +420 -0
  17. package/web/references/hackle/DESIGN.md +472 -0
  18. package/web/references/hwahae/DESIGN.md +453 -0
  19. package/web/references/kcd/DESIGN.md +432 -0
  20. package/web/references/kyobobook/DESIGN.md +445 -0
  21. package/web/references/lablup/DESIGN.md +474 -0
  22. package/web/references/lemonbase/DESIGN.md +452 -0
  23. package/web/references/makinarocks/DESIGN.md +442 -0
  24. package/web/references/moreh/DESIGN.md +437 -0
  25. package/web/references/neosapience/DESIGN.md +441 -0
  26. package/web/references/nota/DESIGN.md +451 -0
  27. package/web/references/portone/DESIGN.md +446 -0
  28. package/web/references/queenit/DESIGN.md +432 -0
  29. package/web/references/rebellions/DESIGN.md +449 -0
  30. package/web/references/returnzero/DESIGN.md +460 -0
  31. package/web/references/saramin/DESIGN.md +465 -0
  32. package/web/references/shiftee/DESIGN.md +468 -0
  33. package/web/references/solapi/DESIGN.md +483 -0
  34. package/web/references/supertone/DESIGN.md +413 -0
  35. package/web/references/vuno/DESIGN.md +413 -0
  36. package/web/references/weverse/DESIGN.md +437 -0
@@ -0,0 +1,465 @@
1
+ ---
2
+ id: saramin
3
+ name: Saramin
4
+ display_name_kr: 사람인
5
+ country: KR
6
+ category: saas
7
+ homepage: "https://www.saramin.co.kr"
8
+ primary_color: "#4876ef"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=saramin.co.kr&sz=128"
12
+ verified: "2026-06-26"
13
+ added: "2026-06-26"
14
+ omd: "0.1"
15
+ tokens:
16
+ source: live-extract
17
+ extracted: "2026-06-26"
18
+ note: "primary = action blue (#4876ef, gray120/blue80 token, most-used CTA/link color); hero keyword-search field border is the brighter blue90 (#2d67ff); AI features carry a sky-blue glow (#02c6ff). Near-black ink is #292e41 (gray120). Two live surfaces inspected; values cross-checked against Saramin's own /sri_css token scales (gray/blue/coral/green)."
19
+ colors:
20
+ primary: "#4876ef"
21
+ primary-strong: "#3157dd"
22
+ primary-bright: "#2d67ff"
23
+ tint: "#eff5ff"
24
+ ink: "#292e41"
25
+ ink-strong: "#151822"
26
+ body: "#373f57"
27
+ slate: "#475067"
28
+ muted: "#5c667b"
29
+ muted-alt: "#67738e"
30
+ faint: "#8491a7"
31
+ hairline: "#d7dce5"
32
+ divider: "#eaedf4"
33
+ surface: "#f4f6fa"
34
+ surface-soft: "#f8fafc"
35
+ canvas: "#ffffff"
36
+ success: "#17a187"
37
+ alert: "#ff5656"
38
+ highlight: "#fff7d6"
39
+ ai: "#02c6ff"
40
+ typography:
41
+ family: { sans: "Pretendard", fallback: "Malgun Gothic" }
42
+ display: { size: 32, weight: 700, lineHeight: 1.3, use: "Page / section titles (title_common)" }
43
+ title: { size: 20, weight: 700, lineHeight: 1.4, use: "Segmented-tab heads, sub-section titles (국내/해외)" }
44
+ body: { size: 16, weight: 400, lineHeight: 1.5, use: "Standard reading text and nav items" }
45
+ label: { size: 14, weight: 700, lineHeight: 1.4, use: "Emphasis labels and button text (AI 검색)" }
46
+ caption: { size: 13, weight: 400, lineHeight: 1.5, use: "Meta, region counts, secondary labels" }
47
+ micro: { size: 11, weight: 400, lineHeight: 1.4, use: "Fine print, tiny tags" }
48
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 48 }
49
+ rounded: { sm: 8, md: 12, lg: 16, xl: 20, pill: 28, round: 40, full: 9999 }
50
+ shadow:
51
+ card: "rgba(17,42,128,0.08) 2px 6px 16px 0px"
52
+ soft: "rgba(55,63,87,0.13) 0px 6px 10px 0px"
53
+ ai: "rgba(0,161,248,0.3) 0px 0px 10px 0px"
54
+ components:
55
+ search-bar: { type: input, bg: "#ffffff", fg: "#292e41", border: "2px solid #2d67ff", radius: "28px", height: "52px", font: "16px / 400 Pretendard", use: "Hero keyword-search field — the homepage centerpiece" }
56
+ button-primary: { type: button, bg: "#4876ef", fg: "#ffffff", radius: "8px", font: "15px / 700 Pretendard", states: "shadow rgba(72,118,239,0.1) · hover #3157dd", use: "Primary action — search submit / apply CTA" }
57
+ button-ai: { type: button, bg: "#02c6ff", fg: "#ffffff", radius: "20px", height: "40px", font: "14px / 700 Pretendard", states: "cyan glow shadow rgba(0,161,248,0.3)", use: "AI search entry — sky-blue pill with glow" }
58
+ button-outline: { type: button, fg: "#373f57", border: "1px solid #d7dce5", radius: "16px", height: "32px", padding: "0 13px", font: "13px / 700 Pretendard", use: "Secondary outline action (기업서비스)" }
59
+ entry-pill: { type: button, bg: "#ffffff", fg: "#292e41", radius: "40px", padding: "3px 12px", font: "13px / 700 Pretendard", use: "Inline white pill (공식관 입장하기)" }
60
+ job-card: { type: card, bg: "#ffffff", fg: "#292e41", border: "1px solid #d7dce5", radius: "16px", padding: "16px", states: "shadow rgba(17,42,128,0.08)", use: "Job-posting card in list / featured grid" }
61
+ surface-card: { type: card, bg: "#f4f6fa", fg: "#292e41", border: "1px solid #eaedf4", radius: "16px", use: "Tinted utility card (tool shortcuts, greeting links)" }
62
+ region-tab: { type: tab, active: "text #475067 + 2px bottom border #4876ef", disabled: "#67738e label", font: "20px / 700 Pretendard", use: "국내 / 해외 segmented tabs" }
63
+ badge-alert: { type: badge, bg: "#fff7d6", fg: "#ff5656", radius: "4px", font: "12px / 700 Pretendard", use: "D-day / urgency tag on highlighted listings" }
64
+ chip-region: { type: badge, bg: "#eff5ff", fg: "#292e41", radius: "4px", font: "13px / 400 Pretendard", use: "Selected region / filter chip (tinted)" }
65
+ components_harvested: true
66
+ ---
67
+
68
+ # Design System Inspiration of Saramin
69
+
70
+ ## 1. Visual Theme & Atmosphere
71
+
72
+ Saramin (사람인) is one of Korea's two dominant recruitment platforms, and its interface reads like a high-density information utility that has been deliberately civilized — a wall of job postings, region counts, and filters that never tips into chaos because a disciplined blue-and-grey system holds it together. The canvas is pure white (`#ffffff`), and the working surface is a cool, almost imperceptible grey (`#f4f6fa`) that Saramin uses to fence off cards, tool shortcuts, and filter rows without ever resorting to heavy borders. Text sits in a deep blue-black ink (`#292e41`) rather than pure black, which keeps a screen full of company names and deadlines feeling calm instead of harsh. The single saturated brand hue is an action blue (`#4876ef`) — reserved for the things you click: the primary CTA, links, the active-tab underline — so in a layout with hundreds of competing elements, the blue is always the answer to "what do I press next?"
73
+
74
+ The typographic personality is functional Korean-product: everything is set in **Pretendard** (falling back to `Malgun Gothic`), the de-facto hangul UI typeface, tuned for dense legibility at small sizes. There is almost no decorative weight play — Saramin leans on a tight two-step contrast, weight 400 for the river of reading text and weight 700 for the things that must be scanned (tab heads at 20px, button labels, section titles at 32px). This is a system optimized for *scanning under pressure*: a job seeker comparing 64,706 Seoul postings needs hierarchy that survives at a glance, not expressive headlines.
75
+
76
+ What distinguishes Saramin from a flat content portal is a small, precise depth language and a layered accent system. Cards lift on a signature navy-tinted shadow (`rgba(17,42,128,0.08)`) — the shadow itself is blue, echoing the brand — while secondary lifts use a neutral slate shadow. Around the action blue sits a supporting cast that each carry a job: a brighter blue (`#2d67ff`) outlines the hero keyword-search field, a sky blue (`#02c6ff`) marks the newer AI features with a soft cyan glow, a coral red (`#ff5656`) flags D-day urgency, and a warm cream (`#fff7d6`) tints premium/highlighted listings so paid placements read as "lit" rows in the feed. The result is engineered, trustworthy, and quietly modern — a twenty-year-old job board that has been continuously refactored into a real design system.
77
+
78
+ **Key Characteristics:**
79
+ - Pretendard everywhere (fallback `Malgun Gothic`) — dense, hangul-optimized, two-step weight contrast (400 body / 700 emphasis)
80
+ - Action blue (`#4876ef`) reserved for interactive elements — CTA, links, active-tab underline
81
+ - Near-black blue ink (`#292e41`) for text instead of pure black — calm under high density
82
+ - Cool-grey neutral ladder (`#475067` → `#5c667b` → `#67738e` → `#8491a7`) for text hierarchy
83
+ - Tinted-surface zoning (`#f4f6fa`) and thin hairlines (`#d7dce5`) instead of heavy chrome
84
+ - Signature navy-tinted card shadow (`rgba(17,42,128,0.08)`) — elevation that is on-brand blue
85
+ - A working accent cast: bright blue (`#2d67ff`) search outline, sky-blue (`#02c6ff`) AI glow, coral (`#ff5656`) urgency, cream (`#fff7d6`) premium-listing highlight
86
+ - 16px radius as the card workhorse; pills (28px / 40px) for search and inline chips
87
+
88
+ ## 2. Color Palette & Roles
89
+
90
+ ### Primary
91
+ - **Action Blue** (`#4876ef`): The primary brand color — used for the main CTA, links, and the active-tab underline. The most frequently declared color in Saramin's own stylesheets (its `blue80` token), it is the system's single "click me" signal.
92
+ - **Blue Strong** (`#3157dd`): Deeper blue (`blue100`) for pressed/hover states and high-emphasis fills.
93
+ - **Blue Bright** (`#2d67ff`): A brighter, more saturated blue (`blue90`) used specifically for the 2px outline of the hero keyword-search field — the page's focal interactive element.
94
+ - **Blue Tint** (`#eff5ff`): Pale blue wash (`blue20`) for selected filter chips, hovered rows, and tinted information panels.
95
+
96
+ ### Ink & Text Hierarchy
97
+ - **Ink** (`#292e41`): Primary text and heading color (`gray120`) — a deep blue-black used instead of pure black.
98
+ - **Ink Strong** (`#151822`): The darkest neutral (`gray130`) for maximum-contrast moments.
99
+ - **Body** (`#373f57`): Secondary body and label text (`gray110`).
100
+ - **Slate** (`#475067`): Tertiary text and active segmented-tab labels (`gray100`).
101
+ - **Muted** (`#5c667b`): Muted captions and helper text (`gray90`).
102
+ - **Muted Alt** (`#67738e`): Inactive tab labels and metadata (`gray80`).
103
+ - **Faint** (`#8491a7`): Lowest-emphasis labels, icon strokes, and input placeholders (`gray70`).
104
+
105
+ ### Surface & Borders
106
+ - **Canvas** (`#ffffff`): Page background, cards, and text on colored fills.
107
+ - **Surface** (`#f4f6fa`): Cool-grey tinted surface (`gray20`) for utility cards and segmented sections.
108
+ - **Surface Soft** (`#f8fafc`): The lightest grey (`gray10`) for subtle alternating blocks.
109
+ - **Hairline** (`#d7dce5`): The primary border/divider color (`gray40`) for cards and outline buttons.
110
+ - **Divider** (`#eaedf4`): Lighter hairline (`gray30`) for inner separators and tinted-card outlines.
111
+
112
+ ### Accent & Semantic
113
+ - **AI Sky** (`#02c6ff`): Sky-blue (`skyBlue80`) marking AI-powered features, paired with a soft cyan glow shadow.
114
+ - **Alert Coral** (`#ff5656`): Coral red (`coral90`) for D-day deadlines, urgency, and error states.
115
+ - **Highlight Cream** (`#fff7d6`): Warm cream (`yellow20`) tint for premium / highlighted job rows in the feed.
116
+ - **Success Green** (`#17a187`): Teal-green (`green100`) for success and positive status.
117
+
118
+ ## 3. Typography Rules
119
+
120
+ ### Font Family
121
+ - **Primary**: `Pretendard`, the document default for every text element.
122
+ - **Fallback stack**: `Malgun Gothic`, `dotum`, `gulim`, `sans-serif` — the legacy Korean web-safe ladder for environments without Pretendard.
123
+
124
+ ### Hierarchy
125
+
126
+ | Role | Font | Size | Weight | Line Height | Notes |
127
+ |------|------|------|--------|-------------|-------|
128
+ | Display / Page Title | Pretendard | 32px (2.00rem) | 700 | 1.3 | Page and section titles (`title_common`) |
129
+ | Tab / Sub-section | Pretendard | 20px (1.25rem) | 700 | 1.4 | Segmented tab heads (국내 / 해외) |
130
+ | Body / Nav | Pretendard | 16px (1.00rem) | 400 | 1.5 | Standard reading text, top-nav items |
131
+ | Label / Button | Pretendard | 14px (0.88rem) | 700 | 1.4 | Emphasis labels, button text (AI 검색) |
132
+ | Caption | Pretendard | 13px (0.81rem) | 400 | 1.5 | Meta, region counts, secondary labels |
133
+ | Micro | Pretendard | 11px (0.69rem) | 400 | 1.4 | Fine print, tiny tags |
134
+
135
+ ### Principles
136
+ - **One typeface, two weights**: Pretendard 400 carries reading text; Pretendard 700 carries everything that must be scanned. Hierarchy comes from weight and size, not from a second family.
137
+ - **Density over drama**: Body sits at 16px and drops to 13px for meta — sizes chosen so a feed of hundreds of postings stays legible without scrolling fatigue.
138
+ - **Scan-first headings**: 700-weight at 20–32px gives tab heads and section titles enough authority to anchor a dense page at a glance.
139
+ - **Hangul-safe fallback**: The `Malgun Gothic / dotum / gulim` chain guarantees consistent hangul rendering everywhere Pretendard is unavailable.
140
+
141
+ ## 4. Component Stylings
142
+
143
+ ### Buttons
144
+
145
+ **Primary Action**
146
+ - Background: `#4876ef`
147
+ - Text: `#ffffff`
148
+ - Radius: 8px
149
+ - Font: 15px Pretendard weight 700
150
+ - Hover: `#3157dd` background
151
+ - Shadow: `rgba(72,118,239,0.1) 0px 3px 10px`
152
+ - Use: Primary CTA — search submit, apply, confirm
153
+
154
+ **AI Search**
155
+ - Background: `#02c6ff`
156
+ - Text: `#ffffff`
157
+ - Radius: 20px
158
+ - Height: 40px
159
+ - Font: 14px Pretendard weight 700
160
+ - Shadow: `rgba(0,161,248,0.3) 0px 0px 10px` (cyan glow)
161
+ - Use: AI-powered search entry pill
162
+
163
+ **Outline Action**
164
+ - Text: `#373f57`
165
+ - Border: 1px solid `#d7dce5`
166
+ - Radius: 16px
167
+ - Height: 32px
168
+ - Padding: 0px 13px
169
+ - Font: 13px Pretendard weight 700
170
+ - Use: Secondary actions in the header (기업서비스)
171
+
172
+ **Entry Pill**
173
+ - Background: `#ffffff`
174
+ - Text: `#292e41`
175
+ - Radius: 40px
176
+ - Padding: 3px 12px
177
+ - Font: 13px Pretendard weight 700
178
+ - Use: Inline white pill links (공식관 입장하기)
179
+
180
+ ### Inputs
181
+
182
+ **Hero Keyword Search**
183
+ - Background: `#ffffff`
184
+ - Text: `#292e41`
185
+ - Border: 2px solid `#2d67ff`
186
+ - Radius: 28px
187
+ - Height: 52px
188
+ - Font: 16px Pretendard weight 400
189
+ - Placeholder: `#8491a7`
190
+ - Use: The homepage centerpiece search field
191
+
192
+ ### Cards & Containers
193
+
194
+ **Job Card**
195
+ - Background: `#ffffff`
196
+ - Text: `#292e41`
197
+ - Border: 1px solid `#d7dce5`
198
+ - Radius: 16px
199
+ - Padding: 16px
200
+ - Shadow: `rgba(17,42,128,0.08) 2px 6px 16px`
201
+ - Use: Job-posting card in the list and featured grid
202
+
203
+ **Tinted Surface Card**
204
+ - Background: `#f4f6fa`
205
+ - Text: `#292e41`
206
+ - Border: 1px solid `#eaedf4`
207
+ - Radius: 16px
208
+ - Use: Utility cards — tool shortcuts, greeting links
209
+
210
+ ### Tabs
211
+
212
+ **Region Segmented Tab**
213
+ - Active: text `#475067` + 2px bottom border `#4876ef`
214
+ - Inactive: text `#67738e`
215
+ - Font: 20px Pretendard weight 700
216
+ - Use: 국내 / 해외 segmented switch on the jobs page
217
+
218
+ ### Badges
219
+
220
+ **Urgency / D-day**
221
+ - Background: `#fff7d6`
222
+ - Text: `#ff5656`
223
+ - Radius: 4px
224
+ - Font: 12px Pretendard weight 700
225
+ - Use: D-day countdown and urgency flags on highlighted listings
226
+
227
+ **Selected Filter Chip**
228
+ - Background: `#eff5ff`
229
+ - Text: `#292e41`
230
+ - Radius: 4px
231
+ - Font: 13px Pretendard weight 400
232
+ - Use: Selected region / filter chip (e.g., 서울 (64,706))
233
+
234
+ ---
235
+
236
+ **Verified:** 2026-06-26 (omd:add-reference CREATE — Tier 1 live inspect, 2 surfaces + own CSS token scales)
237
+ **Tier 1 sources:** https://www.saramin.co.kr/zf_user/, https://www.saramin.co.kr/zf_user/jobs/list/domestic, https://saramin.github.io/
238
+ **Tier 2 sources:** getdesign.md/saramin (directory shell — no usable KR token data); styles.refero.design (not listed — KR under-coverage)
239
+ **Conflicts unresolved:** none
240
+
241
+ ## 5. Layout Principles
242
+
243
+ ### Spacing System
244
+ - Base unit: 4px
245
+ - Scale: 4px, 8px, 12px, 16px, 20px, 24px, 48px
246
+ - Notable: Card and list padding lands consistently at 16px; horizontal control padding clusters at 13–14px, keeping the dense header chrome tight but tappable
247
+
248
+ ### Grid & Container
249
+ - Centered max-width content column with a fixed top nav (64px) over the keyword-search band
250
+ - Jobs surface is filter-first: a sticky filter rail (region / job / keyword) above a vertically stacked list of 16px-radius cards
251
+ - Featured/recommendation modules use horizontal card carousels with `다음` (next) arrow buttons
252
+ - Region selectors render as a dense grid of count-bearing chips (서울 (64,706), 경기 (55,520) …)
253
+
254
+ ### Whitespace Philosophy
255
+ - **Controlled density**: Saramin embraces information density — the goal is comparison at speed — but fences each cluster with a tinted `#f4f6fa` surface and `#d7dce5` hairlines so the eye can parse zones.
256
+ - **Tint as grouping**: Selected and hovered states wash to a pale blue (`#eff5ff`) rather than adding borders, keeping the grid visually quiet.
257
+ - **Cards as the unit**: Almost everything substantive is a 16px-radius card; rhythm comes from consistent card gaps, not decorative spacing.
258
+
259
+ ### Border Radius Scale
260
+ - Small (4px): chips, badges, inline tags
261
+ - Medium (8px–12px): buttons, small controls
262
+ - Large (16px): cards and containers — the workhorse
263
+ - Pill (20px / 28px): AI pill, hero search field
264
+ - Round (40px): inline white pills
265
+ - Full (9999px): circular avatars and icon buttons
266
+
267
+ ## 6. Depth & Elevation
268
+
269
+ | Level | Treatment | Use |
270
+ |-------|-----------|-----|
271
+ | Flat (Level 0) | No shadow | Page background, inline text, most rows |
272
+ | Tint (Level 1) | `#f4f6fa` surface / `#eff5ff` selected wash | Zone separation without elevation |
273
+ | Hairline (Level 2) | `1px solid #d7dce5` | Card outlines, dividers |
274
+ | Card (Level 3) | `rgba(17,42,128,0.08) 2px 6px 16px` | Job cards, featured modules |
275
+ | Soft (Level 4) | `rgba(55,63,87,0.13) 0px 6px 10px` | Carousel arrows, floating controls |
276
+ | Glow (Accent) | `rgba(0,161,248,0.3) 0px 0px 10px` | AI feature emphasis (cyan glow) |
277
+
278
+ **Shadow Philosophy**: Saramin's signature elevation is a *blue* shadow — `rgba(17,42,128,0.08)`, a deep navy tint rather than neutral grey. Cards therefore lift in a way that echoes the brand blue instead of looking generically dropped onto the page. Neutral slate shadows (`rgba(55,63,87,...)`) are reserved for secondary floating controls like carousel arrows, and the one expressive exception is the AI feature glow (`rgba(0,161,248,0.3)`), a soft cyan halo that visually tags the newer machine-learning surfaces as distinct from the classic catalog.
279
+
280
+ ## 7. Do's and Don'ts
281
+
282
+ ### Do
283
+ - Reserve action blue (`#4876ef`) for interactive elements — CTA, links, active-tab underline
284
+ - Use near-black blue ink (`#292e41`) for text rather than pure black
285
+ - Set everything in Pretendard with the `Malgun Gothic` fallback; rely on the 400/700 two-weight contrast
286
+ - Zone dense content with tinted `#f4f6fa` surfaces and `#d7dce5` hairlines
287
+ - Lift cards on the navy-tinted shadow (`rgba(17,42,128,0.08)`) so elevation stays on-brand
288
+ - Use the brighter blue (`#2d67ff`) only for the hero search outline — the page's focal control
289
+ - Tag AI features with the sky-blue glow (`#02c6ff`); flag urgency with coral (`#ff5656`)
290
+ - Tint premium/highlighted listings with cream (`#fff7d6`) so paid rows read as "lit"
291
+ - Keep cards on a 16px radius and pad them at 16px
292
+
293
+ ### Don't
294
+ - Spread the action blue across non-interactive decoration — it dilutes the "click me" signal
295
+ - Use pure black for body text — the system's ink is `#292e41`
296
+ - Reach for heavy borders or grey drop shadows to separate content — use tint and the navy shadow
297
+ - Introduce a second display typeface — Pretendard carries the whole system
298
+ - Mix the accent colors' jobs (coral is urgency/error, sky-blue is AI, cream is premium) — each hue means one thing
299
+ - Apply the cyan glow to ordinary buttons — it is the AI marker only
300
+ - Let card radii drift below 16px — consistency is what keeps the dense grid calm
301
+
302
+ ## 8. Responsive Behavior
303
+
304
+ ### Breakpoints
305
+ | Name | Width | Key Changes |
306
+ |------|-------|-------------|
307
+ | Mobile | <768px | Single column, filter rail collapses to sheets, cards stack full-width |
308
+ | Tablet | 768–1024px | 2-column card grids, condensed nav |
309
+ | Desktop | 1024–1440px | Full filter rail + multi-column feed, fixed top nav |
310
+
311
+ ### Touch Targets
312
+ - Top-nav items at 64px height with comfortable horizontal spacing
313
+ - AI search pill at 40px height; outline header buttons at 32px
314
+ - Region/filter chips sized for tap with count labels inline
315
+
316
+ ### Collapsing Strategy
317
+ - Hero search: full-width 28px-radius field maintained, controls wrap below on mobile
318
+ - Filter rail: region / job / keyword selectors collapse into bottom-sheet pickers
319
+ - Card feed: multi-column grid → single stacked column, 16px radius preserved
320
+ - Carousels: arrow controls give way to native horizontal swipe
321
+
322
+ ### Image Behavior
323
+ - Company logos render inside fixed-ratio card thumbnails
324
+ - Premium/highlighted rows keep their cream (`#fff7d6`) tint across breakpoints
325
+ - Card shadows persist at all sizes, keeping the navy-tinted depth consistent
326
+
327
+ ## 9. Agent Prompt Guide
328
+
329
+ ### Quick Color Reference
330
+ - Primary CTA / link: Action Blue (`#4876ef`)
331
+ - CTA pressed: Blue Strong (`#3157dd`)
332
+ - Search outline: Blue Bright (`#2d67ff`)
333
+ - Selected wash: Blue Tint (`#eff5ff`)
334
+ - Heading / text: Ink (`#292e41`)
335
+ - Secondary text: Body (`#373f57`)
336
+ - Tertiary text: Slate (`#475067`)
337
+ - Muted text: Muted (`#5c667b`) / Muted Alt (`#67738e`)
338
+ - Placeholder / icon: Faint (`#8491a7`)
339
+ - Surface: `#f4f6fa`; Soft surface: `#f8fafc`; Canvas: `#ffffff`
340
+ - Border: Hairline (`#d7dce5`); inner divider (`#eaedf4`)
341
+ - AI accent: Sky (`#02c6ff`); urgency: Coral (`#ff5656`); premium tint: Cream (`#fff7d6`); success: Green (`#17a187`)
342
+
343
+ ### Example Component Prompts
344
+ - "Create a job card: white `#ffffff` background, 1px solid `#d7dce5` border, 16px radius, 16px padding, shadow `rgba(17,42,128,0.08) 2px 6px 16px`. Title 16px Pretendard 700 in `#292e41`, company meta 13px 400 in `#5c667b`, a coral `#ff5656` D-day badge on a `#fff7d6` highlight strip."
345
+ - "Build the hero search: white field, 2px solid `#2d67ff` border, 28px radius, 52px tall, 16px Pretendard, placeholder `#8491a7`. Right-aligned AI pill: `#02c6ff` background, white text, 20px radius, cyan glow `rgba(0,161,248,0.3)`."
346
+ - "Design a region filter: chips at 4px radius, selected chip `#eff5ff` background with `#292e41` text. Segmented tab 국내/해외 at 20px Pretendard 700: active `#475067` with a 2px `#4876ef` underline, inactive `#67738e`."
347
+ - "Primary CTA button: `#4876ef` background, white text, 8px radius, 15px Pretendard 700, hover `#3157dd`."
348
+
349
+ ### Iteration Guide
350
+ 1. Pretendard for all text; 400 for reading, 700 for emphasis — no second family
351
+ 2. Action blue (`#4876ef`) only on interactive elements
352
+ 3. Ink is `#292e41`, not black; muted ladder is `#475067` → `#5c667b` → `#67738e` → `#8491a7`
353
+ 4. Separate with tint (`#f4f6fa`) and hairlines (`#d7dce5`), never heavy chrome
354
+ 5. Cards: 16px radius, 16px padding, navy-tinted shadow `rgba(17,42,128,0.08)`
355
+ 6. Accent meanings are fixed — sky `#02c6ff` = AI, coral `#ff5656` = urgency, cream `#fff7d6` = premium
356
+
357
+ ---
358
+
359
+ ## 10. Voice & Tone
360
+
361
+ Saramin's voice is **practical, encouraging, and matchmaking-framed** — it positions itself as the partner that hands you the right opportunity rather than a passive listings board. The brand line *"나에게 딱 맞는 커리어만 매치, 사람인!"* ("Only the career that fits me — matched, Saramin!") sets the register: personal, benefit-first, lightly upbeat without hype. Copy is concrete and verb-led ("취업 준비, 여기서 다 끝낼 수 있어요" / "You can finish all your job-prep right here"), and scale is stated as reassurance, not boast ("1,700만명이 선택한 사람인").
362
+
363
+ | Context | Tone |
364
+ |---|---|
365
+ | Brand tagline | Personal, matchmaking-framed. "나에게 딱 맞는 커리어만 매치, 사람인!" |
366
+ | Hero / section copy | Concrete promise. "취업 준비, 여기서 다 끝낼 수 있어요." |
367
+ | Navigation / labels | Plain, functional. "채용정보", "기업·연봉", "커뮤니티", "취업 자료". |
368
+ | Tool & feature names | Descriptive. "AI 검색", "AI서류합격코칭", "맞춤법 검사", "연봉계산기". |
369
+ | CTAs | Direct, low-pressure. "로그인", "회원가입", "공식관 입장하기". |
370
+ | Trust / scale | Calm reassurance. "1,700만명이 선택한 사람인". |
371
+
372
+ **Voice samples (verbatim from live surfaces):**
373
+ - "나에게 딱 맞는 커리어만 매치, 사람인!" — brand tagline (page title meta). *(verified live 2026-06-26)*
374
+ - "취업 준비, 여기서 다 끝낼 수 있어요" — hero promise. *(verified live 2026-06-26)*
375
+ - "커리어의 시작, 사람인" — search-field brand line. *(verified live 2026-06-26)*
376
+ - "나에게 딱 맞는 커리어만 매치! 사람인에서 새로운 기회를 제안 받고…" — meta description. *(verified live 2026-06-26)*
377
+
378
+ **Forbidden register**: hard-sell urgency that pressures applicants, fear-based "you'll miss out" framing left unsupported, undefined recruiting jargon, exclamation-stacked hype.
379
+
380
+ ## 11. Brand Narrative
381
+
382
+ Saramin (사람인) — literally a play on *사람* ("person") with the homophonic *人* — is one of Korea's leading 취업·채용 (job-search and recruiting) platforms, operated by the KOSDAQ-listed company Saramin (사람인, formerly Saramin HR). The saramin.co.kr service grew into a national-scale marketplace connecting job seekers with employers, and the homepage states its reach plainly: *"1,700만명이 선택한 사람인"* (chosen by 17 million members). Its mission, encoded in the tagline *"나에게 딱 맞는 커리어만 매치"*, reframes a job board as a **matching** product — the platform's job is to surface the opportunity that fits *you*, not to dump every listing on the table.
383
+
384
+ The product is a comprehensive career hub: keyword and AI-assisted job search, region/role/keyword filtering across hundreds of thousands of live postings (서울 alone shows 64,706), company and salary intelligence (기업·연봉), interview reviews, a community, and a growing set of AI tools (AI 검색, AI서류합격코칭) plus practical utilities (연봉계산기, 맞춤법 검사). Saramin also maintains an official engineering culture in public — the Saramin Tech Blog at `saramin.github.io` ("Saramin Tech Blog / 사람인 기술 블로그") — signaling a company that treats its platform as an evolving engineering product, not a static directory.
385
+
386
+ What Saramin's design refuses: the cluttered, banner-heavy chrome of legacy Korean portals, and the cold institutional look of enterprise HR software. What it embraces: a single disciplined action blue, a calm blue-black ink, tinted-surface zoning that tames extreme information density, and a navy-tinted shadow that makes even a wall of cards feel composed and on-brand.
387
+
388
+ ## 12. Principles
389
+
390
+ 1. **Match, don't just list.** The brand promise is fit, not volume. *UI implication:* recommendation modules, AI search, and personalized rows ("회원님을 위한 추천공고") get prime placement; the action blue points to the next best step.
391
+ 2. **Density is a feature, not a flaw.** Job seekers compare at speed. *UI implication:* embrace information-rich layouts but fence every cluster with tint (`#f4f6fa`) and hairlines (`#d7dce5`) so the page stays parseable.
392
+ 3. **One color means action.** *UI implication:* reserve `#4876ef` for interactive elements so, in a crowded grid, "what do I click" is never ambiguous.
393
+ 4. **Accents are a vocabulary.** *UI implication:* sky-blue (`#02c6ff`) = AI, coral (`#ff5656`) = urgency, cream (`#fff7d6`) = premium. Each hue has exactly one meaning.
394
+ 5. **Calm under load.** *UI implication:* blue-black ink, navy-tinted shadows, and a single typeface keep a high-density screen feeling steady rather than frantic.
395
+
396
+ ## 13. Personas
397
+
398
+ *Personas below are fictional archetypes informed by publicly observable Saramin user segments (Korean job seekers and HR/recruiting teams), not individual people.*
399
+
400
+ **김민서, 26, 서울.** A new graduate scanning 신입·인턴 postings every morning. Lives in the recommendation feed and the D-day badges; trusts Saramin because the AI search surfaces roles that actually fit her major instead of a flood of irrelevant listings.
401
+
402
+ **이준호, 34, 경기.** A mid-career engineer quietly exploring 이직 (a move). Uses 기업·연봉 and interview reviews to vet employers before ever applying. Values the calm, scannable card feed — he can compare ten companies in a sitting without the page feeling like an ad wall.
403
+
404
+ **박지영, 41, 서울.** An HR manager at a mid-sized company posting roles and screening applicants through Saramin's employer tools (기업서비스). Needs dense, reliable controls and trusts a platform that publishes its own engineering blog — it reads as a serious, maintained product.
405
+
406
+ ## 14. States
407
+
408
+ | State | Treatment |
409
+ |---|---|
410
+ | **Empty (no search results)** | White canvas, an Ink (`#292e41`) line explaining no matches, and a `#4876ef` CTA to adjust filters. No decorative clutter. |
411
+ | **Empty (no saved jobs)** | Muted (`#5c667b`) single line with a path back to search. Calm and practical. |
412
+ | **Loading (results fetch)** | Skeleton cards on `#f4f6fa` at final 16px-radius dimensions; quiet pulse, no heavy shimmer. |
413
+ | **Selected (filter / region)** | Chip washes to blue tint (`#eff5ff`); active segmented tab gets a 2px `#4876ef` underline with `#475067` text. |
414
+ | **Highlighted (premium listing)** | Row tinted cream (`#fff7d6`); D-day flagged with coral (`#ff5656`). |
415
+ | **Error (form validation)** | Field-level message in coral (`#ff5656`) below the input, describing what is valid — not just "필수". |
416
+ | **Success (application sent)** | Brief inline confirmation; success cues use teal-green (`#17a187`). No celebratory emoji. |
417
+ | **Disabled** | Faint (`#8491a7`) text on reduced-opacity surface; blue actions fade rather than turn grey to preserve brand read. |
418
+
419
+ ## 15. Motion & Easing
420
+
421
+ **Durations**:
422
+
423
+ | Token | Value | Use |
424
+ |---|---|---|
425
+ | `motion-fast` | 120ms | Hover, chip select, focus |
426
+ | `motion-standard` | 200ms | Card/section reveal, dropdown, sheet |
427
+ | `motion-slow` | 320ms | Page-level transitions, carousel slides |
428
+
429
+ **Easings**:
430
+
431
+ | Token | Curve | Use |
432
+ |---|---|---|
433
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — sheets, dropdowns, cards |
434
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
435
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
436
+
437
+ **Motion rules**: Motion is functional and restrained — appropriate for a high-density utility. Hover and selection respond at `motion-fast` with subtle tint shifts; result cards and recommendation modules fade in from below at `motion-standard / ease-enter`; carousels slide at `motion-slow`. The one expressive flourish is the AI feature glow (`rgba(0,161,248,0.3)`), a soft cyan pulse that draws attention to machine-learning surfaces. No bounce or spring — a recruitment platform signals reliability, not playfulness. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and the glow holds static; the product stays fully functional.
438
+
439
+ <!--
440
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
441
+
442
+ Tier 1 live inspect (2026-06-26) via playwright getComputedStyle (headed real Chrome,
443
+ --disable-http2; headless Chromium connections were reset by Saramin's edge) on two surfaces:
444
+ - https://www.saramin.co.kr/zf_user/ (homepage)
445
+ - https://www.saramin.co.kr/zf_user/jobs/list/domestic (regional jobs list)
446
+ Cross-checked against Saramin's own /sri_css token stylesheets (gray/blue/coral/green/yellow
447
+ scales: --blue80 #4876ef, --blue90 #2d67ff, --gray120 #292e41, --gray40 #d7dce5,
448
+ --gray20 #f4f6fa, --coral90 #ff5656, --green100 #17a187, --yellow20 #fff7d6, --skyBlue80 #02c6ff).
449
+
450
+ Voice samples (§10) are verbatim from the live homepage (page title meta, hero copy, meta
451
+ description, search-field brand line).
452
+
453
+ Brand narrative (§11): Saramin (사람인) is a KOSDAQ-listed Korean recruitment platform;
454
+ "1,700만명이 선택한 사람인" and the matchmaking tagline are quoted from the live homepage.
455
+ The official Saramin Tech Blog (saramin.github.io, "Saramin Tech Blog / 사람인 기술 블로그")
456
+ confirms an active first-party engineering surface. Country = KR (parent-company HQ, Seoul).
457
+ Broader company facts are widely documented public knowledge, not quoted Saramin statements.
458
+
459
+ Personas (§13) are fictional archetypes informed by publicly observable Saramin user segments
460
+ (Korean job seekers, HR/recruiting teams). Names are illustrative; they do not refer to real people.
461
+
462
+ Interpretive claims (e.g., "one color means action", "density is a feature", "the blue shadow
463
+ is on-brand elevation") are editorial readings connecting Saramin's observed design to its
464
+ positioning, not directly sourced Saramin statements.
465
+ -->