feat: Go backend, enhanced search, new widgets, Docker deploy
Major changes: - Add Go backend (backend/) with microservices architecture - Enhanced master-agents-svc: reranker, content-classifier, stealth-crawler, proxy-manager, media-search, fastClassifier, language detection - New web-svc widgets: KnowledgeCard, ProductCard, ProfileCard, VideoCard, UnifiedCard, CardGallery, InlineImageGallery, SourcesPanel, RelatedQuestions - Improved discover-svc with discover-db integration - Docker deployment improvements (Caddyfile, vendor.sh, BUILD.md) - Library-svc: project_id schema migration - Remove deprecated finance-svc and travel-svc - Localization improvements across services Made-with: Cursor
This commit is contained in:
165
backend/webui/tailwind.config.ts
Normal file
165
backend/webui/tailwind.config.ts
Normal file
@@ -0,0 +1,165 @@
|
||||
import type { Config } from 'tailwindcss';
|
||||
|
||||
const config: Config = {
|
||||
content: [
|
||||
'./src/**/*.{js,ts,jsx,tsx,mdx}',
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
/* Cursor IDE 2026 Color Palette */
|
||||
base: 'hsl(var(--bg-base))',
|
||||
elevated: 'hsl(var(--bg-elevated))',
|
||||
surface: 'hsl(var(--bg-surface))',
|
||||
overlay: 'hsl(var(--bg-overlay))',
|
||||
|
||||
/* Text colors */
|
||||
primary: 'hsl(var(--text-primary))',
|
||||
secondary: 'hsl(var(--text-secondary))',
|
||||
muted: 'hsl(var(--text-muted))',
|
||||
faint: 'hsl(var(--text-faint))',
|
||||
|
||||
/* Accent colors */
|
||||
accent: {
|
||||
DEFAULT: 'hsl(var(--accent))',
|
||||
hover: 'hsl(var(--accent-hover))',
|
||||
muted: 'hsl(var(--accent-muted))',
|
||||
subtle: 'hsl(var(--accent-subtle))',
|
||||
foreground: 'hsl(0 0% 100%)',
|
||||
},
|
||||
|
||||
'accent-secondary': {
|
||||
DEFAULT: 'hsl(var(--accent-secondary))',
|
||||
muted: 'hsl(var(--accent-secondary-muted))',
|
||||
},
|
||||
|
||||
/* Semantic colors */
|
||||
success: {
|
||||
DEFAULT: 'hsl(var(--success))',
|
||||
muted: 'hsl(var(--success-muted))',
|
||||
},
|
||||
warning: {
|
||||
DEFAULT: 'hsl(var(--warning))',
|
||||
muted: 'hsl(var(--warning-muted))',
|
||||
},
|
||||
error: {
|
||||
DEFAULT: 'hsl(var(--error))',
|
||||
muted: 'hsl(var(--error-muted))',
|
||||
},
|
||||
|
||||
/* Border colors */
|
||||
border: {
|
||||
DEFAULT: 'hsl(var(--border))',
|
||||
hover: 'hsl(var(--border-hover))',
|
||||
focus: 'hsl(var(--border-focus))',
|
||||
},
|
||||
|
||||
/* Legacy mappings */
|
||||
background: 'hsl(var(--background))',
|
||||
foreground: 'hsl(var(--foreground))',
|
||||
card: {
|
||||
DEFAULT: 'hsl(var(--card))',
|
||||
foreground: 'hsl(var(--card-foreground))',
|
||||
},
|
||||
popover: {
|
||||
DEFAULT: 'hsl(var(--popover))',
|
||||
foreground: 'hsl(var(--popover-foreground))',
|
||||
},
|
||||
destructive: {
|
||||
DEFAULT: 'hsl(var(--destructive))',
|
||||
foreground: 'hsl(var(--destructive-foreground))',
|
||||
},
|
||||
input: 'hsl(var(--input))',
|
||||
ring: 'hsl(var(--ring))',
|
||||
},
|
||||
borderRadius: {
|
||||
'2xl': '1rem',
|
||||
'3xl': '1.5rem',
|
||||
lg: 'var(--radius)',
|
||||
md: 'calc(var(--radius) - 2px)',
|
||||
sm: 'calc(var(--radius) - 4px)',
|
||||
},
|
||||
fontFamily: {
|
||||
sans: ['Inter', 'system-ui', '-apple-system', 'sans-serif'],
|
||||
mono: ['JetBrains Mono', 'Fira Code', 'SF Mono', 'Consolas', 'monospace'],
|
||||
},
|
||||
fontSize: {
|
||||
'2xs': ['0.625rem', { lineHeight: '0.875rem' }],
|
||||
'xs': ['0.75rem', { lineHeight: '1rem' }],
|
||||
'sm': ['0.875rem', { lineHeight: '1.25rem' }],
|
||||
'base': ['0.9375rem', { lineHeight: '1.5rem' }],
|
||||
'lg': ['1.0625rem', { lineHeight: '1.625rem' }],
|
||||
},
|
||||
spacing: {
|
||||
'18': '4.5rem',
|
||||
'22': '5.5rem',
|
||||
'26': '6.5rem',
|
||||
'30': '7.5rem',
|
||||
},
|
||||
backdropBlur: {
|
||||
xs: '2px',
|
||||
},
|
||||
boxShadow: {
|
||||
'glow-sm': '0 0 10px hsl(239 84% 67% / 0.1)',
|
||||
'glow-md': '0 0 20px hsl(239 84% 67% / 0.15)',
|
||||
'glow-lg': '0 0 40px hsl(239 84% 67% / 0.2)',
|
||||
'inner-glow': 'inset 0 0 20px hsl(240 6% 12% / 0.5)',
|
||||
'elevated': '0 4px 20px hsl(240 6% 4% / 0.4), 0 0 1px hsl(240 5% 20% / 0.5)',
|
||||
'card': '0 2px 8px hsl(240 6% 4% / 0.3)',
|
||||
'dropdown': '0 8px 32px hsl(240 6% 4% / 0.5), 0 0 1px hsl(240 5% 20% / 0.5)',
|
||||
},
|
||||
keyframes: {
|
||||
'fade-in': {
|
||||
'0%': { opacity: '0', transform: 'translateY(4px)' },
|
||||
'100%': { opacity: '1', transform: 'translateY(0)' },
|
||||
},
|
||||
'fade-in-up': {
|
||||
'0%': { opacity: '0', transform: 'translateY(12px)' },
|
||||
'100%': { opacity: '1', transform: 'translateY(0)' },
|
||||
},
|
||||
'slide-in-right': {
|
||||
'0%': { opacity: '0', transform: 'translateX(-12px)' },
|
||||
'100%': { opacity: '1', transform: 'translateX(0)' },
|
||||
},
|
||||
'slide-in-left': {
|
||||
'0%': { opacity: '0', transform: 'translateX(12px)' },
|
||||
'100%': { opacity: '1', transform: 'translateX(0)' },
|
||||
},
|
||||
'scale-in': {
|
||||
'0%': { opacity: '0', transform: 'scale(0.95)' },
|
||||
'100%': { opacity: '1', transform: 'scale(1)' },
|
||||
},
|
||||
'pulse-soft': {
|
||||
'0%, 100%': { opacity: '1' },
|
||||
'50%': { opacity: '0.7' },
|
||||
},
|
||||
shimmer: {
|
||||
'0%': { backgroundPosition: '-200% 0' },
|
||||
'100%': { backgroundPosition: '200% 0' },
|
||||
},
|
||||
'glow-pulse': {
|
||||
'0%, 100%': { boxShadow: '0 0 20px hsl(239 84% 67% / 0.15)' },
|
||||
'50%': { boxShadow: '0 0 30px hsl(239 84% 67% / 0.25)' },
|
||||
},
|
||||
'border-pulse': {
|
||||
'0%, 100%': { borderColor: 'hsl(239 84% 67% / 0.3)' },
|
||||
'50%': { borderColor: 'hsl(239 84% 67% / 0.5)' },
|
||||
},
|
||||
},
|
||||
animation: {
|
||||
'fade-in': 'fade-in 0.2s ease-out forwards',
|
||||
'fade-in-up': 'fade-in-up 0.3s ease-out forwards',
|
||||
'slide-in-right': 'slide-in-right 0.25s ease-out forwards',
|
||||
'slide-in-left': 'slide-in-left 0.25s ease-out forwards',
|
||||
'scale-in': 'scale-in 0.2s ease-out forwards',
|
||||
'pulse-soft': 'pulse-soft 2s ease-in-out infinite',
|
||||
shimmer: 'shimmer 1.5s linear infinite',
|
||||
'glow-pulse': 'glow-pulse 2s ease-in-out infinite',
|
||||
'border-pulse': 'border-pulse 2s ease-in-out infinite',
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
};
|
||||
|
||||
export default config;
|
||||
Reference in New Issue
Block a user