feat(showcase): 신규 쇼케이스 3종 — RFS · 트웬티온스 · 새벽청과
Some checks failed
ci / build (push) Failing after 1m52s
Some checks failed
ci / build (push) Failing after 1m52s
각 워크를 서로 다른 클라이언트로 보고 0~6단계를 따로 돌았다(토큰 체계 신규 정의 = 전체 경로). 셋 모두 라이트/다크 반전을 .band-light / .band-dark 가 --band-* 를 재정의하는 규칙으로 정의해 하드 게이트 4를 통과시켰다 — 반전이 섹션마다의 기분이 아니라 두 클래스가 만드는 규칙이다. RFS — 실시간 유체 시뮬레이터 (rfs-cfd) 프리셋 darkroom-spec · 컨셉 "암실과 사양서" R1 luminary.ai · R2 teenage.engineering EP-133 · 보조 simscale.com (전부 실측) 히어로에서 브라우저가 실제로 Navier–Stokes 를 푼다. 순수 WebGL2, three.js 미사용. 이류 → 온도 소스 → 부력·설비 힘 → 발산 → 압력 Jacobi → 투영 → 파티클 전진. 격자 224×126 / 파티클 26,000 / Jacobi 22회, 좁은 화면은 절반으로 줄인다. prefers-reduced-motion 이면 시작하지 않고 그 자리에 RFS 실물 파티클 렌더가 남는다. 단위계로 세 번 실패했다: dt 를 프레임 단위로 넘겨 파티클이 0.2초 만에 소멸했고, 전부 급기구에서만 재생성해 실 한 가닥이 됐으며, 랙이 위로 뿜어 핫/콜드 아일이 갈라지지 않았다. dt 를 초로 못박고 속도를 초당 격자 셀로 통일해 해결했다. 수치는 전부 RFS 저장소 README 출처. 정확도 지표는 싣지 않았다 — 사내 검증 자료이고 현재 통과 상태가 아니다. 트웬티온스 (twentyoz-corp) 프리셋 field-record · 컨셉 "네 개의 현장" R1 samsara.com · R2 lars-mueller-publishers.com · R3 = 현행 twentyoz.kr 감사 현행 사이트 실측: 대비 실패 172개 요소(9~11px 가 3.61:1), 한글 폰트 미지정으로 한글이 시스템 기본으로 떨어짐, h1 자간 −0.06em(한글 상한의 세 배), 배경 #020202. 'Digital Genetics' 은유가 산업용 IoT 사업을 가리고 있었다. 유지한 자산은 radius 0 과 무채색·모노 기조. 첫 화면에 회사 이름 대신 현장 선택기를 뒀다 — 라디오 그룹이라 JS 0바이트이고 좌우 화살표 키가 그냥 먹는다. 파트너 19곳은 원본에 도메인 표기가 없어 나누지 않았다. 새벽청과 (saebyeok-cheonggwa) 프리셋 market-board · 컨셉 "오늘 새벽 두 시의 값" R1 natoora.com · R2 phillips.com · R3 제철 12개월 띠 커머스가 감추는 시세 변동을 히어로의 주인공으로 삼았다. 상품 사진은 아래로 내렸다. 경매 시각·경락가격·등급·당도 표시 규정을 조사해 카피의 근거로 썼다. 무화과 당도를 "—" 로 두고 값이 없는 게 아니라 표시가 허용되지 않는 품목이라고 적었다. 등락은 색이 아니라 ▲▼보합 기호가 먼저다. 표의 숫자가 예시임을 판 아래와 푸터 두 곳에 명시하고, 주소·전화는 비웠다(게이트 11). 사진 4장은 codex 내장 image_gen 생성물이며 합계 341KB. 검증: Astro 빌드 통과, verify 체인 L0~L6 10계층 전부 통과, showcase-audit 신규 3종 12/12 통과(320/390/768/1440). 성능 실측(RFS): JS 24KB · 총 704KB. 폰트만 530KB 로 예산(200KB) 초과 — 한글 웹폰트 자체가 원인이고 기존 cheongon-care 는 650KB 로 더 크다. 저장소 공통 baseline 이라 이번 판은 기록만 남기고 넘어간다. 기존 16종에서 발견된 70건(대비 미달·히어로 줄 수 초과)은 이번 범위를 넘어 design.md 에 목록만 남겼다.
This commit is contained in:
parent
123d9fc5a8
commit
4d813420dc
31 changed files with 5973 additions and 11 deletions
128
apps/site/public/work/saebyeok-cheonggwa/styles/tokens.css
Normal file
128
apps/site/public/work/saebyeok-cheonggwa/styles/tokens.css
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
/* ==========================================================================
|
||||
새벽청과 (曉靑果) — 청과 도매 직거래 · 디자인 토큰 SSOT
|
||||
|
||||
컨셉 : 오늘 새벽 두 시의 값 — 값이 매일 바뀐다는 사실을 숨기지 않고
|
||||
첫 화면의 주인공으로 삼는다
|
||||
프리셋: market-board (신규 정의. quiet-commerce 를 뼈대로 삼되 상품이 아니라
|
||||
'오늘의 값'이 히어로다)
|
||||
강조색: 새벽 남색 1색. 라이트/다크는 규칙으로 정의된 한 쌍이므로 1종으로 센다
|
||||
|
||||
── 왜 화면이 무채색인가
|
||||
과일이 색을 전부 쓴다. 사진 안에 빨강·자주·황금이 이미 다 들어 있는데
|
||||
UI 까지 색을 쓰면 둘이 싸운다. 그래서 판은 종이와 잉크로만 짓고,
|
||||
유채색은 사진과 강조색 하나에만 허락한다.
|
||||
|
||||
── 강조색의 근거
|
||||
이 시장은 새벽 두 시에 연다. 낮의 색이 아니라 해뜨기 전의 색이어야 하고,
|
||||
과일의 난색(적·황·자)과 보색 관계라 사진을 죽이지 않는다.
|
||||
저장소의 기존 16종에 남색 계열이 비어 있는 것도 확인했다.
|
||||
|
||||
── 레퍼런스 실측 (2026-08-24, 1440px computed style)
|
||||
R1 구조 · natoora.com (제철 농산물 직거래 — 같은 업종)
|
||||
텍스트 #121212 · Helvetica Now Text 사실상 1패밀리
|
||||
본문 16px(224회) · 시각 헤드라인 72px(6회) → 최대÷본문 4.5배
|
||||
radius 0px 975회 지배 · 강조색 #3860BE 가 단 1회
|
||||
컨테이너 1313 ↔ 1425 전폭 · 칼럼 427
|
||||
히어로 이미지 1313×900 이 첫 화면 대부분, 같은 크기가 세로로 반복
|
||||
→ 가져온 원리: **품목마다 어디서 누가 길렀는지를 문장으로 붙인다.**
|
||||
제철 커머스의 설득은 사진이 아니라 출처의 구체성이다
|
||||
→ 안 가져온 것: h1 이 16px 이고 시각 헤드라인(72px)과 분리돼 있다
|
||||
(스크린리더가 읽는 제목과 눈에 보이는 제목이 다르다 — 접근성 실패).
|
||||
전체 대문자 내비도 가져오지 않는다
|
||||
|
||||
R2 톤 · phillips.com (미술품 경매 하우스 — 다른 업종)
|
||||
텍스트 순흑 #000000(141회) · 보조 #757777 · 강조색 사실상 없음
|
||||
h1 28px/400 — 아주 작다 · 본문 14px(100회) · 최대÷본문 1.7배
|
||||
radius 0px 685회 지배 · 컨테이너 1425 ↔ 1329 ↔ 443
|
||||
→ 가져온 원리: **경매는 날짜와 상태가 제목보다 앞에 선다.**
|
||||
무엇이 언제 열리고 지금 어느 단계인지가 먼저 나오고, 화면은 무채색으로
|
||||
물러나 출품작이 색을 갖게 한다
|
||||
→ 안 가져온 것: 본문 14px(한글 하한 16px 위반), 최대÷본문 1.7배(평평한 스케일),
|
||||
폰트 3패밀리
|
||||
|
||||
R3 디테일 · 제철 12개월 띠
|
||||
품목이 언제 나오는지를 12칸 격자 한 줄로 보여준다. natoora 의 'IN SEASON NOW'
|
||||
를 문구가 아니라 구조로 승격한 것이다. CSS 그리드로 짓고, 이번 달 표시에만
|
||||
인라인 스크립트를 쓴다(달이 바뀌면 저절로 따라가야 하므로)
|
||||
|
||||
── 사실 근거 (카피에 쓰는 용어는 전부 아래에서 왔다)
|
||||
· 가락시장 과일 경매는 새벽 2시~아침 8시. 포도·복숭아·감귤·자두·딸기·멜론·참외·
|
||||
토마토·수박·단감은 하절기 02:00 / 동절기 02:30, 사과·배·유자·떫은감·수입과실은 08:30
|
||||
— garak.co.kr 시장경매시간안내
|
||||
· 유통 경로: 출하자 → 도매법인(경매회사) 수집 → 경매 → 중도매인 낙찰 → 소매 → 소비자
|
||||
· 경락가격 = 낙찰가격. 농산물유통정보(KAMIS)가 가락시장 경락가격을 공개한다
|
||||
· 등급은 특·상·보통. **당도 표시는 특·상 등급에만 허용**된다
|
||||
· 당도 표시 가능 품목은 사과·배·복숭아·포도·감귤·금감·단감·자두 8품목과
|
||||
수박·조롱수박·참외·멜론·딸기 5품목 — 농산물 표준규격
|
||||
· Brix = 용액 100g 에 든 당의 g 수
|
||||
· 선과기는 드럼식(지름 기준)과 중량식(무게 기준)
|
||||
· 거래단위 예: 사과 2·5·7.5·10kg, 포도 2·3·4·5kg
|
||||
========================================================================== */
|
||||
|
||||
:root {
|
||||
/* ── 타이포그래피 — 5단계 + 스케일 밖 디스플레이 1개 ── */
|
||||
--step--1: 0.8125rem; /* 13px — 표 머리·단위·메타 */
|
||||
--step-0: 1rem; /* 16px — 본문 (한글 하한) */
|
||||
--step-1: 1.1875rem; /* 19px — 리드 */
|
||||
--step-2: clamp(1.375rem, 1.15rem + 1.1vw, 1.9375rem); /* 22 → 31px */
|
||||
--step-3: clamp(1.75rem, 1.3rem + 2.3vw, 2.75rem); /* 28 → 44px */
|
||||
--display: clamp(2.375rem, 1.5rem + 4.3vw, 4.5rem); /* 38 → 72px */
|
||||
/* 최대 ÷ 본문 = 72 ÷ 16 = 4.5배. R1(natoora) 과 같은 비율이다 */
|
||||
|
||||
--leading-tight: 1.18;
|
||||
--leading-normal: 1.7;
|
||||
--leading-loose: 1.85;
|
||||
--measure: 33em;
|
||||
|
||||
--font-body: Pretendard, "Pretendard Variable", -apple-system, system-ui, sans-serif;
|
||||
--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;
|
||||
|
||||
/* ── 색 · 종이(라이트) ── */
|
||||
--surface: #fbfaf7;
|
||||
--surface-2: #f2f0ea;
|
||||
--surface-3: #e7e4dc;
|
||||
--line: #ddd9d0;
|
||||
--line-strong: #b8b3a8;
|
||||
--ink: #16181a; /* 17.2:1 */
|
||||
--ink-muted: #55595d; /* 6.87:1 */
|
||||
--ink-faint: #696e73; /* 4.96:1 */
|
||||
--accent: #1f3f6b; /* 10.08:1 · 흰 글자 얹으면 10.5:1 */
|
||||
--accent-hover: #142b4b;
|
||||
--accent-ink: #ffffff;
|
||||
--accent-wash: #e6ebf2;
|
||||
|
||||
/* ── 색 · 새벽(다크 반전 밴드) — 위 값들의 규칙적 반전 ── */
|
||||
--dark-surface: #16181a;
|
||||
--dark-surface-2: #1d2023;
|
||||
--dark-surface-3: #24282c;
|
||||
--dark-line: #2f3438;
|
||||
--dark-line-strong: #454b50;
|
||||
--dark-ink: #f3f1ec; /* 15.9:1 */
|
||||
--dark-ink-muted: #a6a9ac; /* 7.63:1 */
|
||||
--dark-ink-faint: #878b8f; /* 5.22:1 */
|
||||
--dark-accent: #7fa8d9; /* 7.31:1 — 남색은 어두운 바탕에서 안 보이므로 밝은 쪽 쌍 */
|
||||
--dark-accent-hover: #9dbfe6;
|
||||
--dark-accent-ink: #0b1520;
|
||||
--dark-accent-wash: #1b2c3f;
|
||||
|
||||
/* ── 형태 — R1·R2 둘 다 radius 0 이 지배한다(975회 / 685회) ── */
|
||||
--radius: 0;
|
||||
|
||||
/* ── 간격 — 저장소 SSOT 표준 ── */
|
||||
--space-1: 0.25rem;
|
||||
--space-2: 0.5rem;
|
||||
--space-3: 1rem;
|
||||
--space-4: 1.5rem;
|
||||
--space-5: 2.5rem;
|
||||
--space-6: 4rem;
|
||||
--space-7: 6rem;
|
||||
--space-8: clamp(4.5rem, 3rem + 6vw, 9rem);
|
||||
|
||||
--container: 1120px;
|
||||
--pad-inline: clamp(1.25rem, 1rem + 2.5vw, 4rem);
|
||||
|
||||
/* ── 모션 ── */
|
||||
--dur-quick: 150ms;
|
||||
--dur-normal: 380ms;
|
||||
--ease: cubic-bezier(0.2, 0, 0, 1);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue