SmartHR's reference documents #0077c7 as a documented primary color, 6px corner radius. 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, unf
The motion values in this reference were not observed in a capture — and neither were anyone’s. No design system we checked publishes a duration or easing scale; Toss states outright that its component motion lives in the Figma UI Kit rather than in its documentation. Treat any exact curve here as a local default.
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.
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.
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.
Key Characteristics:
#00C4CC (cyan-teal) as the brand primary — fresh and approachable, never navy-corporate#23221F (not pure black) on white + warm-gray Stone neutrals#FF9900 used sparingly for emphasis/highlight moments0.667rem/XS 0.75rem/S 0.857rem/M 1rem/L 1.2rem/XL 1.5rem/XXL 2rems 4px / m 6px / l 8px / full 9999pxTwo first-party surfaces were measured on 2026-09-21 and they are not interchangeable:
smarthr.design (the design system's own site, which publishes 22 --color-* custom
properties) and story.smarthr-ui.dev (the official smarthr-ui Storybook — 988 stories,
144 components — where the values are compiled into Tailwind shr- utility classes and
must be read off rendered components).
#00c4cc) — --color-smarthr-blue. The corporate aqua. It is not the
primary button colour — see below. Recorded as the brand mark colour.Measured on the smarthr-ui Button variant story:
#0077c7) — primary button fill; hover and pressed both #0068ae. This is
--color-bg-blue, not the brand aqua.#e01e5a) — destructive fill (--color-danger); hover and pressed #ca1b51.#0071c1) — the text-button foreground.#f2f2f2) and Border Hover (#cac6c2) — the neutral hover pair
shared by secondary, text and ghost buttons.#f2f2f2, text #c1bdb7, cursor not-allowed. A palette swap, not an
opacity trick.#ffffff) — --color-white.#f8f7f6) — --color-light-grey-3, the page wash behind cards.#d6d3d0) — --color-light-grey-1. Measured identically on both surfaces.#edebe6) — --color-divider.#aaa69f) — --color-light-grey-4.#4e4c49) — --color-dark-grey-1.#706d65) — --color-text-grey; measured as the StatusLabel resting text.#23221e) — measured on rendered smarthr-ui components.
The two surfaces disagree by one unit here: smarthr.design declares
--color-text-black: #23221f and paints it 440 times, while smarthr-ui components compute
#23221e. Both are SmartHR's; the component value is recorded because it is what products
render. The docs value is kept in the conflict matrix rather than averaged away.Measured on the smarthr-ui StatusLabel type story — this is the real semantic set:
#0077c7) — same value as the primary action.#0f7f85) — a teal, --color-nav-active, not a green.#e01e5a) — same value as the danger action.#ffcc17) — a yellow fill carrying #23221e text, the only semantic variant
that fills rather than outlines.SmartHR publishes no brand typeface token. The design system's token set contains
--font-size-* and --leading-* but no font-family entry, so no family is recorded here —
the field is absent, not substituted.
What was observed, kept separate by surface:
system-ui — the OS UI font. A deliberate choice for a
dense B2B product, but a system stack is not promoted to a brand face.SDSYuGothic, a webfont scoped to the design-system site.AdjustedYuGothic.Three surfaces, three different faces, none of them a published product-font token.
Read live from smarthr.design; the tokens are named by their pixel value and expressed
in rem:
| Token | rem | px |
|---|---|---|
--font-size-10 … --font-size-16 | .625 / .688 / .75 / .813 / .875 / .938 / 1 | 10 · 11 · 12 · 13 · 14 · 15 · 16 |
--font-size-18 … --font-size-28 | 1.125 / 1.25 / 1.5 / 1.625 / 1.75 | 18 · 20 · 24 · 26 · 28 |
--font-size-36 … --font-size-54 | 2.25 / 3 / 3.25 / 3.375 | 36 · 48 · 52 · 54 |
Sixteen steps. Control text measures 16px on rendered buttons and inputs.
--leading-normal 1.5 — body and running text.--leading-tight 1.25 — headings and dense rows.Only two leading tokens are published.
--font-size-24, not --font-size-lg, so the
intended size is unambiguous at the call site.Measured on the smarthr-ui variant and disabled stories, pointer parked between
readings. All variants share 42px height, 6px radius, 12px 16px padding and 16px text;
they differ by fill, border and weight. No variant changes on focus — smarthr-ui draws
focus with a separate ring rather than restyling the control.
| Variant | Rest | Hover / Pressed | Weight |
|---|---|---|---|
| Primary | #0077c7 fill, #ffffff text, 1px solid #0077c7 | #0068ae | 700 |
| Secondary | #ffffff fill, #23221e text, 1px solid #d6d3d0 | #f2f2f2 fill, #cac6c2 border | 700 |
| Danger | #e01e5a fill, #ffffff text | #ca1b51 | 700 |
| Text | transparent, #0071c1 text | #f2f2f2 fill | 400 |
| Ghost | transparent, #23221e text | #f2f2f2 fill | 700 |
| On-dark | transparent, #ffffff text and border | rgba(3,3,2,0.15) fill | 700 |
| Disabled | #f2f2f2 fill, #c1bdb7 text, cursor: not-allowed | — | 700 |
The disabled treatment is a palette swap at full opacity, so disabled text keeps its own contrast rather than inheriting a dimmed parent.
#ffffff fill, #23221e text, 1px solid #d6d3d0, 6px radius, 42px tall,
16px / 400 — the same height and radius as a button, so a field and a button align on a row.#ffffff fill, #706d65 text, 1px solid #d6d3d0 at rest. Semantic variants
recolour text and border together (info #0077c7, success #0f7f85, error #e01e5a);
warning is the exception and fills #ffcc17 with #23221e text.Base Surface
#FFFFFF1px solid Stone02 #EDEBE68px (token l)#F8F7F6 page backgroundInfo Notice
#DDF2FB#1376A04pxSuccess Notice
#E6F2C8#378445Warning Notice
#FAF2D0#F56121Error Notice
#FFE7E5#A53F3FStatus Chip
full (9999px) or 4pxThe SmartHR Design System publishes 61 components, read from its own component index at
https://smarthr.design/products/components/ on 2026-09-19. Names are given as the host
publishes them — the PascalCase identifiers of the smarthr-ui package, which is how the index
labels each card. No value, state or geometry below is asserted by this reference.
AccordionPanel, AppHeader, AppNavi, Badge, Base, BottomFixedArea, Browser, Button, Calendar, Checkbox, Chip, Combobox, DatePicker, DefinitionList, Dialog, Disclosure, DropZone, Dropdown, ErrorScreen, Fieldset, FileViewer, FloatArea, FormControl, Formatter, Header, Heading, Icon, InformationPanel, Input, InputFile, Layout, LineClamp, Loader, NotificationBar, PageCounter, Pagination, Picker, RadioButton, RadioButtonPanel, ResponseMessage, Scroller, SectioningContent, SegmentedControl, Select, SideMenu, SideNav, SmartHRAILogo, SmartHRLogo, SpreadsheetTable, StatusLabel, Stepper, Switch, TabBar, Table, Text, TextLink, Textarea, Timeline, Tooltip, VisuallyHiddenText, WarekiPicker
Two are marked deprecated by the host itself: BottomFixedArea and DatePicker are both
labelled 非推奨 on the index. They stay in the roster because SmartHR still publishes them, and
the label is recorded because it is the host's, not this reference's judgement.
The list is flat because the index presents it flat, in one alphabetical grid of cards with no category headings.
§4 records thirteen stylings. Their use: strings are descriptions of purpose — "Single most
important action (Save/Submit)", "Cancel / secondary beside primary" — with no selector, no
capture id, and no class from the smarthr-ui package. This reference has no verification_v2
block and therefore no surface record either.
Several of the thirteen carry names that resemble published components. None is claimed as a rendered instance of one, and none of the 61 above carries a measured value here.
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.
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.
レイヤー順序) so modals, dropdowns, and toasts never fightSmartHR 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.
box-shadow#00C4CC) for the primary action and brand moments. DON'T flood working surfaces with cyan — the product is white + Stone neutrals.#23221F for text. DON'T use pure #000000 — SmartHR softens text deliberately.s(4) / m(6) / l(8) / full. DON'T use 12px+ rounded corners — SmartHR's radius is small and businesslike.#FF9900) sparingly for emphasis. DON'T promote it to a second primary — it dilutes the cyan signal.SmartHR ships media-query tokens (メディアクエリ) so breakpoints are shared, not re-invented per team.
| Width | Behavior |
|---|---|
| Desktop | Full app shell: left nav + header + wide content, dense tables shown in full |
| Tablet | Left nav may collapse; tables gain horizontal scroll or column priority |
| Mobile | Single column; left nav becomes a drawer; XXL heading drops 32px → 28.8px; tables reflow to stacked cards |
#00C4CC#23221F (warm near-black)#FF9900#F8F7F6; card bg #FFFFFF; border Stone02 #EDEBE6#4E4C49 / Stone03 #AAA69F#3DCC65 / Danger Momiji #EC5A55 / Warning Sunlight #FFD74A / Info Sky #32B7F0s 4px / m 6px / l 8px / full 9999px#00C4CC, white text, 6px radius, 16px bold, comfortable padding. Beside it a secondary button: white bg, #23221F text, 1px #EDEBE6 border, same radius."#AAA69F border, 4px radius, #23221F text. Focus state: border #00C4CC + focus ring. Error state: border #EC5A55 and 12px helper text in #A53F3F below."#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."#DDF2FB, text #1376A0), success (bg #E6F2C8, text #378445), warning (bg #FAF2D0), error (bg #FFE7E5, text #A53F3F). 4px radius, M-size text."#00C4CC) is the single primary — one per screen, brand moments only.#23221F, not #000 — warm near-black always.s/m/l (4/6/8px). Avoid 12px+.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.
| Context | Tone |
|---|---|
| Buttons | Short JP verb phrase — 保存, 申請する, 次へ. Imperative-polite, no exclamation marks. |
| Form labels & helper text | Concrete and reassuring — explain what this field is for and what happens next, in plain terms. |
| Empty states | Blameless one-liner + the single next action. Never implies the user did something wrong. |
| Error messages | State the cause, give the fix, in one calm sentence. No 申し訳ございません-flood; one polite acknowledgment max. |
| Success | Quiet confirmation (保存しました) — the work is done, no celebration needed. |
| Notices | Color-coded by semantic family + plain-language summary. The color carries urgency; the words stay calm. |
| Accessibility copy | Written to be read by a screen reader — meaningful labels, no decorative noise. |
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.
Voice samples.
保存 — primary action verb on forms. 申請する — submit-an-application primary action. だれでも・効率よく・迷わずに — the system's stated design intent, surfaced on smarthr.design. 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.
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.
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.
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.
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.
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.
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.
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.
Personas are fictional archetypes informed by SmartHR's publicly-described user base (back-office staff and employees at Japanese SMEs), not real individuals.
佐藤 美咲 (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.
田中 健太 (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.
山田 老 (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.
| State | Treatment |
|---|---|
| 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. |
| Empty (search/filter no results) | Single calm line in Stone04 #4E4C49 (該当する従業員が見つかりませんでした pattern). Offer to clear the filter; no spammy suggestions. |
| Loading (table/page) | Skeleton blocks in Stone01/Stone02 at final dimensions. Subtle shimmer. Layout doesn't shift when data lands. |
| Loading (inline action) | In-button spinner; button keeps its width and 6px radius; label swaps to a loading state. |
| Error (field validation) | Border swaps to Momiji #EC5A55; helper text below in #A53F3F (XS/12px), one sentence: cause + fix. |
| Error (page/system) | Error notice banner: bg Momiji01 #FFE7E5, text #A53F3F. States the condition plainly, offers retry. One polite acknowledgment, no apology-flood. |
| Success | Quiet — success notice (bg Grass01 #E6F2C8, text #378445) or inline 保存しました. No confetti; the task being done is the reward. |
| Disabled | bg Stone02 #EDEBE6, text Stone03 #AAA69F. The palette swap is the signal; no opacity hack. |
| Skeleton | Stone-neutral blocks at exact final size, never on already-known values; respects reduced-motion. |
| Warning / caution | Sunlight notice (bg #FAF2D0) before a consequential action (e.g., a filing deadline). Color carries urgency; words stay calm. |
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.
Durations:
| Token | Value | Use |
|---|---|---|
motion-instant | 0ms | Toggle/checkbox commits, selection |
motion-fast | 150ms | Hover, press, small reveals, focus ring |
motion-standard | 250ms | Dropdown open, accordion, tab switch |
motion-modal | 300ms | Modal/dialog enter-exit |
Easings:
| Token | Curve | Use |
|---|---|---|
ease-standard | cubic-bezier(0.4, 0, 0.2, 1) | The default — 95% of motion |
ease-enter | cubic-bezier(0, 0, 0.2, 1) | Things arriving (dropdowns, modals, toasts) |
ease-exit | cubic-bezier(0.4, 0, 1, 1) | Dismissals |
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.
Signature motions.
motion-modal / ease-enter; the dialog appears with a small opacity + slight upward translate. Controlled, never bouncy.motion-standard / ease-enter with a short height/opacity reveal; closes over ease-exit.motion-fast on focus — accessibility takes priority, so the ring never lags behind keyboard navigation.motion-fast and lingers briefly; no celebratory animation.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.
Verified: 2026-05-19 (omd:add-reference — JP batch)
Tier 1 sources: https://smarthr.design/products/design-tokens/ (SmartHR Design System's own token page — 22 --color-*, 16 --font-size-*, 2 --leading-* read live via getComputedStyle); https://story.smarthr-ui.dev (official smarthr-ui Storybook, 988 stories / 144 components — component geometry, variants and hover/pressed/disabled measured on rendered DOM); https://github.com/kufu/smarthr-ui (the library's official repository on SmartHR's GitHub org, kufu); https://smarthr.jp (corporate marketing — font observation only, a separate evidence domain).
Tier 2 sources: getdesign.md / refero — not separately fetched (official public DS supersedes).
Conflicts unresolved: none. Brief-supplied #00C4CC confirmed exactly against smarthr.design/basics/colors/.
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.
Brand
Neutrals
Semantic
Spacing
| Purpose | Value | Preview |
|---|---|---|
| xs | 4px | |
| sm | 8px | |
| md | 12px | |
| base | 16px | |
| lg | 24px | |
| xl | 32px |
Border Radius
| Element | Value | Preview |
|---|---|---|
| fullStructured token | 9999px | |
| mdStructured token | 6px |
Do and Don't guidelines parsed from DESIGN.md.
Do
Buttons
Inputs
Badges