oh-my-design-cli 1.8.6 → 1.9.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/.claude/hooks/lib/preferences-parser.cjs +1 -0
- package/.claude/hooks/lib/preferences-writer.cjs +1 -0
- package/.claude/hooks/post-edit-watch.cjs +1 -0
- package/.claude/hooks/session-end-foldin.cjs +1 -0
- package/.claude/hooks/session-state-loader.cjs +1 -0
- package/.claude/hooks/skill-activation.cjs +1 -0
- package/.claude/settings.json +10 -1
- package/.github/assets/logo-bg.png +0 -0
- package/AGENTS.md +20 -1
- package/CHANGELOG.md +482 -0
- package/MIGRATION.md +103 -0
- package/README.ja.md +56 -19
- package/README.ko.md +47 -30
- package/README.md +48 -30
- package/README.zh-TW.md +59 -22
- package/agents/AGENT.md +8 -7
- package/agents/omd-codex-image.md +1 -1
- package/agents/omd-critic.md +6 -7
- package/agents/omd-designer-review.md +1 -1
- package/agents/omd-final-qa.md +1 -1
- package/agents/omd-humanizer.md +38 -0
- package/agents/omd-kr-writer.md +3 -4
- package/agents/omd-locale-adapter.md +12 -16
- package/agents/omd-master.md +24 -19
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-orchestrator.md +7 -8
- package/agents/omd-slop-auditor.md +31 -0
- package/agents/omd-ux-researcher.md +1 -1
- package/data/reference-fingerprints.json +2761 -85
- package/dist/bin/oh-my-design.js +16 -8
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/chunk-UJIHCEYF.js +99 -0
- package/dist/chunk-UJIHCEYF.js.map +1 -0
- package/dist/doctor-LDWSFM3I.js +763 -0
- package/dist/doctor-LDWSFM3I.js.map +1 -0
- package/dist/install-skills-ZZFNJ2II.js +1120 -0
- package/dist/install-skills-ZZFNJ2II.js.map +1 -0
- package/docs/CLI_QUICKSTART.md +157 -0
- package/package.json +25 -4
- package/scripts/postinstall.cjs +5 -4
- package/skills/claude-design/SKILL.md +38 -14
- package/skills/claude-design/references/claude-design-flow.md +11 -11
- package/skills/claude-design/references/codebase-analysis.md +5 -4
- package/skills/omd-final-qa/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +51 -50
- package/skills/omd-humanize/SKILL.md +116 -0
- package/skills/omd-humanize/agents/openai.yaml +4 -0
- package/skills/omd-humanize/references/locale-playbooks.md +102 -0
- package/skills/omd-humanize/references/sources.md +11 -0
- package/skills/omd-init/SKILL.md +18 -12
- package/skills/omd-locale-adapter/SKILL.md +58 -91
- package/skills/omd-orchestrator/SKILL.md +11 -5
- package/skills/omd-reference-capture/SKILL.md +80 -26
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
- package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
- package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
- package/skills/omd-slop-audit/SKILL.md +110 -0
- package/skills/omd-slop-audit/agents/openai.yaml +4 -0
- package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
- package/skills/omd-slop-audit/references/sources.md +24 -0
- package/web/references/104/DESIGN.md +354 -0
- package/web/references/11st/DESIGN.md +197 -316
- package/web/references/29cm/DESIGN.md +297 -393
- package/web/references/42dot/DESIGN.md +390 -0
- package/web/references/8percent/DESIGN.md +438 -0
- package/web/references/ably/DESIGN.md +267 -572
- package/web/references/acer/DESIGN.md +329 -0
- package/web/references/airbnb/DESIGN.md +219 -557
- package/web/references/airbridge/DESIGN.md +451 -0
- package/web/references/alipay/DESIGN.md +179 -420
- package/web/references/apple/DESIGN.md +224 -498
- package/web/references/asleep/DESIGN.md +402 -0
- package/web/references/au/DESIGN.md +334 -0
- package/web/references/autopedia/DESIGN.md +382 -0
- package/web/references/aws-cloudscape/DESIGN.md +241 -0
- package/web/references/baemin/DESIGN.md +332 -491
- package/web/references/banksalad/DESIGN.md +269 -180
- package/web/references/barogo/DESIGN.md +416 -0
- package/web/references/beusable/DESIGN.md +464 -0
- package/web/references/bigin/DESIGN.md +454 -0
- package/web/references/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- package/web/references/buzzvil/DESIGN.md +457 -0
- package/web/references/cafe24/DESIGN.md +472 -0
- package/web/references/catchtable/DESIGN.md +219 -264
- package/web/references/cgv/DESIGN.md +317 -0
- package/web/references/channeltalk/DESIGN.md +210 -336
- package/web/references/china-airlines/DESIGN.md +291 -0
- package/web/references/cjonstyle/DESIGN.md +453 -0
- package/web/references/class101/DESIGN.md +168 -387
- package/web/references/classum/DESIGN.md +228 -203
- package/web/references/claude/DESIGN.md +242 -479
- package/web/references/clay/DESIGN.md +179 -377
- package/web/references/clickhouse/DESIGN.md +254 -343
- package/web/references/codeit/DESIGN.md +470 -0
- package/web/references/cohere/DESIGN.md +214 -324
- package/web/references/coinone/DESIGN.md +199 -179
- package/web/references/corca/DESIGN.md +414 -0
- package/web/references/coupang/DESIGN.md +205 -475
- package/web/references/cursor/DESIGN.md +240 -381
- package/web/references/dabang/DESIGN.md +248 -213
- package/web/references/dable/DESIGN.md +431 -0
- package/web/references/datarize/DESIGN.md +338 -0
- package/web/references/dealicious/DESIGN.md +402 -0
- package/web/references/drdiary/DESIGN.md +404 -0
- package/web/references/elastic/DESIGN.md +238 -0
- package/web/references/elevenlabs/DESIGN.md +183 -321
- package/web/references/elice/DESIGN.md +445 -0
- package/web/references/eslite/DESIGN.md +257 -0
- package/web/references/evaair/DESIGN.md +338 -0
- package/web/references/expo/DESIGN.md +238 -331
- package/web/references/familymart-tw/DESIGN.md +254 -0
- package/web/references/ferrari/DESIGN.md +160 -377
- package/web/references/figma/DESIGN.md +197 -451
- package/web/references/fitpet/DESIGN.md +445 -0
- package/web/references/flex/DESIGN.md +170 -253
- package/web/references/framer/DESIGN.md +197 -340
- package/web/references/freee/DESIGN.md +211 -533
- package/web/references/friendliai/DESIGN.md +431 -0
- package/web/references/frip/DESIGN.md +440 -0
- package/web/references/furiosaai/DESIGN.md +450 -0
- package/web/references/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- package/web/references/goorm/DESIGN.md +470 -0
- package/web/references/greencar/DESIGN.md +420 -0
- package/web/references/hackle/DESIGN.md +472 -0
- package/web/references/hashicorp/DESIGN.md +273 -318
- package/web/references/heydealer/DESIGN.md +429 -0
- package/web/references/humanscape/DESIGN.md +433 -0
- package/web/references/hwahae/DESIGN.md +453 -0
- package/web/references/hyundai/DESIGN.md +158 -368
- package/web/references/hyundaicard/DESIGN.md +171 -121
- package/web/references/ibm/DESIGN.md +227 -378
- package/web/references/idus/DESIGN.md +450 -0
- package/web/references/igaworks/DESIGN.md +437 -0
- package/web/references/inflearn/DESIGN.md +221 -366
- package/web/references/intuit/DESIGN.md +244 -0
- package/web/references/jandi/DESIGN.md +191 -291
- package/web/references/jobplanet/DESIGN.md +415 -0
- package/web/references/kakao/DESIGN.md +287 -475
- package/web/references/kakaobank/DESIGN.md +220 -521
- package/web/references/kakaogames/DESIGN.md +220 -0
- package/web/references/kakaopay/DESIGN.md +207 -526
- package/web/references/karrot/DESIGN.md +227 -251
- package/web/references/kb-kookmin/DESIGN.md +308 -0
- package/web/references/kbank/DESIGN.md +220 -175
- package/web/references/kcd/DESIGN.md +432 -0
- package/web/references/kmong/DESIGN.md +281 -356
- package/web/references/krds/DESIGN.md +245 -19
- package/web/references/kream/DESIGN.md +224 -359
- package/web/references/kurly/DESIGN.md +211 -533
- package/web/references/kyobobook/DESIGN.md +445 -0
- package/web/references/lablup/DESIGN.md +474 -0
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lemonbase/DESIGN.md +452 -0
- package/web/references/lguplus/DESIGN.md +259 -0
- package/web/references/likelion/DESIGN.md +283 -0
- package/web/references/line/DESIGN.md +396 -355
- package/web/references/linear.app/DESIGN.md +209 -562
- package/web/references/lotteon/DESIGN.md +386 -0
- package/web/references/lovable/DESIGN.md +255 -349
- package/web/references/makinarocks/DESIGN.md +242 -0
- package/web/references/maum-ai/DESIGN.md +423 -0
- package/web/references/medibloc/DESIGN.md +425 -0
- package/web/references/megabox/DESIGN.md +232 -0
- package/web/references/mercari/DESIGN.md +217 -434
- package/web/references/microsoft/DESIGN.md +234 -388
- package/web/references/mildang/DESIGN.md +411 -0
- package/web/references/millie/DESIGN.md +183 -504
- package/web/references/minimax/DESIGN.md +264 -322
- package/web/references/miricanvas/DESIGN.md +182 -355
- package/web/references/miro/DESIGN.md +234 -232
- package/web/references/mistral.ai/DESIGN.md +231 -314
- package/web/references/mixi/DESIGN.md +234 -0
- package/web/references/moin/DESIGN.md +445 -0
- package/web/references/mongodb/DESIGN.md +219 -316
- package/web/references/moreh/DESIGN.md +437 -0
- package/web/references/musinsa/DESIGN.md +184 -510
- package/web/references/mynavi/DESIGN.md +242 -0
- package/web/references/myrealtrip/DESIGN.md +169 -406
- package/web/references/naver/DESIGN.md +328 -499
- package/web/references/naverwebtoon/DESIGN.md +172 -395
- package/web/references/neosapience/DESIGN.md +441 -0
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/nota/DESIGN.md +451 -0
- package/web/references/notion/DESIGN.md +271 -475
- package/web/references/nrise/DESIGN.md +417 -0
- package/web/references/ohouse/DESIGN.md +210 -549
- package/web/references/oliveyoung/DESIGN.md +217 -326
- package/web/references/ollama/DESIGN.md +241 -308
- package/web/references/onestore/DESIGN.md +248 -0
- package/web/references/palantir/DESIGN.md +256 -0
- package/web/references/panasonic/DESIGN.md +276 -0
- package/web/references/patternfly/DESIGN.md +259 -0
- package/web/references/payhere/DESIGN.md +438 -0
- package/web/references/pega/DESIGN.md +262 -0
- package/web/references/peoplefund/DESIGN.md +431 -0
- package/web/references/petfriends/DESIGN.md +428 -0
- package/web/references/pinkfong/DESIGN.md +199 -367
- package/web/references/pinterest/DESIGN.md +258 -308
- package/web/references/portone/DESIGN.md +446 -0
- package/web/references/poya/DESIGN.md +286 -0
- package/web/references/pozalabs/DESIGN.md +438 -0
- package/web/references/protopie/DESIGN.md +419 -0
- package/web/references/qraft/DESIGN.md +448 -0
- package/web/references/queenit/DESIGN.md +432 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/rebellions/DESIGN.md +449 -0
- package/web/references/recruit/DESIGN.md +247 -0
- package/web/references/remember/DESIGN.md +202 -396
- package/web/references/resend/DESIGN.md +274 -348
- package/web/references/returnzero/DESIGN.md +460 -0
- package/web/references/sakura-internet/DESIGN.md +269 -0
- package/web/references/samsung/DESIGN.md +157 -359
- package/web/references/sandoll/DESIGN.md +445 -0
- package/web/references/sanity/DESIGN.md +241 -375
- package/web/references/saramin/DESIGN.md +465 -0
- package/web/references/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -0
- package/web/references/shiftee/DESIGN.md +468 -0
- package/web/references/shinhanbank/DESIGN.md +161 -341
- package/web/references/shinhancard/DESIGN.md +208 -319
- package/web/references/sionic/DESIGN.md +454 -0
- package/web/references/sktelecom/DESIGN.md +310 -0
- package/web/references/socar/DESIGN.md +125 -32
- package/web/references/softbank/DESIGN.md +231 -0
- package/web/references/solapi/DESIGN.md +483 -0
- package/web/references/sony/DESIGN.md +234 -0
- package/web/references/soop/DESIGN.md +261 -0
- package/web/references/spacex/DESIGN.md +184 -323
- package/web/references/spotify/DESIGN.md +253 -394
- package/web/references/squeezebits/DESIGN.md +441 -0
- package/web/references/stayfolio/DESIGN.md +422 -0
- package/web/references/stripe/DESIGN.md +212 -491
- package/web/references/supabase/DESIGN.md +244 -316
- package/web/references/supertone/DESIGN.md +413 -0
- package/web/references/tabling/DESIGN.md +415 -0
- package/web/references/taishinbank/DESIGN.md +243 -0
- package/web/references/teamlab/DESIGN.md +240 -0
- package/web/references/teamsparta/DESIGN.md +472 -0
- package/web/references/tellingme/DESIGN.md +392 -0
- package/web/references/tesla/DESIGN.md +244 -427
- package/web/references/thsr/DESIGN.md +284 -0
- package/web/references/thumbtack/DESIGN.md +302 -0
- package/web/references/together.ai/DESIGN.md +257 -304
- package/web/references/toss/DESIGN.md +251 -593
- package/web/references/toss-securities/DESIGN.md +255 -178
- package/web/references/tossbank/DESIGN.md +195 -491
- package/web/references/toyota/DESIGN.md +238 -0
- package/web/references/tving/DESIGN.md +197 -245
- package/web/references/typed/DESIGN.md +413 -0
- package/web/references/uber/DESIGN.md +256 -333
- package/web/references/udn/DESIGN.md +250 -0
- package/web/references/upbit/DESIGN.md +145 -256
- package/web/references/upstage/DESIGN.md +211 -204
- package/web/references/uswds/DESIGN.md +287 -0
- package/web/references/vercel/DESIGN.md +236 -440
- package/web/references/vuno/DESIGN.md +413 -0
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/weverse/DESIGN.md +437 -0
- package/web/references/wise/DESIGN.md +223 -231
- package/web/references/wisetracker/DESIGN.md +462 -0
- package/web/references/wooribank/DESIGN.md +245 -0
- package/web/references/yanolja/DESIGN.md +250 -419
- package/web/references/yeogiotte/DESIGN.md +235 -418
- package/web/references/zapier/DESIGN.md +256 -377
- package/web/references/zendesk/DESIGN.md +288 -0
- package/web/references/zigzag/DESIGN.md +200 -621
- package/dist/install-skills-7UUDOLG2.js +0 -734
- package/dist/install-skills-7UUDOLG2.js.map +0 -1
|
@@ -8,349 +8,266 @@ primary_color: "#000000"
|
|
|
8
8
|
logo:
|
|
9
9
|
type: favicon
|
|
10
10
|
slug: "https://www.google.com/s2/favicons?domain=flex.team&sz=256"
|
|
11
|
-
verified: "2026-
|
|
11
|
+
verified: "2026-07-13"
|
|
12
12
|
omd: "0.1"
|
|
13
|
+
verification_v2:
|
|
14
|
+
schema: 2
|
|
15
|
+
checked: "2026-07-13"
|
|
16
|
+
surfaces:
|
|
17
|
+
- { id: home, kind: marketing, url: "https://flex.team/", inspected: "2026-07-13" }
|
|
18
|
+
- { id: about, kind: corporate-marketing, url: "https://flex.team/about", inspected: "2026-07-13" }
|
|
19
|
+
sources:
|
|
20
|
+
- { id: home-live, kind: product-surface, url: "https://flex.team/", captured: "2026-07-13" }
|
|
21
|
+
- { id: about-live, kind: product-surface, url: "https://flex.team/about", captured: "2026-07-13" }
|
|
22
|
+
conflicts: []
|
|
23
|
+
claims:
|
|
24
|
+
"tokens.colors.canvas": &home { surface_id: home, source_id: home-live, method: live-inspect, captured: "2026-07-13" }
|
|
25
|
+
"tokens.colors.ink": *home
|
|
26
|
+
"tokens.colors.on-dark": *home
|
|
27
|
+
"tokens.colors.action-lime": *home
|
|
28
|
+
"tokens.colors.announcement-orange": *home
|
|
29
|
+
"tokens.typography.family.ui": *home
|
|
30
|
+
"tokens.typography.about-display.size": &about { surface_id: about, source_id: about-live, method: live-inspect, captured: "2026-07-13" }
|
|
31
|
+
"tokens.typography.about-display.weight": *about
|
|
32
|
+
"tokens.typography.about-display.lineHeight": *about
|
|
33
|
+
"tokens.typography.about-display.use": *about
|
|
34
|
+
"tokens.typography.about-display-inverse.size": *about
|
|
35
|
+
"tokens.typography.about-display-inverse.weight": *about
|
|
36
|
+
"tokens.typography.about-display-inverse.lineHeight": *about
|
|
37
|
+
"tokens.typography.about-display-inverse.use": *about
|
|
38
|
+
"tokens.typography.body-emphasis.size": *about
|
|
39
|
+
"tokens.typography.body-emphasis.weight": *about
|
|
40
|
+
"tokens.typography.body-emphasis.lineHeight": *about
|
|
41
|
+
"tokens.typography.body-emphasis.use": *about
|
|
42
|
+
"tokens.typography.navigation.size": *about
|
|
43
|
+
"tokens.typography.navigation.weight": *about
|
|
44
|
+
"tokens.typography.navigation.lineHeight": *about
|
|
45
|
+
"tokens.typography.navigation.use": *about
|
|
46
|
+
"tokens.spacing.compact": *about
|
|
47
|
+
"tokens.spacing.nav-action-x": *about
|
|
48
|
+
"tokens.spacing.cta-y": *home
|
|
49
|
+
"tokens.spacing.cta-x": *home
|
|
50
|
+
"tokens.rounded.nav": *about
|
|
51
|
+
"tokens.rounded.badge": *home
|
|
52
|
+
"tokens.rounded.cta": *home
|
|
53
|
+
"tokens.components.relationship-story-card.type": *home
|
|
54
|
+
"tokens.components.relationship-story-card.bg": *home
|
|
55
|
+
"tokens.components.relationship-story-card.border": *home
|
|
56
|
+
"tokens.components.relationship-story-card.radius": *home
|
|
57
|
+
"tokens.components.relationship-story-card.padding": *home
|
|
58
|
+
"tokens.components.relationship-story-card.use": *home
|
|
13
59
|
tokens:
|
|
14
|
-
source:
|
|
15
|
-
extracted: "2026-
|
|
60
|
+
source: reconciled
|
|
61
|
+
extracted: "2026-07-13"
|
|
62
|
+
components_harvested: true
|
|
16
63
|
colors:
|
|
17
|
-
ink: "#1d1d1f"
|
|
18
64
|
canvas: "#ffffff"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
65
|
+
ink: "#111111"
|
|
66
|
+
on-dark: "#ffffff"
|
|
67
|
+
action-lime: "#00ff44"
|
|
68
|
+
announcement-orange: "#ff4d00"
|
|
22
69
|
typography:
|
|
23
|
-
family: {
|
|
24
|
-
display:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
rounded: { sm: 8, md: 10, lg: 16, full: 9999 }
|
|
31
|
-
shadow:
|
|
32
|
-
halo: "rgba(0,0,0,0.06) 0px 8px 20px -4px"
|
|
33
|
-
ring-active: "rgba(29,29,31,0.24) 0px 0px 0px 1px inset"
|
|
34
|
-
ring-inactive: "rgba(29,29,31,0.10) 0px 0px 0px 1px inset"
|
|
70
|
+
family: { ui: "Pretendard Variable" }
|
|
71
|
+
about-display: { size: 96, weight: 600, lineHeight: 1.00, use: "About-page relationship statement" }
|
|
72
|
+
about-display-inverse: { size: 80, weight: 600, lineHeight: 1.20, use: "Dark About-page statement" }
|
|
73
|
+
body-emphasis: { size: 17, weight: 600, lineHeight: 1.55, use: "About-page explanatory copy" }
|
|
74
|
+
navigation: { size: 14, weight: 700, lineHeight: 1.00, use: "Global navigation controls" }
|
|
75
|
+
spacing: { compact: 8, nav-action-x: 14, cta-y: 30, cta-x: 44 }
|
|
76
|
+
rounded: { nav: 8, badge: 18, cta: 24 }
|
|
35
77
|
components:
|
|
36
|
-
|
|
37
|
-
pill-inactive: { type: tab, bg: "#ffffff", fg: "#1d1d1f", radius: "10px", padding: "9px 12px", font: "15px / 600", use: "Other tabs in the SERVICES row" }
|
|
38
|
-
header-cta: { type: button, bg: "#000000", fg: "#ffffff", radius: "8px", padding: "8px 6px 8px 8px", font: "14px / 700", use: "Top navigation items over dark hero" }
|
|
39
|
-
card-manifesto: { type: card, bg: "#2d3338", fg: "#fdfdfd", radius: "16px", padding: "30px", font: "17px / 600", use: "Three-beat narrative cards in main-intro" }
|
|
40
|
-
components_harvested: true
|
|
78
|
+
relationship-story-card: { type: card, bg: "rgba(255,255,255,0.04)", border: "1px solid rgba(255,255,255,0.08)", radius: "16px", padding: "24px", use: "Non-interactive relationship-data story item observed on the public home surface" }
|
|
41
79
|
---
|
|
42
80
|
|
|
43
81
|
# flex — Design Reference
|
|
44
82
|
|
|
45
|
-
>
|
|
83
|
+
> **Relations Driven AX.** (Observed on `flex.team`, 2026-07-13)
|
|
46
84
|
>
|
|
47
|
-
> Korean HR
|
|
85
|
+
> Korean HR-data and AI platform reference: a black-and-white information field punctuated by an acid-lime conversion action. The public marketing surface frames AI as an understanding of organizational relationships and context, while the corporate About surface makes that same thesis concrete through very large editorial type and stark light/dark transitions.
|
|
48
86
|
|
|
49
87
|
---
|
|
50
88
|
|
|
51
89
|
## 1. Visual Theme & Atmosphere
|
|
52
90
|
|
|
53
|
-
|
|
91
|
+
flex is a Korean company building an HR-data-based AI platform for organizations: its public product language spans people and organization management, performance, payroll and benefits, and operational workflows. Its current expression is not the earlier “one ink / graphite card” system. The 2026 public site leads with **Relations Driven AX**—the claim that AI becomes useful when it understands the relationships and context inside an organization—and turns that idea into a high-contrast, editorial marketing system. Black or white fields establish the serious enterprise register; `#00FF44` appears as a deliberately loud action color rather than a general-purpose semantic palette. The About page gives the brand’s “Human Relations” reinterpretation of HR room to breathe in 80–96px type, then alternates dark and light narrative sections. This reference describes those current public marketing and corporate surfaces only; it does not treat the separate help center as product UI evidence.
|
|
54
92
|
|
|
55
|
-
What
|
|
93
|
+
What is distinctive in the observed surfaces:
|
|
56
94
|
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
- **
|
|
60
|
-
- **
|
|
61
|
-
|
|
62
|
-
---
|
|
95
|
+
- **Relationship data as the visual argument.** Large, plain-spoken statements carry the thesis before any UI treatment; application screenshots serve the story rather than becoming generic SaaS decoration.
|
|
96
|
+
- **Hard contrast, selective lime.** `#111111`/white carry most chrome and text, while `#00FF44` is reserved for primary conversion links.
|
|
97
|
+
- **Editorial scale plus dense enterprise copy.** About-page statements reach 96px, then resolve into 17px/600 explanatory copy and 15px supporting copy.
|
|
98
|
+
- **Rounded actions rather than rounded everything.** Global nav actions use 8px corners; campaign CTAs use 24px pills. No universal card-radius rule is asserted.
|
|
63
99
|
|
|
64
100
|
## 2. Layout & Grid
|
|
65
101
|
|
|
66
|
-
- **
|
|
67
|
-
- **
|
|
68
|
-
- **
|
|
69
|
-
- **
|
|
70
|
-
- **
|
|
71
|
-
|
|
72
|
-
---
|
|
102
|
+
- **Global announcement strip:** the two captured public surfaces begin with a 48px-high announcement link; it uses 60px horizontal padding at the 1440px collector viewport.
|
|
103
|
+
- **Global navigation:** on `/about`, the captured menu controls use 8px radius and 8px internal padding; the two conversion actions use 8px 14px padding.
|
|
104
|
+
- **About-page editorial hierarchy:** measured headline styles include 96px/600/96px on a light field and 80px/600/96px on a dark field. These are surface-local display treatments, not a claimed product-app type scale.
|
|
105
|
+
- **Conversion action:** the observed lime action is a 24px-radius link with 30px 44px padding and 17px/700 text on both captured public surfaces.
|
|
106
|
+
- **Boundary:** no container maximum, page section height, or responsive breakpoint is promoted because the supplied 1440×900 capture does not establish those values across viewports.
|
|
73
107
|
|
|
74
108
|
## 3. Color & Typography
|
|
75
109
|
|
|
76
|
-
### Color tokens
|
|
77
|
-
|
|
78
|
-
**Ink scale (single hue, alpha-stepped):**
|
|
79
|
-
- `#1D1D1F` — primary text on light
|
|
80
|
-
- `rgba(29,29,31,0.96)` — h2 (slight softening)
|
|
81
|
-
- `rgba(29,29,31,0.72)` — secondary copy
|
|
82
|
-
- `rgba(29,29,31,0.04)` — active pill fill / ghost button
|
|
83
|
-
- `rgba(29,29,31,0.10)` — inactive pill ring
|
|
84
|
-
- `rgba(29,29,31,0.24)` — active pill ring
|
|
85
|
-
|
|
86
|
-
**Surfaces:**
|
|
87
|
-
- `#FFFFFF` — light page
|
|
88
|
-
- `#000000` — hero pageDark
|
|
89
|
-
- `#2D3338` — graphite card (manifesto)
|
|
90
|
-
- `#FDFDFD` — soft white (card text)
|
|
110
|
+
### Color tokens
|
|
91
111
|
|
|
92
|
-
|
|
93
|
-
- `#
|
|
94
|
-
- `
|
|
112
|
+
- `#000000` — public-surface black field and the catalog primary color
|
|
113
|
+
- `#111111` — light-surface navigation text and solid navigation action background
|
|
114
|
+
- `#FFFFFF` — light canvas, on-dark text, and outline navigation action background
|
|
115
|
+
- `#00FF44` — primary marketing conversion action on home and About
|
|
116
|
+
- `#FF4D00` — compact “new” badge in the announcement strip
|
|
117
|
+
- `rgba(17,17,17,0.84)` — measured dark-on-light long-form emphasis
|
|
118
|
+
- `rgba(255,255,255,0.84)` and `rgba(255,255,255,0.48)` — measured on-dark supporting copy and label tones
|
|
95
119
|
|
|
96
|
-
|
|
120
|
+
The lime and orange are observed marketing accents with separate purposes; neither is promoted as a product-app status color.
|
|
97
121
|
|
|
98
|
-
### Typography
|
|
122
|
+
### Typography evidence classes
|
|
99
123
|
|
|
100
|
-
- **
|
|
101
|
-
- **
|
|
102
|
-
- **
|
|
103
|
-
- **
|
|
104
|
-
- **Pill / button**: `15px / 21px / 600-700`.
|
|
105
|
-
- **Meta / nav**: `14px / 14px / 500`.
|
|
106
|
-
- **Hero h1**: `28px / 28px / 700` — note the *compact* h1 (smaller than h2 below). flex inverts the usual hierarchy — the hero is a banner, the in-page h2 is the argument.
|
|
107
|
-
|
|
108
|
-
---
|
|
124
|
+
- **Live loaded Flex webfont:** both supplied public surfaces resolve visible text to `"Pretendard Variable", Pretendard, -apple-system, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif`. The collector classifies `Pretendard Variable` as loaded/high-confidence, records 351 visible uses across headings, body, navigation, badges, and actions, and resolves 92 Flex-hosted subset URLs under `static.flex.team`. The machine family token therefore names only `Pretendard Variable`.
|
|
125
|
+
- **Declared but unused fallback:** static `Pretendard` is present in declarations but has zero observed visible uses. `system-ui` appears once as an operating-system stack. Neither is promoted as another Flex UI-family token or rendered as a substitute specimen.
|
|
126
|
+
- **Measured public hierarchy:** `/about` includes 96px/600/96px and 80px/600/96px display samples, 17px/600/24.65–26.35px body-emphasis samples, and 14px/700 global-navigation controls. These sizes are retained as measured styles without assigning a family token.
|
|
127
|
+
- **Documentation chrome:** `guide.flex.team` is a separate Help Center surface. It was inspected only to classify the source domain and contributes no color, typography, or component token here.
|
|
109
128
|
|
|
110
129
|
## 4. Components
|
|
111
130
|
|
|
112
|
-
###
|
|
131
|
+
### Global navigation action — outline
|
|
113
132
|
|
|
114
|
-
**
|
|
115
|
-
- Background: `rgba(29, 29, 31, 0.04)`
|
|
116
|
-
- Text: `#1D1D1F`
|
|
117
|
-
- Border: none
|
|
118
|
-
- Shadow: `rgba(29, 29, 31, 0.24) 0px 0px 0px 1px inset`
|
|
119
|
-
- Radius: `10px`
|
|
120
|
-
- Padding: `9px 12px`
|
|
121
|
-
- Height: `39px`
|
|
122
|
-
- Font: `15px / 21px / 700 / Pretendard Variable`
|
|
123
|
-
- Use: currently-selected service category in the SERVICES filter row
|
|
124
|
-
|
|
125
|
-
**Inactive**
|
|
133
|
+
**Light-surface secondary action**
|
|
126
134
|
- Background: `#FFFFFF`
|
|
127
|
-
- Text: `#
|
|
128
|
-
- Border:
|
|
129
|
-
- Shadow: `rgba(29, 29, 31, 0.10) 0px 0px 0px 1px inset`
|
|
130
|
-
- Radius: `10px`
|
|
131
|
-
- Padding: `9px 12px`
|
|
132
|
-
- Height: `39px`
|
|
133
|
-
- Font: `15px / 21px / 600 / Pretendard Variable`
|
|
134
|
-
- Use: other tabs in the same row (rest of SERVICES)
|
|
135
|
-
|
|
136
|
-
### Button — header CTA (gnb)
|
|
137
|
-
|
|
138
|
-
**Default (transparent over dark hero)**
|
|
139
|
-
- Background: `rgba(0, 0, 0, 0)`
|
|
140
|
-
- Text: `#FFFFFF`
|
|
141
|
-
- Border: none
|
|
135
|
+
- Text: `#111111`
|
|
136
|
+
- Border: `1px solid #111111`
|
|
142
137
|
- Radius: `8px`
|
|
143
|
-
- Padding: `8px
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
- Use: top navigation items (서비스 / 리소스 / 플렉스팀 채용 / 로그인)
|
|
138
|
+
- Padding: `8px 14px`
|
|
139
|
+
- Font: `13px / 700`
|
|
140
|
+
- Use: `/about` light global navigation secondary conversion action; evidence `surface-2::[data-omd-capture="8"]`
|
|
147
141
|
|
|
148
|
-
###
|
|
142
|
+
### Global navigation action — solid
|
|
149
143
|
|
|
150
|
-
**
|
|
151
|
-
- Background: `#
|
|
152
|
-
- Text: `#FDFDFD`
|
|
153
|
-
- Border: none
|
|
154
|
-
- Radius: `16px`
|
|
155
|
-
- Padding: `30px`
|
|
156
|
-
- Shadow: `rgba(0, 0, 0, 0.12) 0px 0px 0px 0.5px, rgba(0, 0, 0, 0.06) 0px 8px 20px -4px`
|
|
157
|
-
- Height: `380px` (fixed in observed grid)
|
|
158
|
-
- Font: `17px / 26px / 600 / Pretendard Variable`
|
|
159
|
-
- Use: three-beat narrative cards in `main-intro` section ("문제 → 해결 → 효과")
|
|
160
|
-
|
|
161
|
-
### Section — hero (dark)
|
|
162
|
-
|
|
163
|
-
**Default**
|
|
164
|
-
- Background: `#000000`
|
|
144
|
+
**Light-surface primary action**
|
|
145
|
+
- Background: `#111111`
|
|
165
146
|
- Text: `#FFFFFF`
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
-
|
|
147
|
+
- Radius: `8px`
|
|
148
|
+
- Padding: `8px 14px`
|
|
149
|
+
- Font: `13px / 700`
|
|
150
|
+
- Use: `/about` light global navigation primary conversion action; evidence `surface-2::[data-omd-capture="9"]`
|
|
169
151
|
|
|
170
|
-
###
|
|
152
|
+
### Marketing CTA — lime
|
|
171
153
|
|
|
172
|
-
**
|
|
173
|
-
- Background: `#
|
|
174
|
-
- Text: `#
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
154
|
+
**Primary conversion**
|
|
155
|
+
- Background: `#00FF44`
|
|
156
|
+
- Text: `#111111`
|
|
157
|
+
- Radius: `24px`
|
|
158
|
+
- Padding: `30px 44px`
|
|
159
|
+
- Font: `17px / 700`
|
|
160
|
+
- Use: high-emphasis marketing conversion link on home and `/about`; evidence `home::[data-omd-capture="13"]`, `surface-2::[data-omd-capture="25"]`
|
|
178
161
|
|
|
179
|
-
###
|
|
162
|
+
### Announcement badge — new
|
|
180
163
|
|
|
181
|
-
**Default
|
|
182
|
-
- Background: `
|
|
183
|
-
- Text: `#
|
|
184
|
-
-
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
- Use:
|
|
164
|
+
**Default**
|
|
165
|
+
- Background: `#FF4D00`
|
|
166
|
+
- Text: `#000000`
|
|
167
|
+
- Radius: `18px`
|
|
168
|
+
- Padding: `0px 8px`
|
|
169
|
+
- Font: `12px / 700`
|
|
170
|
+
- Use: compact “new” label in the public announcement strip; evidence `home::span`, `surface-2::span`
|
|
171
|
+
|
|
172
|
+
Only the defaults above are documented. The evidence bundle reports no interaction coverage, so hover, pressed, focus, disabled, menu, dialog, and form states are intentionally omitted.
|
|
188
173
|
|
|
189
174
|
---
|
|
190
175
|
|
|
191
|
-
**Verified:** 2026-
|
|
192
|
-
**Tier 1 sources:** `https://flex.team/`
|
|
193
|
-
**Tier 2 sources:** `https://getdesign.md/flex`
|
|
176
|
+
**Verified:** 2026-07-13
|
|
177
|
+
**Tier 1 sources:** `https://flex.team/` (marketing surface), `https://flex.team/about` (corporate/marketing surface), `https://guide.flex.team/en/` (documentation-domain classification only), `https://github.com/orioncactus/pretendard/blob/main/packages/pretendard/docs/en/README.md` and `https://github.com/orioncactus/pretendard/blob/main/LICENSE` (font availability and licence boundary only)
|
|
178
|
+
**Tier 2 sources:** `https://getdesign.md/flex` (attempted; safe-open failure/no usable record), `https://styles.refero.design/?q=flex` (attempted; safe-open failure/no usable record), web search for both names (no Flex Team design record returned)
|
|
194
179
|
**Conflicts unresolved:** none
|
|
195
180
|
|
|
181
|
+
The legacy `#1D1D1F`/graphite/pill-service-card claims conflict with the supplied 2026 live public capture and were removed; no usable Tier 2 token record was available for a second comparison.
|
|
182
|
+
|
|
196
183
|
---
|
|
197
184
|
|
|
198
185
|
## 5. Iconography
|
|
199
186
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
---
|
|
187
|
+
The captured public surfaces expose inline brand/product imagery and ordinary navigation affordances, but no named icon library or reusable icon-size/weight rule. No icon token is promoted.
|
|
203
188
|
|
|
204
189
|
## 6. Imagery & Illustration
|
|
205
190
|
|
|
206
|
-
-
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
|
|
210
|
-
---
|
|
191
|
+
- The home page uses application screenshots to demonstrate contextual AI answers, organizational signals, and connected-work-system data; these are marketing illustrations of the platform, not a component library.
|
|
192
|
+
- The About page is primarily typographic and narrative. Its light/dark editorial fields frame the company story rather than adding a stock-photo visual language.
|
|
193
|
+
- No imagery crop ratio, overlay treatment, or product-screen frame is promoted because the supplied evidence does not identify a repeatable image component.
|
|
211
194
|
|
|
212
195
|
## 7. Motion
|
|
213
196
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
---
|
|
197
|
+
No duration, easing, transition, or scroll-trigger state was recorded in the supplied evidence. Motion is intentionally undocumented rather than extrapolated from the static surfaces.
|
|
217
198
|
|
|
218
199
|
## 8. Accessibility
|
|
219
200
|
|
|
220
|
-
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
-
|
|
224
|
-
- Header overlay (`#FFFFFF` over hero black) = 21:1.
|
|
225
|
-
- Service pill rings (1px inset) are a contrast-safe alternative to filled borders — but rely on shadow not border, so screen-reader / forced-color-mode users get focus from native button styles + the inner shadow degrades gracefully to outline.
|
|
226
|
-
|
|
227
|
-
---
|
|
201
|
+
- `#111111` on `#FFFFFF` and `#FFFFFF` on `#111111` are high-contrast text pairs in the captured light/dark chrome.
|
|
202
|
+
- The lime primary CTA uses `#111111` text over `#00FF44`; retain this pairing when reproducing the observed action treatment.
|
|
203
|
+
- The collector did not record focus-visible or keyboard interaction states. Do not infer focus treatment from the 8px or 24px radii; provide an accessible focus indicator in an implementation.
|
|
204
|
+
- `Pretendard Variable` is backed by loaded-face evidence and Flex-hosted subset URLs. Static `Pretendard` and `system-ui` remain declared/system fallbacks and must not be presented as additional Flex font roles.
|
|
228
205
|
|
|
229
206
|
## 9. Content & Voice
|
|
230
207
|
|
|
231
|
-
The
|
|
232
|
-
|
|
233
|
-
1. **Hero h1**: "모든 HR 데이터, flex 하나로." — declarative, no verb, period at end.
|
|
234
|
-
2. **Hero subhead**: "데이터가 유기적으로 흐를 때 팀은 더 똑똑하게 성장합니다." — second-clause-first structure.
|
|
235
|
-
3. **Manifesto h2**: "flex는 조직이 일하는 방식을 바꿉니다." — first-person company statement.
|
|
236
|
-
4. **Card 1**: identify the friction ("담당자 의존적인 조직 운영과 반복 업무는 …").
|
|
237
|
-
5. **Card 2**: state the mechanism ("flex는 흩어진 HR 데이터를 한 곳에 모아 연결하고, AI로 자동화하고 …").
|
|
238
|
-
6. **Card 3**: name the outcome ("이제 팀은 정보의 불균형과 반복 업무 부담에서 벗어나, … 몰입할 수 있습니다.").
|
|
239
|
-
|
|
240
|
-
The pattern is **friction → mechanism → outcome**, told in three cards. CTAs are operational: "도입 문의하기" / "무료 체험하기" / "자세히 알아보기".
|
|
241
|
-
|
|
242
|
-
---
|
|
208
|
+
The public narrative starts from organizational context rather than generic AI capability. The home page asks whether blanket AI subscriptions actually change how a company works, then answers through three forms of knowledge: knowing the user, anticipating work, and connecting enterprise context. The About page reframes HR as **Human Relations** and positions the company’s mission around solving organizational and employee problems. CTA language is direct and operational—trial or inquiry—while the surrounding prose remains declarative and explanatory.
|
|
243
209
|
|
|
244
210
|
## 10. Voice & Tone
|
|
245
211
|
|
|
246
|
-
**Voice adjectives:**
|
|
247
|
-
|
|
248
|
-
**Do / Don't**
|
|
212
|
+
**Voice adjectives:** contextual · declarative · enterprise-serious
|
|
249
213
|
|
|
250
|
-
|
|
|
214
|
+
| Do | Don't |
|
|
251
215
|
|---|---|
|
|
252
|
-
|
|
|
253
|
-
|
|
|
254
|
-
|
|
|
255
|
-
|
|
|
256
|
-
| 한 화면에 1개 메시지 | 카드 안에 3가지 USP 욱여넣기 |
|
|
257
|
-
|
|
258
|
-
**Voice samples** *(observed on flex.team, 2026-05-14 — illustrative, used for style anatomy not redistribution)*
|
|
216
|
+
| Start with a concrete organizational condition or question. | Lead with abstract “AI transformation” claims without context. |
|
|
217
|
+
| Explain how context, access, and relationships change an outcome. | Treat every user or team as interchangeable. |
|
|
218
|
+
| Use a clear conversion label for a trial or inquiry. | Turn every paragraph into a sales CTA. |
|
|
219
|
+
| Pair confident headlines with explanatory follow-through. | Use playful hype that conflicts with the governance and safety message. |
|
|
259
220
|
|
|
260
|
-
|
|
261
|
-
2. **Manifesto**: "flex는 조직이 일하는 방식을 바꿉니다." — 주어-목적어-서술어, 격언적 평서형.
|
|
262
|
-
3. **Card 3 outcome**: "이제 팀은 정보의 불균형과 반복 업무 부담에서 벗어나, 효율을 넘어 더 큰 성장을 위해 몰입할 수 있습니다." — 긴 호흡 1문장으로 인과 묶음, 결말은 "있습니다"로 가능성 제시 (단정하지 않음).
|
|
263
|
-
|
|
264
|
-
**Voice when adopted for fresh copy** (catalog-safe, no verbatim borrow): 운영자 관점 + 마침표 + 명사형 + 단정형. 사용자 직접호명·명령형은 회피.
|
|
265
|
-
|
|
266
|
-
---
|
|
221
|
+
The examples are a source-derived style description, not a license to reproduce Flex copy verbatim.
|
|
267
222
|
|
|
268
223
|
## 11. Brand Narrative
|
|
269
224
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
**Mission.** "데이터가 유기적으로 흐를 때 팀은 더 똑똑하게 성장합니다" (flex.team 2026-05-14 관찰). 흩어진 HR 데이터를 모으고, AI로 자동화하고, 맥락을 더해 **근본부터** 해결한다는 시각. 단순 SaaS가 아니라 'Human Relations Platform'으로 포지셔닝.
|
|
273
|
-
|
|
274
|
-
**Why now.** 2023→2025 매출 ₩160억 → ₩279억 (연 +30%대 성장), 2026-03 기준 213명, Series B 후 valuation ₩5,000억. 한국 HR SaaS 시장이 분절(근태/급여/평가 각각 별도 SaaS)에서 통합 플랫폼으로 재편되는 시점에, flex는 "AI 기반 통합 HR" 포지션을 선점. 2024년 사이트 리프레시(`l2024-c-*` 클래스 체계)는 이 업마켓 이동을 시각적으로 선언한 변화 — 컬러풀했던 초기 SaaS 아이덴티티를 graphite + ink 단색 체계로 정리.
|
|
275
|
-
|
|
276
|
-
*Source: thevc.kr/Flex (corporate facts), flex.team (live copy & visual signal).*
|
|
277
|
-
|
|
278
|
-
---
|
|
225
|
+
Flex says it was established in 2019 and launched its flex service in 2020. Its current About page describes a progression from establishing an HR-platform standard (2019–2021), through enterprise expansion (2022–2024), toward an AX platform grounded in HR data (2025–2027). The current brand thesis is **Relations Driven AX**: HR is redefined from “Human Resources” to “Human Relations,” and relationship data is presented as the context that lets AI diagnose, suggest, and execute work safely. The company frames its mission as solving organizations’ and employees’ problems so that it becomes an essential service for everyone who works.
|
|
279
226
|
|
|
280
227
|
## 12. Principles
|
|
281
228
|
|
|
282
|
-
1. **
|
|
283
|
-
2. **
|
|
284
|
-
3. **
|
|
285
|
-
4. **
|
|
286
|
-
5. **
|
|
287
|
-
|
|
288
|
-
---
|
|
229
|
+
1. **Context before capability.** Explain what the organization knows and how access is bounded before claiming AI benefit.
|
|
230
|
+
2. **Contrast carries authority.** Build the public hierarchy with black, white, and measured opacity; reserve lime for the decisive conversion point.
|
|
231
|
+
3. **Use lime as an action, not a status system.** `#00FF44` is evidenced on marketing CTA links, not as a universal product semantic token.
|
|
232
|
+
4. **Let scale establish the thesis.** Keep editorial statements distinct from supporting explanation; the recorded 80–96px About styles are a surface-specific example.
|
|
233
|
+
5. **Keep source domains separate.** Marketing/corporate pages, Help Center chrome, and unverified app surfaces must not be mixed into one inferred product design system.
|
|
289
234
|
|
|
290
235
|
## 13. Personas
|
|
291
236
|
|
|
292
|
-
|
|
237
|
+
Flex’s official copy names organizations, members, leaders, and teams as the stakeholders of its platform. It also describes HR teams dealing with attendance, evaluation, compensation, compliance, and data-informed decisions. This reference therefore recognizes those official stakeholder groups without inventing named fictional personas or unverified audience demographics:
|
|
293
238
|
|
|
294
|
-
-
|
|
295
|
-
- **
|
|
296
|
-
-
|
|
297
|
-
|
|
298
|
-
---
|
|
239
|
+
- **Organization and HR operators:** need connected organizational and employee data to handle HR operations and compliance.
|
|
240
|
+
- **Leaders:** use organizational context and goal/health signals to make decisions.
|
|
241
|
+
- **Employees:** receive access and AI assistance bounded by their role and organizational relationship.
|
|
299
242
|
|
|
300
243
|
## 14. States
|
|
301
244
|
|
|
302
|
-
|
|
303
|
-
|---|---|---|---|---|---|---|
|
|
304
|
-
| Service filter pill | n/a — 항상 5개 고정 | n/a | n/a | active pill: `rgba(29,29,31,0.04)` fill + 0.24 ring + weight 700 | n/a | inactive pill: white fill + 0.10 ring + weight 600 |
|
|
305
|
-
| CTA "도입 문의하기" | n/a | submit 중 → 동일 chrome 유지 (라이브 관찰 한정) | 폼 단위 inline 메시지 (페이지 단위 toast 회피) | 별도 thank-you 페이지 라우팅 | n/a | `rgba(29,29,31,0.04)` 유지 + cursor not-allowed |
|
|
306
|
-
| Manifesto card | 항상 3개 고정 — 1-2개 fallback 패턴은 관찰되지 않음 | n/a (정적 콘텐츠) | n/a | n/a | possibility: 동일 dims `#2D3338` + 16px radius + 30px padding의 빈 박스 | n/a |
|
|
307
|
-
| Header CTA | n/a | n/a | n/a | active 페이지 표시는 underline·dot 없이 weight 700 토글로 추정 | n/a | `rgba(255,255,255,0.48)` text on dark |
|
|
308
|
-
|
|
309
|
-
States 카탈로그가 사이트에 명시되지 않은 곳은 **observed shape 유지 + Pretendard weight·alpha만 조정**하는 것이 flex 톤 보존의 안전 룰.
|
|
310
|
-
|
|
311
|
-
---
|
|
245
|
+
No loading, error, empty, disabled, or success state was captured for a Flex product workflow. The supplied evidence also reports zero interaction coverage. The only state-like observations are surface-theme variants (dark versus light navigation) and static component defaults in §4; they are not promoted as behavioral state specifications.
|
|
312
246
|
|
|
313
247
|
## 15. Motion & Easing
|
|
314
248
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
**Duration**
|
|
318
|
-
- `instant`: 0ms — 토글 즉시 반영 (pill active 전환)
|
|
319
|
-
- `short`: 150ms — hover ring 두께 변화
|
|
320
|
-
- `default`: 240ms — section fade-in on scroll
|
|
321
|
-
- `long`: 400ms — 카드 stagger (3개 카드가 80ms 간격으로 enter)
|
|
322
|
-
|
|
323
|
-
**Easing**
|
|
324
|
-
- `out-quart` (`cubic-bezier(0.25, 1, 0.5, 1)`) — scroll-trigger fade (자연스러운 도착감)
|
|
325
|
-
- `in-out-cubic` (`cubic-bezier(0.65, 0, 0.35, 1)`) — pill 전환
|
|
326
|
-
|
|
327
|
-
**Motion rules**
|
|
328
|
-
1. *Translate ≤ 12px.* flex는 parallax·과한 슬라이드를 쓰지 않는다.
|
|
329
|
-
2. *Opacity is the primary verb.* fade-in + tiny translateY가 거의 모든 entry 모션.
|
|
330
|
-
3. *No spring bounce.* 항상 ease-out 류. overshoot 0.
|
|
331
|
-
4. *Stagger ≤ 100ms.* 3-card grid stagger는 잘게.
|
|
332
|
-
|
|
249
|
+
No motion values were captured. Preserve the absence of a claimed motion system rather than assigning easing curves, delays, or stagger behavior from visual inference.
|
|
333
250
|
|
|
334
251
|
## 16. Do's and Don'ts
|
|
335
252
|
|
|
336
253
|
### Do
|
|
337
|
-
|
|
338
|
-
-
|
|
339
|
-
-
|
|
340
|
-
-
|
|
341
|
-
-
|
|
342
|
-
- Keep
|
|
254
|
+
|
|
255
|
+
- Use `#111111` and `#FFFFFF` as the dominant public-surface contrast pair.
|
|
256
|
+
- Reserve `#00FF44` for the large, high-emphasis conversion action observed on the current public pages.
|
|
257
|
+
- Use the 8px navigation action and 24px campaign CTA radii only in their observed contexts.
|
|
258
|
+
- Treat 80–96px editorial type as a current About-page treatment, not proof of a product-app display scale.
|
|
259
|
+
- Keep help-center chrome and any unobserved logged-in application UI out of this public-surface reference.
|
|
343
260
|
|
|
344
261
|
### Don't
|
|
345
|
-
|
|
346
|
-
-
|
|
347
|
-
-
|
|
348
|
-
-
|
|
349
|
-
-
|
|
350
|
-
-
|
|
262
|
+
|
|
263
|
+
- Reintroduce the legacy graphite manifesto cards, service-filter pills, or inset-ring variants as current Flex components.
|
|
264
|
+
- Treat the orange announcement badge as a general error or warning semantic color.
|
|
265
|
+
- Render static `Pretendard` or a system fallback as though it were the verified `Pretendard Variable` family.
|
|
266
|
+
- Invent hover, disabled, form, dialog, or loading variants from the static collector output.
|
|
267
|
+
- Turn relationship-data positioning into generic AI copy that omits access, role, and organizational context.
|
|
351
268
|
|
|
352
269
|
---
|
|
353
270
|
|
|
354
|
-
**Verified:** 2026-
|
|
355
|
-
**Pipeline:** omd:add-reference
|
|
356
|
-
**Catalog position:** KR · saas ·
|
|
271
|
+
**Verified:** 2026-07-13
|
|
272
|
+
**Pipeline:** omd:add-reference UPDATE (3-tier reconcile)
|
|
273
|
+
**Catalog position:** KR · saas · HR-data/AI platform
|