타이포그래피
본문은 Pretendard Variable, 수치와 ID 는 시스템 mono 입니다.
시스템에 설치된 폰트에 기대지 않습니다 — 방문자 대부분은 설치돼 있지 않습니다. PretendardFont 가 동적 서브셋 CSS 를 head 에 넣습니다. 본문은 word-break: keep-all 로 한국어 단어가 줄 중간에서 끊기지 않고, h1–h3 는 letter-spacing -0.02em 에 text-wrap: balance 입니다.
mono 는 앱이 next/font 로 --font-geist-mono 를 주입하면 그것을, 없으면 시스템 mono 를 씁니다.
import { PretendardFont } from "@uyoolabs/uyooglass/brand";
// 루트 layout 의 <head> 에 둔다. jsDelivr 의 동적 서브셋을 preconnect + stylesheet 로 받는다.
<head><PretendardFont /></head>크기
Tailwind 기본 스케일을 그대로 씁니다. 새 크기를 들이지 않습니다.
text-xs12px
우유랩스 디자인 시스템 · Glass surface
라벨 · 힌트 · 배지
text-sm14px
우유랩스 디자인 시스템 · Glass surface
본문 · 표 · 버튼
text-base16px
우유랩스 디자인 시스템 · Glass surface
긴 글
text-lg18px
우유랩스 디자인 시스템 · Glass surface
카드 제목 강조
text-xl20px
우유랩스 디자인 시스템 · Glass surface
섹션 제목
text-2xl24px
우유랩스 디자인 시스템 · Glass surface
Stats 수치
text-3xl30px
우유랩스 디자인 시스템 · Glass surface
랜딩
수치와 ID
num 은 tabular-nums 만, id 는 mono 서체 + tabular-nums + 0.8125rem 입니다.
| 클래스 | 렌더 | 용도 |
|---|---|---|
| (없음) | 1,234,567 · 2026-09-06 · prj_01HZX | 일반 본문 |
| num | 1,234,567 · 2026-09-06 · prj_01HZX | 표 안의 수치. 자릿수가 세로로 맞는다 |
| id | 1,234,567 · 2026-09-06 · prj_01HZX | ID · 코드 · 변수 이름. Td mono 가 이 클래스다 |
날짜 포맷
서울 고정입니다. 클라이언트 로케일에 맡기면 서버·클라이언트 하이드레이션이 어긋납니다.
출력
| 함수 | 입력 | 출력 |
|---|---|---|
| formatDateTime | 2026-09-06T02:12:00Z | 2026-09-06 11:12 |
| formatDate | 2026-09-06T02:12:00Z | 2026-09-06 |
| formatRelative | 2026-09-06T02:12:00Z (now = 03:00Z) | 48분 전 |
import { formatDate, formatDateTime, formatRelative } from "@uyoolabs/uyooglass";
formatDateTime("2026-09-06T02:12:00Z"); // "2026-09-06 11:12"
formatDate("2026-09-06T02:12:00Z"); // "2026-09-06"
formatRelative(new Date(Date.now() - 3 * 60_000)); // "3분 전"