- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환 - Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용 - pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관) - worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md) - D:\Rhino-MCP 경로 참조를 새 위치로 치환 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
35 KiB
Prism Design System — Brand (Layer 0)
| 버전 | 수정일 | 수정자 | 주요 변경 내용 | 비고 |
|---|---|---|---|---|
| v0.1.0 | 2026-07-28 | 조선두 | 신규 작성 — 브랜드 슬롯 스키마, 가치축, 팔레트·서체 슬롯, 보이스·문안 규정, 아이코노그래피, SAMAN 인스턴스 실체화 | 최초 버전 |
| v0.1.1 | 2026-07-29 | HMCM | BV-2 판정 표기 명확화(조건부 PASS), §8.5 orange/white 페어 등록(LARGE_ONLY 4.01) | 진단 G5·G7 보정 |
| 메타 | 값 |
|---|---|
| 파일 | design.brand.md |
| 계층 | Layer 0 — Brand DNA |
| 역할 | 브랜드 교체 슬롯 정의 · 브랜드 인스턴스 등록부 |
| 상위 | Design.md (진입점) |
| 하위 참조 | design.foundations.md (Layer 1) — 본 파일이 공급한 슬롯 값을 소비 |
| 로드 정책 | 항상 로드 (코어 + tokens.json과 함께) |
시스템명:
Prism— 아키텍처 은유(단일 광원 → 프리즘 → 분광 → 스펙트럼)에서 도출. 토큰 접두사는prism이다. 2026-07-28 확정.
목차
- 1. 브랜드 슬롯 스키마
- 2. 가치축 (Value Axis)
- 3. 팔레트 원색 슬롯
- 4. 타이포그래피 슬롯
- 5. 보이스 & 문안 규정
- 6. 아이코노그래피
- 7. 로고·마크 규약
- 8. 브랜드 인스턴스 #1 — SAMAN
- 9. 인스턴스 추가 절차
1. 브랜드 슬롯 스키마
1.1 Layer 0의 경계
Layer 0은 매체가 바뀌어도 변하지 않고, 브랜드가 바뀌면 전부 바뀌는 것만 담는다.
| Layer 0에 속한다 | Layer 0에 속하지 않는다 |
|---|---|
| 철학·미션 문장 | 캔버스 치수 (→ Layer 2) |
| 가치축과 그 디자인 역할 | 그리드 컬럼 수 (→ Layer 2) |
| 팔레트 원색 HEX | 색의 의미역할 매핑 (→ Layer 1) |
| 서체 패밀리·웨이트 | 타입 스케일 수치 (→ Layer 1·2) |
| 보이스·문안 규칙 | 컴포넌트 기하 (→ Layer 1·2) |
| 아이콘 조형 원칙 | 아이콘 픽셀 크기 (→ Layer 2) |
| 로고 파일·변형 규칙 | 로고 배치 좌표 (→ Layer 3) |
판별 질문: "이 값을 바꾸면 브랜드가 달라 보이는가, 아니면 출력 매체만 달라 보이는가?" — 전자면 Layer 0이다.
1.2 슬롯 정의
브랜드 인스턴스는 아래 슬롯을 전부 채워야 한다. 미충족 슬롯이 있으면 인스턴스로 등록할 수 없다.
| # | 슬롯 ID | 필수 | 자료형 | 설명 |
|---|---|---|---|---|
| B1 | brand.id |
★ | slug | 기계 식별자. 토큰 네임스페이스에 사용 |
| B2 | brand.name |
★ | string | 표기명 (국문/영문 병기 가능) |
| B3 | brand.philosophy |
★ | string | 철학 슬로건 1문장 |
| B4 | brand.philosophy.operational |
★ | object | 슬로건의 조작적 정의 — 최소 2개 축, 각 축은 검증 가능해야 함 |
| B5 | brand.mission |
○ | string | 미션 1문장 |
| B6 | brand.axes[] |
★ | array | 가치축 2~4개. §2 스키마 준수 |
| B7 | brand.palette.primary[] |
★ | array | 원색. 축 수와 1:1 대응 |
| B8 | brand.palette.neutral[] |
★ | array | 중립색. 최소 3개 (light bg / dark bg / subtle) |
| B9 | brand.type.family |
★ | object | 서체 패밀리 + 폴백 스택 |
| B10 | brand.type.weights |
★ | object | 웨이트 3단 (regular/medium/bold) |
| B11 | brand.voice |
★ | object | 보이스 4속성. §5.1 스키마 준수 |
| B12 | brand.copy.rules |
★ | object | 문안 규칙. §5.2~5.7 |
| B13 | brand.icon |
★ | object | 아이콘 조형 원칙. §6 |
| B14 | brand.logo |
○ | object | 로고 자산·변형 규칙. §7 |
| B15 | brand.forbidden[] |
★ | array | 브랜드 차원 절대 금지 목록 |
1.3 슬롯 값 검증 규칙
| ID | 규칙 | 판정 방법 |
|---|---|---|
| BV-1 | 모든 원색은 GRADE 값이 산출 가능해야 한다 (유효 sRGB HEX) | design.foundations.md §2.1 산출식 적용 |
| BV-2 | palette.primary 중 최소 1개는 light 중립 배경 대비 ΔG ≥ 70을 만족해야 한다 (본문색 후보 확보) |
GRADE 차 계산 |
| BV-3 | palette.primary 중 최소 1개는 light 중립 배경 대비 ΔG ≥ 55를 만족해야 한다 (제목색 후보 확보) |
동일 |
| BV-4 | light 중립 배경과 dark 중립 배경의 ΔG ≥ 80 | 동일 |
| BV-5 | 악센트 원색이 ΔG < 55인 경우, 본문 사용 금지 규칙이 brand.forbidden[]에 명시되어야 한다 |
목록 검사 |
| BV-6 | 서체는 한글 웨이트 3단 이상 + 등폭 숫자(tabular figures) 를 제공해야 한다 | 폰트 메타 확인 |
| BV-7 | 가치축 수 = 원색 수 (1:1 대응) | 개수 대조 |
| BV-8 | 철학 슬로건은 조작적 정의(B4) 없이 등록할 수 없다 | 필드 존재 검사 |
BV-8의 취지: "좋은 디자인"류의 검증 불가능한 슬로건이 시스템에 들어오는 것을 구조적으로 차단한다. 슬로건은 반드시 "무엇을 하면 이 슬로건을 지킨 것인가" 로 환원되어야 하며, 그 환원 결과가
Design.md §2의 PF/PD 규칙이 된다.
2. 가치축 (Value Axis)
2.1 개념
가치축은 브랜드가 표방하는 가치를 디자인 역할로 번역한 단위다. 각 축은 원색 1개와 결합하며, 그 색이 화면에서 수행할 역할을 규정한다.
축을 두는 이유는 색에 의미를 고정하기 위해서다. 의미가 고정되면 "이 강조는 왜 주황인가"라는 질문에 매번 답할 필요가 없어지고, 에이전트도 결정론적으로 색을 선택할 수 있다.
2.2 축 스키마
axis:
id: <slug> # 필수 — 예: nature, technology, people
label_ko: <string> # 필수 — 예: 자연
label_en: <string> # 필수 — 예: Nature
design_role: base|accent|ground|support # 필수 — 아래 §2.3
color_ref: <palette.primary[i]> # 필수 — 1:1 대응
usage: <string> # 필수 — 이 색이 실제로 칠해지는 대상
economy: <string|null> # 선택 — 사용량 상한 (accent는 필수)
2.3 design_role 정의 (고정 어휘)
| 역할 | 의미 | 지면 점유 | 전형적 적용 대상 |
|---|---|---|---|
| base | 구조·기반. 안정감을 만든다 | 중 | 제목, 구조선, 헤더 면, 아이콘 |
| ground | 본문·바탕. 읽히는 것 전부 | 대 | 본문 텍스트, 테두리, 라벨, 헤어라인 |
| accent | 강조·전환. 시선을 1회 붙잡는다 | 극소 | 포인트 마커, 귀결 커넥터, 단일 강조어 |
| support | 보조. 위 3역할을 보완 | 소 | 보조 텍스트, 비활성 표기, 배경 틴트 |
base와ground는 각각 정확히 1개 축에만 배정한다.accent는 1개 이하. 악센트가 2개면 악센트가 아니다.support는 0개 이상 가능.
2.4 악센트 경제 (Accent Economy)
design_role: accent 축에는 economy 필드가 필수이며, 다음 형식을 따른다.
"<단위 화면·지면>당 최대 <N>개 국소 강조"
이 값은 Layer 1의 PD-4 규칙과 검증기가 직접 소비한다. 매체별 "단위 화면"의 정의는 Layer 2가 공급한다.
| 매체 | "단위 화면"의 정의 |
|---|---|
| A3 1면 (양면 스프레드는 2단위) | |
| presentation | 슬라이드 1장 |
| screen | 1 viewport 내 동시 가시 영역 |
3. 팔레트 원색 슬롯
3.1 색 슬롯 스키마
color:
id: <slug>
name: <string> # 색명 (브랜드 고유명 허용)
hex: "#RRGGBB" # sRGB. 소문자 금지, 6자리 고정
rgb: [r, g, b] # hex와 반드시 일치 — 검증 대상
grade: <int 0-100> # 자동 산출 (design.foundations §2.1)
axis_ref: <axis.id|null> # primary는 필수, neutral은 null
role: base|ground|accent|support|bg_light|bg_dark|subtle|on_dark
usage: <string>
[정합 검증 필수]
hex와rgb는 반드시 동일 색을 가리켜야 한다. SAMAN 선행 시스템에서color.subtle의hex: "#474235"↔rgb: [211,211,211]불일치로 대비 1.13:1의 판독 불가 텍스트가 산출될 수 있었다. 본 스키마는 이를 자동 검증 항목으로 승격한다. [출처: 자체 산출 / SAMANdesign.tokens.json]
3.2 GRADE 척도 (요약)
GRADE는 CIE L* 기반 명도 등급으로, GRADE = round(100 − L*) 이다. 0 = 순백, 100 = 순흑.
두 색의 GRADE 차(ΔG) 만으로 대비 충족 여부를 계산기 없이 판정한다. [출처: design.benchmark, T4 (USWDS 매직 넘버) · T5 (Carbon 스텝 매트릭스)]
| ΔG | 보장 최소 대비 | 판정 |
|---|---|---|
| ≥ 40 | ≥ 3.17 : 1 | 대형 텍스트 가능 (18pt+ / 14pt+ Bold) |
| ≥ 55 | ≥ 5.37 : 1 | 본문 가능 (AA 4.5:1 여유 충족) |
| ≥ 70 | ≥ 9.15 : 1 | AAA 충족 (7:1 여유 충족) |
| < 40 | — | 텍스트 사용 금지 (면·도형으로만) |
- 위 값은 모든 base 등급에 대한 최솟값이다(worst case = 흰 배경 위). 실측 대비는 항상 이 이상이다.
- 산출식·검증표 전문은
design.foundations.md §2.1~2.2에 있다. - ΔG는 보수적 하한이므로, ΔG 미달이어도 실측이 통과하는 경우가 있다. 그 경우 실측값을
contrast.pairs에 명시적으로 등록해야 사용할 수 있다(암묵 허용 금지).
3.3 중립색 슬롯 요건
| 슬롯 | 필수 | 요건 |
|---|---|---|
bg_light |
★ | 라이트 배경. 순백(#FFFFFF) 전면 사용 금지 — 대형 화면 눈부심·인쇄 반사 방지. GRADE 0~10 권장 |
bg_dark |
★ | 다크 배경. GRADE 90 이상 권장 |
subtle |
★ | 보조 텍스트용. 라이트/다크 각각에 대해 ΔG ≥ 40 이상 확보 |
on_dark |
○ | 다크 면 위 텍스트·카드. 미지정 시 bg_light를 재사용 |
4. 타이포그래피 슬롯
4.1 서체 슬롯
type:
family:
primary: <string> # 예: Pretendard
stack: <string> # CSS font-family 전체 폴백 체인
embed: <path|null> # 로컬 임베드 파일 (PPTX·PDF 임베딩용)
weights:
regular: 400
medium: 500
bold: 700
features:
tabular_figures: true # 필수 (BV-6)
variable: <bool>
4.2 서체 선정 요건
| ID | 요건 | 근거 |
|---|---|---|
| TF-1 | 한글 웨이트 3단 이상 | 위계를 크기·웨이트 2축으로 만들기 위한 최소 조건 |
| TF-2 | 등폭 숫자(tabular figures) 제공 | 수량표·치수표 정렬. [출처: design.benchmark, T41] |
| TF-3 | 라틴·숫자 혼용 시 시각 크기 편차가 과도하지 않을 것 | 한글은 라틴의 cap-height 개념이 없어 동일 pt에서 시각 크기가 다름. 보정 계수는 design.foundations.md §3.10에서 정의 [출처: design.benchmark, T44 / 자체 정의] |
| TF-4 | 로컬 임베드 가능 (라이선스·파일 확보) | 오프라인 렌더링, PPTX 폰트 임베드, PDF 아웃라인 |
| TF-5 | 인쇄 시 sans-serif 채택 | GOV.UK의 sans 권고 근거("프린터 드라이버 호환")는 PDF 임베딩 방식에 미적용되나, 한글 본문 조판에서 sans가 소자 크기 대비 판독성이 안정적이라는 별도 근거로 채택 [자체 판단] [출처: design.benchmark, §16 상충-4] |
Layer 0은 어떤 서체인가만 정한다. 몇 pt인가는 Layer 1(비율)과 Layer 2(base 값)가 정한다.
5. 보이스 & 문안 규정
본 장은 브랜드가 자기 이름으로 내보내는 모든 문장에 적용된다. 시스템 내부 주석·에이전트 로그에는 적용하지 않는다.
5.1 보이스 4속성 (스키마)
voice:
stance: <string> # 화자의 자세 — 예: 단정적·원칙적·3인칭
distance: <string> # 독자와의 거리 — 예: 전문가 대 전문가
register: <string> # 문체 격 — 예: 규정문체(평서 종결)
restraint: <string> # 절제 규칙 — 예: 과장·감탄·마케팅 어휘 금지
각 속성은 금지 예시를 1개 이상 동반해야 한다. 금지 예시 없는 보이스 규정은 실행 불가능하다.
5.2 헤딩 어미 규칙
같은 레벨의 헤딩은 어미를 통일한다. 목차를 훑을 때의 스캔성이 이 규칙 하나에 크게 좌우된다. [출처: design.benchmark, T28 (Polaris help-documentation 아카이브)]
| 레벨 | 어미 | 예시 | 금지 |
|---|---|---|---|
| 장(章) | 명사형 | "작성 절차", "책임 소재" | "작성 절차는?" |
| 절(節) | 명사형 또는 ~하기 |
"시공상세도 검토하기" | 레벨 내 혼용 |
| 작업 단계 | ~한다 (평서 종결) |
"승인 도서를 현장에 비치한다" | "~합시다", "~하세요" |
| 금지 조항 | ~하지 않는다 / ~를 금지한다 |
"미승인 도면으로 시공하지 않는다" | "~하면 안 됩니다" |
| 권고 조항 | ~를 권장한다 |
"BIM 모델과 병행 검토를 권장한다" | "~하는 게 좋습니다" |
"How to" 상당 표현 금지: "~하는 방법", "~하는 법"은 헤딩에 쓰지 않는다. 헤딩은 대상을 지시하고, 방법은 본문이 담는다.
제목 제거 검사 (removable test): 헤딩을 지워도 본문이 문장으로 성립해야 한다. 본문이 헤딩에 의존해 주어를 생략했다면 잘못된 헤딩이다. [출처: design.benchmark, T36]
5.3 문장 구성 규칙
| ID | 규칙 | 근거 |
|---|---|---|
| CW-1 | 한 문단은 5문장 이하 | T35 (GOV.UK) |
| CW-2 | 한 문장은 40어절 초과 시 분할 — 원 규칙 "25단어"를 한국어 어절 기준으로 재정의 [자체 정의] |
T35 / M20 |
| CW-3 | 역피라미드 — 결론·판정을 먼저, 근거·경위를 뒤에 | T35 |
| CW-4 | 구정보 → 신정보 순서. 문장 앞머리에는 독자가 이미 아는 것을 둔다 | T51 (Polaris Readability) |
| CW-5 | 끊긴 서술(choppy writing) 회피 — 짧은 단문 나열로 논리 연결을 독자에게 떠넘기지 않는다 | T51 |
| CW-6 | 각주는 인쇄물에서만 사용한다. 화면 매체에서는 본문 편입 또는 상호참조로 처리 | T35 (GOV.UK "designed for reference in print") |
5.4 조건문 서술 규칙
조건 분기는 조건을 먼저, 처분을 나중에 쓴다. 독자가 자기에게 해당하지 않는 조건을 즉시 건너뛸 수 있어야 한다. [출처: design.benchmark, T30]
[O] 가설구조물에 해당하는 경우에는, 관계전문가의 확인을 받는다.
[X] 관계전문가의 확인을 받는다. 단, 가설구조물에 해당하는 경우에 한한다.
- 어순 고정:
~인 경우에는, ~한다 - 조건절과 처분절은 쉼표로 분리한다. 조건만 있고 처분이 없는 문장을 두지 않는다.
5.5 적용 조건 선행 배치
각 항목의 최상단에 "적용 조건 / 제외 조건" 블록을 둔다. 독자가 해당 없음을 빨리 확인하고 이탈할 수 있어야 한다. [출처: design.benchmark, T31 ("Let readers fail fast")]
제약·전제는 절차 목록 앞에 온다. 3단계까지 읽고 나서 "단, 이 경우는 제외"를 만나게 하지 않는다.
5.6 동사 판별표
같은 동작에 여러 동사를 섞어 쓰면 독자가 의미 차이를 추론하게 된다. 아래 표의 좌열을 기본으로 하고, 우열은 명시된 조건에서만 쓴다. [출처: design.benchmark, T52 (Polaris actionable-language 아카이브의 대조표 형식을 한국어로 이식) / 어휘 선정은 [자체 정의]]
| 기본 동사 | 대체 동사 | 구분 기준 |
|---|---|---|
| 설치한다 | 시공한다 | 개별 부재·기기 = 설치 / 공정 전체 = 시공 |
| 고정한다 | 부착한다 / 거치한다 | 하중을 전달하면 고정 / 표면 접합만이면 부착 / 임시 얹음이면 거치 |
| 확인한다 | 검측한다 / 입회한다 | 육안·서류 대조 = 확인 / 계측 수반 = 검측 / 타 주체 현장 참관 = 입회 |
| 검토한다 | 승인한다 | 의견 제시까지 = 검토 / 효력 발생 = 승인 |
| 작성한다 | 제작한다 / 작성·제출한다 | 도서·문서 = 작성 / 물리적 산출 = 제작 / 제출 의무 수반 시 병기 |
| 반영한다 | 적용한다 / 갱신한다 | 기존 문서에 편입 = 반영 / 신규 대상에 시행 = 적용 / 버전 올림 = 갱신 |
| 변경한다 | 수정한다 | 승인 효력에 영향 = 변경 / 오기·표기 정정 = 수정 |
| ~한다 (의무) | ~할 수 있다 (재량) | 의무와 재량을 어미로만 구분한다. "~하여야 한다"는 "~한다"로 통일 |
어미로 규범력을 표현한다:
~한다(의무) /~할 수 있다(재량) /~를 권장한다(권고) /~하지 않는다(금지). 이 4종 외의 어미를 규범 조항에 쓰지 않는다.
5.7 방향어 금지
위의 / 아래의 / 오른쪽 / 왼쪽 / 앞서 / 다음의 같은 물리적 위치 지시어를 참조에 쓰지 않는다.
금지 근거: 방향어는 ① 레이아웃이 매체마다 달라지면 무효가 되고(A3 2단 → 모바일 1단), ② 화면 낭독 시 무의미하며, ③ 참조 대상에 이름이나 번호가 없다는 신호다. [출처: design.benchmark, T52]
[O] 검토 기한은 3.2절에 따른다.
[O] [표 4-1]의 구분에 따른다.
[X] 아래 표의 구분에 따른다.
[X] 앞서 설명한 절차에 따른다.
- 대체 수단: 절 번호 / 표·그림 번호 / 항목명. 참조할 것에 번호가 없으면 번호를 부여한다.
- 인쇄 매체에서는 상호참조에 면수를 병기한다:
(→ 3.4절, p.27)[출처: design.benchmark, M12]
5.8 한국어 가독성 지표 [자체 정의]
영어권 시스템의 지표(Polaris "7th grade reading level", GOV.UK "reading age 9")는 한국어에 대응 개념이 없다. [출처: design.benchmark, M20 / §18-24] 아래를 대체 지표로 사용한다.
| 지표 | 목표 | 산출 |
|---|---|---|
| 평균 문장 길이 | 25어절 이하 (상한 40) | 어절 수 ÷ 문장 수 |
| 문단 길이 | 5문장 이하 | 그대로 |
| 피동 표현 비율 | 10% 이하 | ~되다/~어지다 종결 ÷ 전체 문장 |
| 한자어 명사구 연쇄 | 3연속 이하 | "시공상세도면작성기준검토" 류 분해 |
| 전문용어 초출 정의율 | 100% | 용어집 등재 또는 초출 시 괄호 정의 |
이 지표는 참고 기준이며 자동 판정 대상이 아니다. 검수 단계의 육안 점검 항목으로 사용한다.
6. 아이코노그래피
6.1 조형 원칙 슬롯
icon:
grid: <int> # 아이콘 작도 그리드 (정사각 단위)
stroke: <int> # 획 두께 (그리드 단위 기준)
linecap: round|butt|square
linejoin: round|miter|bevel
fill: none|solid
color_on_light: <color.id>
color_on_dark: <color.id>
set_policy: bespoke|library # 자체 제작 / 외부 라이브러리
6.2 공통 규칙 (매체 불변)
| ID | 규칙 |
|---|---|
| IC-1 | 1개 의미 = 1개 아이콘. 같은 의미에 두 아이콘을 두지 않는다 |
| IC-2 | 장식용 아이콘 금지. 의미를 담지 않은 아이콘은 배치하지 않는다 |
| IC-3 | 이모지 금지. 이모지·아이콘 폰트·서드파티 아이콘 라이브러리를 사용하지 않는다 (set_policy: bespoke인 경우) |
| IC-4 | 아이콘은 인라인 SVG로 삽입해 토큰 색에 바인딩한다. 래스터는 사진·복잡 일러스트에 한한다 |
| IC-5 | 아이콘은 색 단독으로 의미를 전달하지 않는다. 형태가 색과 독립적으로 구분되어야 한다 [출처: design.benchmark, T21·T38] |
| IC-6 | 획 두께는 판형 확대 시 비례 확대하지 않는다 [출처: design.benchmark, T10 (Spectrum "border width는 스케일되지 않는다")] |
6.3 아이콘 거버넌스 (승인 절차)
카탈로그에 없는 아이콘이 필요할 때, 임의로 만들지 않는다.
- 필요 아이콘을 제안한다 —
이름 + 의미 + 조형 사양(그리드·획·구성 요소) - 승인 대기. 승인 없이 산출물에 포함하지 않는다
- 승인 후 카탈로그에 등재하고
design.components.md §3아이콘 절에 반영한다 - 등재 시 의미 중복 검사(IC-1)를 수행한다
이 절차는 아이콘 세트가 무통제로 팽창해 의미 체계가 무너지는 것을 막는다. SAMAN 선행 시스템에서 이미 운용 중인 규칙을 승계한다.
6.4 허용 글리프
아이콘 세트 외에, 아래 유니코드 글리프만 "기호"로 사용할 수 있다.
| 글리프 | 용도 | 조건 |
|---|---|---|
▲ ▼ |
증감 추세 | 반드시 색 + 라벨과 병기 (색맹 대응) |
● |
범례 마커 | 차트 범례에 한함 |
→ |
상호참조 | (→ 3.4절) 형식에 한함 |
★ |
필수 표시 | 검증 체크리스트에 한함 |
7. 로고·마크 규약
logo:
master: <path> # 원본 (투명 배경, 최대 해상도)
on_light: <path>
on_dark: <path> # 다크 면용 리컬러 변형
mark_only: <path|null> # 심볼 단독
min_width: <object> # 매체별 최소 폭 (Layer 2가 실체화)
clear_space: <string> # 여백 규칙 (마크 높이 배수로 표기)
| ID | 규칙 |
|---|---|
| LG-1 | 로고는 재작도하지 않는다. 제공된 자산 파일만 사용한다 |
| LG-2 | 로고 색상을 임의 변경하지 않는다. 다크 면에는 on_dark 변형을 사용한다 |
| LG-3 | 로고를 생성 이미지에 굽지 않는다(bake). 항상 별도 레이어·컴포넌트로 배치한다 |
| LG-4 | 여백(clear space)은 마크 높이의 배수로 규정한다. 절대 치수로 규정하면 판형 변경 시 무효가 된다 |
| LG-5 | 최소 폭 미만으로 축소하지 않는다. 미달 시 mark_only 변형으로 대체한다 |
8. 브랜드 인스턴스 #1 — SAMAN
본 장은 스키마의 완전 실체화 예시이자 실제 운용 인스턴스다. 새 브랜드를 추가할 때 이 장을 형식 참조로 삼는다.
8.1 식별·철학
| 슬롯 | 값 |
|---|---|
brand.id |
saman |
brand.name |
SAMAN (삼안) |
brand.philosophy |
"처음 보지만 익숙하고, 계속 봐도 새로운 디자인" — Familiar at first sight, new every time you look. |
brand.mission |
"기술로 사람과 자연이 함께하는 세상" — A world where technology brings people and nature together. |
조작적 정의 (brand.philosophy.operational)
| 축 | 정의 | 검증 가능 형태 |
|---|---|---|
| 처음 보지만 익숙한 (Cognitive Fluency) |
낯선 정보의 인지 저항을 최소화한다. 안정적 비례·정렬선·반복 구조로 예측 가능성을 만든다 | → Design.md §2 PF 규칙군 (그리드 스냅, 허용 분할, 고정선, 여백률, 토큰 전용) |
| 계속 봐도 새로운 (Aesthetic Durability) |
익숙함이 지루함이 되지 않도록 제어한다. 한 화면에 전부 싣지 않고 레이어드 디테일을 남긴다 | → Design.md §2 PD 규칙군 (단일 결론 존, 대비 위계, 원/근거리 2층, 악센트 희소) |
이 조작적 정의가 곧 PF/PD 규칙의 근거다. 슬로건 → 규칙 → 검증의 3단 연결이 끊기지 않아야 한다 (BV-8).
8.2 가치축 (3축)
| 축 ID | 국문 | 영문 | design_role | 원색 | usage | economy |
|---|---|---|---|---|---|---|
nature |
자연 | Nature | base | green |
제목·구조선·헤더 면·아이콘·강조 면 | — |
technology |
기술 | Technology | accent | orange |
아이브로 틱·귀결 커넥터·원칙 마커·단일 강조어 | 단위 화면당 최대 2개 국소 강조 |
people |
사람 | People | ground | brown |
본문·부제·헤어라인·라벨·테두리 | — |
8.3 팔레트
원색 (primary)
| id | name | hex | rgb | GRADE | axis | role |
|---|---|---|---|---|---|---|
green |
Deep Forest Green | #1F524B |
31, 82, 75 | 69 | nature | base |
orange |
Tech Rust Orange | #D05C26 |
208, 92, 38 | 47 | technology | accent |
brown |
Human Earth Brown | #474235 |
71, 66, 53 | 72 | people | ground |
중립색 (neutral)
| id | name | hex | rgb | GRADE | role |
|---|---|---|---|---|---|
sand |
Sand White | #F4F3F0 |
244, 243, 240 | 4 | bg_light |
obsidian |
Obsidian Black | #111111 |
17, 17, 17 | 95 | bg_dark |
subtle |
Light Gray | #D3D3D3 |
211, 211, 211 | 15 | subtle |
white |
Pure White | #FFFFFF |
255, 255, 255 | 0 | on_dark |
[정정 이력] SAMAN 선행 시스템
design.tokens.json의color.subtle은hex: "#474235"/rgb: [211,211,211]로 불일치 상태였다(hex 기준 렌더 시 green 면 위 대비 1.13:1). 본 인스턴스는design.md §6.1표기인#D3D3D3을 정본으로 확정한다. [출처: 자체 산출 / SAMANdesign.tokens.jsoncolor.subtle]
8.4 슬롯 검증 결과 (BV-1 ~ BV-8)
| ID | 판정 | 근거 |
|---|---|---|
| BV-1 모든 원색 GRADE 산출 가능 | PASS | 7색 전부 산출 완료 (§8.3) |
| BV-2 본문색 후보 (ΔG ≥ 70 vs bg_light) | 조건부 PASS | brown(72) − sand(4) = ΔG 68 < 70 → CG-2 실측 등록(9.02:1 AAA)으로 사용 |
| BV-3 제목색 후보 (ΔG ≥ 55 vs bg_light) | PASS | green(69) − sand(4) = ΔG 65 ✓ |
| BV-4 bg 명도 격차 (ΔG ≥ 80) | PASS | obsidian(95) − sand(4) = ΔG 91 ✓ |
| BV-5 악센트 ΔG < 55 시 금지 명시 | PASS | orange(47) − sand(4) = ΔG 43 → 본문 금지 규칙 §8.7에 명시 ✓ |
| BV-6 서체 요건 | PASS | Pretendard — 웨이트 3단 + tabular figures ✓ |
| BV-7 축 수 = 원색 수 | PASS | 3 = 3 ✓ |
| BV-8 조작적 정의 존재 | PASS | §8.1 ✓ |
[CONFLICT DETECTED] BV-2 경계 사례
brownonsand는 ΔG 68로 규칙상 임계(70) 미달이나, 실측 대비는 9.02:1로 AAA를 충족한다(자체 재계산 검증 완료). GRADE는 보수적 하한이므로 §3.2 단서에 따라 실측값을contrast.pairs에 명시 등록하여 사용한다. 규칙 자체는 완화하지 않는다.
8.5 대비 실측 등록부 (contrast.pairs)
전 쌍 프로그램 재계산 검증 완료 (2026-07-28).
| 전경 | 배경 | ΔG | 실측 | 판정 | 용도 |
|---|---|---|---|---|---|
| brown | sand | 68 | 9.02 | AAA | 본문 기본 |
| green | sand | 65 | 8.00 | AAA | 제목·구조 |
| brown | white | 72 | 10.01 | AAA | 카드 위 본문 |
| green | white | 69 | 8.87 | AAA | 카드 위 제목 |
| white | green | 69 | 8.87 | AAA | 그린 면 위 텍스트 |
| sand | green | 65 | 8.00 | AAA | 그린 면 위 텍스트 |
| subtle | green | 54 | 5.93 | AA | 그린 면 위 보조 텍스트 |
| white | brown | 72 | 10.01 | AAA | 브라운 면 위 텍스트 |
| sand | obsidian | 91 | 17.02 | AAA | 다크 면 위 텍스트 |
| orange | obsidian | 48 | 4.71 | AA | 다크 면 위 악센트 |
| orange | sand | 43 | 3.61 | Large only | 대형 악센트 전용 |
| white | orange | 47 | 4.01 | Large only | 오렌지 면 위 텍스트 |
| orange | white | 47 | 4.01 | Large only | 흰 카드 위 대형 악센트 전용 (v0.1.1 등록) |
| green | obsidian | 26 | 2.13 | ✗ FAIL | 금지 |
[정정 이력] SAMAN 선행 시스템은
green on white를 8.93으로 표기했으나 실측은 8.87이다. 본 인스턴스는 8.87로 정정한다.
GRADE 규칙의 독립 검증: ΔG 규칙(§3.2)만으로 판정하면 orange on sand(ΔG 43 → 대형 전용), white on orange(ΔG 47 → 대형 전용), green on obsidian(ΔG 26 → 텍스트 금지)이 도출된다. 이는 SAMAN이 수작업 실측으로 세운 가드레일과 완전히 일치한다. GRADE 척도가 기존 규칙을 손실 없이 재생산함이 확인되었다.
8.6 타이포그래피 슬롯
| 슬롯 | 값 |
|---|---|
family.primary |
Pretendard |
family.stack |
Pretendard, -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif |
family.embed |
assets/fonts/PretendardVariable.ttf (가변 폰트, 로컬 임베드) |
weights |
regular 400 / medium 500 / bold 700 |
features |
tabular figures ✓ / variable ✓ |
표현 규칙: 한글에는 대소문자가 없으므로, 캡스 톤은 자간(letter-spacing)으로 만든다. 헤드라인은 좁히고(음수 자간), 라벨·아이브로는 넓힌다(양수 자간). 구체 수치는 design.foundations.md §3.6이 정의한다.
8.7 보이스 & 금지 목록
voice:
stance: 단정적·원칙적·3인칭. 원칙은 원칙으로 못 박는다
distance: 전문가 대 전문가. "여러분"·"우리"로 거리를 좁히지 않는다
register: 규정문체(평서 종결). §5.2 어미 4종만 사용
restraint: 과장·감탄·마케팅 어휘 금지. 확신하되 자랑하지 않는다
보이스 금지 예시
| 속성 | 금지 예 | 대체 |
|---|---|---|
| stance | "~인 것 같습니다" | "~이다" / 근거 불충분 시 [추론] 표기 |
| distance | "우리 모두가 아는 것처럼" | 삭제 |
| register | "꼭 확인해 주세요!" | "확인한다" |
| restraint | "혁신적인 솔루션" | 기능을 사실로 서술 |
brand.forbidden[] (브랜드 차원 절대 금지)
| # | 금지 항목 | 근거 |
|---|---|---|
| 1 | 오렌지 본문 텍스트 (라이트 배경) | ΔG 43 < 55. 대형 텍스트·면에만 |
| 2 | 다크 배경 위 그린 텍스트 | ΔG 26, 실측 2.13:1. 그린은 다크 위에서 면·도형으로만 |
| 3 | 순백(#FFFFFF) 전면 배경 | 대형 화면 눈부심·인쇄 반사. 라이트 배경은 항상 sand |
| 4 | 악센트 3개 이상 (단위 화면당) | 악센트 경제 (§2.4) |
| 5 | 이모지 | IC-3 |
| 6 | 생성 이미지에 텍스트·로고 굽기 | LG-3 |
| 7 | 토큰 외 임의 색·치수 하드코딩 | Layer 1 PF 규칙 |
| 8 | 그라디언트 배경 | 플랫 토큰 필만 사용 |
| 9 | 방향어 참조 ("아래 표", "앞서") | §5.7 |
8.8 아이코노그래피
| 슬롯 | 값 |
|---|---|
grid |
64 (정사각) |
stroke |
4 |
linecap / linejoin |
round / round |
fill |
none |
color_on_light |
green |
color_on_dark |
white |
set_policy |
bespoke (자체 제작) |
카탈로그 (현행)
| 분류 | 항목 |
|---|---|
| SVG 라인 아이콘 4종 | view(보기) · verify(검증) · barrier(장벽) · network(허브) |
| BIM 래스터 세트 9종 | plan · design · construct · complete · operate · section · analysis · ground · cde |
신규 아이콘은 §6.3 승인 절차를 따른다.
8.9 로고
| 슬롯 | 값 |
|---|---|
master |
assets/saman-logo.png (투명, 1048×340) |
on_light |
assets/saman-logo.png |
on_dark |
assets/saman-logo-on-dark.png (워드마크 sand 리컬러, 다이아몬드 orange 유지) |
mark_only |
assets/saman-mark.png / saman-mark-on-dark.png |
clear_space |
마크 높이의 1.0배 이상 |
min_width |
Layer 2 매체 프로파일이 실체화 |
9. 인스턴스 추가 절차
9.1 절차
| 단계 | 작업 | 산출 |
|---|---|---|
| 1 | 철학 슬로건 확보 및 조작적 정의 도출 (2축 이상) | B3·B4 |
| 2 | 가치축 정의 — design_role 배정 (base 1 / ground 1 / accent ≤1) |
B6 |
| 3 | 원색·중립색 지정, GRADE 자동 산출 | B7·B8 |
| 4 | BV-1 ~ BV-8 검증 실행 — 1건이라도 FAIL이면 3단계로 회귀 | 검증표 |
| 5 | 대비 실측 전 쌍 계산 → contrast.pairs 등록 |
등록부 |
| 6 | ΔG 미달이나 실측 통과 쌍은 명시 등록 (암묵 허용 금지) | 등록부 |
| 7 | 서체 슬롯 지정 (TF-1 ~ TF-5 확인) | B9·B10 |
| 8 | 보이스 4속성 + 금지 예시 작성 | B11 |
| 9 | 문안 규칙 — §5.6 동사 판별표를 해당 도메인 어휘로 재작성 | B12 |
| 10 | 아이콘 조형 원칙·초기 카탈로그 확정 | B13 |
| 11 | 로고 자산 확보 및 변형 생성 | B14 |
| 12 | brand.forbidden[] 확정 — BV-5 유래 항목 필수 포함 |
B15 |
| 13 | design.tokens.json의 brand 블록에 반영, md ↔ json 정합 검증 |
토큰 갱신 |
| 14 | 본 파일에 인스턴스 장(章) 추가 → MINOR 버전 증가 | 문서 갱신 |
9.2 인스턴스 등록 체크리스트
| # | 항목 | 필수 |
|---|---|---|
| 1 | 슬롯 B1~B15 전부 충족 | ★ |
| 2 | BV-1 ~ BV-8 전부 PASS (경계 사례는 사유 기재) | ★ |
| 3 | hex ↔ rgb 전 색 일치 검증 |
★ |
| 4 | 대비 실측 전 쌍 프로그램 계산 (수기 계산 금지) | ★ |
| 5 | FAIL 쌍은 brand.forbidden[]에 반영 |
★ |
| 6 | 보이스 각 속성에 금지 예시 1개 이상 | ★ |
| 7 | 동사 판별표가 해당 도메인 어휘로 작성됨 | ★ |
| 8 | 아이콘 카탈로그에 의미 중복 없음 (IC-1) | ★ |
| 9 | Design.md §2 PF/PD 규칙과 조작적 정의가 연결됨 |
★ |
| 10 | design.tokens.json 동기화 완료 |
★ |
9.3 브랜드 교체 시 영향 범위
| 계층 | 영향 | 재작업 |
|---|---|---|
| Layer 0 | 전면 교체 | 본 파일 인스턴스 장 신규 작성 |
| Layer 1 | 영향 없음 | 없음 — 파운데이션은 색의 의미역할만 참조하며 HEX를 직접 참조하지 않는다 |
| Layer 2 | 영향 없음 | 없음 |
| Layer 3 | 영향 없음 | 없음 — 모듈은 토큰명으로만 지시한다 |
이것이 Layer 분리의 실익이다. 브랜드 교체가 Layer 0 한 파일로 격리되려면, 하위 계층에서
#1F524B같은 리터럴이 단 한 번도 등장하지 않아야 한다. [출처: design.benchmark, T33 (GOV.UK "hex 값 직접 복사 금지, 함수로만 참조")]
근거 출처 요약
본 파일이 인용한 벤치마킹 항목: T4 · T5 · T10 · T21 · T28 · T30 · T31 · T33 · T35 · T36 · T38 · T41 · T44 · T51 · T52 · M12 · M20 · §16-4 · §18-24
전문: RAG/design.benchmark_2026-07-28_v0.1.0.md
[자체 정의] 표기 항목: CW-2 어절 기준 · §5.6 동사 판별표 어휘 · §5.8 한국어 가독성 지표 · TF-5 한글 sans 채택 근거