mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
Phase 0: Remove ~920 lines of dead code (ThemeBentoPicker, PromoDiscountBadge, AdminLayout, SettingsSidebar, MovingGradient, EmptyState, miniapp API, unused types/functions/transitions/skeleton helpers). Fix API barrel file (add 20 missing exports). Phase 1: Add ErrorBoundary (app/page/widget levels), centralize constants, add axios timeout, fix staleTime:0 in React Query. Phase 2: Consolidate hexToHsl, extract email validation, fix duplicate code. Phase 3: Fix auth race condition (await checkAdminStatus), memoize useCurrency, add WebSocket message validation. Phase 4: Extract useBranding, useFeatureFlags, useScrollRestoration from AppShell. Phase 5: Remove all eslint-disable react-hooks/exhaustive-deps (14 total), simplify logger, remove deprecated hooks (useBackButton, useTelegramDnd, useTelegramWebApp). Dependencies: React 19, react-router 7, zustand 5, i18next 25, react-i18next 16, eslint-plugin-react-refresh 0.5. Remove unused @lottiefiles/dotlottie-react. Convert vite manualChunks to function-based approach for react-router v7 compat. Lint: Fix logger.ts no-unused-expressions, fix react-refresh/only-export-components in 6 Radix primitive files (const re-exports → direct re-exports), fix WebSocketProvider exhaustive-deps. Result: 0 errors, 0 warnings. Add CLAUDE.md to .gitignore.
279 lines
7.4 KiB
TypeScript
279 lines
7.4 KiB
TypeScript
import { ThemeColors } from '../types/theme';
|
|
|
|
export interface ColorPreset {
|
|
id: string;
|
|
name: string;
|
|
nameRu: string;
|
|
description: string;
|
|
descriptionRu: string;
|
|
colors: ThemeColors;
|
|
preview: {
|
|
background: string;
|
|
accent: string;
|
|
text: string;
|
|
};
|
|
}
|
|
|
|
export const COLOR_PRESETS: ColorPreset[] = [
|
|
{
|
|
id: 'electric-blue',
|
|
name: 'Electric Blue',
|
|
nameRu: 'Электрик',
|
|
description: 'Classic tech blue, reliable and clean',
|
|
descriptionRu: 'Классический технологичный синий',
|
|
colors: {
|
|
accent: '#3b82f6',
|
|
darkBackground: '#0a0f1a',
|
|
darkSurface: '#0f172a',
|
|
darkText: '#f1f5f9',
|
|
darkTextSecondary: '#94a3b8',
|
|
lightBackground: '#f1f5f9',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#0f172a',
|
|
lightTextSecondary: '#475569',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#0a0f1a',
|
|
accent: '#3b82f6',
|
|
text: '#f1f5f9',
|
|
},
|
|
},
|
|
{
|
|
id: 'toxic-neon',
|
|
name: 'Toxic Neon',
|
|
nameRu: 'Токсичный неон',
|
|
description: 'Cyberpunk vibes, high energy',
|
|
descriptionRu: 'Киберпанк атмосфера, высокая энергия',
|
|
colors: {
|
|
accent: '#22c55e',
|
|
darkBackground: '#030712',
|
|
darkSurface: '#0a0f14',
|
|
darkText: '#e2e8f0',
|
|
darkTextSecondary: '#64748b',
|
|
lightBackground: '#f0fdf4',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#14532d',
|
|
lightTextSecondary: '#166534',
|
|
success: '#22c55e',
|
|
warning: '#eab308',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#030712',
|
|
accent: '#22c55e',
|
|
text: '#e2e8f0',
|
|
},
|
|
},
|
|
{
|
|
id: 'royal-purple',
|
|
name: 'Royal Purple',
|
|
nameRu: 'Королевский пурпур',
|
|
description: 'Premium, sophisticated, Stripe-like',
|
|
descriptionRu: 'Премиальный, утончённый, как Stripe',
|
|
colors: {
|
|
accent: '#8b5cf6',
|
|
darkBackground: '#0c0a14',
|
|
darkSurface: '#13111c',
|
|
darkText: '#f1f0f5',
|
|
darkTextSecondary: '#a1a1aa',
|
|
lightBackground: '#faf5ff',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#3b0764',
|
|
lightTextSecondary: '#581c87',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#0c0a14',
|
|
accent: '#8b5cf6',
|
|
text: '#f1f0f5',
|
|
},
|
|
},
|
|
{
|
|
id: 'sunset-orange',
|
|
name: 'Sunset Orange',
|
|
nameRu: 'Закатный оранж',
|
|
description: 'Warm, energetic, action-oriented',
|
|
descriptionRu: 'Тёплый, энергичный, призыв к действию',
|
|
colors: {
|
|
accent: '#f97316',
|
|
darkBackground: '#0f0906',
|
|
darkSurface: '#1a120d',
|
|
darkText: '#fef3e2',
|
|
darkTextSecondary: '#a3a3a3',
|
|
lightBackground: '#fff7ed',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#7c2d12',
|
|
lightTextSecondary: '#9a3412',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#0f0906',
|
|
accent: '#f97316',
|
|
text: '#fef3e2',
|
|
},
|
|
},
|
|
{
|
|
id: 'ocean-teal',
|
|
name: 'Ocean Teal',
|
|
nameRu: 'Океанский бирюзовый',
|
|
description: 'Calm, trustworthy, health-tech',
|
|
descriptionRu: 'Спокойный, надёжный, медтех',
|
|
colors: {
|
|
accent: '#14b8a6',
|
|
darkBackground: '#042f2e',
|
|
darkSurface: '#0d3d3b',
|
|
darkText: '#f0fdfa',
|
|
darkTextSecondary: '#5eead4',
|
|
lightBackground: '#f0fdfa',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#134e4a',
|
|
lightTextSecondary: '#115e59',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#042f2e',
|
|
accent: '#14b8a6',
|
|
text: '#f0fdfa',
|
|
},
|
|
},
|
|
{
|
|
id: 'champagne-gold',
|
|
name: 'Champagne Gold',
|
|
nameRu: 'Шампанское золото',
|
|
description: 'Luxury, premium, elegant',
|
|
descriptionRu: 'Роскошный, премиальный, элегантный',
|
|
colors: {
|
|
accent: '#b8860b',
|
|
darkBackground: '#0a0f1a',
|
|
darkSurface: '#0f172a',
|
|
darkText: '#f1f5f9',
|
|
darkTextSecondary: '#94a3b8',
|
|
lightBackground: '#fefce8',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#713f12',
|
|
lightTextSecondary: '#92400e',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#0a0f1a',
|
|
accent: '#b8860b',
|
|
text: '#f1f5f9',
|
|
},
|
|
},
|
|
{
|
|
id: 'quantum-teal',
|
|
name: 'Quantum Teal',
|
|
nameRu: 'Квантовый бирюзовый',
|
|
description: 'Bio-synthetic, futuristic fintech',
|
|
descriptionRu: 'Био-синтетический, футуристичный финтех',
|
|
colors: {
|
|
accent: '#0d9488',
|
|
darkBackground: '#0f172a',
|
|
darkSurface: '#1e293b',
|
|
darkText: '#f1f5f9',
|
|
darkTextSecondary: '#94a3b8',
|
|
lightBackground: '#f0fdfa',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#134e4a',
|
|
lightTextSecondary: '#0f766e',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#0f172a',
|
|
accent: '#0d9488',
|
|
text: '#f1f5f9',
|
|
},
|
|
},
|
|
{
|
|
id: 'cosmic-violet',
|
|
name: 'Cosmic Violet',
|
|
nameRu: 'Космический фиолет',
|
|
description: 'Digital lavender, wellness vibes',
|
|
descriptionRu: 'Цифровая лаванда, атмосфера спокойствия',
|
|
colors: {
|
|
accent: '#7c3aed',
|
|
darkBackground: '#0b0d10',
|
|
darkSurface: '#18181b',
|
|
darkText: '#f4f4f5',
|
|
darkTextSecondary: '#a1a1aa',
|
|
lightBackground: '#faf5ff',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#3b0764',
|
|
lightTextSecondary: '#5b21b6',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#0b0d10',
|
|
accent: '#7c3aed',
|
|
text: '#f4f4f5',
|
|
},
|
|
},
|
|
{
|
|
id: 'solar-coral',
|
|
name: 'Solar Coral',
|
|
nameRu: 'Солнечный коралл',
|
|
description: 'Hyper-coral, high energy social',
|
|
descriptionRu: 'Гипер-коралловый, энергия соцсетей',
|
|
colors: {
|
|
accent: '#ea580c',
|
|
darkBackground: '#18181b',
|
|
darkSurface: '#27272a',
|
|
darkText: '#fafafa',
|
|
darkTextSecondary: '#a1a1aa',
|
|
lightBackground: '#fff7ed',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#7c2d12',
|
|
lightTextSecondary: '#9a3412',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#18181b',
|
|
accent: '#ea580c',
|
|
text: '#fafafa',
|
|
},
|
|
},
|
|
{
|
|
id: 'frost-blue',
|
|
name: 'Frost Blue',
|
|
nameRu: 'Морозный синий',
|
|
description: 'Liquid chrome, enterprise trust',
|
|
descriptionRu: 'Жидкий хром, корпоративное доверие',
|
|
colors: {
|
|
accent: '#0284c7',
|
|
darkBackground: '#0b0d10',
|
|
darkSurface: '#1e293b',
|
|
darkText: '#f1f5f9',
|
|
darkTextSecondary: '#94a3b8',
|
|
lightBackground: '#f0f9ff',
|
|
lightSurface: '#ffffff',
|
|
lightText: '#0c4a6e',
|
|
lightTextSecondary: '#075985',
|
|
success: '#22c55e',
|
|
warning: '#f59e0b',
|
|
error: '#ef4444',
|
|
},
|
|
preview: {
|
|
background: '#0b0d10',
|
|
accent: '#0284c7',
|
|
text: '#f1f5f9',
|
|
},
|
|
},
|
|
];
|