mirror of
https://github.com/handsomezhuzhu/AeroStart.git
synced 2026-02-20 12:00:15 +00:00
Implement a modern, customizable browser start page with comprehensive features: - Multi-theme support with 8 preset color schemes - Custom wallpaper system supporting images and videos with multiple fit modes - Integrated search functionality with 5 major search engines (Google, Baidu, Bing, DuckDuckGo, Bilibili) - Real-time clock component with 12/24 hour format options - Dynamic background blur effect during search for enhanced focus - Complete i18n system with English and Chinese language support - Responsive design with smooth animations and transitions - Local storage integration for persistent user preferences - Context menu system for quick settings access - Toast notification system for user feedback - Error boundary for robust error handling Tech Stack: - React 19 with TypeScript - Vite 6 for build tooling - Tailwind CSS for styling - Local storage for data persistence Project Structure: - Core components: Clock, SearchBox, SettingsModal, ThemeSettings, WallpaperManager - Utility modules: storage management, search suggestions - Context providers: Toast notifications, i18n - Type definitions and constants configuration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
41 lines
864 B
TypeScript
41 lines
864 B
TypeScript
|
|
|
|
export interface SearchEngine {
|
|
name: string;
|
|
urlPattern: string;
|
|
icon?: string;
|
|
}
|
|
|
|
export type BackgroundType = 'image' | 'video';
|
|
|
|
export type WallpaperFit = 'cover' | 'contain' | 'fill' | 'repeat' | 'center';
|
|
|
|
export interface PresetWallpaper {
|
|
id?: string;
|
|
name: string;
|
|
type: BackgroundType;
|
|
url: string;
|
|
thumbnail?: string;
|
|
isCustom?: boolean;
|
|
}
|
|
|
|
export type Language = 'en' | 'zh';
|
|
|
|
export interface UserSettings {
|
|
use24HourFormat: boolean;
|
|
showSeconds: boolean;
|
|
backgroundBlur: number;
|
|
searchEngines: SearchEngine[];
|
|
selectedEngine: string;
|
|
themeColor: string;
|
|
searchOpacity: number;
|
|
enableMaskBlur: boolean;
|
|
backgroundUrl: string;
|
|
backgroundType: BackgroundType;
|
|
wallpaperFit: WallpaperFit;
|
|
customWallpapers: PresetWallpaper[];
|
|
enableSearchHistory: boolean;
|
|
searchHistory: string[];
|
|
language: Language;
|
|
}
|