- route table: extension route for products with an existing visual language, feedback row, derived state tokens stay local - completion: blocking 0 plus reported unverified; hard-gate surface is the touched scope; delivery report starts with what and how to open - design.md created at step 0 with a skeleton, fingerprint line and change log; product-surface rubric reading; direction delegation states the chosen card and reason - layout: hero families, nav forms, footer forms; art-direction page convergence 6 axes; genre sections; image treatments; placeholder conventions; multi-screen order; Tailwind theme mapping - platform: scroll-driven examples, anchor positioning, canvas OT, three/R3F pins, shadcn style prefixes, Safari 26 notes, subgrid - design-gate: four result states, exit codes, cwd module resolution, --url/--out-dir/--strict, oklch contrast, dead selector word match - Korean font budget split from the Latin baseline
64 lines
5.3 KiB
Markdown
64 lines
5.3 KiB
Markdown
# 프리셋: swiss-minimal — 그리드와 침묵
|
|
|
|
> 한 문장: **제품이 복잡하니 화면이라도 조용해야 한다.**
|
|
|
|
## 언제 고르나
|
|
|
|
- 기능이 많고 설명할 것이 많은 제품 — B2B, 개발자 도구, 문서, 인프라
|
|
- 신뢰가 전환의 조건일 때
|
|
- **쓰지 마라**: 기억에 남는 것이 목적일 때. 이 프리셋은 안전하지만 눈에 띄지 않는다
|
|
|
|
> 이름에 대한 주의: 이 프리셋은 스위스/인터내셔널 전통 중 **정렬 질서만** 차용한 B2B·도구용 변형이다. 극단적 스케일 대비와 강한 기억성을 가진 스위스 포스터 전통 자체를 원하면 [../style-atlas.md](../style-atlas.md)의 스위스/인터내셔널 카드를 연다.
|
|
|
|
## 결정
|
|
|
|
### 타이포그래피
|
|
- 그로테스크 산세 하나에서 시작하고, 필요한 경우 라벨·코드 역할에 모노를 추가한다. 언어 범위나 실제 위계가 추가 패밀리를 요구하면 전송량과 렌더 근거를 남긴다.
|
|
- 비율 **1.200~1.250** — 위계 차이를 작게. 대신 웨이트와 색으로 구분
|
|
- 정렬은 왼쪽. 가운데 정렬은 히어로 한 곳까지만
|
|
- Inter는 실패가 아니지만(`../antipatterns.md` §2) 근거 없이 고르면 기본값으로 읽힌다. Switzer·Satoshi·DM Sans 같은 대안과 같은 문단으로 비교하고 고른 이유를 적는다.
|
|
|
|
| 슬롯 | 무료 | 유료 | 한글 후보 풀 |
|
|
|---|---|---|---|
|
|
| 전체 | Switzer, Satoshi, DM Sans | Söhne, GT America | SUIT · IBM Plex Sans KR · Spoqa Han Sans Neo · Gothic A1 · Wanted Sans · Pretendard |
|
|
| 라벨·코드 | JetBrains Mono, IBM Plex Mono | — | 숫자·코드만 모노, 한글은 본문 서체 |
|
|
|
|
- 선택 기준: 라틴 그로테스크와 **맺음·폭이 맞는** 한글을 고른다 — 기계적 맺음의 Plex 라틴이면 IBM Plex Sans KR, 기하적 Satoshi·DM Sans면 SUIT, 좁고 단단한 그로테스크면 Gothic A1, 숫자 비교가 많은 문서면 Spoqa Han Sans Neo를 먼저 비교한다.
|
|
- Pretendard는 풀의 하나일 뿐 기본값이 아니다. 직전 산출물과 겹치면 다른 후보를 고른다. 서체 성격과 라이선스는 [README.md](README.md)의 한글 서체 후보 풀을 따른다.
|
|
- 한글이 섞이는 라벨을 라틴 모노로 조판하지 않는다. 한글 글리프가 시스템 폰트로 떨어지고 고정폭 간격이 어절을 깨뜨린다.
|
|
|
|
### 색
|
|
- 무채색 비중이 큰 팔레트에서 시작하고, 강조 역할이 필요하면 한 색으로 시작해 실제 상태색·링크·CTA의 경쟁을 검증한다
|
|
- **배경 명도 범위**: 밝은 면(OKLCH L 0.95~1.0)이 출발점이지만, 문서·도구가 아닌 브랜드 진입 화면은 원색 면 하나(스위스 포스터 전통의 빨강·노랑·코발트)를 섹션 단위로 쓰는 것도 범위 안이다. 웜 오프화이트를 습관적으로 깔지 않는다 — 이 프리셋의 중립은 대개 쿨 또는 완전 무채다.
|
|
- 배경/카드/경계선의 명도 차이를 **아주 작게**. 그림자 대신 1px 경계선
|
|
- **강조색 계열**: 저채도 기능색(청·청록·회청) 또는 원색 하나. 형광에 가까운 색은 이 프리셋의 조용한 위계와 충돌하기 쉬우므로 실제 화면에서 경쟁 여부를 본다.
|
|
- 보라~파랑 그라디언트는 AI 생성 화면에서 자주 반복되는 관찰 후보다(`../antipatterns.md` §1). 이 프리셋의 평면 언어와도 어긋나기 쉬우므로, 브랜드 자산이나 브리프가 요구하지 않으면 채택하지 않고, 채택하면 이유를 적는다.
|
|
- **radius 범위**: 0~6px. 컨트롤과 카드를 같은 값으로 묶지 말고 역할별로 정한다.
|
|
|
|
### 간격
|
|
- 4/8 배수 그리드를 **엄격하게** 지킨다. 여기서만큼은 예외를 만들지 마라
|
|
- 정렬선이 전부 맞아야 한다. 이 프리셋의 품질은 정렬에서 나온다
|
|
- 섹션과 본문의 간격 대비는 시작값으로 크게 두되, 콘텐츠 그룹과 좁은 폭에서 실제 리듬을 보고 확정한다.
|
|
|
|
### 재질 (`svg-filters.md`)
|
|
- **재질을 거의 쓰지 않는다.** 이 프리셋의 표면은 평평한 종이다
|
|
- 굳이 쓴다면 아주 약한 그레인 하나까지
|
|
- 유리 효과는 이 프리셋의 평면적 언어와 충돌하기 쉽다. 채택하려면 계층상 이유와 저사양 기기의 성능·대비·reduced-transparency 대안을 검증한다. 고정 FPS 하락 수치를 일반화하지 않는다.
|
|
|
|
### 모션 (`motion.md`)
|
|
- 상태 변화 위주(`--dur-instant`, `--dur-quick`). 등장 애니메이션은 최소화
|
|
- 모션은 **피드백**이지 연출이 아니다. 클릭했는데 아무 반응 없는 쪽이 훨씬 큰 죄다
|
|
|
|
## 흔한 실패
|
|
|
|
1. **미니멀을 "요소를 지우는 것"으로 이해** → 미니멀은 정렬과 일관성이지 빈 화면이 아니다
|
|
2. **회색이 너무 많아 위계가 사라짐** → `--ink-muted` 는 하나면 충분하다
|
|
3. **카드에 그림자를 겹겹이** → 1px 경계선 하나가 낫다
|
|
4. **아이콘을 이모지로** → 즉시 아마추어. 아이콘 세트 하나를 정해 일관되게
|
|
5. **강조색을 CTA와 링크와 배지에 다 씀** → 강조가 셋이면 강조가 없다
|
|
|
|
## 리스크 후보
|
|
|
|
- 히어로에서 이미지를 완전히 빼고 **텍스트와 여백만**
|
|
- 색을 무채색 + 딱 한 색으로 극단적으로 제한
|
|
- 섹션 구분선을 전부 없애고 여백만으로 구획
|