system-prompt.md를 아무 LLM의 시스템 프롬프트 칸에 붙여넣으면, 그 LLM이 "코드 생성기"가 아니라 "디자이너"처럼 행동하게 된다는 것 — 그라디언트·이모지 남발·뻔한 카드 같은 "AI 슬롭(AI slop)"을 거부하고, WCAG 접근성을 기본 바닥선으로 강제한다.
이 문서는 이 저장소를 "프롬프트를 소프트웨어처럼 다루는 법 + 디자인 원칙 + 접근성 체크리스트"의 교재로 해부한다.
(저장소: Trystan-SA/claude-design-system-prompt · Markdown 100% · MIT · 2026-07-06 · TrendShift 오늘 Daily 4위)
이 저장소가 대체 무엇인가.
claude-design-system-prompt은 LLM을 "의견이 뚜렷하고, 접근성을 챙기며, AI 슬롭에 저항하는 디자인 협업자"로 바꾸는 텍스트 문서 모음이다. README 첫 문장 그대로 옮기면 이렇다.
Reverse-engineered system prompt of Claude Design from Anthropic.
A system prompt and skill library that turns an LLM into an
opinionated, accessibility-aware, AI-slop-resistant design collaborator.
즉 "Anthropic의 Claude Design(디자인 도구)이 내부에서 쓰는 시스템 프롬프트를 뜯어 재현했다"고 저자가 주장하는 결과물이다. 저장소 안에는 실행 코드가 단 한 줄도 없다 — .md 파일 32개와 LICENSE가 전부다.
재능은 있지만 자꾸 유행하는 뻔한 디자인만 베끼는 신입이 있다고 하자. 그대로 두면 어디서 본 듯한 보라 그라디언트에 이모지 범벅인 화면을 뽑아 온다.
이 저장소는 그 신입(=LLM) 손에 쥐여 주는 "우리 스튜디오는 이렇게 일한다"는 규정집이다. "그라디언트 대신 플랫 컬러부터", "이모지는 기능이 있을 때만", "포커스 링은 절대 지우지 마라", "요청 하나에 거절 천 번" — 이런 규칙 647줄로 신입의 손버릇을 통째로 교정한다.
라이선스는 관대한 MIT(저작권자 Trystan Sarrade, 2026). 저장소의 최신이자 사실상 유일한 커밋은 2026-07-06이고, 커밋 메시지가 의미심장하다 — "Condense all 28 skills to reduce context usage (~30%)". 즉 이 프로젝트는 스스로를 "LLM의 컨텍스트(문맥 창)를 잡아먹지 않도록 토큰을 아끼는 것"까지 신경 쓰는 소프트웨어로 취급한다.
겉보기엔 그냥 긴 지침문 같다. 하지만 이 레포의 진짜 가치는 세 겹이다 — (1) 실전 디자인 원칙(위계·리듬·타이포·색·간격)을 조목조목 언어화했고, (2) WCAG 접근성 체크리스트가 실무 수치 그대로 들어 있으며, (3) 프롬프트를 버전 관리·리팩터링·모델별 튜닝하는 방법론을 커밋 히스토리로 실증한다. "AI에게 좋은 디자인을 시키는 법"과 "AI에게 뭔가를 제대로 시키는 프롬프트를 쓰는 법"을 동시에 배울 수 있다.
"AI에게 디자인 시키는 프롬프트"는 널렸다. 이건 뭐가 다른가.
대부분의 "디자인 어시스턴트" 프롬프트는 결국 어디서 본 듯한 SaaS 템플릿을 뽑는다. README는 그 전형적 산출물을 콕 집어 조롱한다 — aggressive gradients(요란한 그라디언트), emoji decoration(장식용 이모지), rounded-corner-with-left-border cards(둥근 모서리+왼쪽 컬러바 카드), Inter-everywhere typography(전부 Inter 폰트). 이 저장소는 이 패턴들을 완전한 디자인 철학으로 대체한다. 프롬프트 서두의 선언이 이 프로젝트의 정체성이다.
Generic AI aesthetics are a failure mode, not a default.
(뻔한 AI 미학은 '기본값'이 아니라 '실패 모드'다.)
프롬프트 10장 전체가 접근성이다. 그것도 구호가 아니라 실무 수치다 — 텍스트 대비비 4.5:1(큰 글씨 3:1), 터치 타깃 44×44px 이상, <div onclick> 대신 <button>, 그리고 "포커스 링을 절대 지우지 마라". 프롬프트는 outline: none을 대체 없이 쓰는 것을 "가장 흔한 접근성 실패"라 못박는다.
/* 프롬프트가 강제하는 포커스 표시 대체 예 */
:focus-visible {
outline: 2px solid var(--primary);
outline-offset: 2px;
}
가장 영리한 부분이다. 이 프롬프트를 돌리는 최신 모델(Fable 5, Opus 4.7/4.8 계열)은 놔두면 특유의 기본 미감으로 수렴한다 — 크림색 배경 + 세리프 디스플레이 폰트 + 테라코타/앰버 강조. 예전의 "보라 그라디언트"가 그랬듯, 이게 오늘날의 뻔한 디폴트-템플릿 룩이라는 것. 스킬 ai-slop-check의 규칙 9는 바로 이 조합을 탐지하고, frontend-aesthetic-direction이 선제적으로 다른 방향을 강제한다. 프롬프트가 자기 실행 기반의 약점을 스스로 방어하는 셈이다.
사진 앱의 "자동 보정"을 켜면 모든 사진이 비슷하게 쨍하고 따뜻해진다. 이 저장소는 그 자동 보정을 끄고, "이 장면엔 이 톤이 맞다"를 매번 근거로 정하게 만든다. 심지어 "네 카메라(=너를 돌리는 모델)가 기본으로 넣는 따뜻한 필터를 조심하라"고 카메라 자신에게 경고까지 심어 둔 것.
이 저장소가 트렌딩하는 더 깊은 이유는, 프롬프트 엔지니어링을 진짜 엔지니어링처럼 보여 주기 때문이다. Git 버전 관리, MIT 라이선스, PR(#3) 기반 협업, 그리고 "28개 스킬을 압축해 컨텍스트 30% 절감"이라는 리팩터링 커밋까지. "프롬프트도 유지보수하는 코드"라는 관점의 살아 있는 사례 연구다.
같은 철학을 claude/(Claude Code·Claude.ai용)와 codex/(OpenAI Codex용) 두 벌로 유지한다. 차이는 리뷰 방식이다 — Claude는 서브에이전트를 병렬로 띄워 4개 리뷰를 동시에, Codex는 서브에이전트가 없으니 같은 4개를 순차로 돈다. "동일 절차를 에이전트 아키텍처에 맞춰 어떻게 다시 쓰나"의 A/B 교재다.
결과물(예쁜 화면)이 아니라 사고방식을 얻는다. 좋은 디자인의 판단 기준(위계·리듬·색·접근성)을 체크리스트로 내면화하고, 동시에 "LLM에게 복잡한 판단을 안정적으로 시키는 프롬프트를 어떻게 설계하는가"(트리거·커버리지 우선·모델 세대별 튜닝)를 함께 배운다.
무엇으로 되어 있나 — 코드가 아니라 텍스트다. (실제 클론해서 확인)
보통 딥다이브라면 여기서 백엔드/프론트엔드/인프라 스택을 나열한다. 그런데 이 저장소엔 그런 게 없다. 실행 코드·빌드 도구·의존성이 전무하다. 대신 "무엇이 들어 있고, 어떤 형식이며, 무엇을 전제로 하는가"를 지도로 그려 보자.
| 항목 | 내용 |
|---|---|
| 파일 구성 | .md 32개 + LICENSE 1개. js·ts·py·sh·json·yml·Dockerfile 전부 0개 |
| 시스템 프롬프트 | claude/system-prompt.md 647줄 · codex/system-prompt.md 644줄 |
| 스킬 | claude 14개 + codex 14개 = 28개 (claude 스킬 합 762줄) |
| 스킬 형식 | 순수 마크다운. YAML frontmatter 없음 — 공식 Skill 표준을 따르지 않음 |
| 구조 관례 | "제목(=트리거) + ## Phase N 절차 + ## Anti-patterns" |
| 라이선스 | MIT (Trystan Sarrade, 2026) |
| 저장소 크기 | 264K (.git 제외) |
---로 감싸 넣는 메타데이터 블록(이름·설명·트리거 등). 공식 "Claude Skill"은 이걸로 스킬을 등록한다. 이 저장소는 일부러 그걸 빼고, 그냥 "파일 제목이 트리거"라는 더 단순한 관례를 쓴다 — 아무 LLM에나 복붙하기 쉽게 하려는 선택이다.이 프롬프트가 LLM에게 뽑게 하는 결과물은 HTML/CSS/SVG/JS다. 그리고 구식 문법 대신 최신 표준을 쓰라고 못박는다.
| 기술 | 프롬프트가 시키는 것 |
|---|---|
oklch() | 색을 명도·채도·색상으로 다뤄 균형 잡힌 팔레트 조화(아래 4장 참조) |
text-wrap: pretty | 제목 끝에 단어 하나만 남는 "과부(widow)" 방지 |
| CSS Grid / 컨테이너 쿼리 | 복잡한 레이아웃은 Grid, 반응형은 요소 크기 기준으로 |
@media (prefers-reduced-motion) | 모션 민감 사용자를 위해 애니메이션 자동 축소 |
@media (prefers-color-scheme) | 다크모드 대응 |
View Transitions / animation-timeline | 스크롤 구동 애니메이션 등 최신 API |
프롬프트 곳곳이 저장소엔 없는 도구들을 부른다 — copy_starter_component, design_canvas.jsx, deck_stage.js, questions_v2(네이티브 폼 렌더), __edit_mode_* postMessage 프로토콜, "verifier subagent". README도 이를 인정한다: "이 프롬프트는 Claude.ai의 디자인 도구와 비슷한 HTML-출력 디자인 환경을 전제한다." 다른 LLM에 붙일 땐 원칙(5~16장)은 이식되지만 도구 참조 부분은 조정이 필요하다는 뜻이다.
이름이 "claude-design-system-prompt"이고 "Claude Design 역공학"을 표방하지만, 이건 제3자(Trystan Sarrade)가 만든 비공식 저장소다. 내용이 실제 Anthropic 내부 프롬프트와 얼마나 일치하는지는 저자의 주장일 뿐 검증되지 않았다. 학습 자료로서의 가치와, "공식 문서"라는 오해는 분리해서 보자.
프롬프트 20챕터의 뼈대 + 스킬 파이프라인이 어떻게 맞물리나.
647줄 프롬프트는 20개 챕터로 나뉜다. 관통하는 한 문장이 있다.
You are not a code generator who happens to make designs.
You are a designer who happens to use code.
(너는 어쩌다 디자인하는 코드 생성기가 아니라, 어쩌다 코드를 쓰는 디자이너다.)
| 챕터(요지) | 대표 규칙 |
|---|---|
| 2. 워크플로 | 이해→맥락→가시적 계획→스켈레톤 먼저→반복→요약. 툴 호출 사이엔 침묵("Now I'll…" 금지) |
| 5. 콘텐츠(필러 금지) | 모든 요소는 제자리를 벌어야 함. Lorem·가짜 통계·"Why choose us?"·장식 이모지 삭제. 요청 하나에 거절 천 번 |
| 6. 미학(슬롭 회피) | 그라디언트→플랫 색, 이모지→기능적일 때만, 카드→은은한 그림자, 폰트→의도를 갖고 |
| 7. 위계·리듬 | 크기·색·무게·위치·밀도로 위계. 간격은 4/8px 배수 스케일 |
| 8. 타이포그래피 | 폰트 1~2개, 고정 타입 스케일, 슬라이드 본문 24px+, 모바일 16px+ |
| 9. 색 시스템 | 브랜드+시맨틱+10단계 그레이. 색만으로 상태 전달 금지(색맹 대비) |
| 10. 접근성(WCAG) | 대비 4.5:1, 시맨틱 HTML, 키보드 완전 지원, 포커스 링 유지, 모션 축소 |
| 11. 인터랙션 | 모든 요소에 hover/active/focus/disabled/loading. 트랜지션 0.2~0.3초 |
| 13. 시스템 사고 | 페이지가 아니라 컴포넌트를 디자인. padding:17px 대신 var(--space-md) |
| 14. 매체 존중 | 진짜 CSS Grid·oklch()·localStorage로 상태 영속. Canonical HTML |
| 19. IP 경계 | 저작권 있는 UI 무단 복제 거부. 허락 없이 스코프 확장 금지 |
색 조화를 감이 아니라 규칙으로 만드는 대목이 특히 실용적이다. 명도·채도를 고정하고 색상(hue)만 돌리면 저절로 균형 잡힌 팔레트가 나온다.
/* 같은 명도(50%)·채도(0.15), 색상만 변주 → 자동 균형 */
--blue: oklch(50% 0.15 250);
--teal: oklch(50% 0.15 200);
--purple: oklch(50% 0.15 280);
/* 팔레트는 3~5색까지만. 그 이상은 혼돈 */
oklch(명도 채도 색상) 형식의 CSS 색 표기. 기존 hsl과 달리 사람이 느끼는 밝기가 균일하게 유지돼서, 색상만 바꿔도 "한쪽만 튀어 보이는" 문제가 없다. 그래서 위처럼 hue만 돌려 팔레트를 만들 수 있다.리뷰 스킬들의 설계 철학이 프롬프트 엔지니어링 교훈의 핵심이다. LLM에게 "중요한 것만 보고해"라고 하면 스스로 검열해서 진짜 문제를 빠뜨린다. 그래서 이 저장소는 정반대로 지시한다.
Report every issue with confidence and severity.
Filtering happens at aggregation, not during discovery.
(모든 이슈를 확신도·심각도와 함께 보고하라. 걸러내는 건 '발견'이 아니라 '집계' 단계에서.)
그리고 같은 리뷰를 실행 모델에 맞춰 다르게 돌린다. accessibility-audit를 예로 보면:
polish-pass는 이 리뷰 4종을 한꺼번에 돌린 뒤 결과를 3단계로 분류한다 — ①Blockers(WCAG 미달·포커스 링 등, 전부 수정) → ②Quality(AI 슬롭·위계, 전부 수정) → ③Polish(스코프 내면 적용). 최종 판정은 "Ready to ship / Ready after review / Needs more iteration" 셋 중 하나.
철학은 시스템 프롬프트로 상시 주입하고, 무거운 작업은 스킬(절차)로 분리해 필요할 때만 로드(=컨텍스트 절약), 리뷰는 커버리지 우선으로 누락을 막고, 같은 절차를 병렬/순차로 각색한다. LLM에게 복잡한 판단을 안정적으로 위임하는 프롬프트 설계의 모범 답안이다.
어디에 무엇이 있나 — 실제 트리 기준.
구조가 말해 주는 게 있다. 내용의 두 축은 claude/와 codex/이고, 둘의 관계는 "원본 vs 이식본"이다. 14개 스킬을 실제로 비교하면 10개는 다르고 4개는 완전히 동일하다(동일한 것: component-extract, design-system-extract, make-a-prototype, make-tweakable). 다른 것들은 전부 "서브에이전트 병렬 → 순차 패스" 각색 때문이다.
README로 목적과 "모델 캘리브레이션" 개념을 잡고, system-prompt.md로 20챕터 철학을 통독한 뒤, 가장 개성 있는 스킬인 ai-slop-check(무엇을 슬롭으로 보는가)와 polish-pass(최종 게이트가 어떻게 작동하나)를 보면 전체가 잡힌다.이 레포로 무엇을, 어떻게 배울 수 있나.
이 저장소의 커밋 하나가 교훈이다 — "28개 스킬을 압축해 컨텍스트 30% 절감". 프롬프트도 길면 비용(토큰)이고 성능 저하라는 것, 그래서 리팩터링 대상이라는 것. Git 히스토리·PR·라이선스로 "프롬프트를 코드처럼 관리하는" 실물을 본다.
프롬프트 10장은 그 자체로 완성도 높은 WCAG 실무 가이드다. 대비비 수치, 시맨틱 HTML 규칙, 키보드/포커스, prefers-reduced-motion, 색맹 대비(색+2차 신호), 구체적 폼 에러 문구까지. 디자인을 안 하는 개발자도 이 장만 떼어 체크리스트로 쓸 수 있다.
"예쁘게"를 판단 가능한 규칙으로 바꾸는 훈련이 된다 — 위계 신호 6종(크기·색·무게·위치·밀도·결합), 간격 4/8px 스케일, 팔레트 3~5색 상한, oklch() 조화, "3개 반복 + 4번째 전략적 파괴 = 리듬". 디자인 감각을 말로 설명하는 어휘를 얻는다.
ai-slop-check의 9규칙은 그대로 비평 훈련이다. 그라디언트·이모지·둥근+왼쪽바 카드·Inter 남발·손그림 SVG·근거 없는 통계 — 왜 이것들이 "뻔함"의 신호인지, 무엇으로 대체해야 하는지를 배우면, 남이 만든(그리고 내가 만든) 화면의 약점이 보이기 시작한다.
README의 "모델 캘리브레이션" 절은 프롬프트 작성자에게 직접적인 교훈이다. 현세대 모델은 "최소 5개 질문" 같은 쿼터를 문자 그대로 계약처럼 취급해 과잉 발동하고, 옵션 능력(서브에이전트 등)은 기본으론 덜 쓴다. 그래서 강한 명령형("CRITICAL: YOU MUST") 대신 조건 + 자율 조항 + 명시적 트리거로 바꿨다는 것. 구세대·타사 모델에선 반대로 강한 명령형이 필요하다고 한다.
"커버리지 우선(모든 이슈 보고, 필터는 집계에서)"과 "병렬 서브에이전트 vs 단일 순차 루프"는 검증 파이프라인 설계에 그대로 이식할 수 있는 패턴이다. LLM 기반 자동 리뷰/QA를 만들 때 바로 참고가 된다.
(1) system-prompt.md를 넣은 LLM과 안 넣은 LLM에게 같은 페이지를 시켜 결과를 비교한다. (2) ai-slop-check 9규칙으로 내가 예전에 만든 화면을 감사한다. (3) 저장소가 원하는 새 리뷰 스킬(다크모드 패리티·모션 리뷰 등)을 하나 써 본다.
(하드웨어 요구사항 대신) 어떤 환경에서 이 프롬프트가 제대로 도나.
실행 코드가 없으니 GPU·메모리 같은 하드웨어 요구사항은 없다. 필요한 건 텍스트 파일 + LLM뿐이다. 대신 이 프롬프트는 어떤 모델·어떤 도구 환경에서 쓰느냐에 따라 효과가 크게 갈린다. 그게 사실상의 "요구사항"이다.
| 구분 | 내용 |
|---|---|
| 필수 | 시스템 프롬프트를 넣을 수 있는 LLM (Claude·GPT·Gemini·로컬 모델) |
| 가장 잘 맞는 모델 | claude/ 변종은 현세대 Anthropic 프론티어(Fable 5, Opus 4.7/4.8)에 맞춰 튜닝됨 |
| 구세대·타사 모델 | 차분한 어조가 under-trigger할 수 있음 → 강한 명령형으로 복원 권장(README 명시) |
| 이상적 호스트 | HTML을 바로 렌더·미리보기하는 디자인 환경(Claude.ai 디자인 도구류). 스타터 컴포넌트·폼 렌더 도구 전제 |
| Codex 사용 시 | codex/ 폴더 + AGENTS.md 사용. 스킬 호출 도구가 없으므로 파일을 직접 read |
| 다른 LLM에 붙일 때 | 원칙(5~16장)은 이식 OK. 도구 참조(스타터·edit-mode 등) 챕터는 조정 필요 |
두 가지를 의심하자. (1) 모델 세대 불일치 — 이 프롬프트는 "지시를 문자 그대로 따르는" 최신 모델 기준으로 톤을 낮춰 놨다. 구세대/타사 모델은 그 절제된 어조를 무시하기 쉬우니, "반드시", "최소 N개"처럼 강한 명령형을 다시 넣어야 발동한다. (2) 호스트 도구 부재 — make-a-deck 등은 저장소에 없는 스타터 컴포넌트를 전제한다. 일반 채팅에 붙이면 그 부분은 안 먹으니, 도구 의존 스킬은 빼거나 각색해야 한다.
난이도별로. 텍스트 프로젝트라 진입장벽이 낮다 — 바로 손대 보자.
같은 LLM에게 "회사 소개 랜딩 페이지 HTML을 만들어 줘"를 두 번 시킨다 — 한 번은 그냥, 한 번은 system-prompt.md를 시스템 프롬프트로 넣고. 두 결과의 그라디언트·이모지·폰트·대비를 나란히 비교하라. 프롬프트 한 장이 결과물을 얼마나 바꾸는지 즉시 체감된다.
skills/ai-slop-check.md를 읽고, 내가 예전에 만든 웹 페이지나 슬라이드를 9규칙에 하나씩 대 보라. 특히 규칙 9(크림+세리프+테라코타)와 "둥근 모서리+왼쪽 컬러바 카드"에 걸리는 게 있는지 확인하고, 프롬프트가 제안하는 대체안으로 고쳐 본다.
4장의 oklch(명도 채도 색상) 규칙대로, 명도·채도를 고정하고 색상만 돌려 3~5색 팔레트를 만든 뒤 실제 카드 UI에 입혀 보라. 그다음 hsl로 같은 작업을 해서 "왜 oklch가 더 균형 잡히는지"를 눈으로 비교한다.
기존 스킬의 "제목=트리거 + Phase N + Anti-patterns" 형식을 본떠, 새 리뷰 스킬을 하나 써라 — 예: dark-mode-parity-check(라이트/다크 모드에서 대비·의미가 유지되는지) 또는 copy-review(문구가 필러인지). README의 Contributing이 정확히 이런 기여를 요청한다.
codex/(단일 순차 루프) 변종을 참고해, Gemini CLI·Cursor 같은 또 다른 에이전트 환경에 맞는 3번째 변종을 만들어라. 서브에이전트 유무·스킬 호출 방식·명령형 강도를 그 모델 세대에 맞게 조정하는 것이 핵심 — 이 과제가 곧 "모델 캘리브레이션"의 실전이다.
이 레포를 축으로 4주 커리큘럼.
| 주차 | 주제 | 배울 것 · 실습 |
|---|---|---|
| 1주차 | 디자인 원칙의 언어화 | 위계(크기·색·무게·위치·밀도)·리듬·간격 스케일·타입 스케일·팔레트 규율. system-prompt.md 5~8장 정독 + 셀프 감사 |
| 2주차 | 웹 접근성(WCAG) | 대비비 계산, 시맨틱 HTML, 키보드/포커스, prefers-reduced-motion, 색맹 대비. 10장 → 실제 페이지 audit |
| 3주차 | 프롬프트 엔지니어링 | 스킬 구조(트리거·Phase·Anti-patterns), 커버리지 우선, 모델 세대별 튜닝, 토큰 예산. skills/ 전독 + 새 스킬 작성 |
| 4주차 | 에이전트·리뷰 파이프라인 | 병렬 서브에이전트 vs 순차 루프, polish-pass의 severity 3티어, verdict 게이트. claude/codex diff 분석 → 3번째 변종 이식 |
이 저장소는 "무엇을(디자인 원칙)"과 "어떻게 시키나(프롬프트)"를 함께 담고 있어 두 갈래 심화가 가능하다. 디자인 쪽으로는 Refactoring UI·WCAG 2.2 문서·oklch/CSS 최신 명세를, 프롬프트 쪽으로는 우리가 앞서 다룬 system_prompts_leaks·Anthropic 스킬 모음 계열 자료를 나란히 보면 시야가 넓어진다.
문서에 나온 용어를 한 번에.
| 용어 | 뜻 |
|---|---|
| 시스템 프롬프트 | LLM에게 "너는 이런 존재이고 이렇게 행동하라"고 대화 맨 앞에 상주시키는 지침문 |
| 스킬(skill) | 특정 작업의 절차를 적은 참조 문서. 이 저장소에선 "제목=트리거 + Phase + Anti-patterns" 형식 |
| AI 슬롭(AI slop) | AI가 무성의하게 뱉는, 그럴듯하지만 영혼 없는 뻔한 결과물. 여기선 뻔한 디자인 트로프를 지칭 |
| 서브에이전트(subagent) | 메인 LLM이 하위 작업을 맡기려 띄우는 보조 에이전트. claude 변종은 리뷰를 이걸로 병렬화 |
| WCAG | 웹 콘텐츠 접근성 지침. 대비비·키보드·시맨틱 등의 국제 표준. 이 프롬프트가 강제하는 "바닥선" |
| 대비비(contrast ratio) | 글자와 배경의 밝기 차. 일반 텍스트 4.5:1, 큰 텍스트 3:1 이상이어야 읽기 편함 |
| oklch() | 사람이 느끼는 밝기가 균일한 CSS 색 표기(명도·채도·색상). 색상만 돌려 균형 팔레트 생성 |
| text-wrap: pretty | 줄바꿈 시 제목 끝에 단어 하나만 남는 "과부(widow)"를 막는 CSS 속성 |
| focus-visible / 포커스 링 | 키보드로 요소에 도달했을 때 보이는 테두리. outline:none으로 없애면 대표적 접근성 실패 |
| prefers-reduced-motion | 사용자가 "모션 최소화"를 켰는지 감지하는 미디어 쿼리. 애니메이션을 줄여 줌 |
| 시맨틱 HTML | 의미에 맞는 태그 사용(<button>·<nav>·<main>). "ARIA는 패치, 시맨틱이 우선" |
| 위계(hierarchy)·리듬(rhythm) | 무엇을 먼저 보게 할지(위계)와, 반복+전략적 변주로 만드는 질서감(리듬) |
| 디자인 토큰(design token) | 색·간격·타이포를 var(--space-md)처럼 이름 붙인 변수로 관리하는 것 |
| 커버리지 우선(coverage-first) | 리뷰 시 "중요한 것만"이 아니라 "전부 보고, 거르는 건 집계에서"라는 원칙(누락 방지) |
| 모델 캘리브레이션 | 같은 프롬프트를 모델 세대·종류에 맞춰 어조·트리거·명령 강도를 조정하는 것 |
| AGENTS.md | Codex 등 에이전트가 저장소를 열 때 자동으로 읽는 진입점 파일 |
더 파고들 곳.