Files
Sub-Router/tailwind.config.js
T
abingyydsandClaude Sonnet 4.6 6e99c12292 feat: 管理员"充值记录"改为"订单记录",新增分站订单查看
- 管理员侧边栏标签从"充值记录"改为"订单记录"
- 新增 Tab 切换:充值订单 / 分站订单
- 后端新增 GET /api/user/dist_orders 管理员接口
- 分站订单表格显示订单类型、金额、折扣比例、站点名称等
- 完善 6 语言 i18n 翻译
- 包含其他 Agent 的 dist-site 样式改动

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 18:08:48 +09:00

70 lines
2.4 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
export default {
content: ['./index.html', './src/**/*.{js,jsx}'],
darkMode: 'class',
safelist: [
// Dark theme uses dynamic accent colors
{ pattern: /border-(emerald|cyan|violet)-500\/(10|15|20|25)/ },
{ pattern: /bg-(emerald|cyan|violet)-500\/(10|15)/ },
{ pattern: /text-(emerald|cyan|violet)-400/ },
{ pattern: /from-(emerald|cyan|violet)-500\/(50|10)/ },
{ pattern: /to-(emerald|cyan|violet|teal)-500\/(10)/ },
],
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'Noto Sans SC', 'system-ui', '-apple-system', 'sans-serif'],
heading: ['Inter', 'Noto Sans SC', 'system-ui', '-apple-system', 'sans-serif'],
mono: ['JetBrains Mono', 'Fira Code', 'monospace'],
},
colors: {
brand: {
50: '#eef2ff',
100: '#e0e7ff',
200: '#c7d2fe',
300: '#a5b4fc',
400: '#818cf8',
500: '#6366f1',
600: '#4f46e5',
700: '#4338ca',
800: '#3730a3',
900: '#312e81',
},
/* Theme-aware page colors via CSS variables */
page: {
DEFAULT: 'rgb(var(--page-text) / <alpha-value>)',
secondary: 'rgb(var(--page-text-secondary) / <alpha-value>)',
muted: 'rgb(var(--page-text-muted) / <alpha-value>)',
label: 'rgb(var(--page-label) / <alpha-value>)',
link: 'rgb(var(--page-link) / <alpha-value>)',
},
},
animation: {
'star-movement-bottom': 'star-movement-bottom linear infinite alternate',
'star-movement-top': 'star-movement-top linear infinite alternate',
'fade-in': 'fade-in 0.5s ease-out',
'slide-up': 'slide-up 0.5s ease-out',
},
keyframes: {
'star-movement-bottom': {
'0%': { transform: 'translate(0%, 0%)', opacity: '1' },
'100%': { transform: 'translate(-100%, 0%)', opacity: '0' },
},
'star-movement-top': {
'0%': { transform: 'translate(0%, 0%)', opacity: '1' },
'100%': { transform: 'translate(100%, 0%)', opacity: '0' },
},
'fade-in': {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
'slide-up': {
'0%': { opacity: '0', transform: 'translateY(20px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
},
},
},
plugins: [],
};