oh-my-design-cli 1.8.7 → 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 +1995 -38
- 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/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/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- 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/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 +217 -330
- 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/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/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- 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/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/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/lamborghini/DESIGN.md +198 -360
- 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 +149 -349
- 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/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/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- 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/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/quotabook/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/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/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -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/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/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/wanted/DESIGN.md +215 -487
- 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
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: fitpet
|
|
3
|
+
name: Fitpet
|
|
4
|
+
display_name_kr: 핏펫
|
|
5
|
+
country: KR
|
|
6
|
+
category: healthcare
|
|
7
|
+
homepage: "https://fitpet.co.kr/"
|
|
8
|
+
primary_color: "#0050ff"
|
|
9
|
+
logo:
|
|
10
|
+
type: favicon
|
|
11
|
+
slug: "https://www.google.com/s2/favicons?domain=fitpet.co.kr&sz=128"
|
|
12
|
+
verified: "2026-07-02"
|
|
13
|
+
added: "2026-07-02"
|
|
14
|
+
omd: "0.1"
|
|
15
|
+
tokens:
|
|
16
|
+
source: live-extract
|
|
17
|
+
extracted: "2026-07-02"
|
|
18
|
+
note: "primary = brand blue #0050ff (logo dominant + mall primary button); #1482ff is the lighter corporate marketing accent; #0035a8 a deep navy for emphasis. Sale accent #ff5967, rating/points yellow #ffd633. Near-flat depth (box-shadow none). Corporate site = Noto Sans KR + Poppins latin; mall = Pretendard."
|
|
19
|
+
colors:
|
|
20
|
+
primary: "#0050ff"
|
|
21
|
+
primary-deep: "#0035a8"
|
|
22
|
+
brand-blue-lt: "#1482ff"
|
|
23
|
+
accent-orange: "#ff9300"
|
|
24
|
+
sale: "#ff5967"
|
|
25
|
+
points: "#ffd633"
|
|
26
|
+
ink: "#1b1e21"
|
|
27
|
+
ink-corp: "#282828"
|
|
28
|
+
body: "#42494f"
|
|
29
|
+
muted: "#727a82"
|
|
30
|
+
muted-alt: "#8c949c"
|
|
31
|
+
faint: "#a7aeb5"
|
|
32
|
+
canvas: "#ffffff"
|
|
33
|
+
surface: "#f4f7fa"
|
|
34
|
+
promo-tint: "#edf4ff"
|
|
35
|
+
hairline: "#eef1f5"
|
|
36
|
+
border: "#dfe3e8"
|
|
37
|
+
border-strong: "#c2c8cf"
|
|
38
|
+
on-dark: "#eeeeee"
|
|
39
|
+
ink-pure: "#000000"
|
|
40
|
+
typography:
|
|
41
|
+
family: { display: "Poppins", kr: "Noto Sans KR", product: "Pretendard" }
|
|
42
|
+
stat-hero: { size: 85, weight: 600, use: "Big number stat on corporate hero (16만+), Noto Sans KR" }
|
|
43
|
+
display: { size: 40, weight: 600, lineHeight: 1.2, use: "Corporate hero headline, Noto Sans KR" }
|
|
44
|
+
section: { size: 24, weight: 700, use: "Mall section title (오늘의 핫딜), Pretendard" }
|
|
45
|
+
subsection: { size: 19, weight: 700, use: "Mall page / group title (홈), Pretendard" }
|
|
46
|
+
product: { size: 17, weight: 400, lineHeight: 1.4, use: "Product-card title, Pretendard" }
|
|
47
|
+
body: { size: 16, weight: 400, lineHeight: 1.5, use: "Body copy, search field text" }
|
|
48
|
+
nav: { size: 13, weight: 700, use: "Corporate nav link, Poppins" }
|
|
49
|
+
caption: { size: 12, weight: 400, use: "Badges, metadata, fine print, Pretendard" }
|
|
50
|
+
spacing: { xs: 4, sm: 8, base: 15, md: 16, lg: 24, chip: 30, xl: 39, xxl: 50 }
|
|
51
|
+
rounded: { sm: 5, md: 10, chip: 30, pill: 999, full: 9999 }
|
|
52
|
+
shadow:
|
|
53
|
+
none: "none"
|
|
54
|
+
hairline: "rgba(0, 0, 0, 0.03) 0px 0px 0px 1px"
|
|
55
|
+
components:
|
|
56
|
+
button-primary: { type: button, bg: "#0050ff", fg: "#ffffff", radius: "28px", padding: "7px 17px", height: "48px", font: "13px / 400 Pretendard", use: "Primary / recommend action button on the mall" }
|
|
57
|
+
button-ghost: { type: button, fg: "#ffffff", border: "2px solid #ffffff", radius: "30px", padding: "10px 50px", height: "42px", font: "12px / 600 Poppins", use: "Ghost pill CTA over corporate hero imagery (일반채용)" }
|
|
58
|
+
search-input: { type: input, bg: "#f4f7fa", fg: "#000000", radius: "10px", padding: "1px 50px", height: "50px", font: "16px Pretendard", use: "Filled borderless search field, placeholder #a7aeb5" }
|
|
59
|
+
filter-chip: { type: badge, fg: "#42494f", border: "1px solid #c2c8cf", radius: "999px", padding: "0 14px", height: "43px", font: "13px / 400 Pretendard", use: "Category / filter chip on the mall" }
|
|
60
|
+
discount-badge: { type: badge, bg: "#ff5967", fg: "#ffffff", radius: "5px", padding: "5px", font: "12px / 700 Pretendard", use: "Discount-percentage badge on product cards" }
|
|
61
|
+
product-card: { type: card, bg: "#ffffff", border: "1px solid #eef1f5", radius: "10px", use: "Product card on grey #f4f7fa surface, hairline separation, near-flat" }
|
|
62
|
+
promo-strip: { type: card, bg: "#edf4ff", fg: "#42494f", radius: "10px", use: "First-purchase / coupon promo strip" }
|
|
63
|
+
nav-link: { type: tab, fg: "#000000", font: "13px / 700 Poppins", active: "text #1482ff", use: "Corporate top-nav item (회사 소개, 팀 문화)" }
|
|
64
|
+
components_harvested: true
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
# Design System Inspiration of Fitpet
|
|
68
|
+
|
|
69
|
+
## 1. Visual Theme & Atmosphere
|
|
70
|
+
|
|
71
|
+
Fitpet (핏펫) is Korea's pet-healthcare and pet-commerce brand — an at-home health-check kit, a curated product mall, and an animal-hospital booking flow, all under one confident blue. The system spans two surfaces with one identity: a clean, editorial corporate flagship (`fitpet.co.kr`) that reads like a modern healthcare brand, and a dense, warm commerce mall (`fitpetmall.com`) built for browsing food, treats, and supplies. The connective tissue is a single saturated brand blue — `#0050ff` — which is literally the dominant color of the logo and the fill of the mall's primary action button. Text sits in a near-black `#1b1e21` on the mall (never pure black for product copy) and pure `#000000` on the corporate site, both on a bright `#ffffff` canvas softened by a pervasive cool-grey surface tint (`#f4f7fa`).
|
|
72
|
+
|
|
73
|
+
The typographic personality is split by job. The corporate flagship pairs **Noto Sans KR** for hangul headlines — 40px at weight 600 for hero lines like "반려동물의 건강을 집에서 1분만에 확인" ("Check your pet's health at home in one minute"), scaling up to an 85px weight-600 stat ("16만+") — with **Poppins** for the latin nav labels at a tight 13px / 700. The commerce mall switches to **Pretendard**, the de-facto Korean product font, running section titles at 24px / 700 ("오늘의 핫딜"), page titles at 19px / 700, and product-card titles at a quiet 17px / 400 in slate `#42494f`. Heavy where it persuades, calm where it lists.
|
|
74
|
+
|
|
75
|
+
What distinguishes Fitpet from heavier commerce peers is its near-flat depth. Live inspection found `box-shadow: none` almost everywhere; separation is carried by the `#f4f7fa` tint, hairline borders (`rgba(0, 0, 0, 0.03)`, `#eef1f5`, `#dfe3e8`), and rounded geometry rather than elevation. Corners cluster at ~10px for cards and inputs, and everything interactive leans into the pill — the primary button at ~28px radius, filter chips at a full 999px. Accents are used sparingly and semantically: a coral-red `#ff5967` for discount percentages, a rating yellow `#ffd633` for stars and points, a light-blue `#edf4ff` for coupon strips, and a lighter marketing blue `#1482ff` plus a deep navy `#0035a8` as secondary brand tones. The logo also carries a warm orange `#ff9300` paw accent.
|
|
76
|
+
|
|
77
|
+
**Key Characteristics:**
|
|
78
|
+
- Single saturated brand blue (`#0050ff`) — logo dominant and the mall's primary-action fill
|
|
79
|
+
- Lighter marketing blue (`#1482ff`) and deep navy (`#0035a8`) as secondary brand tones
|
|
80
|
+
- Pervasive cool-grey surface tint (`#f4f7fa`) doing the segmentation work instead of shadows
|
|
81
|
+
- Near-flat depth: `box-shadow: none`; separation via `rgba(0, 0, 0, 0.03)` / `#eef1f5` / `#dfe3e8` hairlines
|
|
82
|
+
- Pill-forward geometry — ~28px primary button, 999px filter chips, ~10px cards and inputs
|
|
83
|
+
- Two-font split: Noto Sans KR + Poppins on the corporate flagship, Pretendard on the mall
|
|
84
|
+
- Semantic accents only: coral `#ff5967` for discounts, yellow `#ffd633` for ratings/points, `#edf4ff` for coupon strips
|
|
85
|
+
- Near-black `#1b1e21` (mall) and pure `#000000` (corporate) heading text on a bright `#ffffff` canvas
|
|
86
|
+
|
|
87
|
+
## 2. Color Palette & Roles
|
|
88
|
+
|
|
89
|
+
### Primary
|
|
90
|
+
- **Fitpet Blue** (`#0050ff`): The brand's signature saturated blue. It is the dominant color of the logo and the background fill of the mall's primary action button — the system's single "do this" color.
|
|
91
|
+
- **Deep Navy** (`#0035a8`): A darker brand navy used for emphasis text and dense-blue surfaces on the mall.
|
|
92
|
+
- **Marketing Blue** (`#1482ff`): A lighter, brighter blue used as the accent on the corporate flagship (links, active nav, highlight blocks).
|
|
93
|
+
|
|
94
|
+
### Accent
|
|
95
|
+
- **Paw Orange** (`#ff9300`): The warm secondary in the logo mark — a friendly counterweight to the blue.
|
|
96
|
+
- **Sale Coral** (`#ff5967`): Reserved for discount-percentage badges on product cards.
|
|
97
|
+
- **Rating Yellow** (`#ffd633`): Star ratings, points, and reward highlights on the mall.
|
|
98
|
+
|
|
99
|
+
### Text Hierarchy
|
|
100
|
+
- **Ink** (`#1b1e21`): Primary near-black for mall headings and titles — warmer than pure black.
|
|
101
|
+
- **Corporate Ink** (`#282828`): Near-black used on the corporate flagship's dark bands and blocks.
|
|
102
|
+
- **Body Slate** (`#42494f`): Standard body and product-title text on the mall.
|
|
103
|
+
- **Muted Slate** (`#727a82`): Secondary text, captions, metadata.
|
|
104
|
+
- **Muted Alt** (`#8c949c`): Alternate muted slate for supporting labels.
|
|
105
|
+
- **Faint Grey** (`#a7aeb5`): Lowest-emphasis text — placeholders, disabled labels.
|
|
106
|
+
- **Pure Black** (`#000000`): Corporate flagship body and nav text.
|
|
107
|
+
- **On-Dark** (`#eeeeee`): Light text on the corporate dark bands.
|
|
108
|
+
|
|
109
|
+
### Neutral & Surface
|
|
110
|
+
- **Pure White** (`#ffffff`): Page background, card surfaces, text on blue/dark.
|
|
111
|
+
- **Surface Grey** (`#f4f7fa`): The dominant cool-grey tint — segments sections, fills the search field, backs product areas.
|
|
112
|
+
- **Promo Tint** (`#edf4ff`): Light-blue background for coupon and first-purchase promo strips.
|
|
113
|
+
- **Hairline** (`#eef1f5`): Thin borders and dividers on white cards.
|
|
114
|
+
- **Border** (`#dfe3e8`): Standard border for containers and chip outlines.
|
|
115
|
+
- **Border Strong** (`#c2c8cf`): Higher-contrast outline for filter chips and toggled controls.
|
|
116
|
+
|
|
117
|
+
## 3. Typography Rules
|
|
118
|
+
|
|
119
|
+
### Font Family
|
|
120
|
+
- **Corporate display / hangul**: `Noto Sans KR` — hero headlines and stats on `fitpet.co.kr`, at weight 600.
|
|
121
|
+
- **Corporate latin / nav**: `Poppins` — latin nav labels and the logotype, at weight 700.
|
|
122
|
+
- **Mall / product**: `Pretendard` (with system fallbacks) — every headline, title, and body string on `fitpetmall.com`.
|
|
123
|
+
|
|
124
|
+
### Hierarchy
|
|
125
|
+
|
|
126
|
+
| Role | Font | Size | Weight | Notes |
|
|
127
|
+
|------|------|------|--------|-------|
|
|
128
|
+
| Stat Hero | Noto Sans KR | 85px | 600 | Big number on corporate hero ("16만+") |
|
|
129
|
+
| Display | Noto Sans KR | 40px | 600 | Corporate hero headline |
|
|
130
|
+
| Section | Pretendard | 24px | 700 | Mall section title ("오늘의 핫딜") |
|
|
131
|
+
| Sub-section | Pretendard | 19px | 700 | Mall page / group title ("홈") |
|
|
132
|
+
| Product Title | Pretendard | 17px | 400 | Product-card title, slate `#42494f` |
|
|
133
|
+
| Body | Pretendard | 16px | 400 | Body copy, search field text |
|
|
134
|
+
| Nav | Poppins | 13px | 700 | Corporate nav link |
|
|
135
|
+
| Caption | Pretendard | 12px | 400 | Badges, metadata, fine print |
|
|
136
|
+
|
|
137
|
+
### Principles
|
|
138
|
+
- **Two fonts, two surfaces**: Noto Sans KR + Poppins carry the corporate brand story; Pretendard carries the commerce product. They never mix on the same surface.
|
|
139
|
+
- **Weight as the persuade/inform switch**: headlines and section titles sit at 600–700; product titles and body drop to 400. The weight jump is the primary hierarchy signal.
|
|
140
|
+
- **Big, confident hero numbers**: the 85px weight-600 stat is the corporate site's boldest typographic move — scale communicates trust ("16만+" pets checked).
|
|
141
|
+
- **Hangul-first body sizing**: mall body sits at a legible 16px in the search field and 17px for product titles, dense enough for information-rich commerce.
|
|
142
|
+
|
|
143
|
+
## 4. Component Stylings
|
|
144
|
+
|
|
145
|
+
### Buttons
|
|
146
|
+
|
|
147
|
+
**Primary Action**
|
|
148
|
+
- Background: `#0050ff`
|
|
149
|
+
- Text: `#ffffff`
|
|
150
|
+
- Radius: 28px
|
|
151
|
+
- Padding: 7px 17px
|
|
152
|
+
- Height: 48px
|
|
153
|
+
- Font: 13px Pretendard weight 400
|
|
154
|
+
- Use: Primary / recommend action button on the mall ("추천") — the single high-emphasis action
|
|
155
|
+
|
|
156
|
+
**Ghost Pill (over imagery)**
|
|
157
|
+
- Text: `#ffffff`
|
|
158
|
+
- Border: 2px solid `#ffffff`
|
|
159
|
+
- Radius: 30px
|
|
160
|
+
- Padding: 10px 50px
|
|
161
|
+
- Height: 42px
|
|
162
|
+
- Font: 12px Poppins weight 600
|
|
163
|
+
- Use: Outline CTA over corporate hero imagery ("일반채용")
|
|
164
|
+
|
|
165
|
+
### Inputs & Forms
|
|
166
|
+
|
|
167
|
+
**Search Field**
|
|
168
|
+
- Background: `#f4f7fa`
|
|
169
|
+
- Text: `#000000`
|
|
170
|
+
- Radius: 10px
|
|
171
|
+
- Padding: 1px 50px
|
|
172
|
+
- Height: 50px
|
|
173
|
+
- Font: 16px Pretendard
|
|
174
|
+
- Placeholder: `#a7aeb5` ("검색어를 입력해 주세요.")
|
|
175
|
+
- Use: Filled, borderless search field on the mall
|
|
176
|
+
|
|
177
|
+
### Cards & Containers
|
|
178
|
+
|
|
179
|
+
**Product Card**
|
|
180
|
+
- Background: `#ffffff`
|
|
181
|
+
- Border: 1px solid `#eef1f5`
|
|
182
|
+
- Radius: 10px
|
|
183
|
+
- Shadow: none
|
|
184
|
+
- Use: Product card on the grey `#f4f7fa` surface — hairline separation, no elevation
|
|
185
|
+
|
|
186
|
+
**Promo Strip**
|
|
187
|
+
- Background: `#edf4ff`
|
|
188
|
+
- Text: `#42494f`
|
|
189
|
+
- Radius: 10px
|
|
190
|
+
- Use: First-purchase / coupon promo strip ("첫 구매 시 인기상품 한정 특가!")
|
|
191
|
+
|
|
192
|
+
### Badges
|
|
193
|
+
|
|
194
|
+
**Discount Badge**
|
|
195
|
+
- Background: `#ff5967`
|
|
196
|
+
- Text: `#ffffff`
|
|
197
|
+
- Radius: 5px
|
|
198
|
+
- Padding: 5px
|
|
199
|
+
- Font: 12px Pretendard weight 700
|
|
200
|
+
- Use: Discount-percentage badge on product cards ("55%")
|
|
201
|
+
|
|
202
|
+
**Filter Chip**
|
|
203
|
+
- Text: `#42494f`
|
|
204
|
+
- Border: 1px solid `#c2c8cf`
|
|
205
|
+
- Radius: 999px
|
|
206
|
+
- Padding: 0 14px
|
|
207
|
+
- Height: 43px
|
|
208
|
+
- Font: 13px Pretendard weight 400
|
|
209
|
+
- Use: Category / filter chip on the mall ("펫루키")
|
|
210
|
+
|
|
211
|
+
### Navigation
|
|
212
|
+
- Text: `#000000`
|
|
213
|
+
- Font: 13px Poppins weight 700
|
|
214
|
+
- Padding: 39px 15px
|
|
215
|
+
- Active: violet-blue `#1482ff` text on active item
|
|
216
|
+
- Use: Corporate top-nav ("회사 소개", "팀 문화", "개발 채용", "TECH BLOG", "FAQ")
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
**Verified:** 2026-07-02 (omd:add-reference CREATE — Tier 1 live inspect, two surfaces)
|
|
221
|
+
**Tier 1 sources:** https://fitpet.co.kr/ | https://www.fitpetmall.com/ | https://fitpet.medium.com/
|
|
222
|
+
**Tier 2 sources:** getdesign.md/fitpet (0 DESIGN.md files — no entry); styles.refero.design/?q=fitpet (not listed — generic results only)
|
|
223
|
+
**Conflicts unresolved:** none
|
|
224
|
+
|
|
225
|
+
## 5. Layout Principles
|
|
226
|
+
|
|
227
|
+
### Spacing System
|
|
228
|
+
- Base rhythm: 4 / 8 / 15 / 16 / 24 / 39 px (measured paddings)
|
|
229
|
+
- Notable: corporate nav uses a tall 39px vertical padding for a spacious 100px header; ghost CTA runs 10px 50px for a wide tap target
|
|
230
|
+
- Mall chips and buttons use tighter 7–14px horizontal padding for dense browsing
|
|
231
|
+
|
|
232
|
+
### Grid & Container
|
|
233
|
+
- **Corporate flagship**: centered single-column hero anchored by the 40px headline and the 85px stat, alternating white and dark (`#282828`) editorial bands
|
|
234
|
+
- **Mall**: grid of product cards on a `#f4f7fa` surface, horizontally-scrolling category/filter chip rows, coupon strips in `#edf4ff`
|
|
235
|
+
- Cards group related products at a consistent 10px radius
|
|
236
|
+
|
|
237
|
+
### Whitespace Philosophy
|
|
238
|
+
- **Flat segmentation**: sections separate by background tint (`#f4f7fa` vs `#ffffff`) and hairlines, not by shadow
|
|
239
|
+
- **Editorial calm on brand, dense grid on commerce**: the corporate site breathes; the mall packs product cards efficiently while keeping generous chip spacing
|
|
240
|
+
- **Pill rhythm**: repeated 999px chips and ~28–30px buttons create a soft, consistent horizontal cadence
|
|
241
|
+
|
|
242
|
+
### Border Radius Scale
|
|
243
|
+
- Small (5px): discount badges, fine-grained tags
|
|
244
|
+
- Medium (10px): cards, inputs, promo strips — the workhorse
|
|
245
|
+
- Chip (28–30px): primary buttons, ghost CTAs
|
|
246
|
+
- Full (999px): filter chips, fully-rounded pills
|
|
247
|
+
|
|
248
|
+
## 6. Depth & Elevation
|
|
249
|
+
|
|
250
|
+
| Level | Treatment | Use |
|
|
251
|
+
|-------|-----------|-----|
|
|
252
|
+
| Flat (Level 0) | No shadow | Page background, most surfaces |
|
|
253
|
+
| Tint (Level 1) | `#f4f7fa` background shift | Card / section separation without elevation |
|
|
254
|
+
| Hairline (Level 2) | `rgba(0, 0, 0, 0.03)` / `#eef1f5` / `#dfe3e8` border | White card outlines, dividers |
|
|
255
|
+
|
|
256
|
+
**Shadow Philosophy**: Fitpet is a near-shadowless system. Live inspection found `box-shadow: none` across the corporate hero, nav, and the mall's cards, chips, and buttons; the only depth cue is a whisper-thin `rgba(0, 0, 0, 0.03)` border repeated across product cards. Grouping is communicated entirely through the flat `#f4f7fa` tint and thin `#eef1f5` / `#dfe3e8` hairlines. This keeps a data-dense commerce grid feeling fast, mobile-native, and calm rather than heavy. When emphasis is needed the system reaches for color — the blue `#0050ff`, the coral `#ff5967`, the yellow `#ffd633` — never elevation.
|
|
257
|
+
|
|
258
|
+
## 7. Do's and Don'ts
|
|
259
|
+
|
|
260
|
+
### Do
|
|
261
|
+
- Reserve the brand blue (`#0050ff`) for the single primary action — keep it the one "do this" color
|
|
262
|
+
- Use the `#f4f7fa` surface tint and `#eef1f5` / `#dfe3e8` hairlines to separate sections, not shadows
|
|
263
|
+
- Keep card and input corners at ~10px and interactive pills at 28px–999px
|
|
264
|
+
- Use near-black `#1b1e21` for mall headings and slate `#42494f` for product titles instead of pure black
|
|
265
|
+
- Use Pretendard on commerce surfaces and Noto Sans KR + Poppins on the corporate brand site
|
|
266
|
+
- Use the coral `#ff5967` only for discount percentages and the yellow `#ffd633` only for ratings/points
|
|
267
|
+
- Back coupon and first-purchase strips with the light `#edf4ff` tint
|
|
268
|
+
- Let big weight-600 numbers (the 85px stat) carry trust on the corporate hero
|
|
269
|
+
|
|
270
|
+
### Don't
|
|
271
|
+
- Spread the brand blue across many elements — it dilutes the single-action signal
|
|
272
|
+
- Add drop shadows for elevation — Fitpet is a flat, hairline-and-tint system
|
|
273
|
+
- Mix a third accent color into the palette — blue is the brand, coral and yellow are strictly semantic
|
|
274
|
+
- Use sharp square corners on interactive controls — everything is rounded or a pill
|
|
275
|
+
- Set mall body or product titles in pure `#000000` — use `#1b1e21` / `#42494f`
|
|
276
|
+
- Swap the two font systems across surfaces — Pretendard is the mall, Noto Sans KR / Poppins is corporate
|
|
277
|
+
- Use the sale coral or rating yellow as decorative fills unrelated to price or rating
|
|
278
|
+
- Crowd the corporate hero — it relies on editorial whitespace and one bold stat
|
|
279
|
+
|
|
280
|
+
## 8. Responsive Behavior
|
|
281
|
+
|
|
282
|
+
### Breakpoints
|
|
283
|
+
| Name | Width | Key Changes |
|
|
284
|
+
|------|-------|-------------|
|
|
285
|
+
| Mobile | <640px | Single column; corporate hero compresses; mall chip rows scroll horizontally |
|
|
286
|
+
| Tablet | 640-1024px | 2-up product cards; moderate padding |
|
|
287
|
+
| Desktop | 1024-1440px | Full grid, centered corporate hero, multi-column mall bands |
|
|
288
|
+
|
|
289
|
+
### Touch Targets
|
|
290
|
+
- Primary button at 48px height, filter chips at 43px — comfortably tappable
|
|
291
|
+
- Search field at 50px height, full-width on mobile
|
|
292
|
+
- Corporate nav links inside a tall 100px header (39px vertical padding)
|
|
293
|
+
|
|
294
|
+
### Collapsing Strategy
|
|
295
|
+
- Corporate hero: 40px headline and 85px stat scale down on mobile, weight 600 maintained
|
|
296
|
+
- Mall category / filter chips: horizontal scroll on narrow viewports
|
|
297
|
+
- Product grid: multi-column collapses to 2-up then single column
|
|
298
|
+
- Tinted (`#f4f7fa`) and white bands maintain full-width treatment
|
|
299
|
+
|
|
300
|
+
### Image Behavior
|
|
301
|
+
- Product imagery and illustrations carry no shadow at any size, consistent with the flat system
|
|
302
|
+
- Cards maintain the 10px radius across breakpoints
|
|
303
|
+
|
|
304
|
+
## 9. Agent Prompt Guide
|
|
305
|
+
|
|
306
|
+
### Quick Color Reference
|
|
307
|
+
- Primary action: Fitpet Blue (`#0050ff`)
|
|
308
|
+
- Deep navy emphasis: (`#0035a8`)
|
|
309
|
+
- Corporate accent: Marketing Blue (`#1482ff`)
|
|
310
|
+
- Sale badge: Coral (`#ff5967`)
|
|
311
|
+
- Ratings / points: Yellow (`#ffd633`)
|
|
312
|
+
- Heading (mall): Ink (`#1b1e21`)
|
|
313
|
+
- Body / product title: Slate (`#42494f`)
|
|
314
|
+
- Muted text: (`#727a82`), (`#8c949c`), (`#a7aeb5`)
|
|
315
|
+
- Background: White (`#ffffff`)
|
|
316
|
+
- Surface tint: (`#f4f7fa`)
|
|
317
|
+
- Promo tint: (`#edf4ff`)
|
|
318
|
+
- Hairlines: (`#eef1f5`), (`#dfe3e8`), (`#c2c8cf`)
|
|
319
|
+
|
|
320
|
+
### Example Component Prompts
|
|
321
|
+
- "Create a mall product card: white `#ffffff` background, 1px solid `#eef1f5` border, 10px radius, no shadow, on a `#f4f7fa` surface. Title 17px Pretendard weight 400, `#42494f`. Discount badge top-left: `#ff5967` background, white text, 5px radius, 12px weight 700."
|
|
322
|
+
- "Build a primary action button: `#0050ff` background, white text, 28px radius, 7px 17px padding, 48px height, 13px Pretendard."
|
|
323
|
+
- "Design a search field: `#f4f7fa` background, no border, 10px radius, 50px height, 16px Pretendard, placeholder `#a7aeb5`."
|
|
324
|
+
- "Create a filter chip row: transparent background, 1px solid `#c2c8cf` border, 999px radius, 0 14px padding, 43px height, 13px Pretendard, `#42494f` text."
|
|
325
|
+
- "Design a corporate hero: white canvas, Noto Sans KR headline 40px weight 600 `#000000`, an 85px weight-600 stat, a ghost pill CTA (transparent, 2px solid `#ffffff`, 30px radius) over imagery. Nav links 13px Poppins weight 700, `#1482ff` on active."
|
|
326
|
+
|
|
327
|
+
### Iteration Guide
|
|
328
|
+
1. Blue (`#0050ff`) is the single action color — don't spread it
|
|
329
|
+
2. No shadows — separate with `#f4f7fa` tint and `#eef1f5` / `#dfe3e8` hairlines
|
|
330
|
+
3. ~10px radius for cards/inputs; 28–999px pills for buttons/chips
|
|
331
|
+
4. Mall text is `#1b1e21` / `#42494f`, never pure black; corporate text is `#000000`
|
|
332
|
+
5. Coral `#ff5967` = discount only; yellow `#ffd633` = rating/points only
|
|
333
|
+
6. Pretendard on the mall; Noto Sans KR + Poppins on the corporate site
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## 10. Voice & Tone
|
|
338
|
+
|
|
339
|
+
Fitpet's voice is **warm, reassuring, and health-first** — it treats companion animals as family and the owner as a caretaker who deserves clarity, not upsell. The corporate flagship speaks in plain, benefit-led Korean ("반려동물의 건강을 집에서 1분만에 확인" — "Check your pet's health at home in one minute"), while the mall is practical and friendly, labeling deals and categories in everyday language. The through-line is trust: health claims are concrete, and commerce copy stays low-pressure even during sales.
|
|
340
|
+
|
|
341
|
+
| Context | Tone |
|
|
342
|
+
|---|---|
|
|
343
|
+
| Corporate hero | Benefit-led, mission-framed. "반려동물의 건강을 집에서 1분만에 확인." Calm confidence, not hype. |
|
|
344
|
+
| Trust / scale proof | Concrete numbers. "16만+" as a plain stat rather than a superlative. |
|
|
345
|
+
| Mall section titles | Practical, energetic. "오늘의 핫딜 🔥", "인기상품 한정 특가!" |
|
|
346
|
+
| Category / filter labels | Everyday plain Korean. "사료", "간식", "용품", "건강". |
|
|
347
|
+
| CTAs | Direct, low-pressure. "추천", "핏펫이 궁금해요". |
|
|
348
|
+
| Care / hospital copy | Reassuring, service-framed. "좋은 병원 찾고 진료 예약까지". |
|
|
349
|
+
|
|
350
|
+
**Voice samples (verbatim from live surfaces):**
|
|
351
|
+
- "반려동물의 건강을 집에서 1분만에 확인" — corporate hero (health-first promise). *(verified live 2026-07-02)*
|
|
352
|
+
- "건강한 반려생활의 시작 - 핏펫" — mall page title / positioning line. *(verified live 2026-07-02)*
|
|
353
|
+
- "좋은 병원 찾는 것도 핏펫에선 쉽게 병원 찾고 진료 예약까지" — corporate section (end-to-end care). *(verified live 2026-07-02)*
|
|
354
|
+
|
|
355
|
+
**Forbidden register**: fear-based pet-health scare copy, aggressive sales urgency beyond clearly-labeled deals, undefined veterinary jargon left unexplained, exclamation-heavy hype outside the deal context.
|
|
356
|
+
|
|
357
|
+
## 11. Brand Narrative
|
|
358
|
+
|
|
359
|
+
Fitpet (핏펫) is a Korean pet-healthcare and pet-commerce company founded in **2017**, built around a simple premise: that caring for a companion animal's health should be as easy as checking your own. Its best-known product is an at-home health-check experience — the homepage's central promise is "반려동물의 건강을 집에서 1분만에 확인" ("check your pet's health at home in one minute") — which lowered the barrier between noticing something and knowing something about a pet's wellbeing. *(2017 founding is widely-documented public knowledge; the mission framing here is quoted from the live homepage.)*
|
|
360
|
+
|
|
361
|
+
From that health-check root the brand grew outward into a full "건강한 반려생활" ("healthy companion life") platform: **Fitpet Mall** (`fitpetmall.com`) curates food, treats, and supplies chosen against health criteria ("엄격한 기준으로 고른 제품"), and a hospital-finding and booking flow closes the loop ("좋은 병원 찾고 진료 예약까지"). The "16만+" stat on the corporate hero is the trust anchor — scale as evidence that the health-first approach works.
|
|
362
|
+
|
|
363
|
+
What Fitpet's design refuses is the heavy, anxious chrome of both legacy commerce (shadow-stacked cards, banner clutter) and clinical healthcare (cold institutional palettes). What it embraces is a single friendly blue, a near-flat surface system, rounded pill geometry, and plain, warm Korean copy — signalling a brand that wants pet health to feel approachable, not intimidating.
|
|
364
|
+
|
|
365
|
+
## 12. Principles
|
|
366
|
+
|
|
367
|
+
1. **Health first, commerce second.** Products exist to serve the pet's wellbeing, not the other way around. *UI implication:* lead with health benefit and curation criteria; keep sale urgency scoped to clearly-labeled deal modules.
|
|
368
|
+
2. **One action, one blue.** `#0050ff` means "do this." *UI implication:* reserve the saturated brand blue for the single primary action so the next step is never ambiguous.
|
|
369
|
+
3. **Flat and fast.** Mobile-native clarity beats decorative depth. *UI implication:* no shadows; separate with the `#f4f7fa` tint and hairlines; keep the grid quick to scan.
|
|
370
|
+
4. **Approachable, not clinical.** Pet health should feel warm. *UI implication:* rounded pills, friendly Pretendard type, and plain Korean labels instead of cold veterinary framing.
|
|
371
|
+
5. **Trust through concreteness.** *UI implication:* prefer real numbers (the 85px "16만+" stat) and specific claims over adjectives; make discounts and ratings literal with the coral `#ff5967` and yellow `#ffd633`.
|
|
372
|
+
|
|
373
|
+
## 13. Personas
|
|
374
|
+
|
|
375
|
+
*Personas below are fictional archetypes informed by publicly observable Fitpet user segments (Korean pet owners managing health and shopping for supplies), not individual people.*
|
|
376
|
+
|
|
377
|
+
**김하늘, 31, 서울.** A first-time dog owner who worries about spotting health issues early. Uses Fitpet's at-home check because a one-minute test at home is less stressful than an immediate vet visit. Trusts the brand because the copy explains rather than alarms.
|
|
378
|
+
|
|
379
|
+
**이준호, 38, 경기.** A busy cat owner who buys food and litter monthly on Fitpet Mall. Values the curated "엄격한 기준으로 고른 제품" framing and the clearly-labeled hot deals; scans the flat product grid quickly on his phone.
|
|
380
|
+
|
|
381
|
+
**박서연, 44, 부산.** A multi-pet household manager who uses Fitpet to find a good animal hospital and book appointments. Appreciates that finding care and shopping live in one calm, non-intimidating app.
|
|
382
|
+
|
|
383
|
+
## 14. States
|
|
384
|
+
|
|
385
|
+
| State | Treatment |
|
|
386
|
+
|---|---|
|
|
387
|
+
| **Empty (no search results)** | White canvas. Single Ink (`#1b1e21`) line explaining no matching products, with one blue `#0050ff` action to adjust filters. No clutter. |
|
|
388
|
+
| **Empty (cart / saved, none yet)** | Muted Slate (`#727a82`) single line inviting the user back to browsing. Calm, honest. |
|
|
389
|
+
| **Loading (product grid)** | Skeleton cards on the `#f4f7fa` surface at final dimensions, 10px radius. Flat pulse — no shadow shimmer, consistent with the shadowless system. |
|
|
390
|
+
| **Loading (in-place refresh)** | Existing cards stay visible; a subtle progress cue rather than a full block. |
|
|
391
|
+
| **Error (fetch failed)** | Inline message in Ink (`#1b1e21`) with a plain-language explanation and a retry. Never a bare "오류가 발생했습니다". |
|
|
392
|
+
| **Error (form validation)** | Field-level message below the input describing what is valid, not just "필수". |
|
|
393
|
+
| **Success (order placed / booked)** | Brief inline confirmation in calm tone; next-step detail linked immediately below. No celebratory emoji. |
|
|
394
|
+
| **Skeleton** | `#f4f7fa` blocks at final dimensions, 10px radius, flat pulse. |
|
|
395
|
+
| **Disabled** | Faint Grey (`#a7aeb5`) text on reduced-opacity surface; the blue action fades rather than turning grey to preserve brand read. |
|
|
396
|
+
|
|
397
|
+
## 15. Motion & Easing
|
|
398
|
+
|
|
399
|
+
**Durations**:
|
|
400
|
+
|
|
401
|
+
| Token | Value | Use |
|
|
402
|
+
|---|---|---|
|
|
403
|
+
| `motion-fast` | 120ms | Hover, chip press, focus |
|
|
404
|
+
| `motion-standard` | 200ms | Card / sheet / dropdown reveal |
|
|
405
|
+
| `motion-slow` | 320ms | Page-level transitions, hero reveal |
|
|
406
|
+
|
|
407
|
+
**Easings**:
|
|
408
|
+
|
|
409
|
+
| Token | Curve | Use |
|
|
410
|
+
|---|---|---|
|
|
411
|
+
| `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — cards, chips, sheets |
|
|
412
|
+
| `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
|
|
413
|
+
| `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
|
|
414
|
+
|
|
415
|
+
**Motion rules**: Motion is functional and quiet, matching the flat, fast aesthetic. Pill chips and buttons respond to press with a subtle scale/opacity shift; product cards and results fade in from below at `motion-standard / ease-enter`. No bounce or spring — a pet-health brand signals steadiness and care, not playfulness. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and the product stays fully functional.
|
|
416
|
+
|
|
417
|
+
<!--
|
|
418
|
+
OmD v0.1 Sources — Philosophy Layer (sections 10-15)
|
|
419
|
+
|
|
420
|
+
Tier 1 live inspect (2026-07-02) via playwright getComputedStyle on two brand-owned surfaces:
|
|
421
|
+
- https://fitpet.co.kr/ — corporate/brand flagship: Noto Sans KR 40px/600 hero, 85px/600 stat "16만+",
|
|
422
|
+
Poppins 13px/700 nav, ghost pill (2px solid #ffffff, 30px radius), accent blue #1482ff, dark bands #282828.
|
|
423
|
+
- https://www.fitpetmall.com/ — commerce mall: Pretendard body, primary button #0050ff (28.8px radius),
|
|
424
|
+
discount badge #ff5967 (4.8px radius), surface #f4f7fa, promo strip #edf4ff, deep navy #0035a8,
|
|
425
|
+
rating yellow #ffd633, filter chip (1px #c2c8cf, 999px), near-flat depth (box-shadow none).
|
|
426
|
+
- https://www.fitpetmall.com/mall/search — filled search field (#f4f7fa bg, 9.6px radius, 16px, no border).
|
|
427
|
+
- Logo (google favicon proxy, fitpet.co.kr, 128px) dominant color #0050ff + secondary orange #ff9300.
|
|
428
|
+
|
|
429
|
+
Token-level claims (§1-9) are sourced from this live inspection (see .verification.md for 26 raw samples).
|
|
430
|
+
|
|
431
|
+
Voice samples (§10) are verbatim from the live corporate homepage and mall page title.
|
|
432
|
+
|
|
433
|
+
Brand narrative (§11): Fitpet (핏펫) founded 2017 as a Korean pet-healthcare / pet-commerce company;
|
|
434
|
+
at-home health-check origin, Fitpet Mall, and hospital booking. The 2017 founding is widely-documented
|
|
435
|
+
public knowledge; mission/positioning phrasing is quoted from the live homepage and mall. Specific
|
|
436
|
+
corporate details beyond the live surfaces are general public knowledge, not directly quoted from a
|
|
437
|
+
verified Fitpet statement in this turn.
|
|
438
|
+
|
|
439
|
+
Personas (§13) are fictional archetypes informed by publicly observable Fitpet user segments (Korean
|
|
440
|
+
pet owners). Names are illustrative; they do not refer to real people.
|
|
441
|
+
|
|
442
|
+
Interpretive claims (e.g., "one action, one blue", "approachable, not clinical" as a rejection of cold
|
|
443
|
+
healthcare chrome) are editorial readings connecting Fitpet's observed design to its positioning, not
|
|
444
|
+
directly sourced Fitpet statements.
|
|
445
|
+
-->
|