oh-my-design-cli 1.5.0 → 1.6.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/AGENTS.md +1 -0
- package/README.ko.md +1 -1
- package/README.md +9 -9
- package/agents/omd-master.md +13 -1
- package/data/reference-fingerprints.json +1428 -523
- package/package.json +5 -4
- package/scripts/ctx-prime.cjs +266 -0
- package/skills/omd-harness/SKILL.md +135 -7
- package/skills/omd-kr-writer/SKILL.md +1 -1
- package/web/references/17live/DESIGN.md +424 -0
- package/web/references/alipay/DESIGN.md +456 -0
- package/web/references/appier/DESIGN.md +420 -0
- package/web/references/bilibili/DESIGN.md +426 -0
- package/web/references/class101/DESIGN.md +433 -0
- package/web/references/cookpad/DESIGN.md +357 -0
- package/web/references/dji/DESIGN.md +416 -0
- package/web/references/gogoro/DESIGN.md +403 -0
- package/web/references/ichef/DESIGN.md +411 -0
- package/web/references/kakaopay/DESIGN.md +1 -1
- package/web/references/kakaot/DESIGN.md +454 -0
- package/web/references/kkday/DESIGN.md +423 -0
- package/web/references/meituan/DESIGN.md +424 -0
- package/web/references/millie/DESIGN.md +533 -0
- package/web/references/money-forward/DESIGN.md +401 -0
- package/web/references/myrealtrip/DESIGN.md +445 -0
- package/web/references/naverwebtoon/DESIGN.md +429 -0
- package/web/references/note/DESIGN.md +318 -0
- package/web/references/publy/DESIGN.md +511 -0
- package/web/references/smarthr/DESIGN.md +404 -0
- package/web/references/smartnews/DESIGN.md +331 -0
- package/web/references/spoon/DESIGN.md +446 -0
- package/web/references/tada/DESIGN.md +528 -0
- package/web/references/tossbank/DESIGN.md +519 -0
- package/web/references/triple/DESIGN.md +434 -0
- package/web/references/tumblbug/DESIGN.md +530 -0
- package/web/references/watcha/DESIGN.md +425 -0
- package/web/references/wavve/DESIGN.md +438 -0
- package/web/references/wconcept/DESIGN.md +511 -0
- package/web/references/xiaohongshu/DESIGN.md +423 -0
- package/web/references/yogiyo/DESIGN.md +465 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: smarthr
|
|
3
|
+
name: SmartHR
|
|
4
|
+
country: JP
|
|
5
|
+
category: saas
|
|
6
|
+
homepage: "https://smarthr.jp"
|
|
7
|
+
primary_color: "#00C4CC"
|
|
8
|
+
logo:
|
|
9
|
+
type: favicon
|
|
10
|
+
slug: "https://www.google.com/s2/favicons?domain=smarthr.jp&sz=128"
|
|
11
|
+
verified: "2026-05-19"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
ds:
|
|
14
|
+
name: SmartHR Design System
|
|
15
|
+
url: "https://smarthr.design"
|
|
16
|
+
type: system
|
|
17
|
+
description: SmartHR's fully public, governance-driven design system — primitive and semantic tokens, accessibility-first components, and inclusive UI guidelines published openly at smarthr.design.
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Design System Inspiration of SmartHR
|
|
21
|
+
|
|
22
|
+
## 1. Visual Theme & Atmosphere
|
|
23
|
+
|
|
24
|
+
SmartHR is the cloud HR/labor-administration platform that quietly runs payroll, social-insurance paperwork, and employee records for a large share of Japanese SMEs — and its design language is built around a single, unfashionable virtue: **だれでも・効率よく・迷わずに** ("anyone, efficiently, without getting lost"). This is not a brand that wants to be admired; it wants to be *cleared through*. The screens are the boring, load-bearing infrastructure of someone's employment, and the design system treats that responsibility with the seriousness of a public utility. The result is one of the most rigorous, openly-published, accessibility-first design systems in Japan — the **SmartHR Design System** lives in full public view at `smarthr.design`, primitive tokens, semantic tokens, governance docs and all.
|
|
25
|
+
|
|
26
|
+
The signature color is **SmartHR Blue** (`#00C4CC`) — a bright cyan-teal that reads as fresh and approachable rather than corporate-blue or fintech-navy. It is paired with a warm near-black for text (`#23221F`, not pure `#000`) and an accent orange (`#FF9900`) used sparingly for emphasis. Crucially, SmartHR does **not** flood its product chrome with the brand cyan; the working surfaces are predominantly white and warm-gray Stone neutrals, with cyan reserved for primary actions and brand moments. The palette is then organized into ten named, four-step color families (Stone, Aqua, Sakura, Momiji, Sunlight, Grass, Sky, Marine, Galaxy, Earth) — a system that lets product teams pick semantically (a green for success, a red for danger) without ever inventing an ad-hoc hex.
|
|
27
|
+
|
|
28
|
+
Typography is deliberately **typeface-agnostic** — SmartHR ships no brand webfont and instead defers to the operating system's native font stack, because rendering Japanese, alphanumerics, and screen-reader output correctly on every device matters more than a bespoke wordmark. The type scale is a clean rem-based ladder (XXS 10.67px → XXL 32px). The radius scale is tiny and restrained (`s` 4px / `m` 6px / `l` 8px / `full` 9999px). Everything about the system says: this is a tool, the tool should disappear, and no one should ever have to think about the UI while filing their own resignation paperwork or onboarding their first job.
|
|
29
|
+
|
|
30
|
+
**Key Characteristics:**
|
|
31
|
+
- **SmartHR Blue** `#00C4CC` (cyan-teal) as the brand primary — fresh and approachable, never navy-corporate
|
|
32
|
+
- Warm near-black text `#23221F` (not pure black) on white + warm-gray Stone neutrals
|
|
33
|
+
- Accent **Orange** `#FF9900` used sparingly for emphasis/highlight moments
|
|
34
|
+
- Ten named four-step color families (Stone / Aqua / Sakura / Momiji / Sunlight / Grass / Sky / Marine / Galaxy / Earth) — pick semantically, never ad-hoc
|
|
35
|
+
- **Typeface-agnostic** — no brand webfont; defers to OS-native font stack for correct JP + alphanumeric + a11y rendering
|
|
36
|
+
- rem-based type scale: XXS `0.667rem`/XS `0.75rem`/S `0.857rem`/M `1rem`/L `1.2rem`/XL `1.5rem`/XXL `2rem`
|
|
37
|
+
- Small restrained radius scale: `s` 4px / `m` 6px / `l` 8px / `full` 9999px
|
|
38
|
+
- Token architecture split into **primitive tokens** (raw values) and **semantic tokens** (role-mapped) — the canonical two-layer model
|
|
39
|
+
- Accessibility-first: explicit a11y guidelines, contrast governance, screen-reader-respecting copy
|
|
40
|
+
- The whole system is **fully public** at smarthr.design — governance, principles, components, write rules all open
|
|
41
|
+
|
|
42
|
+
## 2. Color Palette & Roles
|
|
43
|
+
|
|
44
|
+
SmartHR splits color into **primitive tokens** (the raw palette below) and **semantic tokens** (role aliases that map onto primitives). Author against semantic roles; the primitives exist so the palette stays coherent.
|
|
45
|
+
|
|
46
|
+
### Brand
|
|
47
|
+
- **SmartHR Blue** (`#00C4CC`): The primary brand color. RGB `rgb(0, 196, 204)`. Used for primary buttons, brand mark, active/selected emphasis, links in brand context.
|
|
48
|
+
- **Black** (`#23221F`): RGB `rgb(35, 34, 31)`. The recommended text color — a warm near-black, never pure `#000000`. Softer on the eye for dense administrative reading.
|
|
49
|
+
- **Orange** (`#FF9900`): RGB `rgb(255, 153, 0)`. Accent color for emphasis and highlight; used sparingly, never as a second primary.
|
|
50
|
+
- **White** (`#FFFFFF`): Default surface.
|
|
51
|
+
|
|
52
|
+
### Stone (neutral / grayscale family)
|
|
53
|
+
- **Stone01** (`#F8F7F6`): Lightest — page/section background, subtle fills.
|
|
54
|
+
- **Stone02** (`#EDEBE6`): Borders, dividers, disabled fills.
|
|
55
|
+
- **Stone03** (`#AAA69F`): Mid-gray — placeholder, secondary icon, muted text.
|
|
56
|
+
- **Stone04** (`#4E4C49`): Dark neutral — secondary text, strong borders.
|
|
57
|
+
|
|
58
|
+
### Aqua (cyan family — extends the brand)
|
|
59
|
+
- **Aqua01** (`#D4F4F5`): Tint background for cyan-themed surfaces.
|
|
60
|
+
- **Aqua02** (`#69D9DE`): Light cyan.
|
|
61
|
+
- **Aqua03** (`#12ABB1`): Mid cyan.
|
|
62
|
+
- **Aqua04** (`#0F7F85`): Dark cyan — text/icon on light cyan.
|
|
63
|
+
|
|
64
|
+
### Semantic Color Families
|
|
65
|
+
Each family is a four-step ramp (01 lightest tint → 04 darkest); semantic tokens map these to roles.
|
|
66
|
+
- **Grass (green / success)**: `#E6F2C8` · `#AEE26B` · `#3DCC65` · `#378445`. Success states, positive confirmation.
|
|
67
|
+
- **Momiji (red / danger)**: `#FFE7E5` · `#FF9E9C` · `#EC5A55` · `#A53F3F`. Error, danger, destructive actions.
|
|
68
|
+
- **Sunlight (yellow / warning)**: `#FAF2D0` · `#FFEE11` · `#FFD74A` · `#F56121`. Warning, caution.
|
|
69
|
+
- **Sky (light blue / info)**: `#DDF2FB` · `#8FE2FC` · `#32B7F0` · `#1376A0`. Informational notices.
|
|
70
|
+
- **Sakura (pink)**: `#F9E9F7` · `#F8B2E1` · `#D362AF` · `#82407C`. Decorative / categorical.
|
|
71
|
+
- **Marine (navy)**: `#DEE9FF` · `#8AC0FF` · `#0075E3` · `#26519F`. Secondary blue / links.
|
|
72
|
+
- **Galaxy (purple)**: `#EEE5FD` · `#9D8EF8` · `#8C5EEE` · `#6E4CA6`. Categorical / decorative.
|
|
73
|
+
- **Earth (brown)**: `#FBEDE1` · `#F2D3A4` · `#BA621E` · `#76533E`. Categorical / decorative.
|
|
74
|
+
|
|
75
|
+
### Text
|
|
76
|
+
- **Default text**: `#23221F` (warm near-black).
|
|
77
|
+
- **Secondary / muted**: `Stone04 #4E4C49` and `Stone03 #AAA69F`.
|
|
78
|
+
- **On-brand (text on SmartHR Blue)**: `#FFFFFF`.
|
|
79
|
+
|
|
80
|
+
## 3. Typography Rules
|
|
81
|
+
|
|
82
|
+
### Font Stack
|
|
83
|
+
SmartHR is intentionally **typeface-agnostic**. The system explicitly avoids specifying a bespoke typeface and respects the OS font setting, deferring to native system fonts so Japanese, alphanumerics, and assistive-tech output render correctly everywhere. A representative OS-native stack:
|
|
84
|
+
```
|
|
85
|
+
system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif
|
|
86
|
+
```
|
|
87
|
+
There is no brand webfont. This is a deliberate accessibility and performance decision, not an omission.
|
|
88
|
+
|
|
89
|
+
### Type Scale (semantic font-size tokens)
|
|
90
|
+
| Token | rem | px | Typical Use |
|
|
91
|
+
|---|---|---|---|
|
|
92
|
+
| `XXS` | `0.667rem` | `10.67px` | Fine print, dense table captions |
|
|
93
|
+
| `XS` | `0.75rem` | `12px` | Captions, helper text |
|
|
94
|
+
| `S` | `0.857rem` | `13.71px` | Secondary labels |
|
|
95
|
+
| `M` (standard) | `1rem` | `16px` | Body default |
|
|
96
|
+
| `L` | `1.2rem` | `19.2px` | Subheadings |
|
|
97
|
+
| `XL` | `1.5rem` | `24px` | Section headings |
|
|
98
|
+
| `XXL` | `2rem` | `32px` (mobile `1.8rem`/28.8px) | Page headings |
|
|
99
|
+
|
|
100
|
+
### Line Heights (leading tokens)
|
|
101
|
+
- **TIGHT** (`1.25×`): Headings.
|
|
102
|
+
- **NORMAL** (`1.5×`): Body text — generous for dense JP administrative reading.
|
|
103
|
+
- **NONE** (`1×`): Labels and single-line UI text.
|
|
104
|
+
|
|
105
|
+
### Conventions
|
|
106
|
+
- **M (16px) is the body default** — readable, not cramped, sized for forms full of legal/labor terminology.
|
|
107
|
+
- **Mobile reduces only XXL** (32px → 28.8px); body and below stay constant.
|
|
108
|
+
- **Bold is contextual** — applied by components (headings, buttons) rather than exposed as a heavy display weight. SmartHR builds hierarchy from size + leading + color, not from a dramatic weight jump.
|
|
109
|
+
- **Never hardcode a typeface** — always go through the OS-native stack.
|
|
110
|
+
|
|
111
|
+
## 4. Component Stylings
|
|
112
|
+
|
|
113
|
+
### Buttons
|
|
114
|
+
|
|
115
|
+
**Primary**
|
|
116
|
+
- Background: `#00C4CC` (SmartHR Blue)
|
|
117
|
+
- Text: `#FFFFFF`
|
|
118
|
+
- Radius: `6px` (token `m`)
|
|
119
|
+
- Font: `1rem` (16px) / bold
|
|
120
|
+
- Use: The single most important action on a screen (Save / Submit / 申請する)
|
|
121
|
+
|
|
122
|
+
**Secondary / Default**
|
|
123
|
+
- Background: `#FFFFFF`
|
|
124
|
+
- Text: `#23221F`
|
|
125
|
+
- Border: `1px solid` Stone02 `#EDEBE6`
|
|
126
|
+
- Radius: `6px` (token `m`)
|
|
127
|
+
- Use: Cancel / secondary actions sitting beside a primary
|
|
128
|
+
|
|
129
|
+
**Danger**
|
|
130
|
+
- Background: Momiji `#EC5A55`
|
|
131
|
+
- Text: `#FFFFFF`
|
|
132
|
+
- Radius: `6px` (token `m`)
|
|
133
|
+
- Use: Destructive actions (delete, withdraw application)
|
|
134
|
+
|
|
135
|
+
**Text / Skeleton button**
|
|
136
|
+
- Background: transparent
|
|
137
|
+
- Text: Aqua04 `#0F7F85` (cyan-dark, readable on white)
|
|
138
|
+
- Use: Low-emphasis inline actions
|
|
139
|
+
|
|
140
|
+
**Disabled**
|
|
141
|
+
- Background: Stone02 `#EDEBE6`
|
|
142
|
+
- Text: Stone03 `#AAA69F`
|
|
143
|
+
- Use: Unavailable actions — palette swap is the signal, no opacity trick
|
|
144
|
+
|
|
145
|
+
### Inputs
|
|
146
|
+
|
|
147
|
+
**Text Field**
|
|
148
|
+
- Background: `#FFFFFF`
|
|
149
|
+
- Text: `#23221F`
|
|
150
|
+
- Border: `1px solid` Stone03 `#AAA69F`
|
|
151
|
+
- Radius: `4px` (token `s`)
|
|
152
|
+
- Focus: border SmartHR Blue `#00C4CC` + focus ring
|
|
153
|
+
- Use: Form fields — the workhorse of an HR product
|
|
154
|
+
|
|
155
|
+
**Error Field**
|
|
156
|
+
- Border: Momiji `#EC5A55`
|
|
157
|
+
- Helper text below in Momiji `#A53F3F`, font `XS` (12px)
|
|
158
|
+
- Use: Validation failure on a field
|
|
159
|
+
|
|
160
|
+
### Cards / Surfaces
|
|
161
|
+
|
|
162
|
+
**Base Surface**
|
|
163
|
+
- Background: `#FFFFFF`
|
|
164
|
+
- Border: `1px solid` Stone02 `#EDEBE6`
|
|
165
|
+
- Radius: `8px` (token `l`)
|
|
166
|
+
- Use: Content panels, dashboard cards on a Stone01 `#F8F7F6` page background
|
|
167
|
+
|
|
168
|
+
### Notifications / Status
|
|
169
|
+
|
|
170
|
+
**Info Notice**
|
|
171
|
+
- Background: Sky01 `#DDF2FB`
|
|
172
|
+
- Text: Sky04 `#1376A0`
|
|
173
|
+
- Radius: `4px`
|
|
174
|
+
- Use: Informational banners
|
|
175
|
+
|
|
176
|
+
**Success Notice**
|
|
177
|
+
- Background: Grass01 `#E6F2C8`
|
|
178
|
+
- Text: Grass04 `#378445`
|
|
179
|
+
- Use: Confirmation messages
|
|
180
|
+
|
|
181
|
+
**Warning Notice**
|
|
182
|
+
- Background: Sunlight01 `#FAF2D0`
|
|
183
|
+
- Text: Earth-dark / Sunlight04 `#F56121`
|
|
184
|
+
- Use: Caution messages
|
|
185
|
+
|
|
186
|
+
**Error Notice**
|
|
187
|
+
- Background: Momiji01 `#FFE7E5`
|
|
188
|
+
- Text: Momiji04 `#A53F3F`
|
|
189
|
+
- Use: Error / failure banners
|
|
190
|
+
|
|
191
|
+
### Badges / Chips
|
|
192
|
+
|
|
193
|
+
**Status Chip**
|
|
194
|
+
- Background: semantic family 01 tint
|
|
195
|
+
- Text: matching family 04 dark
|
|
196
|
+
- Radius: `full` (9999px) or `4px`
|
|
197
|
+
- Use: Employee status, application state — color-coded by semantic family
|
|
198
|
+
|
|
199
|
+
## 5. Layout Principles
|
|
200
|
+
|
|
201
|
+
### Density
|
|
202
|
+
SmartHR is **medium-to-high density** by necessity — HR dashboards surface many employees, many fields, many statuses. The system manages density with generous `NORMAL` (1.5×) body leading and Stone-neutral separation rather than cramming. Tables are first-class citizens.
|
|
203
|
+
|
|
204
|
+
### Spacing
|
|
205
|
+
Spacing uses a dedicated **spacing token scale** (`余白`) — a stepped set of semantic gaps so vertical rhythm stays consistent across teams. Page content sits on Stone01 `#F8F7F6`; white cards (radius `l` 8px) float on that warm-gray base for separation without heavy shadows.
|
|
206
|
+
|
|
207
|
+
### Structure
|
|
208
|
+
- App-shell pattern: persistent left navigation + top header + main content area
|
|
209
|
+
- Forms are the central artifact — labeled fields, helper text, inline validation
|
|
210
|
+
- Z-index is governed by a **layer-order token** (`レイヤー順序`) so modals, dropdowns, and toasts never fight
|
|
211
|
+
|
|
212
|
+
## 6. Depth & Elevation
|
|
213
|
+
|
|
214
|
+
SmartHR uses a **shadow token scale** (`影`) for elevation, kept subtle. The product reads mostly flat — separation comes from Stone-neutral backgrounds and 1px borders rather than dramatic shadows.
|
|
215
|
+
|
|
216
|
+
- Cards: minimal or no shadow; 1px Stone02 border + Stone01 page bg does the separating
|
|
217
|
+
- Dropdowns / popovers: light shadow token
|
|
218
|
+
- Modals / dialogs: stronger shadow token + Stone01 backdrop scrim
|
|
219
|
+
- Elevation always references the shadow token scale, never an ad-hoc `box-shadow`
|
|
220
|
+
|
|
221
|
+
## 7. Do's and Don'ts
|
|
222
|
+
|
|
223
|
+
- **DO** reserve SmartHR Blue (`#00C4CC`) for the primary action and brand moments. **DON'T** flood working surfaces with cyan — the product is white + Stone neutrals.
|
|
224
|
+
- **DO** use warm near-black `#23221F` for text. **DON'T** use pure `#000000` — SmartHR softens text deliberately.
|
|
225
|
+
- **DO** pick colors from the ten semantic families (Grass for success, Momiji for danger, Sunlight for warning, Sky for info). **DON'T** invent ad-hoc hexes — the families exist precisely so you never have to.
|
|
226
|
+
- **DO** defer to the OS-native font stack. **DON'T** load a brand webfont or hardcode a single typeface — it breaks JP/a11y rendering.
|
|
227
|
+
- **DO** use the radius tokens `s`(4) / `m`(6) / `l`(8) / `full`. **DON'T** use 12px+ rounded corners — SmartHR's radius is small and businesslike.
|
|
228
|
+
- **DO** treat accessibility as a gate, not a nicety — contrast, focus rings, screen-reader copy. **DON'T** ship a control that fails the a11y guidelines.
|
|
229
|
+
- **DO** build hierarchy from size + leading + color. **DON'T** reach for a heavy display weight; the system has no dramatic bold tier.
|
|
230
|
+
- **DO** use Orange (`#FF9900`) sparingly for emphasis. **DON'T** promote it to a second primary — it dilutes the cyan signal.
|
|
231
|
+
|
|
232
|
+
## 8. Responsive Behavior
|
|
233
|
+
|
|
234
|
+
SmartHR ships **media-query tokens** (`メディアクエリ`) so breakpoints are shared, not re-invented per team.
|
|
235
|
+
|
|
236
|
+
| Width | Behavior |
|
|
237
|
+
|---|---|
|
|
238
|
+
| Desktop | Full app shell: left nav + header + wide content, dense tables shown in full |
|
|
239
|
+
| Tablet | Left nav may collapse; tables gain horizontal scroll or column priority |
|
|
240
|
+
| Mobile | Single column; left nav becomes a drawer; XXL heading drops 32px → 28.8px; tables reflow to stacked cards |
|
|
241
|
+
|
|
242
|
+
### Touch & Mobile
|
|
243
|
+
- Touch targets respect minimum tap height; inputs grow comfortable on mobile
|
|
244
|
+
- Only XXL typography steps down on mobile; body and below stay constant for legibility
|
|
245
|
+
- Forms remain the central artifact — mobile keeps full validation and helper text
|
|
246
|
+
|
|
247
|
+
## 9. Agent Prompt Guide
|
|
248
|
+
|
|
249
|
+
### Quick Color Reference
|
|
250
|
+
- Primary action / brand: SmartHR Blue `#00C4CC`
|
|
251
|
+
- Text: `#23221F` (warm near-black)
|
|
252
|
+
- Accent / emphasis: Orange `#FF9900`
|
|
253
|
+
- Page bg: Stone01 `#F8F7F6`; card bg `#FFFFFF`; border Stone02 `#EDEBE6`
|
|
254
|
+
- Muted text: Stone04 `#4E4C49` / Stone03 `#AAA69F`
|
|
255
|
+
- Success Grass `#3DCC65` / Danger Momiji `#EC5A55` / Warning Sunlight `#FFD74A` / Info Sky `#32B7F0`
|
|
256
|
+
- Radius: `s` 4px / `m` 6px / `l` 8px / `full` 9999px
|
|
257
|
+
|
|
258
|
+
### Example Component Prompts
|
|
259
|
+
- "Create a SmartHR primary button: bg `#00C4CC`, white text, `6px` radius, 16px bold, comfortable padding. Beside it a secondary button: white bg, `#23221F` text, 1px `#EDEBE6` border, same radius."
|
|
260
|
+
- "Build a SmartHR text input: white bg, 1px `#AAA69F` border, `4px` radius, `#23221F` text. Focus state: border `#00C4CC` + focus ring. Error state: border `#EC5A55` and 12px helper text in `#A53F3F` below."
|
|
261
|
+
- "Design a SmartHR dashboard card: white surface, 1px `#EDEBE6` border, `8px` radius, sitting on a Stone01 `#F8F7F6` page background. Heading at XL (24px), body at M (16px) with 1.5× line height, text `#23221F`."
|
|
262
|
+
- "Create a SmartHR status notice set: info (bg `#DDF2FB`, text `#1376A0`), success (bg `#E6F2C8`, text `#378445`), warning (bg `#FAF2D0`), error (bg `#FFE7E5`, text `#A53F3F`). 4px radius, M-size text."
|
|
263
|
+
|
|
264
|
+
### Iteration Guide
|
|
265
|
+
1. **SmartHR Blue (`#00C4CC`) is the single primary** — one per screen, brand moments only.
|
|
266
|
+
2. **Text is `#23221F`, not `#000`** — warm near-black always.
|
|
267
|
+
3. **Pick from the ten semantic families** — never invent a hex; Grass/Momiji/Sunlight/Sky cover success/danger/warning/info.
|
|
268
|
+
4. **OS-native fonts only** — no webfont, no hardcoded typeface.
|
|
269
|
+
5. **Radius is small** — `s`/`m`/`l` (4/6/8px). Avoid 12px+.
|
|
270
|
+
6. **Hierarchy from size + leading + color** — no heavy display weight exists.
|
|
271
|
+
7. **Accessibility is a gate** — contrast, focus rings, screen-reader copy are non-negotiable.
|
|
272
|
+
8. **Flat by default** — Stone neutrals + 1px borders separate; shadows are subtle and tokenized.
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 10. Voice & Tone
|
|
277
|
+
|
|
278
|
+
SmartHR's voice is **plain, polite, and de-stressing**. The product sits at one of the most anxiety-inducing intersections in adult life — employment paperwork, payroll, social insurance, resignations — and the copy's entire job is to lower the user's blood pressure. It writes in standard polite Japanese (です・ます調 / 丁寧語), short declarative sentences, and avoids both bureaucratic stiffness (硬い役所言葉) and over-familiar startup chumminess. The guiding internal phrase is **だれでも・効率よく・迷わずに** — anyone, efficiently, without getting lost — and every microcopy decision is measured against "did this help the user not get lost?" English exists for international employees but Japanese is the first-class voice.
|
|
279
|
+
|
|
280
|
+
| Context | Tone |
|
|
281
|
+
|---|---|
|
|
282
|
+
| Buttons | Short JP verb phrase — `保存`, `申請する`, `次へ`. Imperative-polite, no exclamation marks. |
|
|
283
|
+
| Form labels & helper text | Concrete and reassuring — explain *what this field is for* and *what happens next*, in plain terms. |
|
|
284
|
+
| Empty states | Blameless one-liner + the single next action. Never implies the user did something wrong. |
|
|
285
|
+
| Error messages | State the cause, give the fix, in one calm sentence. No `申し訳ございません`-flood; one polite acknowledgment max. |
|
|
286
|
+
| Success | Quiet confirmation (`保存しました`) — the work is done, no celebration needed. |
|
|
287
|
+
| Notices | Color-coded by semantic family + plain-language summary. The color carries urgency; the words stay calm. |
|
|
288
|
+
| Accessibility copy | Written to be read by a screen reader — meaningful labels, no decorative noise. |
|
|
289
|
+
|
|
290
|
+
**Forbidden patterns.** Bureaucratic stiffness (`〜していただきますようお願い申し上げます` walls of keigo), apology-flooding on non-destructive states, exclamation-mark emphasis on buttons (`保存する!`), marketing superlatives (`最高の`, `革新的な`), emoji in product chrome, and any copy that makes the user feel they're at fault for a system condition. Decorative cleverness that costs clarity is a bug.
|
|
291
|
+
|
|
292
|
+
**Voice samples.**
|
|
293
|
+
- `保存` — primary action verb on forms. <!-- illustrative: standard SmartHR-register JP form verb; not quoted verbatim from a specific live screen -->
|
|
294
|
+
- `申請する` — submit-an-application primary action. <!-- illustrative -->
|
|
295
|
+
- `だれでも・効率よく・迷わずに` — the system's stated design intent, surfaced on smarthr.design. <!-- verified: smarthr.design homepage copy, WebFetch 2026-05-19 -->
|
|
296
|
+
|
|
297
|
+
## 11. Brand Narrative
|
|
298
|
+
|
|
299
|
+
SmartHR was founded in Japan to attack a specific, unglamorous problem: the **mountain of労務 (labor administration) paperwork** that every Japanese company must file — social insurance, employment insurance, year-end tax adjustment (年末調整), onboarding and offboarding documents — almost all of it historically done on paper, by hand, by overworked back-office staff. SmartHR's premise was that this work is (a) universal, (b) miserable, and (c) almost entirely automatable. By digitizing the forms and the workflows, SmartHR turned a paper avalanche into a few clicks — and grew into one of Japan's most widely-used HR/labor SaaS platforms for small and medium businesses. <!-- source: SmartHR product positioning + smarthr.jp, general public knowledge; not a quoted founder interview -->
|
|
300
|
+
|
|
301
|
+
The design system reflects three commitments inherited from that origin. **One**, the product must work for *everyone in a company* — not just designers or power users, but the new hire filing their first form and the 60-year-old administrator who has done this on paper for thirty years. Hence `だれでも` (anyone) as the first word of the design intent, and hence the relentless accessibility focus. **Two**, it must be *efficient* — these are repetitive, high-volume, deadline-driven tasks, so the UI optimizes for throughput, not delight: dense tables, clear forms, minimal ceremony. **Three**, no one should *get lost* — labor paperwork is confusing enough without a confusing UI on top of it, so the system invests heavily in plain-language copy, predictable layouts, and a shared token vocabulary that keeps every team's screens feeling like one product.
|
|
302
|
+
|
|
303
|
+
What sets SmartHR apart in the Japanese SaaS landscape is that it published its design system **fully in the open** at `smarthr.design` — primitive and semantic tokens, accessibility guidelines, writing rules, governance — at a level of completeness rare even among global tech companies. The system is itself an expression of the brand: methodical, generous, unflashy, and built so that anyone can use it without getting lost.
|
|
304
|
+
|
|
305
|
+
## 12. Principles
|
|
306
|
+
|
|
307
|
+
1. **Anyone, efficiently, without getting lost (だれでも・効率よく・迷わずに).** The stated design intent and the lens for every decision. *UI implication:* If a screen helps a power user but loses a first-timer, it fails. Plain copy, predictable layout, and accessibility are requirements, not enhancements.
|
|
308
|
+
|
|
309
|
+
2. **Accessibility is a gate, not a feature.** Color contrast, focus visibility, and screen-reader-meaningful labels are checked before ship. *UI implication:* Text is `#23221F` on white for contrast; every interactive control has a visible focus ring; semantic family colors are chosen so the *meaning* survives even without the hue.
|
|
310
|
+
|
|
311
|
+
3. **Two-layer tokens: primitive then semantic.** The palette exists as primitives; teams author against semantic roles. *UI implication:* Don't reference `#EC5A55` directly — reference the danger role that maps to Momiji. This keeps the whole product re-themeable and coherent.
|
|
312
|
+
|
|
313
|
+
4. **The tool should disappear.** SmartHR is infrastructure for someone's employment; the UI's success is measured by how little the user has to think about it. *UI implication:* No decorative flourish, no brand color where it isn't needed, restrained motion, small radii. White + Stone neutrals + cyan for the one action that matters.
|
|
314
|
+
|
|
315
|
+
5. **Typeface-agnostic by principle.** Deferring to OS fonts is a correctness decision — JP glyphs, alphanumerics, and assistive tech all render best natively. *UI implication:* Never hardcode a typeface or load a webfont. Build hierarchy from the size/leading/color tokens instead.
|
|
316
|
+
|
|
317
|
+
## 13. Personas
|
|
318
|
+
|
|
319
|
+
*Personas are fictional archetypes informed by SmartHR's publicly-described user base (back-office staff and employees at Japanese SMEs), not real individuals.*
|
|
320
|
+
|
|
321
|
+
**佐藤 美咲 (Misaki Sato), 38, Osaka.** HR/labor admin at a 60-person manufacturing company. Owns year-end tax adjustment season and onboarding. Used to drown in paper every January; now runs it through SmartHR. Cares only that it's fast, correct, and that employees can self-serve so they stop emailing her. Will forgive a plain UI; will never forgive a confusing one.
|
|
322
|
+
|
|
323
|
+
**田中 健太 (Kenta Tanaka), 24, Tokyo.** First job out of university. His only contact with SmartHR is onboarding: entering his bank details, address, and emergency contact on his phone in the first week. Wants it to feel obvious and trustworthy — this is his salary and personal data. Notices immediately if a field is unexplained.
|
|
324
|
+
|
|
325
|
+
**山田 老 (Hajime Yamada), 61, Nagoya.** Veteran administrator who did labor paperwork on paper for three decades. Distrusts software that hides what it's doing. SmartHR earns his trust through predictability, plain Japanese, and never burying the "what happens next." If a screen surprises him, he stops and calls support.
|
|
326
|
+
|
|
327
|
+
## 14. States
|
|
328
|
+
|
|
329
|
+
| State | Treatment |
|
|
330
|
+
|---|---|
|
|
331
|
+
| **Empty (no records yet)** | White card on Stone01 bg, one plain-language line (M, `#23221F`) explaining what will appear here, one primary `#00C4CC` button for the first action. No illustration clutter. |
|
|
332
|
+
| **Empty (search/filter no results)** | Single calm line in Stone04 `#4E4C49` (`該当する従業員が見つかりませんでした` pattern). Offer to clear the filter; no spammy suggestions. |
|
|
333
|
+
| **Loading (table/page)** | Skeleton blocks in Stone01/Stone02 at final dimensions. Subtle shimmer. Layout doesn't shift when data lands. |
|
|
334
|
+
| **Loading (inline action)** | In-button spinner; button keeps its width and `6px` radius; label swaps to a loading state. |
|
|
335
|
+
| **Error (field validation)** | Border swaps to Momiji `#EC5A55`; helper text below in `#A53F3F` (XS/12px), one sentence: cause + fix. |
|
|
336
|
+
| **Error (page/system)** | Error notice banner: bg Momiji01 `#FFE7E5`, text `#A53F3F`. States the condition plainly, offers retry. One polite acknowledgment, no apology-flood. |
|
|
337
|
+
| **Success** | Quiet — success notice (bg Grass01 `#E6F2C8`, text `#378445`) or inline `保存しました`. No confetti; the task being done is the reward. |
|
|
338
|
+
| **Disabled** | bg Stone02 `#EDEBE6`, text Stone03 `#AAA69F`. The palette swap is the signal; no opacity hack. |
|
|
339
|
+
| **Skeleton** | Stone-neutral blocks at exact final size, never on already-known values; respects reduced-motion. |
|
|
340
|
+
| **Warning / caution** | Sunlight notice (bg `#FAF2D0`) before a consequential action (e.g., a filing deadline). Color carries urgency; words stay calm. |
|
|
341
|
+
|
|
342
|
+
## 15. Motion & Easing
|
|
343
|
+
|
|
344
|
+
SmartHR's motion is **restrained and functional** — motion exists to clarify state change and continuity, never to entertain. An HR tool used under deadline pressure has no room for kinetic flourish.
|
|
345
|
+
|
|
346
|
+
**Durations:**
|
|
347
|
+
|
|
348
|
+
| Token | Value | Use |
|
|
349
|
+
|---|---|---|
|
|
350
|
+
| `motion-instant` | 0ms | Toggle/checkbox commits, selection |
|
|
351
|
+
| `motion-fast` | 150ms | Hover, press, small reveals, focus ring |
|
|
352
|
+
| `motion-standard` | 250ms | Dropdown open, accordion, tab switch |
|
|
353
|
+
| `motion-modal` | 300ms | Modal/dialog enter-exit |
|
|
354
|
+
|
|
355
|
+
**Easings:**
|
|
356
|
+
|
|
357
|
+
| Token | Curve | Use |
|
|
358
|
+
|---|---|---|
|
|
359
|
+
| `ease-standard` | `cubic-bezier(0.4, 0, 0.2, 1)` | The default — 95% of motion |
|
|
360
|
+
| `ease-enter` | `cubic-bezier(0, 0, 0.2, 1)` | Things arriving (dropdowns, modals, toasts) |
|
|
361
|
+
| `ease-exit` | `cubic-bezier(0.4, 0, 1, 1)` | Dismissals |
|
|
362
|
+
|
|
363
|
+
**Spring stance.** Spring / overshoot easing is **forbidden** on SmartHR product surfaces. The brand intent is "without getting lost"; bouncy motion adds noise to a tool whose job is to be invisible. Confidence in a business tool comes from predictability, not delight.
|
|
364
|
+
|
|
365
|
+
**Signature motions.**
|
|
366
|
+
1. **Modal enter.** Backdrop scrim fades in over `motion-modal / ease-enter`; the dialog appears with a small opacity + slight upward translate. Controlled, never bouncy.
|
|
367
|
+
2. **Dropdown / select open.** Opens over `motion-standard / ease-enter` with a short height/opacity reveal; closes over `ease-exit`.
|
|
368
|
+
3. **Focus ring.** Appears instantly-to-`motion-fast` on focus — accessibility takes priority, so the ring never lags behind keyboard navigation.
|
|
369
|
+
4. **Inline save feedback.** Success notice fades in over `motion-fast` and lingers briefly; no celebratory animation.
|
|
370
|
+
|
|
371
|
+
**Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`; skeleton shimmer becomes a static Stone block; modals appear without translate. Accessibility outranks polish, always.
|
|
372
|
+
|
|
373
|
+
<!--
|
|
374
|
+
OmD v0.1 Sources — SmartHR
|
|
375
|
+
|
|
376
|
+
Tier 1 (live / official DS, WebFetch 2026-05-19):
|
|
377
|
+
- smarthr.design (design system homepage) — confirms intent "だれでも・効率よく・迷わずに",
|
|
378
|
+
primitive vs semantic token split, public governance model.
|
|
379
|
+
- smarthr.design/basics/colors/ — SmartHR Blue #00C4CC, Black #23221F, Orange #FF9900,
|
|
380
|
+
Stone/Aqua/Sakura/Momiji/Sunlight/Grass/Sky/Marine/Galaxy/Earth four-step families
|
|
381
|
+
(all hex values transcribed from this page).
|
|
382
|
+
- smarthr.design/products/design-tokens/typography — rem-based size scale XXS→XXL,
|
|
383
|
+
typeface-agnostic / OS-font policy, leading tokens (TIGHT/NORMAL/NONE).
|
|
384
|
+
- smarthr.design/products/design-tokens/radius — s 4px / m 6px / l 8px / full 9999px.
|
|
385
|
+
|
|
386
|
+
Verified vs assumed:
|
|
387
|
+
- VERIFIED: #00C4CC primary, all family hex values, type/radius tokens, OS-font policy,
|
|
388
|
+
design intent phrase. These come straight from the public DS.
|
|
389
|
+
- ASSUMED/INFERRED: component-level button/input/notice variants in §4 are reasonable
|
|
390
|
+
mappings of the verified tokens onto standard SmartHR-style components (the DS documents
|
|
391
|
+
these component categories; exact per-variant values are inferred from the token set).
|
|
392
|
+
Motion tokens (§15) follow the documented shadow/z-index token discipline but specific
|
|
393
|
+
duration values are illustrative. Voice samples marked illustrative are not verbatim
|
|
394
|
+
live strings except the design-intent phrase.
|
|
395
|
+
- Personas (§13) are fictional archetypes of SmartHR's described SME back-office + employee
|
|
396
|
+
user base, not real people.
|
|
397
|
+
-->
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
**Verified:** 2026-05-19 (omd:add-reference — JP batch)
|
|
402
|
+
**Tier 1 sources:** smarthr.design (public SmartHR Design System — colors #00C4CC / #23221F / #FF9900 + 10 four-step families; typography rem scale + OS-font policy; radius s/m/l/full); smarthr.jp (homepage).
|
|
403
|
+
**Tier 2 sources:** getdesign.md / refero — not separately fetched (official public DS supersedes).
|
|
404
|
+
**Conflicts unresolved:** none. Brief-supplied #00C4CC confirmed exactly against smarthr.design/basics/colors/.
|