- Added new dependencies including clsx, lucide-react, recharts, and various Radix UI components to improve UI functionality. - Upgraded Tailwind CSS to version 4.0.0 and updated configuration to utilize CSS variables for theming and responsive design. - Introduced global styles and improved accessibility features in the layout and components. - Removed outdated login page and refactored authentication store for better state management. - Enhanced API service with additional authentication methods and improved error handling. These changes aim to modernize the web applications and improve user experience through better design and functionality.
156 lines
5.3 KiB
JavaScript
156 lines
5.3 KiB
JavaScript
/**
|
|
* EN: Tailwind CSS 4 Configuration for Web Admin
|
|
* VI: Cấu hình Tailwind CSS 4 cho Web Admin
|
|
*
|
|
* Note: Tailwind CSS 4 uses CSS-first configuration with @theme directive in CSS files.
|
|
* This config file extends the theme with additional utility classes based on CSS variables.
|
|
* The main theme tokens are defined in src/app/globals.css.
|
|
*
|
|
* Lưu ý: Tailwind CSS 4 sử dụng cấu hình CSS-first với @theme directive trong file CSS.
|
|
* File config này mở rộng theme với các utility classes bổ sung dựa trên CSS variables.
|
|
* Các theme tokens chính được định nghĩa trong src/app/globals.css.
|
|
*/
|
|
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
content: [
|
|
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
|
|
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
'./src/**/*.{js,ts,jsx,tsx,mdx}',
|
|
],
|
|
darkMode: ['class', '[data-theme="dark"]'],
|
|
theme: {
|
|
extend: {
|
|
// EN: Colors from CSS variables (globals.css)
|
|
// VI: Màu sắc từ CSS variables (globals.css)
|
|
colors: {
|
|
bg: {
|
|
primary: 'var(--bg-primary)',
|
|
secondary: 'var(--bg-secondary)',
|
|
tertiary: 'var(--bg-tertiary)',
|
|
elevated: 'var(--bg-elevated)',
|
|
},
|
|
text: {
|
|
primary: 'var(--text-primary)',
|
|
secondary: 'var(--text-secondary)',
|
|
tertiary: 'var(--text-tertiary)',
|
|
inverse: 'var(--text-inverse)',
|
|
},
|
|
accent: {
|
|
primary: 'var(--accent-primary)',
|
|
secondary: 'var(--accent-secondary)',
|
|
success: 'var(--accent-success)',
|
|
warning: 'var(--accent-warning)',
|
|
error: 'var(--accent-error)',
|
|
info: 'var(--accent-info)',
|
|
},
|
|
border: {
|
|
primary: 'var(--border-primary)',
|
|
secondary: 'var(--border-secondary)',
|
|
focus: 'var(--border-focus)',
|
|
},
|
|
},
|
|
// EN: Font families from CSS variables
|
|
// VI: Font families từ CSS variables
|
|
fontFamily: {
|
|
sans: ['var(--font-sans)', 'sans-serif'],
|
|
mono: ['var(--font-mono)', 'monospace'],
|
|
},
|
|
// EN: Font sizes from CSS variables
|
|
// VI: Kích thước chữ từ CSS variables
|
|
fontSize: {
|
|
'6xl': ['var(--text-6xl)', { lineHeight: '1' }],
|
|
'5xl': ['var(--text-5xl)', { lineHeight: '1' }],
|
|
'4xl': ['var(--text-4xl)', { lineHeight: '1.1' }],
|
|
'3xl': ['var(--text-3xl)', { lineHeight: '1.2' }],
|
|
'2xl': ['var(--text-2xl)', { lineHeight: '1.3' }],
|
|
'xl': ['var(--text-xl)', { lineHeight: '1.4' }],
|
|
'lg': ['var(--text-lg)', { lineHeight: '1.5' }],
|
|
'base': ['var(--text-base)', { lineHeight: '1.5' }],
|
|
'sm': ['var(--text-sm)', { lineHeight: '1.5' }],
|
|
'xs': ['var(--text-xs)', { lineHeight: '1.5' }],
|
|
},
|
|
// EN: Font weights from CSS variables
|
|
// VI: Độ đậm chữ từ CSS variables
|
|
fontWeight: {
|
|
light: 'var(--font-light)',
|
|
normal: 'var(--font-normal)',
|
|
medium: 'var(--font-medium)',
|
|
semibold: 'var(--font-semibold)',
|
|
bold: 'var(--font-bold)',
|
|
},
|
|
// EN: Spacing from CSS variables
|
|
// VI: Khoảng cách từ CSS variables
|
|
spacing: {
|
|
'sidebar': 'var(--sidebar-width)',
|
|
'0': 'var(--space-0)',
|
|
'1': 'var(--space-1)',
|
|
'2': 'var(--space-2)',
|
|
'3': 'var(--space-3)',
|
|
'4': 'var(--space-4)',
|
|
'5': 'var(--space-5)',
|
|
'6': 'var(--space-6)',
|
|
'8': 'var(--space-8)',
|
|
'10': 'var(--space-10)',
|
|
'12': 'var(--space-12)',
|
|
'16': 'var(--space-16)',
|
|
'20': 'var(--space-20)',
|
|
},
|
|
// EN: Border radius from CSS variables
|
|
// VI: Bo góc từ CSS variables
|
|
borderRadius: {
|
|
sm: 'var(--radius-sm)',
|
|
md: 'var(--radius-md)',
|
|
lg: 'var(--radius-lg)',
|
|
xl: 'var(--radius-xl)',
|
|
'2xl': 'var(--radius-2xl)',
|
|
full: 'var(--radius-full)',
|
|
},
|
|
// EN: Box shadows from CSS variables
|
|
// VI: Đổ bóng từ CSS variables
|
|
boxShadow: {
|
|
sm: 'var(--shadow-sm)',
|
|
md: 'var(--shadow-md)',
|
|
lg: 'var(--shadow-lg)',
|
|
xl: 'var(--shadow-xl)',
|
|
glow: 'var(--shadow-glow)',
|
|
},
|
|
// EN: Animation timing functions
|
|
// VI: Hàm thời gian animation
|
|
transitionTimingFunction: {
|
|
'in': 'var(--ease-in)',
|
|
'out': 'var(--ease-out)',
|
|
'in-out': 'var(--ease-in-out)',
|
|
spring: 'var(--ease-spring)',
|
|
},
|
|
// EN: Animation durations
|
|
// VI: Thời lượng animation
|
|
transitionDuration: {
|
|
fast: 'var(--duration-fast)',
|
|
normal: 'var(--duration-normal)',
|
|
slow: 'var(--duration-slow)',
|
|
slower: 'var(--duration-slower)',
|
|
},
|
|
// EN: Max widths for containers
|
|
// VI: Chiều rộng tối đa cho containers
|
|
maxWidth: {
|
|
'container-sm': 'var(--container-sm)',
|
|
'container-md': 'var(--container-md)',
|
|
'container-lg': 'var(--container-lg)',
|
|
'container-xl': 'var(--container-xl)',
|
|
'container-2xl': 'var(--container-2xl)',
|
|
},
|
|
// EN: Screen breakpoints
|
|
// VI: Điểm ngắt màn hình
|
|
screens: {
|
|
sm: '640px',
|
|
md: '768px',
|
|
lg: '1024px',
|
|
xl: '1280px',
|
|
'2xl': '1536px',
|
|
},
|
|
},
|
|
},
|
|
plugins: [],
|
|
};
|