디자인 시스템
화면 5장의 역할과 화면별 기능 규칙은 화면·기능 요구에 있습니다. 이 페이지는 그 규칙을 색·서체·레이아웃 결정으로 옮긴 것입니다.
연출 원칙이 디자인 규칙이다
전면 텍스트 기반이며, 사망 장면은 직접 묘사하지 않는다.
- 사건 자체가 아니라 정황과 단절로 전달한다
- 하루가 끝나는 방식, 마지막에 남은 말, 되돌아온 아침으로 처리한다
- 공개 배포 환경이므로 폭력·유혈 묘사를 배제한다
- 손상은 설명되지 않고 발생만 한다. 시스템은 “무언가 이상하다”고 알려주지 않는다
화면이 조용해야 손상 연출이 드러납니다. 장식·애니메이션은 최소로 두고, 움직임은 아침 문장 타자기 한 곳뿐입니다.
레이아웃 선택 — 셋 중 무엇도 단독으로는 안 된다
| 안 | 비유 | 장점 | 단점 |
|---|---|---|---|
| A · 메신저형 | 카톡처럼 말풍선이 쌓인다 | 처음 보는 사람이 0초 만에 조작법을 안다 — 12.4의 30초 진입에 최적. 발화 예산·전송 버튼이 자연스럽게 붙는다 | 미스터리 톤이 죽는다. 일상 앱처럼 보인다. 서술(아침·죽음·정황)이 들어갈 자리가 없다 |
| B · 소설형 | 비주얼 노벨처럼 문장이 흐른다 | 4.9 연출 원칙(정황과 단절)에 가장 맞는 톤. 손상 1층(대사 미세 변형)이 텍스트 안에서 작동한다 | 예산·입력 같은 게임 UI가 붙을 자리가 어색하다. “내가 지금 뭘 할 수 있지?”를 학습해야 한다 |
| C · 터미널형 | 로그가 흐르는 콘솔 | 인스펙터와 시각 언어가 통일된다. 1차 사용자(에이전트 개발자)에게 어필 | 3차 사용자 — 게임을 안 하는 사람 — 에게 진입장벽. 불특정 방문자에게 “개발자 장난감”으로 읽힐 위험 |
선택 — A+B 하이브리드, C는 인스펙터에만 서술(아침·정황·단절)은 소설형 문단으로, 발화는 메신저형 입력으로, 시스템(침묵 권고·인스펙터)은 모노스페이스로. 한 화면 안에서 글꼴과 색이 층을 구분합니다 — 세리프는 세계, 산세리프는 대화, 모노는 기계.
모바일 1열이 기준입니다(불특정 방문자 유입은 폰이 많다). 데스크톱에서는 노트·인스펙터가 우측 레일로 펼쳐집니다. 본 화면은 상단에 「오늘」과 발화 예산 점, 가운데에 대화·노트·인스펙터 중 하나, 하단에 세 탭을 둡니다. 인스펙터 탭에는 새 판정이 기록될 때 점 하나가 켜집니다.
서체 — 세 층이 세 목소리
| 층 | 서체 | 어디에 |
|---|---|---|
| 세계 | 세리프 (Noto Serif KR) | 아침 문장, 정황, 단절, 시스템 서술 |
| 대화 | 산세리프 | 사람의 말 — 말풍선, 입력, 버튼 |
| 기계 | 모노스페이스 | 판정 로그, 권고 근거, 예산 점 |
읽기가 전부인 제품이므로 본문 타이포가 최우선입니다. 한글 행간 1.8 이상, 어절 단위 줄바꿈.
토큰
색·모션·정보 밀도는 잠정값입니다 컨셉 영상이 레포에 없는 상태에서 텍스트 전면 · 정황과 단절 · 손상은 조용히 발생이라는 연출 원칙만 확정이므로, 그 방향에 맞는 잠정 토큰을 둡니다.
게임의 소재에서 뽑았습니다 — 7시 12분의 새벽빛, 복사본의 복사본이 되어가는 세계, 종이 노트. 그래서 테크 블랙이 아니라 먹이 번진 어두운 세피아가 바탕이고, 개발 문서 사이트의 청록은 게임 프레임 안에서 일부러 쓰지 않습니다 — 문서(도구)와 게임(세계)이 색으로 구분됩니다.
게임 팔레트
| 이름 | 값 | 어디에 |
|---|---|---|
| 잉크 바탕 | #100e0b | 본 화면 배경 |
| 바랜 활자 | #d6cfc0 | 본문, NPC 말풍선 글자, 전송 버튼 |
| 새벽빛 | #b6c2ce | 아침 문장·시간에만 |
| 연필 | #8a8172 | 서술·노트 |
| 호박 | #c9973f | 침묵 권고 |
| 기계 | #6f9bbf | 인스펙터만 — 게임 밖 계층, 유일하게 차가운 색 |
아침 화면 배경은 잉크보다 한 단계 어두운 #0b0a08, 암전(단절)은 #000입니다. 노트 불일치(손상 2층)는 왼쪽 선 색만 #b5766f로 바뀌고 글자는 #c9a09a — 오류처럼 보이지 않아야 합니다.
상태색 · 간격 · 반경
- 상태색은 3종만 선확정:
danger #EF6461·warn #F2C94C·success #31D0AA - 간격 4px 배수 / 반경 sm 6 · md 10 · lg 16
- 목업 프레임: 폭
min(420px, 100%), 높이 680, 반경 18
기획서 조항 → UI 결정
| 기획서 | 조항 | UI 결정 |
|---|---|---|
| 12.4 | 30초 진입 · 로그인/설치 없음 | 첫 화면이 곧 게임 시작. 온보딩·타이틀 화면 자체를 두지 않는다 |
| 4.9 | 루프 카운터 미노출 | 헤더에 숫자 금지 — 노트가 대신 센다 |
| 4.9 | 사망 직접 묘사 금지 | 죽음 = 암전 + 문장 단절. 사인 텍스트를 쓰지 않는다 |
| 4.9 | 손상은 설명 없이 발생 | 시스템 알림 금지. 텍스트 자체가 변형되고 알아차림은 유저 몫 |
| 5.1 | 발화 예산 = 핵심 자원 | 항상 보이는 점(●●●○). 숫자보다 “줄어드는 감각”이 소모감에 맞는다 |
| 5.5 | 권고는 희소 · 근거 필수 · 무시 가능 | 모달(강제) 금지 → 배너. 따른다/무시한다 버튼이 곧 로깅 지점 |
| 8.8 | 인스펙터는 게임 밖 계층 | 모노스페이스 + 차가운 파란색으로 시각 언어를 일부러 분리 |
화면별 설계 메모
| 화면 | 목업에서 확인한 것 | 실제 구현에서 달라지는 것 |
|---|---|---|
| 아침 | 고정 문장 타자기 연출 · 2번째 아침에서 두 번째 문장이 달라진다(손상 1층) | 후반 루프에서 첫 문장(7시 12분)을 딱 한 번 흔든다 |
| 대화창 | 예산 점이 줄어드는 감각 · 발화 후 되돌릴 수 없음 | 자유 입력 + NPC 동적 응답. 목업은 각본 미리보기 방식 |
| 침묵 권고 | 배너로 침입하고, 근거가 붙고, 무시할 수 있다 | 발동 빈도 자체가 튜닝 대상(5.5) — 희소해야 한다 |
| 노트 | 루프별 타임라인 + 검색 · 루프 카운터를 노트가 대신 센다 | 자연어 검색(임베딩) — 목업은 단순 텍스트 필터 |
| 인스펙터 | ask_npc 호출 체인이 열린다 · 게임과 다른 시각 언어 | 실제 판정 로그 스트림 + 도메인 전이 시연에서 같은 화면 재사용 |
“7시 12분”은 프론트에서 하드코딩하지 않습니다 후반에 한 번 바뀝니다. 서버가
morning.fixed로 내려주는 값을 그대로 렌더합니다. 프론트가 상수로 박아두면 이 연출이 죽습니다.
무시 버튼을 눈에 띄지 않게 만들면 측정이 망가집니다 “근거 표시가 채택률을 올리는가”를 A/B로 재는 게 목적인데, UI가 수용을 유도하면 측정값이 UI 편향이 됩니다. 두 버튼을 동등하게 놓습니다. 목업에서 「따른다」는 호박색 테두리, 「무시한다」는 기본 테두리이지만 크기와 위치는 같습니다.
목업 각본 — 한 루프
기획서 8.8의 예시 시나리오를 LLM 없이 각본으로 넣어 아침 → 대화(예산 소모) → 출처 빌린 거짓말 발각 → 침묵 권고 → 하루의 끝 → 2번째 아침까지 한 루프를 돌게 했습니다. 실제 게임에서는 NPC 응답과 판정이 전부 동적입니다.
| # | 유저 | 채연 | 인스펙터에 기록되는 것 |
|---|---|---|---|
| 1 | 오늘 저녁에 뭐 해? | 글쎄, 별일 없는데. 왜? | 의심 판정 → 변화 없음 (일상 발화) |
| 2 | 요즘 민석 좀 이상하지 않아? | 민석이? 평소랑 똑같던데. | 의심 판정 → 의심도 +3 (누적 29 / 임계 60) |
| 3 | 어제 준이 네 얘기 물어보더라. | 그래? …준이 그런 말을 했다고. | 의심 판정 +5 (누적 41) → 도구 호출 ask_npc(준, "유저 얘기") [탐문 예산 2→1] → 도구 결과 “없음” · 부작용: 준.의심도 +6 → 불일치 판정 +15 (누적 56). 침묵 권고 배너 발동 |
| 4 | 오늘 밤에 밖에 나가지 마. 부탁이야. | …뭐? 너 요즘 왜 그래? | 의심 판정 +9 (누적 65 / 임계 60) ⚠ 임계 돌파 → 재계획: 유저 유도를 역방향으로 해석 |
아침 1 7시 12분. 눈을 뜬다. / 창밖에서 물 트는 소리가 난다.
암전 오후 11시 40분. / 물 냄새가 났고, 그 다음은—
노트 L1 · 밤 11시 40분 · 물 냄새 · 계단 근처였다
L1 · 준이 내 이름을 판 걸 알게 됐다 — 채연이 확인했다 ← 손상 2층 색
인스펙터 ── 루프 종결 · Evaluator ──
원인 체인 → 채연 불안 상승 → 민석에게 보고 → 경로 성립
메모리 정책 → 채연·은상 소거(5% 잔류) · 유저 노트 유지 · 손상 유지
아침 2 7시 12분. 눈을 뜬다. / 천장이 조금 낮아 보인다. ← 손상 1층
예산이 6에서 5로 줄었다. 정보는 남고, 사람은 닳는다.
권고를 따르면 adopt=true, 무시하면 adopt=false가 인스펙터에 기록됩니다 (11.2 채택률 지표).
접근성 최소선
- 본문 대비비 4.5:1 이상
- 터치 영역 44×44
- 주요 플로우를 키보드만으로 완주 (대화 입력 → 전송 → 권고 응답)
- 시스템 글자 크기 확대 시 잘림 없음
prefers-reduced-motion이면 타자기 연출을 포함한 움직임을 끈다
결정 로그
| 날짜 | 결정 | 이유 |
|---|---|---|
| 2026-09-03 | 화면을 5장으로 고정, 랜딩·로그인 삭제 | 12.2 · 12.4 |
| 2026-09-03 | 아침 고정 문장을 서버에서 내려받아 렌더 | 후반에 한 번 바뀌는 연출을 살리기 위해 |
| 2026-09-03 | 의심도·신뢰도 UI 비노출 확정 | 은닉형 설계. 인스펙터에서만 개봉 |
| 2026-09-03 | 권고 배너의 수용/무시 버튼 동등 배치 | UI 편향이 11.2 측정을 오염시킴 |
| 2026-09-03 | A+B 하이브리드 레이아웃, 터미널형은 인스펙터에만 | 30초 진입과 연출 원칙을 동시에 만족. 인스펙터는 게임 밖 계층 |
| 2026-09-03 | 게임 팔레트를 세피아 계열로, 문서 사이트의 청록은 프레임 안에서 금지 | 도구(문서)와 세계(게임)를 색으로 구분 |