feat: complete ANL lab homepage with light/dark theme, responsive layout, and 100% SSG E2E test suite

This commit is contained in:
2026-07-30 20:15:40 +09:00
parent d833252217
commit 36a4cd851e
20 changed files with 1266 additions and 105 deletions
+28 -18
View File
@@ -21,6 +21,7 @@ import type { Config } from "tailwindcss";
* Font CSS variables are injected by next/font in app/layout.tsx.
*/
const config: Config = {
darkMode: ["class", '[data-theme="dark"]'],
content: [
"./app/**/*.{ts,tsx}",
"./components/**/*.{ts,tsx}",
@@ -29,45 +30,54 @@ const config: Config = {
extend: {
colors: {
ink: {
DEFAULT: "#0A0A0A",
soft: "#262420",
mute: "#6B655B",
DEFAULT: "rgb(var(--ink-rgb) / <alpha-value>)",
soft: "rgb(var(--ink-soft-rgb) / <alpha-value>)",
mute: "rgb(var(--ink-mute-rgb) / <alpha-value>)",
},
ivory: "#F5F1E8",
paper: "#ECE6D6",
line: "#D8D1C0",
ivory: "rgb(var(--ivory-rgb) / <alpha-value>)",
paper: "rgb(var(--paper-rgb) / <alpha-value>)",
line: "rgb(var(--line-rgb) / <alpha-value>)",
vermillion: {
DEFAULT: "#D9342B",
dark: "#A8231C",
DEFAULT: "rgb(var(--vermillion-rgb) / <alpha-value>)",
dark: "rgb(var(--vermillion-dark-rgb) / <alpha-value>)",
},
cobalt: {
DEFAULT: "#1B3A8A",
dark: "#122863",
DEFAULT: "rgb(var(--cobalt-rgb) / <alpha-value>)",
dark: "rgb(var(--cobalt-dark-rgb) / <alpha-value>)",
},
// Back-compat aliases so any stray legacy class still resolves.
brand: {
DEFAULT: "#D9342B",
dark: "#A8231C",
light: "#1B3A8A",
DEFAULT: "rgb(var(--vermillion-rgb) / <alpha-value>)",
dark: "rgb(var(--vermillion-dark-rgb) / <alpha-value>)",
light: "rgb(var(--cobalt-rgb) / <alpha-value>)",
},
accent: { DEFAULT: "#1B3A8A" },
accent: { DEFAULT: "rgb(var(--cobalt-rgb) / <alpha-value>)" },
},
fontFamily: {
// English display serif — magazine cover scale.
display: ["var(--font-display)", "Fraunces", "Georgia", "serif"],
// Korean serif headlines.
"serif-ko": ["var(--font-serif-ko)", "Noto Serif KR", "serif"],
// Clean sans body. Pretendard preferred, Inter as web fallback.
// Clean sans body. Geist preferred, Pretendard & Inter as web fallbacks.
sans: [
"Pretendard",
"Geist",
"var(--font-sans)",
"Pretendard",
"Inter",
"ui-sans-serif",
"system-ui",
"Apple SD Gothic Neo",
"Malgun Gothic",
"sans-serif",
],
mono: [
"Geist Mono",
"var(--font-mono)",
"ui-monospace",
"SFMono-Regular",
"Menlo",
"Monaco",
"Consolas",
"monospace",
],
},
fontSize: {
// Magazine-cover display scale. Capped at 7rem (was 9rem) so the