여러 줄 주석이 설명보다 경위(예전·실측·지적)를 적고 있어 읽는 사람이 결론을 찾기 어려웠다. - 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>
89 lines
2.9 KiB
CSS
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; }
|
|
}
|