Ohouse
Ohouse
ohouse
Design System
Ohouse logo

Ohouse

Ohouse's interface is the digital equivalent of flipping through a friend's home photo album with a shopping cart in hand -- warm, photography-first, aspirational without being precious. The page opens on a soft white canvas (#ffffff) leaning toward a faintly cream off-white (#fafafa) for section bands, with near-black headings (#222222) and the unmist

01

Color Palette

Brand

Accent

Neutrals

Semantic

02

Typography

Type Scale

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

display48px · 700 · 1.25
Design at scale
32px32px · 700 · 1.25
Section heading
heading-lg24px · 700 · 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
Pretendard Variable
Open · OFL
Modern Korean variable font with full Latin coverage.
Install via GitHub · orioncactus/pretendard
Primary
Apple System
Systemno install needed
macOS/iOS default — uses SF Pro automatically.
Not publicly distributed.
Primary
Apple System (Blink)
Systemno install needed
Chrome alias for Apple system font on macOS.
Not publicly distributed.
Primary
Apple SD Gothic Neo
Systemno install needed
Apple system font for Korean.
Not publicly distributed.
Primary
Noto Sans KR
Open · OFL
Install via Google Fonts
Primary
Roboto
Open · Apache 2.0
Install via Google Fonts
03

Spacing & Shape

Spacing

PurposeValuePreview
Densitycompact
Base unit4px
Section gap16px
Card padding20px
Element gap12px

Border Radius

ElementValuePreview
badgesMicro4px
smallMicro4px
buttonsStandard8px
inputsStandard8px
secondaryStandard8px
productComfortable12px
ugcComfortable12px
primaryComfortable12px
storyLarge16px
dialogsLarge16px
featuredLarge16px
bottomXLarge24px

Elevation

Shadow 1
Shadow 2
Shadow 3
Shadow 4
04

Guidelines

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

Do

  • Use Ohouse Blue (#35C5F0) as the singular brand accent -- one primary CTA per viewport, it should feel airy
  • Stick to the 4px spacing grid -- every measurement should be a multiple of 4px
  • Keep product cards quiet so the product photo carries weight; let the image be the hero, not a decorative border
  • Use tnum for prices -- tabular numerals keep KRW columns visually aligned across product grids
  • Reserve #FA3E3E Sale Red strictly for discount price emphasis; use #E53935 Error Red for errors
  • Use Pretendard with -0.01 to -0.02em tracking on headings 18px and up
  • Maintain the alternating #ffffff / #fafafa section rhythm on long scrolls
  • Show free-shipping (무료배송), rating count, and brand name on every product card -- they are baseline trust metadata

Don't

  • n't tint shadows with brand blue -- shadows stay neutral so the cyan accent stays special
  • n't use pure black (#000000) -- always #222222 for text, #888888 for captions
  • n't put two primary CTAs on the same screen -- if there are two, one demotes to outline
  • n't use Sale Red on error states or Error Red on discount labels -- the two reds carry different meanings
  • n't add custom display fonts -- the system stack is intentional, photography is the brand voice
  • n't crop user photos with hard radius greater than 12px on grids; UGC integrity matters
  • n't use heavy borders on product cards -- 1px rgba(0,0,0,0.06) is the maximum, often none
  • n't use cool gray for section backgrounds -- always warm-neutral (#fafafa, never #f4f6f8)
05

Components

Buttons

Brand Solid (Primary CTA)
Background`#35C5F0` (Ohouse Blue)
Text`#ffffff`
Radius8px (standard), 12px (large/sticky-bottom), 9999px (pill in promotional contexts)
Font16px weight 700 (large), 14px weight 600 (medium/small)
Active`#1FB1DB`
Disabled`#f5f5f5` background, `#aaaaaa` text
Min-height52px (large), 44px (medium), 36px (small)
Use: Primary actions ("구매하기", "장바구니 담기", "팔로우")
Neutral Outline
Background`#ffffff`
Text`#222222`
Border1px solid `#dddddd`
Radius8px
Active`#fafafa` background, `#aaaaaa` border
Use: Secondary actions ("관심상품", "공유하기")
Neutral Weak
Background`#f5f5f5`
Text`#222222`
Radius8px
Active`#eeeeee`
Use: Tertiary actions, in-card buttons
Critical / Discount Solid
Background`#FA3E3E`
Text`#ffffff`
Radius8px
Use: Sale-emphasis CTAs only (never destructive). Destructive uses Critical Outline.
Critical Outline
Background`#ffffff`
Text`#E53935`
Border1px solid `#E53935`
Use: Destructive actions ("삭제", "취소")

Inputs

Search Field
Background`#f5f5f5`
Text`#222222`, Placeholder: `#aaaaaa`
Bordernone (filled style)
Radius9999px (pill) on top-bar search, 8px on form fields
Padding0 16px with 20px leading search-icon `#888888`
Focus2px solid `#35C5F0` ring
Height44px
Text Field (Form)
Background`#ffffff`
Border1px solid `#dddddd`
Radius8px
Padding0 14px
Font14px weight 400, `#222222`
Focusborder `#35C5F0`, 2px focus ring `rgba(53,197,240,0.2)`
Height48px
Placeholder`#aaaaaa`
Errorborder `#E53935`, helper text 13px `#E53935` below
Quantity Stepper
Background`#ffffff`
Border1px solid `#dddddd`
Radius8px
Buttons36x36px, `#222222` icons, pressed `#f5f5f5`

Cards

Product Card
Product Card
Background`#ffffff`
Bordernone (or 1px solid `rgba(0,0,0,0.06)` on dense grids)
Radius12px
Padding12px (image bleeds to edges, text padded inside)
Image1:1 aspect, 12px top radius matching card, subtle `rgba(0,0,0,0.04)` placeholder
Title14px weight 400, `#222222`, max 2 lines with ellipsis
Brand12px weight 400, `#888888`
Price16px weight 700, `#222222` (tnum)
Discount13px weight 700, `#FA3E3E` for percent + 13px weight 400 strikethrough `#aaaaaa` for original
Rating row12px weight 400, `#888888` with star glyph in `#FFB800`
UGC Photo Card
UGC Photo Card
Backgroundimage fills entire surface
Bordernone
Radius12px
Aspect1:1 (grid) or 4:5 (feed)
Overlaybottom gradient `linear-gradient(180deg, transparent, rgba(0,0,0,0.5))` for caption legibility
Caption14px weight 600, `#ffffff`, 2-line max
Avatar24px circle, white 1px ring, in lower-left
Bookmark glyphtop-right, 24px, `#ffffff` outline / `#35C5F0` filled when saved
Story / Project Card
Story / Project Card
Background`#ffffff`
Border1px solid `rgba(0,0,0,0.06)`
Radius16px
Padding16px below image
Hero image 169 top, 16px radius matching card top
Title16px weight 700, `#222222`
Snippet14px weight 400, `#555555`, 2-line max
Meta row13px `#888888`

Badges

Discount
Discount Badge
Background`#FA3E3E`
Text`#ffffff`
Radius4px
Padding2px 6px
Font12px weight 700
Use: Sale-percentage on product card image overlay (top-left)
New
New Badge
Background`#35C5F0`
Text`#ffffff`
Radius4px
Font11px weight 700, letter-spacing 0.02em
Use: "NEW" on freshly listed products
Free
Free-Shipping Pill
Background`#E8F7FD`
Text`#0E8FB8`
Radius9999px
Padding2px 8px
Font11px weight 600
Use: "무료배송" inline below price
Best
Best / Rank Badge
Background`#222222`
Text`#ffffff`
Radius4px
Font12px weight 700
Use: "BEST", "1위" rank chips on category bestseller grids