가입
이메일, 소셜 로그인, 초대 링크
PASS
아티팩트에서 쓰는 모든 표현 요소 · 요소마다 결정 기록 포함 · 2026-08-31
규칙 전문은 DESIGN.md에 있다.
아티팩트를 만들 때 쓰는 요소 전부를 사용 빈도 순서로 하나씩 보여준다. 원칙은 둘 — 마크다운 문법에 있는 것은 표준 HTML 매핑으로, 마크다운에 없는 것은 의미가 같은 표준 HTML 요소로. 각 요소 아래의 번호 목록은 그 요소가 지금 형태에 이른 결정의 순서다.
가장 많이 쓰는 요소. 셀 1px 테두리, 헤더 행은 인용 배경색, 마크다운 표처럼 담백하게.
| 케이스 | 플랫폼 | 결과 | 비고 |
|---|---|---|---|
| 회원 가입 — 이메일 인증 | iOS Android | PASS | — |
| 비로그인 진입 시 노출 화면 | Web | 확인 필요 | spec 1-4와 2-5 서술 충돌 (G-009) |
| 정기 결제 전환 영수증 | qa | FAIL | receipt_id null |
상태 칩은 의미 색 글자 + 같은 색 테두리, 분류 칩(태그·플랫폼·환경·버전)은 무채색. 대응하는 표준 HTML 요소가 없는 유일한 본문 요소다.
상태: PASS 확인 필요 FAIL 참고
분류: iOS Android Web qa v5.2.0
순서 리스트는 decimal → lower-alpha → lower-roman, 비순서는 disc → circle → square. 중첩 들여쓰기는 16px, 최대 3단.
완료 항목은 GFM 취소선 ~~완료~~의 렌더링 — 매핑은 표준 요소 del이고 보조 텍스트 색을 물린다. 미완료는 맨 항목.
- [ ])의 네이티브 위젯으로 도입인라인은 verify_email_token()처럼 배경색만, 블록은 배경색 + 1px 테두리. 하이라이트는 4토큰(키워드·문자열·숫자·주석)만, 언어 라벨은 펜스의 info string에서 얻어 오른쪽 위에 표시한다.
이 문서의 하이라이트는 손으로 심은 span이 아니라, 문서 끝의 최소 스크립트(40줄 남짓, 외부 라이브러리 없음)가 실행 시점에 입힌 것이다. 원문에는 data-lang과 맨 코드만 있다. JS가 꺼지면 단색 코드로 강등된다.
# 재시도 임계값: spec 문구는 "약 2분", 코드 기본값은 60초 (R-007)
RETRY_THRESHOLD_SECONDS = 60
def can_retry(elapsed_seconds):
return elapsed_seconds >= RETRY_THRESHOLD_SECONDS
배경색 + 왼쪽 4px 세로선. 허용 용법은 셋 — 원문 인용(본래 의미), 콜아웃(의미 색 변형), 문서 머리의 메타 블록(근거 spec·기준 코드처럼 다른 문서에서 온 사실의 묶음). 자기 문장을 강조하려고 넣는 것(풀 인용)은 금지 — "다른 출처"라는 요소의 의미를 어긴다. 강조는 strong·Highlight·Callout의 몫.
spec 4.2절 — "결제 실패 시 사용자는 동일 화면에서 다른 수단으로 3회까지 재시도할 수 있다."
인용문 형태에 의미 색 선을 입혀 상태를 전할 때 쓴다. 새 형태를 만들지 않은 인용문의 변형이다.
확인 필요: 재시도 허용 횟수 spec은 3회, 구현은 2회. 기획 변경인지 구현 누락인지 확인 대기 중.
> [!WARNING]) 구조에 일치> 문법의 표준 매핑이 blockquote이므로 원칙 (1)이 우선. 콜아웃의 내용이 자기 문장이어도 남용이 아닌 이유는 [!TYPE] 표지가 의미를 선언하는 방언 구조라서다읽어도 되고 건너뛰어도 되는 정보는 한 층 물린다. 문서 메타 줄은 렌더러가 입히고, 본문 중간에서는 이렇게 small 요소로 쓴다 — HTML 표준의 부가 설명 요소다.
출처나 긴 부연은 각주로 내린다.1 표기는 GFM 확장 문법 [^1]과 같은 구조(위첨자 링크 + 문서 끝 목록)다.
요약 숫자는 타일 그리드로 쓴다. 마크업은 dl(라벨-값 쌍의 표준 요소), 인용 배경 상자.
독립된 콘텐츠 단위를 나란히 보여줄 때. article 매핑. 열 정렬이 의미 있는 데이터는 카드가 아니라 표로 쓴다.
가입
이메일, 소셜 로그인, 초대 링크
PASS
결제
카드 등록, 재시도, 영수증 발급
확인 필요
알림
수신 동의, 야간 발송 제한
차단
단일 값의 진척. progress 표준 요소 그 자체이고, 항상 숫자를 병기한다.
42/86 실행 (49%)
차트의 정의: 진행 바를 모은 것. 한 행이 "라벨 + 막대 + 숫자", 막대 길이는 최댓값 기준 비율. 마크업은 dl이고 grid로 열만 정렬한다.
우선순위별 TC 수 단위: 개
행이 서로 다른 시리즈일 때는 Color Cycle을 배정 순서대로 쓴다. 아래는 순환색 7개가 전부 쓰인 형태다. 주의: 같은 지표의 범주 막대(위의 P0·P1·P2 같은)는 한 색이 기본이다 — 막대마다 색을 갈라 칠하는 것은 색이 정보를 더하지 않는 "무지개 막대" 안티패턴이고, 색 분화는 행이 각자 독립된 시리즈일 때만 한다.
플랫폼별 검수 처리 단위: 건
색은 최소한으로 쓴다 — 새 용도가 생기면 새 색이 아니라 아래 층들의 토큰을 재사용하고, 팔레트 확장은 마지막 수단이다. 구조는 네 층: 바탕, 회색 4역할, 애플 원색 6, 소프트 톤 7(유일한 파생층).
| 이름 | 라이트 | 다크 |
|---|---|---|
| Background | #FFFFFF |
#000000 |
| Text | #000000 |
#FFFFFF |
역할 4개 — 면/선/글자라는 직무와 놓이는 바닥이 달라서 하나로 합칠 수 없다. 글자 회색은 읽혀야 해서 가장 진하고, 면은 배경과 간신히 구분될 만큼 연하며, 선은 바닥(흰 배경 위인가, 회색 면 위인가)에 따라 두 단계다.
| 이름 | 직무 | 라이트 | 다크 |
|---|---|---|---|
| Muted | 보조 글자 (메타·목차·분류 칩·완료 표시) | #8E8E93 |
#8E8E93 |
| Border | 바탕 위의 선 (hr·표 셀) | #C6C6C8 |
#38383A |
| Fill | 면 (인용·코드·콜아웃·타일) | #F2F2F7 |
#1C1C1E |
| Fill Border | 면 위의 선 | #D1D1D6 |
#3A3A3C |
애플 표준 색상표의 원색 6개와 각각이 맡는 상태·역할. 새 역할이 생기면 이 여섯에서 재사용한다.
| 색 | 상태·역할 | 라이트 | 다크 |
|---|---|---|---|
| Blue | Link · Info · 코드 숫자 | #007AFF |
#0A84FF |
| Purple | 방문 링크 · 코드 키워드 | #AF52DE |
#BF5AF2 |
| Green | Success | #34C759 |
#30D158 |
| Orange | Warning | #FF9500 |
#FF9F0A |
| Red | Fail · 코드 문자열 | #FF3B30 |
#FF453A |
| Yellow | Highlight | #FFCC00 |
#FFCC00 |
차트·다이어그램에서 시리즈를 구분하는 소프트 톤 7. 배정 순서는 시각 대비 사이클 — Blue에서 시작해 매번 이미 쓴 색들과 색상환에서 가장 먼 색이다. 애플 원색에서 출발해 검증기(색각 분리·명도 대역·배경 대비)로 조정한 고정값이고, 다크는 같은 색상을 어두운 명도 대역으로 밟은 변형이다.
| 순서 | 색 | 라이트 | 다크 |
|---|---|---|---|
| 1 | Blue | #2689FF |
#2689FF |
| 2 | Orange | #E68600 |
#D47B00 |
| 3 | Purple | #C27CE6 |
#B372D4 |
| 4 | Green | #44CB66 |
#35AC52 |
| 5 | Teal | #4DBBCF |
#279CB8 |
| 6 | Pink | #FF5F7E |
#EB5774 |
| 7 | Amber | #D9AD00 |
#B08C00 |
흰 배경 대비가 3:1에 못 미치므로 보이는 라벨(숫자 병기)이 필수 짝이다. 7을 넘으면 Blue부터 순환하되, 그 전에 묶기·표 재구성을 먼저 검토한다. 상태를 나타내는 차트는 이 순환 대신 의미 색으로 직접 매핑한다.
흐름·상태 전환은 mermaid 코드 펜스로 그린다. 마크다운 원문에 텍스트로 남고, 지원하지 않는 뷰어에서는 원문이 보이는 우아한 강등.
긴 부록·로그·원문은 <details>로 접는다. HTML 표준 요소라 JS 없이 동작하고, 미지원 뷰어에서는 펼쳐진 채 보인다.
G-020 필요 (우선) — 비밀번호 재설정 세 갈래가 "이메일 링크 접근 시" 항목 아래에 묶여 있다. 일반 로그인 경로의 인증 시점을 테스트 착수 전에 확정해야 한다.
키·버튼·메뉴처럼 UI에 보이는 글자를 본문에서 지칭할 때 — Space, Esc, 알림 켜기.
원문에서 특정 구절을 짚을 때 — 만료 24시간 전 이메일 발송처럼 mark 요소를 쓴다. 배경은 systemYellow 원색(두 테마 공용), 글자는 검정. 형광펜의 강조는 색상이 아니라 명도로 전달되어 색각 이상에도 온전히 보인다.
넓은 화면에서 본문 오른쪽에 h2·h3 목차가 상시 노출된다(이 문서에서 창을 넓혀 보면 실물이 보인다). 현재 읽고 있는 절이 강조되고, 항목을 누르면 그 절로 이동한다. 글자는 Muted, 선은 Border, 강조는 Text·Link — 전부 재사용이라 새 색이 없다.
이 문서의 h2가 실물이다. 제목에 마우스를 올리면 아이콘(진짜 링크)이 나타나고, 제목 아무 곳이나 클릭/탭해도 그 절로 이동한다.
@media (hover: hover)로 한정 — 터치 기기(iOS WebKit)가 첫 탭을 호버로 소비해 두 번 탭해야 하던 문제@media (hover: hover)로 한정 — 터치 기기가 탭한 뒤 :hover를 붙잡아 체크가 사라진 뒤에도 아이콘이 파랗게 남던 문제커버리지 100%는 "추출한 조건은 모두 덮었다"는 뜻이지 spec 전체를 덮었다는 보증이 아니다. ↩