Files
Pier_v1/RAG/design system_v0.1.1/design.brand.md
T
ahnyongjooandClaude Sonnet 5.5 964a841de1 chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합
- 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>
2026-10-28 11:20:18 +09:00

35 KiB
Raw Blame History

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. 브랜드 슬롯 스키마

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가 공급한다.

매체 "단위 화면"의 정의
print 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의 판독 불가 텍스트가 산출될 수 있었다. 본 스키마는 이를 자동 검증 항목으로 승격한다. [출처: 자체 산출 / SAMAN design.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 아이콘 거버넌스 (승인 절차)

카탈로그에 없는 아이콘이 필요할 때, 임의로 만들지 않는다.

  1. 필요 아이콘을 제안한다 — 이름 + 의미 + 조형 사양(그리드·획·구성 요소)
  2. 승인 대기. 승인 없이 산출물에 포함하지 않는다
  3. 승인 후 카탈로그에 등재하고 design.components.md §3 아이콘 절에 반영한다
  4. 등재 시 의미 중복 검사(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을 정본으로 확정한다. [출처: 자체 산출 / SAMAN design.tokens.json color.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 경계 사례 brown on sand는 Δ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 채택 근거