mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-18 06:29:40 +02:00
SUMMARY: Create a unified theming architecture with two new shared packages (@manacore/shared-theme and @manacore/shared-theme-ui) that provides consistent theming across all 4 web applications while allowing app-specific primary color customization. NEW PACKAGES: @manacore/shared-theme: - Svelte 5 Runes-based theme store factory - 4 theme variants: Lume (Gold), Nature (Green), Stone (Blue Gray), Ocean (Blue) - 3 theme modes: Light, Dark, System (auto-detect) - HSL-based color system with 18 semantic tokens - localStorage persistence per app - System preference detection via matchMedia - Pre-defined configs for all apps (memoro, manacore, manadeck, maerchenzauber) @manacore/shared-theme-ui: - ThemeToggle: Light/dark mode toggle button - ThemeSelector: Visual theme variant selector with color dots - ThemeModeSelector: Segmented control for light/dark/system UPDATED PACKAGES: @manacore/shared-tailwind: - Converted from HEX to HSL-based CSS variables - Updated preset.js with hsl(var(--color-*)) syntax - themes.css now contains all 4 theme variants with light/dark modes APP MIGRATIONS: memoro/web: - Replaced 145 LOC theme store with 25 LOC shared implementation - Deleted local ThemeSelector.svelte and ThemeToggle.svelte - Primary color: Gold (47 95% 58%) manacore/web: - Replaced 80 LOC theme store with 25 LOC shared implementation - Deleted local ThemeToggle.svelte - Primary color: Indigo (239 84% 67%) manadeck/web: - Added new theme store using shared package - Primary color: Indigo (239 84% 67%) maerchenzauber/web: - Added new theme store using shared package - Primary color: Purple (280 60% 55%) All app layouts updated with theme.initialize() in onMount. BENEFITS: - ~225 LOC of app-specific code reduced to ~100 LOC total - Single source of truth for theme logic - Consistent theming experience across all apps - Easy to add new theme variants - App-specific primary colors preserved 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docs | ||
| src | ||
| static | ||
| .env.example | ||
| .gitignore | ||
| .npmrc | ||
| APPLE_SIGNIN_COMPLETE_GUIDE.md | ||
| GOOGLE_SIGNIN_COMPLETE_GUIDE.md | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| svelte.config.js | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
Memoro Web - SvelteKit Companion App
Web companion application for Memoro, built with SvelteKit. This is a hybrid architecture where the web app shares the same Supabase backend with the React Native mobile apps.
Architecture
- Frontend: SvelteKit 2.x + TypeScript
- Styling: TailwindCSS 3.x
- Backend: Supabase (shared with mobile apps)
- State Management: Svelte stores
- Internationalization: svelte-i18n
Features
Core Features
- Authentication (Email/Password + OAuth)
- Audio recording (Web Audio API)
- Memo management (CRUD operations)
- Real-time updates (Supabase Realtime)
- Spaces & collaboration
- Multi-language support (32 languages)
- Dark mode + 4 theme variants
- Responsive design
Web-Specific Features
- Progressive Web App (PWA) support
- Server-Side Rendering (SSR)
- SEO optimization
- Fast page loads
Getting Started
Prerequisites
- Node.js 18+
- npm or pnpm
- Supabase project (use the same one as mobile apps)
Installation
-
Clone the repository
-
Install dependencies:
npm install -
Copy
.env.exampleto.envand add your Supabase credentials:cp .env.example .env -
Start the development server:
npm run dev
Build for Production
npm run build
npm run preview
Project Structure
memoro-web/
├── src/
│ ├── lib/
│ │ ├── components/ # Reusable Svelte components
│ │ ├── stores/ # Svelte stores for state management
│ │ ├── services/ # API services (Supabase, etc.)
│ │ └── utils/ # Utility functions
│ ├── routes/
│ │ ├── (public)/ # Public routes (login, register)
│ │ ├── (protected)/ # Protected routes (dashboard, memos)
│ │ ├── +layout.svelte # Root layout
│ │ └── +page.svelte # Home page
│ ├── app.css # Global styles (TailwindCSS)
│ └── app.html # HTML shell
├── static/ # Static assets
└── package.json
Deployment
Vercel (Recommended)
- Push to GitHub
- Connect to Vercel
- Add environment variables
- Deploy
Netlify
- Push to GitHub
- Connect to Netlify
- Build command:
npm run build - Publish directory:
build - Add environment variables
- Deploy
License
Proprietary - All rights reserved