/** * student-portal Tailwind 配置(ai14) * * 设计令牌三层规范(project_rules §3.10): * - Layer 1 Primitive:原始色板/字号/间距(src/styles/primitive.css) * - Layer 2 Semantic:语义令牌(src/styles/semantic.css) * - Layer 3 Tailwind Theme:@theme inline 映射(本文件) * * 与 teacher-portal Shell 令牌对齐(paper/ink/accent/rule) * 禁止硬编码 hsl()/#hex(ESLint no-restricted-syntax 强制) */ /** @type {import('tailwindcss').Config} */ module.exports = { content: ['./src/**/*.{js,ts,jsx,tsx}'], theme: { extend: { colors: { // 语义令牌:引用 CSS 变量(Layer 2 → Layer 3) paper: 'var(--color-paper)', ink: { DEFAULT: 'var(--color-ink)', muted: 'var(--color-ink-muted)', subtle: 'var(--color-ink-subtle)', }, accent: { DEFAULT: 'var(--color-accent)', hover: 'var(--color-accent-hover)', muted: 'var(--color-accent-muted)', }, rule: 'var(--color-rule)', success: 'var(--color-success)', warning: 'var(--color-warning)', danger: 'var(--color-danger)', info: 'var(--color-info)', }, fontFamily: { serif: ['var(--font-serif)', 'Georgia', 'serif'], sans: ['var(--font-sans)', 'system-ui', 'sans-serif'], mono: ['var(--font-mono)', 'monospace'], }, fontSize: { // 对齐 var(--font-size-1~9) 语义令牌 xs: 'var(--font-size-1)', sm: 'var(--font-size-2)', base: 'var(--font-size-3)', lg: 'var(--font-size-4)', xl: 'var(--font-size-5)', '2xl': 'var(--font-size-6)', '3xl': 'var(--font-size-7)', '4xl': 'var(--font-size-8)', '5xl': 'var(--font-size-9)', }, spacing: { // 语义间距令牌 'xs': 'var(--space-xs)', 'sm': 'var(--space-sm)', 'md': 'var(--space-md)', 'lg': 'var(--space-lg)', 'xl': 'var(--space-xl)', '2xl': 'var(--space-2xl)', '3xl': 'var(--space-3xl)', }, borderRadius: { DEFAULT: 'var(--radius-base)', sm: 'var(--radius-sm)', md: 'var(--radius-md)', lg: 'var(--radius-lg)', }, boxShadow: { paper: 'var(--shadow-paper)', card: 'var(--shadow-card)', focus: 'var(--shadow-focus)', }, }, }, plugins: [], };