Pepabo
Pepabo
pepabo
Design System
Pepabo logo

Pepabo

GMO Pepabo's Inhouse is one of the few openly published Japanese design systems, and its defining trait is deliberate neutrality. Inhouse is not a single visual identity — it is a generic, trend-resistant prototype engineered to be overwritten. The brand-swappable layer is called a Flavor: a collection of design tokens (Color, Sizing, Icon, Typogra

01

Color Palette

Brand

Accent

Neutrals

Semantic

02

Typography

Type Scale

Rendered in system-ui to clearly show scale & weight.

display48px · 600 · 1.25
Design at scale
32px32px · 600 · 1.25
Section heading
heading-lg24px · 600 · 1.4
Subheading
body16px · 400 · 1.5
Body text. The quick brown fox jumps over the lazy dog. Designed for readable line-height in long-form content.
small12px · 400 · 1.5
Supporting text
caption12px · 400 · 1.5
Caption · timestamp · 2026
label10px · 500 · 1.5
BADGE / LABEL

Fonts

Primary
Inter
Open · OFL
Designed by Rasmus Andersson. Variable font with full weight range.
Install via Google Fonts
Monospace
Roboto Mono
Open · Apache 2.0
Install via Google Fonts
Primary
Open Sans
Open · OFL
Install via Google Fonts
Primary
Noto Sans JP
Open · OFL
Install via Google Fonts
Primary
YakuHanJP
Brand-only
Not in the OMD font registry. Likely a brand-proprietary typeface — check the brand's own design site for source/availability.
Not publicly distributed.
03

Spacing & Shape

Spacing

PurposeValuePreview
Densitycompact
Base unit4px
Section gap32px
Card padding16px
Element gap12px

Border Radius

ElementValuePreview
buttonsSmall4px
inputsSmall4px
cardsSmall4px
roundedPill20px
avatarsFull9999px
fullFull9999px

Elevation

Shadow 1
Shadow 2
04

Guidelines

Do and Don't guidelines parsed from DESIGN.md.

Do

  • Treat Inhouse as a neutral prototype — layer brand identity through a Flavor, not by hacking the base
  • Use the two-tier tokens: primitive get-primitive-color($name, $level) then semantic get-semantic-color($intention, $level)
  • Use Pepper Blue 600 (#1f7ccc) for interactive/informative affordances
  • Map status to intentions: Positive #1dc487, Notice #debf43, Negative #cc1f24, Attention #db7d42
  • Set the font stack YakuHanJP, Noto Sans JP, Open Sans and load YakuHanJP for Japanese punctuation kerning
  • Keep line-heights on the 4px grid; pick a density (comfort/normal/dense) per context
  • Use near-black ink (#393c41) for text instead of pure black
  • Keep the 4px radius as the default; reserve 20px pill and full-round for specific variants

Don't

  • Bake a single brand's color into the foundation — Inhouse must stay generic so every brand can overwrite it
  • Reach for raw hex in product code — go through the primitive/semantic token functions
  • Use pure black (#000000) for body text — that fill is the neutral base meant to be re-flavored
  • Break the 4px grid with off-grid line-heights or spacing
  • Add heavy chromatic shadows to the base — elevation is shallow and achromatic by design
  • Spread the brand mint (#30f4c5) across the UI — it is a per-flavor key accent, not a general surface color
  • Use a Latin-only font stack for Japanese text — Noto Sans JP + YakuHanJP carry CJK
  • Treat the system as a rulebook — it is an enabler ("a convenient constraint"), not an enforcer
05

Components

Buttons

button-primary
Background#000000
Text#ffffff
Radius4px
Font16px / 400 Open Sans
Shadowlevel1
Use: Neutral pepper primary action (保存); brand flavor overwrites bg
button-outline
Background#ffffff
Text#585c63
Border1px solid #585c63
Radius4px
Font16px / 400 Open Sans
Use: Secondary/outlined action on neutral flavor
button-pill
Background#000000
Text#ffffff
Radius20px
Font16px / 400 Open Sans
Use: Rounded pill button variant (icon / compact)
button-small
Background#000000
Text#ffffff
Radius4px
Font12px / 400 Open Sans
Use: Small (XS) button size

Inputs

textfield
Background#ffffff
Text#393c41
Radius4px
Padding8px 16px
Font16px / 400 Open Sans
Use: Default Textfield; border drawn via inset, focus blue #1f7ccc
textfield-filled
Background#edeef0
Text#393c41
Radius4px 4px 0px 0px
Padding8px 16px
Font16px / 400 Open Sans
Use: Filled / underline Textfield variant

Cards

card
card
Background#ffffff
Radius4px
Shadowlevel1
Use: Elevated content card, 1px #dee0e3 hairline option

Tabs

TabTabTab
nav-link
Text#585c63
Radius4px
Font16px / 400 Open Sans
Activetext #393c41 weight 700
Use: Top App Bar / sidebar nav item

Badges

badge
badge-positive
Background#30f4c5
Text#0e7365
Radius4px
Font14px / 400 Open Sans
Use: Brand mint status pill (e.g. 無料診断中)
badge
badge-negative
Background#cc1f24
Text#ffffff
Radius4px
Font12px / 400 Open Sans
Use: Negative / error intention badge

Avatars

A
avatar
Radius9999px
Use: Circular user avatar (Avatar component)

Related design systems