feat: add Status and RagChat pages with corresponding components and styles
- Created StatusPage component with system stats, configuration, and indexed documents overview. - Added RagChatPage component for chat functionality. - Introduced global CSS styles for light and dark themes, including utility classes and animations. - Defined TypeScript types for compliance, documents, and themes. - Configured Tailwind CSS for dynamic theming and custom animations. - Set up TypeScript configuration for app and node environments. - Initialized Vite configuration for React project.
This commit is contained in:
71
tailwind.config.js
Normal file
71
tailwind.config.js
Normal file
@@ -0,0 +1,71 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: [
|
||||
"./index.html",
|
||||
"./src/**/*.{js,ts,jsx,tsx}",
|
||||
],
|
||||
darkMode: 'class',
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
// 动态主题色(通过CSS变量)
|
||||
't-bg': 'var(--t-bg)',
|
||||
't-bg-card': 'var(--t-bg-card)',
|
||||
't-bg-hover': 'var(--t-bg-hover)',
|
||||
't-bg-elevated': 'var(--t-bg-elevated)',
|
||||
't-border': 'var(--t-border)',
|
||||
't-border-light': 'var(--t-border-light)',
|
||||
't-text': 'var(--t-text)',
|
||||
't-text2': 'var(--t-text2)',
|
||||
't-text3': 'var(--t-text3)',
|
||||
// 固定品牌色
|
||||
't-accent': '#e20074',
|
||||
't-accent-dark': '#be0060',
|
||||
't-accent-light': '#f04090',
|
||||
// 动态状态色
|
||||
't-green': 'var(--t-green)',
|
||||
't-orange': 'var(--t-orange)',
|
||||
't-red': '#ff4444',
|
||||
},
|
||||
fontFamily: {
|
||||
'tele': ['TeleNeo', 'Segoe UI', 'system-ui', 'sans-serif'],
|
||||
'mono': ['JetBrains Mono', 'monospace'],
|
||||
},
|
||||
boxShadow: {
|
||||
't-glow': '0 0 20px rgba(226,0,116,0.15), 0 0 40px rgba(226,0,116,0.05)',
|
||||
't-card': '0 2px 8px rgba(226,0,116,0.04)',
|
||||
't-card-hover': '0 4px 16px rgba(226,0,116,0.08)',
|
||||
't-accent': '0 4px 20px rgba(226,0,116,0.4)',
|
||||
},
|
||||
keyframes: {
|
||||
'pulse-glow': {
|
||||
'0%, 100%': {
|
||||
boxShadow: '0 0 12px rgba(226,0,116,0.5), 0 0 24px rgba(226,0,116,0.2)'
|
||||
},
|
||||
'50%': {
|
||||
boxShadow: '0 0 16px rgba(226,0,116,0.7), 0 0 32px rgba(226,0,116,0.3)'
|
||||
},
|
||||
},
|
||||
'slideUp': {
|
||||
'0%': { opacity: '0', transform: 'translateY(10px)' },
|
||||
'100%': { opacity: '1', transform: 'translateY(0)' },
|
||||
},
|
||||
'slideIn': {
|
||||
'0%': { transform: 'translateX(100%)' },
|
||||
'100%': { transform: 'translateX(0)' },
|
||||
},
|
||||
'slideOut': {
|
||||
'0%': { transform: 'translateX(0)' },
|
||||
'100%': { transform: 'translateX(100%)' },
|
||||
},
|
||||
},
|
||||
animation: {
|
||||
'pulse-glow': 'pulse-glow 2s infinite',
|
||||
'slide-up': 'slideUp 0.3s ease',
|
||||
'slide-in': 'slideIn 0.3s ease-out',
|
||||
'slide-out': 'slideOut 0.3s ease-in',
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
Reference in New Issue
Block a user