79 lines
2.4 KiB
JavaScript
79 lines
2.4 KiB
JavaScript
/**
|
||
* 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: [],
|
||
};
|