Files
bedolaga-cabinet/src/data/colorPresets.ts
c0mrade 562ab7abf7 refactor: full codebase cleanup, dependency updates, and lint fixes
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.
2026-02-06 16:55:55 +03:00

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',
},
},
];