feat(site): rework 19 marketing showcases for composition diversity
Some checks are pending
ci / build (push) Waiting to run

Measured convergence before: split hero 13/19, top-bar nav 19/19,
one-line notice footer 14/19, body Pretendard 17/21, 10 similarity
pairs above 0.78. Each showcase got a pre-assigned hero family, nav
form, footer form, type pair, background, accent hue, radius, motion
grammar and material from outputs/rework-2026-10-06/plan.md; direction
cards and the chosen reason are recorded in every design.md.

After: 0 similarity warnings, 19 distinct display faces, 7 hero
families, 5 nav forms, 5 footer forms, no scroll reveals, 5 showcases
with SVG filter materials. Example contact values replace bracket
placeholders under the existing fictional-brand notices. Thumbnails,
OG images, card copy and three e2e assertions updated; dead CSS in
dure-enrollment and hannam-jari removed; similarity.mjs learns the new
font families.
This commit is contained in:
Yun Chan 2026-10-06 16:55:50 +09:00
parent 88c11682b1
commit 8e3cdb0d3b
296 changed files with 19131 additions and 17538 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,49 +1,14 @@
/* ==========================================================================
새벽청과 — 청과 도매 직거래 · 디자인 토큰 SSOT
새벽청과 — 청과 도매 직거래 · 디자인 토큰 SSOT (2026-10-06 재작업)
컨셉 : 오늘 새벽 두 시의 값 — 값이 매일 바뀐다는 사실을 숨기지 않고
첫 화면의 주인공으로 삼는다
프리셋: 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 그리드로 짓고, 이번 달 표시에만
인라인 스크립트를 쓴다(달이 바뀌면 저절로 따라가야 하므로)
컨셉 : 카페·식당 사장이 오늘 새벽 낙찰가를 품목별로 한 표에서 읽고,
상자 수로 기준 금액을 계산해 발주 메모를 남긴다.
구도 : 데이터·도구가 주인 — 시세표가 첫 화면, 표제는 작게.
배경 : 밝은 쿨 새벽(#e4e8f4) 한 가지. 어두운 띠 교대는 없앴다 — 띠가 7번
바뀌면서 정보 전환이 아니라 색 전환만 보였다(05 계측).
강조 : 140° 녹 한 가지. 선택 행·탭·버튼·상승 표기에만 쓴다.
서체 : Gasoek One(표제·낙찰가 숫자·섹션 제목) / Noto Sans KR(본문·표).
모노는 없다 — 숫자 정렬은 본문 서체 + tabular-nums(typography §6-5).
── 사실 근거 (카피에 쓰는 용어는 전부 아래에서 왔다)
· 가락시장 과일 경매는 새벽 2시~아침 8시. 포도·복숭아·감귤·자두·딸기·멜론·참외·
@ -51,64 +16,56 @@
— garak.co.kr 시장경매시간안내
· 유통 경로: 출하자 → 도매법인(경매회사) 수집 → 경매 → 중도매인 낙찰 → 소매 → 소비자
· 경락가격 = 낙찰가격. 농산물유통정보(KAMIS)가 가락시장 경락가격을 공개한다
· 등급은 특·상·보통. **당도 표시는 특·상 등급에만 허용**된다
· 등급은 특·상·보통. 당도 표시는 특·상 등급에만 허용된다
· 당도 표시 가능 품목은 사과·배·복숭아·포도·감귤·금감·단감·자두 8품목과
수박·조롱수박·참외·멜론·딸기 5품목 — 농산물 표준규격
· Brix = 용액 100g 에 든 당의 g 수
· 선과기는 드럼식(지름 기준)과 중량식(무게 기준)
· 거래단위 예: 사과 2·5·7.5·10kg, 포도 2·3·4·5kg
── 대비 실측(WCAG 상대 휘도, 2026-10-06 계산)
· 바탕 #e4e8f4 위: --ink 14.1:1 · --ink-muted 6.96:1 · --ink-faint 4.80:1 · --accent 5.59:1
· 표면 #f5f7fc 위: --accent 6.38:1 · --ink-faint 5.49:1
· 선택 행 #d4e6d9 위: --accent 5.25:1 · --ink-muted 6.54:1 · --ink-faint 4.52:1
· 흰 글자 on --accent 6.84:1
========================================================================== */
:root {
/* ── 타이포그래피 — 5단계 + 스케일 밖 디스플레이 1개 ── */
--step--1: 0.8125rem; /* 13px — 표 머리·단위·메타 */
/* ── 타이포그래피 ── */
--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) 과 같은 비율이다 */
--step-1: 1.1875rem; /* 19px — 리드·표 품목명 */
--step-2: clamp(1.375rem, 1.2rem + 0.9vw, 1.75rem); /* 22 → 28px — h1(작게)·h3 */
--step-3: clamp(1.625rem, 1.3rem + 1.6vw, 2.25rem); /* 26 → 36px — 섹션 제목 */
--num-lg: clamp(1.625rem, 1.2rem + 1.6vw, 2.25rem); /* 26 → 36px — 낙찰가 숫자. h1보다 크다 */
--num-xl: clamp(2.25rem, 1.6rem + 2.6vw, 3.25rem); /* 36 → 52px — 선택 로트 낙찰가 */
--leading-tight: 1.18;
--leading-tight: 1.25;
--leading-normal: 1.7;
--leading-loose: 1.85;
--measure: 33em;
--leading-loose: 1.8;
--measure: 34em;
--font-body: Pretendard, "Pretendard Variable", -apple-system, system-ui, sans-serif;
--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;
--font-display: "Gasoek One", "Noto Sans KR", sans-serif;
--font-body: "Noto Sans KR", -apple-system, system-ui, sans-serif;
/* ── 색 · 종이(라이트) ── */
--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;
/* ── 색 · 새벽(밝음·쿨) ── */
--surface: #e4e8f4; /* 페이지 바탕 */
--surface-2: #f5f7fc; /* 표·패널 면 */
--surface-3: #d3d9ea; /* 머리 행·입력 면 */
--line: #bcc5db;
--line-strong: #7f8aa8;
--ink: #141a2b;
--ink-muted: #434c66;
--ink-faint: #5a6480;
--accent: #22673a; /* 140° 녹. 선택 행·탭·버튼·상승 표기에만 */
--accent-hover: #1a5230;
--accent-ink: #ffffff;
--accent-wash: #e6ebf2;
--accent-wash: #d4e6d9;
/* ── 색 · 새벽(다크 반전 밴드) — 위 값들의 규칙적 반전 ── */
--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;
/* ── 형태 ── */
--radius: 4px;
/* ── 형태 — R1·R2 둘 다 radius 0 이 지배한다(975회 / 685회) ── */
--radius: 0;
/* ── 간격 — 저장소 SSOT 표준 ── */
/* ── 간격 ── */
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 1rem;
@ -116,14 +73,14 @@
--space-5: 2.5rem;
--space-6: 4rem;
--space-7: 6rem;
--space-8: clamp(4.5rem, 3rem + 6vw, 9rem);
--space-8: clamp(4rem, 2.5rem + 5vw, 7.5rem);
--container: 1120px;
--container-wide: 1360px;
--pad-inline: clamp(1.25rem, 1rem + 2.5vw, 4rem);
/* ── 모션 ── */
/* ── 모션 — 카운터 하나뿐이다 ── */
--dur-quick: 150ms;
--dur-normal: 380ms;
--dur-count: 600ms;
--ease: cubic-bezier(0.2, 0, 0, 1);
}