Tiro
Tiro Design
Foundations

Colors

Tiro의 컬러 시스템. Brown + Stone은 커스텀 스케일 (tailwind.config에 extend 등록). Feedback 팔레트(rose/amber/lime/blue)는 공식 팔레트 그대로 사용.

Tiro는 light mode only입니다. 유일한 다크 표면은 브랜드 히어로 (brown-800 솔리드 + 흰 텍스트).

Policy

  • Feedback & tint 컬러: 공식 스케일 직접 사용 (bg-rose-50, bg-amber-100 등). Semantic으로 감싸지 않음
  • Identity & surface 컬러: 최소한의 shadcn-style semantic tokens만 정의 (--primary, --foreground, --background, --border 등)
  • Tiro 커스텀: brown + stone 스케일. 둘 다 tailwind.config.js extend.colors로 등록
  • 금지: slate, zinc, gray, neutral 같은 쿨 그레이 스케일

Feedback Scale Mapping

역할ScalePill 조합Strong (icon, button bg)
destructive (에러, 삭제)rosebg-rose-50 text-rose-700bg-rose-600, text-rose-600
warning (주의)amberbg-amber-100 text-amber-700text-amber-500
success (성공, 진행)limebg-lime-100 text-lime-700text-lime-500
info (정보, 중립)bluebg-blue-100 text-blue-700text-blue-500

단일 규칙: Feedback pill = bg-{scale}-100 text-{scale}-700. 예외 1개: destructive는 bg-rose-50 (더 옅게).

Notice / Nudge Banner

안내 배너 (TopBanner info/promo, 설치 nudge, 업그레이드 제안) 기본 배경은 bg-amber-100 + text-amber-700.

Warning과 동일한 raw 값을 공유하지만 의미는 다름 — "주목 유도, 부드러운 강조". 나중에 시각적으로 갈라질 필요 생기면 --notice-bg 토큰으로 승격.

Semantic Tokens (최소 set)

컴포넌트 구조 색상만 semantic CSS variable로 정의. Feedback/tint는 raw 직접 사용.

Surface & text

TokenValueDescription
--background
stone-30 (#FAFAF9)
페이지 캔버스
--background-alt
stone-50 (#F5F5F4)
Alt 섹션, 카드 bg
--foreground
brown-800 (#3A2018)
기본 텍스트
--foreground-secondary
stone-500 (#57534E)
보조 본문, 설명, 부제, 트리거 chip 라벨
--muted
stone-100 (#E7E5E4)
Muted 표면 (강한 강조의 chip/divider)
--muted-foreground
stone-300 (#A8A29E)
부가 정보 (날짜·시간·길이), chip 내부 hint (chevron, +N), placeholder/disabled
--border
stone-100 (#E7E5E4)
보더, 디바이더
--input
stone-100 (#E7E5E4)
Input 보더
--ring
brown-800 (#3A2018)
포커스 링

Brand (Tiro brown 기반)

TokenValueDescription
--primary
brown-800 (#3A2018)
브랜드 primary — CTA, 로고, active
--primary-foreground
#FFFFFF
Primary 위 텍스트
--primary-hover
brown-700 (#5C372B)
Primary CTA hover
--primary-active
brown-900 (#2B201D)
Primary CTA active
--accent
brown-50 (#EBDAD4)
Hover 배경, selected 행
--accent-foreground
brown-800 (#3A2018)
Accent 위 텍스트
--secondary
stone-50 (#F5F5F4)
Secondary 표면
--secondary-foreground
brown-800 (#3A2018)
Secondary 위 텍스트

미정의 shadcn 기본 토큰: --popover, --card (별도 토큰 불필요 — --background + --border로 충분). 다크 모드 토큰 전체도 정의하지 않음.

Text Hierarchy — 4단계

본문은 한 화면에서 4단계까지만 운영합니다. "더 흐리게 / 더 또렷하게" 가 필요할 때 새 톤을 만들지 말고 아래 표 안에서 선택합니다.

역할Token색상사용 예
Heading / Strong--primary (text-brown-800)brown-800페이지 타이틀, 노트 제목, 섹션 헤더
Body--foreground (text-brown-800)brown-800본문, 메인 가독 텍스트
Secondary--foreground-secondary (text-stone-500)stone-500보조 본문, 설명, 부제, 트리거 chip 라벨
Muted / Meta--muted-foreground (text-stone-300)stone-300passive 부가 정보 (날짜·시간·길이·타임스탬프·"방금 전"), chip 내부 hint (chevron·"+N"), placeholder/disabled

Rule of thumb (위→아래로 흐려진다):

  • "이걸 보고 행동해야 한다" → stone-500 (Secondary)
  • "그냥 거기 있다는 표시일 뿐" → stone-300 (Muted — meta 정보, hint 아이콘, placeholder)

본문(brown-800) 옆에 같이 놓일 때 "본문 vs 부가" 의 위계가 강하게 갈라지도록 한 단계만 운영합니다. stone-400 은 raw 토큰으로는 존재하지만 hierarchy 에서 별도 tier 로 운영하지 않음.

Accessibility 주의: stone-300 은 흰색 배경 위 contrast ~2.7:1 로 WCAG AA (4.5:1) 미달. 의식적으로 읽혀야 하는 텍스트 (예: 결제 폼 placeholder, 에러 메시지) 는 호출부에서 text-stone-400 또는 text-stone-500 로 한 단계 올려 사용. Meta hierarchy 의 stone-300 은 "스쳐 보는" 텍스트 한정.

Soft Chip Surface

작은 inline chip (참석자 칩, 폴더 칩, 메타 태그) 의 기본 배경은 --secondary (bg-stone-50). 한 단계 더 강조해야 할 chip 만 --muted (bg-stone-100).

  • Chip 텍스트 / 아이콘: text-stone-500 기본 (Auxiliary 와 같은 톤). 강조 chip 만 text-stone-600 까지.
  • Chip 의 hover 는 stone 한 단계 진하게 (stone-50 → stone-100).
  • Chip 안의 trailing chevron / dismiss icon 은 항상 한 단계 더 흐리게 (text-stone-400) — 보조 hint.

Raw Palettes — Full Scales

디자인 시 각 스케일의 모든 tone을 활용할 수 있도록 전체 값을 명시합니다.

Tiro Custom — Tironian Brown

tailwind.config.js extend.colors.brown으로 등록:

colors: {
  brown: {
    30:  '#F8F2F0',
    50:  '#EBDAD4',
    100: '#D5BAB2',
    200: '#C6A296',
    300: '#9C6D5F',
    400: '#885F53',
    500: '#7A4B3D',
    600: '#674236',
    700: '#5C372B',
    800: '#3A2018',  // brand primary
    900: '#2B201D',
  }
}

Tironian Brown

30

#F8F2F0

50

#EBDAD4

100

#D5BAB2

200

#C6A296

300

#9C6D5F

400

#885F53

500

#7A4B3D

600

#674236

700

#5C372B

800

#3A2018

900

#2B201D

Tiro Custom — Stone (뉴트럴)

tailwind.config.js extend.colors.stone으로 등록. stone-30이 가장 연한 tone.

Stone (Neutral)

30

#FAFAF9

50

#F5F5F4

100

#E7E5E4

200

#D6D3D1

300

#A8A29E

400

#78716C

500

#57534E

600

#44403C

700

#292524

800

#1C1917

900

#0C0A09

950

#0A0807

Rose — Destructive

Rose — Destructive

50

#FFF1F2

100

#FFE4E6

200

#FECDD3

300

#FDA4AF

400

#FB7185

500

#F43F5E

600

#E11D48

700

#BE123C

800

#9F1239

900

#881337

950

#4C0519

Raw사용 맥락
rose-50Destructive pill 배경 (예외 — 다른 feedback은 -100)
rose-100Speaker color index 2 배경
rose-600Button destructive bg, inline error icon
rose-700Destructive text (pill, label, border)

Amber — Warning + Notice

Amber — Warning + Notice

50

#FFFBEB

100

#FEF3C7

200

#FDE68A

300

#FCD34D

400

#FBBF24

500

#F59E0B

600

#D97706

700

#B45309

800

#92400E

900

#78350F

950

#451A03

Raw사용 맥락
amber-100Warning pill 배경, 안내 배너 기본
amber-500Toast warning 아이콘
amber-700Warning text (pill, notice 배너)

Lime — Success

Lime — Success

50

#F7FEE7

100

#ECFCCB

200

#D9F99D

300

#BEF264

400

#A3E635

500

#84CC16

600

#65A30D

700

#4D7C0F

800

#3F6212

900

#365314

950

#1A2E05

Raw사용 맥락
lime-100Success pill 배경, Speaker color index 0 배경
lime-500Toast success 아이콘
lime-600Status dot (online)
lime-700Success text (pill)

Blue — Info

Blue — Info

50

#EFF6FF

100

#DBEAFE

200

#BFDBFE

300

#93C5FD

400

#60A5FA

500

#3B82F6

600

#2563EB

700

#1D4ED8

800

#1E40AF

900

#1E3A8A

950

#172554

Raw사용 맥락
blue-100Info pill 배경, Speaker color index 1 배경
blue-500Toast info 아이콘
blue-600Link color (rare — default는 brown)
blue-700Info text (pill)

Speaker Colors (8-cycle)

SpeakerChip colorIndex에 따라 8종 순환:

Speaker Colors — 8-cycle

0

#ECFCCB

1

#DBEAFE

2

#FFE4E6

3

#FEF3C7

4

#F3E8FF

5

#CFFAFE

6

#FCE7F3

7

#FEF9C3

IndexBGFG
0bg-lime-100text-lime-700
1bg-blue-100text-blue-700
2bg-rose-100text-rose-700
3bg-amber-100text-amber-700
4bg-purple-100text-purple-700
5bg-cyan-100text-cyan-700
6bg-pink-100text-pink-700
7bg-yellow-100text-yellow-700

Semantic token으로 감싸지 않음. 8명 초과 화자는 bg-muted fallback.

금지 스케일

slate, zinc, gray, neutral — 쿨 그레이, 모든 레이어에서 금지. 모든 뉴트럴은 stone.

Surface Modes

ContextTokens
Default UIbg-background + text-foreground
Alt sectionbg-background-alt + text-foreground
Brand herobg-primary + text-primary-foreground
Marketing creambg-[#FFFEF7] + text-foreground (Tiro 전용 색상, raw hex 직접 사용)

Palette Restraint

  • Brand는 구두점, Stone이 문장. 화면이 "too brown"이면 Stone으로
  • Brown 중간 톤(100~400) 남용 금지 — 필요할 때만
  • 대부분의 surface는 --background, --background-alt, --muted만으로 해결

Do / Don't

  • Do: Feedback은 bg-{rose|amber|lime|blue}-100 text-{}-700 단일 규칙 (destructive만 bg-rose-50)
  • Do: Identity/surface는 semantic token (bg-primary, text-foreground) 사용
  • Do: 안내/nudge 배너는 bg-amber-100 text-amber-700
  • Do: brown, stonetailwind.config extend로 등록 후 bg-brown-800, bg-stone-30 직접 사용
  • Do: 디자인 시 각 스케일의 다양한 tone(30, 50, 100, 400 등) 활용 — 위 표의 값 전체 사용 가능
  • Don't: slate, zinc, gray, neutral 사용 금지
  • Don't: 두 번째 브랜드 액센트 도입 금지 — brown-800 단일
  • Don't: 그라디언트 사용 금지 — 솔리드 컬러만
  • Don't: Feedback 컬러를 semantic으로 감싸는 과설계 금지 (rose/amber/lime/blue raw 그대로)

On this page