o2o-site-AEO/solution/site/src/index.css
Mina Choi 11d30bb3d1 [chore] solution,admin,ontology: 코드 주석을 한 줄로 — 히스토리 주석 삭제
여러 줄 주석이 설명보다 경위(예전·실측·지적)를 적고 있어 읽는 사람이 결론을 찾기 어려웠다.

- ts·tsx·js·mjs·css·py 478개: 여러 줄 주석은 첫 문장 한 줄로, 과거형·날짜 문장은 삭제
- 주석 위치는 TypeScript 파서·파이썬 tokenize/ast 로 찾는다 — 문자열 안의 # · /* 는 건드리지 않는다
- eslint·ts·noqa·type: ignore 같은 지시 주석은 그대로 둔다

파이썬 275개 정리 전후 AST 동일, TS 298개 주석 뺀 토큰 동일(빈 JSX 주석 10곳만 차이).
site·frontend·admin tsc, site vitest 105 passed

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 16:05:19 +09:00

89 lines
2.9 KiB
CSS

@import "tailwindcss";
@import "@o2o/shared/styles/base.css";
/* 시안 토큰·유틸(타이포·.shell·.h2·.panel·슬라이더)은 캔버스와 한 파일을 쓴다. */
@import "@o2o/shared/styles/site.css";
/* 발행 사이트의 디자인 토큰. */
:root {
--tpl-primary: #18181b;
--tpl-secondary: #52525b;
--tpl-bg: #ffffff;
--tpl-card: #fafafa;
--tpl-text: #09090b;
--tpl-accent: #2563eb;
--tpl-surface: #ffffff;
--tpl-surface-alt: #f5f5f4;
--tpl-inverse: #1c1917;
--tpl-border: #e7e5e4;
/* 생김새 폴백 = '심플' 템플릿(admin `industryData.ts` 의 LOOK.simple). */
--tpl-font-heading: 'Pretendard Variable', 'Noto Sans KR', system-ui, sans-serif;
--tpl-font-body: 'Pretendard Variable', 'Noto Sans KR', system-ui, sans-serif;
--tpl-radius: 0.75rem;
--tpl-border-width: 1px;
--tpl-shadow: 0 1px 2px rgb(0 0 0 / 0.06);
--tpl-heading-tracking: -0.02em;
--tpl-heading-weight: 700;
--tpl-section-space: 4rem;
}
@theme inline {
--color-brand: var(--tpl-primary);
--color-brand-soft: var(--tpl-secondary);
--color-surface: var(--tpl-bg);
--color-surface-alt: var(--tpl-card);
--color-ink: var(--tpl-text);
--color-accent: var(--tpl-accent);
--font-sans: 'Pretendard Variable', 'Noto Sans KR', system-ui, sans-serif;
--font-serif: 'Noto Serif KR', 'Batang', 'Times New Roman', serif;
--color-line: color-mix(in oklab, currentColor 14%, transparent);
--color-line-soft: color-mix(in oklab, currentColor 8%, transparent);
/* 본문 보조 글자. */
--color-muted: color-mix(in oklab, currentColor 96%, transparent);
/* 모서리는 템플릿이 정한 값 하나에서 **비율로** 펼친다. */
--radius-sm: calc(var(--tpl-radius, 0.75rem) * 0.4);
--radius-md: calc(var(--tpl-radius, 0.75rem) * 0.7);
--radius-lg: var(--tpl-radius, 0.75rem);
--radius-xl: calc(var(--tpl-radius, 0.75rem) * 1.35);
--radius-2xl: calc(var(--tpl-radius, 0.75rem) * 1.7);
--radius-3xl: calc(var(--tpl-radius, 0.75rem) * 2.2);
}
html {
scroll-behavior: smooth;
/* 고정 헤더에 앵커가 가리지 않게. */
scroll-padding-top: 5.5rem;
}
body {
background-color: var(--color-surface);
background-image: var(--tpl-texture, none);
color: var(--color-ink);
/* 본문 서체도 템플릿이 정한다(theme.look → seo/head.ts). */
font-family: var(--tpl-font-body, var(--font-sans));
font-size: var(--fs-body);
font-weight: 450;
line-height: 1.7;
font-feature-settings: "tnum" 1;
/* 하단 고정 탭(모바일)에 마지막 섹션이 가리지 않게. */
padding-bottom: env(safe-area-inset-bottom);
}
/* 키보드 사용자에게만 보이는 초점 테두리. */
:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
}
@keyframes w4-note-fade {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: none; }
}
.w4-note-fade { animation: w4-note-fade 0.4s ease; }
@media (prefers-reduced-motion: reduce) {
.w4-note-fade { animation: none; }
}