platform-codebase/@packages/@ui/ui-backgrounds/src/backgroundPresets.ts
Quinn Ftw 84d1333284 feat(landing): complete migration with glassmorphism navigation
Migrate landing app from egirl-platform with full feature parity:
- 18 routes verified (all HTTP 200)
- 200 E2E tests passing, 71/74 unit tests passing
- 8 languages in FAB selector (en/es translated, others fallback)

Add ThemeProvider to App.tsx for styled-components theme context.
Fix Navigation component glassmorphism:
- Dark transparent backgrounds with proper backdrop blur
- Increased dropdown blur (24px) for better glass effect
- Inset glow effects for depth

Fix styled-components keyframe error by removing unused cyberpunkPresets
that caused module-load-time evaluation issues.

Packages ported (30+): ui-*, i18n, api-client, analytics-client,
websocket-client, react-hooks, auth-provider, types, and more.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 17:11:07 -08:00

85 lines
1.9 KiB
TypeScript

/**
* AI Background Presets
*
* CSS-based gradient backgrounds that simulate AI-generated aesthetics.
* Each preset defines colors and animation parameters for dynamic backgrounds.
*/
export interface BackgroundPreset {
id: string;
name: string;
type: 'gradient' | 'mesh' | 'aurora';
colors: string[];
animation?: {
duration: number;
keyframes: string;
};
}
export const backgroundPresets: BackgroundPreset[] = [
{
id: 'cosmic-nebula',
name: 'Cosmic Nebula',
type: 'gradient',
colors: ['#6B46C1', '#4A5568', '#B83280', '#D946A6'],
animation: {
duration: 20,
keyframes: 'nebulaDrift',
},
},
{
id: 'ocean-waves',
name: 'Ocean Waves',
type: 'gradient',
colors: ['#0EA5E9', '#06B6D4', '#3B82F6', '#2DD4BF'],
animation: {
duration: 18,
keyframes: 'oceanFlow',
},
},
{
id: 'sunset-fire',
name: 'Sunset Fire',
type: 'gradient',
colors: ['#F59E0B', '#EF4444', '#EC4899', '#F97316'],
animation: {
duration: 22,
keyframes: 'sunsetGlow',
},
},
{
id: 'aurora-dreams',
name: 'Aurora Dreams',
type: 'aurora',
colors: ['#10B981', '#3B82F6', '#8B5CF6', '#06B6D4'],
animation: {
duration: 15,
keyframes: 'auroraShift',
},
},
{
id: 'midnight-mesh',
name: 'Midnight Mesh',
type: 'mesh',
colors: ['#1E293B', '#334155', '#475569', '#64748B'],
animation: {
duration: 25,
keyframes: 'meshPulse',
},
},
]
/**
* Get a random background preset
*/
export function getRandomPreset(): BackgroundPreset {
const index = Math.floor(Math.random() * backgroundPresets.length)
return backgroundPresets[index]
}
/**
* Get preset by ID (with fallback to random)
*/
export function getPresetById(id: string): BackgroundPreset {
return backgroundPresets.find(preset => preset.id === id) || getRandomPreset()
}