KRDS — Korea Republic Design System
KRDS — Korea Republic Design System
krds
Design System
KRDS logo

KRDS

KRDS는 대한민국 행정·공공기관 웹·앱이 공유하는 정부 표준 디자인 시스템입니다. 화면은 마케팅 브랜드가 아니라 공공 서비스의 도구처럼 보이도록 설계되었습니다 — 순백 배경(#ffffff) 위에 거의 검정에 가까운 본문(#1E2124), 그리고 신뢰감을 주는 정부 블루(#256EF4)가 단 하나의 강조색으로 작동합니다. 강조색은 그래픽 장식이 아니라 행위(action), 즉 "신청", "확인", "다음 단계"가 있는 자리에만 나타납니다. 영역 분리는 그림자가 아니라 얇은 회색 보더(#58616A 1px / #B1B8BE 1px / #CDD1D5 1px)와 8px 라운드로 처리되어, 시각적 무게

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.
small13px · 400 · 1.5
Supporting text
caption12px · 400 · 1.5
Caption · timestamp · 2026
label10px · 500 · 1.5
BADGE / LABEL

Fonts

Primary
Pretendard GOV
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.
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
03

Spacing & Shape

Spacing

PurposeValuePreview
Densitycompact
Base unit4px
Section gap24px
Card padding12px
Element gap8px

Border Radius

ElementValuePreview
buttons6px
inputs6px
cards6px
dialogs6px
badges6px

Elevation

Shadow 1
04

Guidelines

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

Do

  • 정부 블루(#256EF4)는 액션 자리에만 — Primary 버튼, 활성 링크, 활성 탭, focus ring, side-menu 활성 표시
  • 본문은 17px / 400 / line-height 1.5 — 노안·저시력 사용자를 우선
  • 모든 인터랙티브 요소에 가시성 높은 4px outline focus ring 적용 (--krds-box-shadow-outline)
  • 양식 검증은 명시적 에러 라벨 + aria-invalid + 에러 영역 자동 포커스 + 2px border #DE3412
  • "글자·화면 표시 설정"을 항상 헤더에 노출 — 사용자의 1차 컨트롤
  • 한글 본문에 letter-spacing 0을 유지 — 인위적 자간 압축 금지 (Display만 1px)
  • Pretendard GOV 또는 시스템 한글 폴백을 사용
  • 색상은 매직넘버에 맞춰 선택 — primary-50 위 gray-0이면 즉시 4.5:1+ 통과
  • 모든 컴포넌트는 일반 모드 / 선명한 화면 모드 두 토큰 레이어로 검증

Don't

  • Primary 50을 배경 / 일러스트 / 헤더 풀-블리드에 쓰지 말 것 — 색은 행위(action)다
  • 그림자로 깊이감을 만들지 말 것 — 보더와 라운드로 충분
  • 한 화면에 두 개 이상의 Primary 버튼을 같은 위계로 두지 말 것 — 첫 번째 행위가 명확해야 함
  • 마케팅 카피·과장 표현 금지 — "혁신적인", "최고의", "감동의" 같은 수식어 금지
  • 모션을 강조 수단으로 쓰지 말 것 — prefers-reduced-motion 사용자가 다수
  • 정보 부재 상태에 "데이터가 없습니다" 같은 무미한 표현 금지 — 다음 행동을 안내할 것
  • KWCAG 2.1 AA 미달 컬러 / 컴포넌트 사용 금지 (4.5:1 contrast 최소)
05

Components

Buttons

Primary
Background`#256EF4`
Text`#FFFFFF`
Border1px solid `#256EF4`
Radius6px
Padding0 16px
Font17px / 400
HoverPrimary 60 `#0B50D0` 배경
ActivePrimary 70 `#083891` 배경 (pressed)
DisabledGray 20 `#CDD1D5` 배경 + Gray 50 `#6D7882` 텍스트 + cursor not-allowed
xsmall32px / 4px / 0 10px / 15px·400
small40px / 6px / 0 12px / 15px·400
large56px / 8px / 0 20px / 19px·400
xlarge64px / 8px / 0 24px / 19px·400
Use: 핵심 액션 — "시작하기", "신청하기", "확인", "다음 단계" (한 화면당 1개 권장)
Secondary
Background`#ECF2FE` (Primary 5)
Text`#0B50D0` (Primary 60)
Border1px solid `#256EF4`
Radius6px
Padding0 16px
Font17px / 400
Use: 보조 액션 — "자세히 보기", "이전 단계", "다운로드" (Primary 옆 동일 위계, 사이즈 스케일 Primary와 동일 — radius 4/6/6/8/8)
Tertiary (Outline)
Backgroundtransparent
Text`#1E2124` (Gray 90)
Border1px solid `#58616A` (Gray 60)
Radius6px
Padding0 16px
Font17px / 400
HoverGray 5 `#F4F5F6` 배경
Use: 부가 / 취소 / 초기화 — "취소", "초기화", "닫기" (사이즈 스케일 Primary와 동일)
Text / Link
Backgroundtransparent
Text`#1E2124` (text variant) 또는 `#256EF4` (link variant)
Border1px transparent (focus 시 가시화)
Radius4~8px (크기별)
Padding0 2px~9px (텍스트 흐름에 맞춤)
Fontmedium height 28px
Use: 인라인 액션 — "파일 다운로드", "문의 및 건의", "찜하기"
Icon Only
Backgroundtransparent
Text`#1E2124`
Radius6~8px (크기별)
Padding0 (icon-size 1.6/2/2.4rem = 16/20/24px, `--krds-icon--size-*`)
Use: 단독 아이콘 컨트롤 — 검색 / 닫기 / 도움말 토글
Icon + Border
Background`#FFFFFF`
Text`#1E2124`
Border1px solid `#B1B8BE` (Gray 30)
Radius1000px (`--krds-radius-max`, 원형)
Use: 보조 컨트롤 — "새로고침", "맨 위로"
Floating
BackgroundPrimary `#256EF4`
Text`#FFFFFF`
Radius1000px (원형)
Shadow약한 box-shadow
Use: 페이지 우하단 부유 액션 — "맨 위로 / 챗봇 / 음성지원" (스크롤 시 표시, `component_05_03.html`)

소스: `component_05_02.html`. 5단계 크기 × 6개 변형 = 30개 컴포넌트 슬롯.

Inputs

Text Input
Background`#FFFFFF`
Text`#464C53` (Gray 70, placeholder 포함)
Border1px solid `#58616A`
Radius8px
Padding0 16px
Font19px / 400
Focus보더 유지 + `box-shadow: 0 0 0 4px #256EF4` halo (focus ring)
Disabledbg `#CDD1D5` (Gray 20) / text `#6D7882` (Gray 50) / border 1px `#B1B8BE` (Gray 30) / `aria-disabled="true"`
Use: 일반 텍스트 입력 (`component_09_03.html`) — height 56px default
Textarea
Background`#FFFFFF`
Text`#464C53`
Border1px solid `#58616A`
Radius8px
Padding0 16px
Font19px / 400
Use: 다행 입력 (`component_09_02.html`) — Text Input과 동일 토큰 + 기본 높이 14.4rem (144px), 자동 리사이즈 비권장
Date Input
Background`#FFFFFF`
Text`#464C53`
Border1px solid `#58616A`
Radius8px
Padding0 16px
Font19px / 400
Use: 날짜 입력 (`component_09_01.html`) — Text Input + 캘린더 아이콘 + Calendar 컴포넌트(`component_04_03.html`) 연동, `YYYY-MM-DD` 또는 분리형 (`YYYY / MM / DD` 셋 박스)
File Upload
Background`#FFFFFF`
Text`#1E2124`
Border1px solid `#58616A`
Radius8px
Padding0 16px
Use: 파일 첨부 (`component_09_04.html`) — Tertiary 버튼 + 파일명 표시 영역 + 진행 표시기 + 삭제 칩

소스: `component_09_*.html`. 5단계 크기 + 4단계 상태. Default = large.

Toggles

Checkbox
Background`#FFFFFF` (Checked: `#256EF4`)
Text`#FFFFFF` (check 아이콘)
Border1px solid `#58616A`
Radius4px
Padding16/20/24px 정사각
Use: 다중 선택 — Checked 배경 `#256EF4` + 흰색 check 아이콘. Indeterminate / Error / Disabled 상태 제공.
Radio
Background`#FFFFFF`
Text`#256EF4` (내부 dot)
Border1px solid `#58616A` (Checked: 외곽 `#256EF4`)
Radius1000px (원형)
Padding16/20/24px 원
Use: 단일 선택 — 그룹 단위 키보드 탐색 (`role="radiogroup"`)
Toggle Switch
Background`#B1B8BE` (Off) / `#256EF4` (On)
Text`#FFFFFF` (thumb)
Radiusmax (pill, 트랙 32px 폭 / 16px 높이)
Disabledbg `#CDD1D5`
Use: 켜기/끄기 토글 — On 시 흰색 thumb 우측 이동

체크박스 · 라디오 · 토글 스위치 (`component_06_01.html` / `06_02` / `06_07`).

Cards

Standard Panel
Standard Panel
Background`#FFFFFF`
Border1px solid `#B1B8BE` (Gray 30)
Radius8px
Padding24px (`--krds-padding-8`)
Shadownone — 보더로 영역 구분
Use: 일반 콘텐츠 카드, 본문 내 모듈
Info Panel (Light Primary)
Info Panel (Light Primary)
Background`#ECF2FE` (Primary 5)
Text강조 `#0B50D0` + 본문 `#1E2124`
Bordernone
Radius8px
Padding16px 24px (`--krds-padding-6 --krds-padding-8`)
Use: 안내·도움말 패널 — "이 페이지에서는…", "도움말", 정보성 알림
Critical Alert
Critical Alert
Background`#DE3412` (Danger 50)
Text`#FFFFFF`
Radius0 (풀-블리드)
Padding페이지 폭 가득
Use: 페이지 상단 풀-블리드 긴급 공지 배너 (`component_04_02.html`) — 모바일 헤더 긴급 배지 높이 3.9rem (`--krds-critical-alerts--mobile-badge-size-height`)
Accordion
Accordion
Background`#FFFFFF`
Text`#1E2124`
Border1px solid `#B1B8BE`
Radius8px
Use: 보더 분리 disclosure 패널 (`component_04_07.html` / `04_04`) — max-height 400ms ease 전환

소스: `component_04_*.html`. 표면(surface) 컴포넌트 모음.

Modals

Modal
Dialog content placeholder
Modal
Background`#FFFFFF`
Text`#1E2124`
Radius12px (`--krds-radius-xlarge1`)
Padding40px (`--krds-padding-10`)
Shadow`0 0.2rem 0 0 rgba(0,0,0,a1), 0 0.4rem 0.8rem 0 rgba(0,0,0,a2)` (드롭다운·툴팁과 공유)
Use: 다이얼로그 (`component_04_05.html`) — "글자·화면 표시 설정", "전체 메뉴", 양식 확인. Min-height 264px. 백드롭 fade-in 400ms / opacity 0→0.5 black.

Badges

Primary
Primary
Background`#256EF4` (filled) / transparent (outline)
Text`#FFFFFF` (filled) / `#0B50D0` (outline)
Border1px solid `#256EF4` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 콘텐츠 분류, 액션 강조
Secondary
Secondary
Background`#063A74` (filled) / transparent (outline)
Text`#FFFFFF` (filled) / `#052B57` (outline)
Border1px solid `#052B57` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 카테고리 그룹
Gray
Gray
Background`#6D7882` (filled) / transparent (outline)
Text`#FFFFFF` (filled) / `#464C53` (outline)
Border1px solid `#464C53` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 메타 / 일반 분류
Point
Point
Background`#D63D4A` (filled) / transparent (outline)
Text`#FFFFFF` (filled) / `#AB2B36` (outline)
Border1px solid `#AB2B36` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 강조 / 신규 / 중요 (적색 포인트)
Danger
Danger
Background`#DE3412` (filled) / transparent (outline)
Text`#FFFFFF` (filled) / `#BD2C0F` (outline)
Border1px solid `#BD2C0F` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 오류 / 반려
Warning
Warning
Background`#FFB114` (filled) / transparent (outline)
Text`#1E2124` (filled — warning 50 배경 위 텍스트는 검정으로 대비 확보) / `#8A5C00` (outline)
Border1px solid `#8A5C00` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 주의
Success
Success
Background`#228738` (filled) / transparent (outline)
Text`#FFFFFF` (filled) / `#267337` (outline)
Border1px solid `#267337` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 완료 / 성공
Information
Information
Background`#0B78CB` (filled) / transparent (outline)
Text`#FFFFFF` (filled) / `#096AB3` (outline)
Border1px solid `#096AB3` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 안내 / 진행 중
Disabled
Disabled
Background`#8A949E` (filled) / transparent (outline)
Text`#FFFFFF` (filled) / `#6D7882` (outline)
Border1px solid `#6D7882` (outline)
Radius4px
Padding0 8px
Font15px / 400
Use: 비활성
Tag
Tag (필터 칩)
Background`#FFFFFF` (Selected: `#ECF2FE`)
Text`#1E2124` (Selected: `#0B50D0`)
Border1px solid `#CDD1D5` (Gray 20, Selected: `#256EF4`)
Radiuspill (height와 동일)
Padding8px 10px (medium)
Font15px / 400 (medium)
Use: 선택 가능한 필터 chip (`component_06_04.html`) — 삭제 버튼(`btn-delete`)이 우측에 위치

소스: `component_04_06.html`. outline / bg(filled) × 9개 의미 = 18개 변형. 모두 동일 형태: radius 4px / padding 0 8px / 15px·400 / height 24px.

Tabs

Horizontal TabOther
Horizontal Tab
Backgroundtransparent
Text`#464C53` / 400 (비활성), `#256EF4` / 700 (활성)
Border활성 하단 2px solid `#256EF4`
Use: 페이지 내 섹션 전환 — 활성 탭만 하단 보더 강조

소스: `component_04_10.html`. 수평 탭 라인 + 키보드 좌우 탐색 (`role="tablist"` / `aria-selected`).

Toasts

Toast
Toast
Background`#1E2124`
Text`#FFFFFF`
Radius8px
Padding16px
Use: 화면 중앙 또는 하단 카드 — 3초 자동 닫힘
Snackbar
Snackbar
Background`#1E2124`
Text`#FFFFFF`
Radius0 (풀-블리드 띠)
Padding16px
Use: 하단 풀-블리드 띠 — 액션 버튼 포함 가능 (예: "되돌리기"), 4초 자동 닫힘

모바일 알림 — `component_12_05.html` / `component_12_06.html`.