- Palette: Discord-like deep cold grays (background 0.12, sidebar 0.09, card 0.16) - Transitions: --duration-immersive 200ms ease-in-out for micro-interactions - Sidebar: bg from var(--sidebar), rounded-xl, backdrop-blur-md; icons text-muted-foreground/60 → text-primary on hover/active; 2px teal active bar - Header: backdrop-blur-md, 200ms transitions - MiniPlayer: h-20, backdrop-blur-md, bg-background/80, border-white/5 (no harsh border) - Play button: teal pill with diffuse glow (shadow primary/0.4) - Card: new 'surface' variant (border white/5, hover lighter + diffuse shadow) Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| .. | ||
| .husky | ||
| .storybook | ||
| desy | ||
| docs | ||
| e2e | ||
| lighthouse-reports | ||
| public | ||
| scripts | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .env.local | ||
| .env.production | ||
| .env.storybook | ||
| .prettierignore | ||
| .prettierrc.json | ||
| all_components.txt | ||
| ANALYSE_DEPENDANCES.md | ||
| ANALYSE_PROBLEME_VISUEL.md | ||
| analyze_lint.py | ||
| AUDIT_FRONTEND_COMPLET.md | ||
| AUDIT_FRONTEND_GAP_ANALYSIS.md | ||
| AUDIT_PRODUCTION_FRONTEND.md | ||
| AUDIT_TECHNIQUE_EXHAUSTIF.md | ||
| build_errors.txt | ||
| build_errors_2.txt | ||
| build_output.txt | ||
| BUTTONS_STATUS.md | ||
| CART_MIGRATION.md | ||
| COMPATIBILITY_CHECK_PROMPT.md | ||
| CORRECTIONS_APPLIQUEES.md | ||
| CORRECTIONS_SUMMARY.md | ||
| covered_components.txt | ||
| DIAGNOSTIC_REPORT.md | ||
| Dockerfile | ||
| Dockerfile.dev | ||
| Dockerfile.production | ||
| e2e-results.json | ||
| e2e_test_output.json | ||
| eslint.config.js | ||
| final_errors.txt | ||
| FIX_MODULE_ERROR.md | ||
| FIX_VISUEL_APPLIQUE.md | ||
| FIX_VISUEL_COMPLET.md | ||
| FIX_VISUEL_RADICAL.md | ||
| FRONTEND_INTEGRATION.md | ||
| FRONTEND_STATUS.md | ||
| full_test_result.txt | ||
| GUIDE_CORRECTION_TESTS.md | ||
| index.html | ||
| jest.config.js | ||
| KODO_MIGRATION_COMPLETE.md | ||
| KODO_PURE_MIGRATION.md | ||
| lint_results.txt | ||
| lint_results_2.txt | ||
| lint_results_3.txt | ||
| lint_results_final.txt | ||
| lint_results_final_v2.txt | ||
| MERGE_FINAL_REPORT.md | ||
| MERGE_V2_V3_COMPLETE.md | ||
| MIGRATION_FINALE_COMPLETE.md | ||
| MIGRATION_GUIDE.md | ||
| MIGRATION_HTTPONLY_COOKIES.md | ||
| nginx.conf | ||
| nginx.production.conf | ||
| openapitools.json | ||
| OPTIMISATIONS_BUNDLE_APPLIQUEES.md | ||
| OPTIMISATIONS_SUPPLEMENTAIRES.md | ||
| package.json | ||
| PLAN_ACTION_FINAL.md | ||
| PLAN_AMELIORATION_TESTS.md | ||
| PLAN_CORRECTION_TESTS.md | ||
| PLAN_DOCUMENTATION_UI.md | ||
| PLAN_FINALISATION_FRONTEND.md | ||
| PLAN_OPTIMISATION_BUNDLE.md | ||
| PLAN_TESTS_COMPLET.md | ||
| PLAN_TESTS_PRIORITES.md | ||
| playwright.config.ts | ||
| playwright.config.ts.patch | ||
| postcss.config.js | ||
| PROCHAINES_ETAPES.md | ||
| PROGRES_CLEANUP.md | ||
| PROGRES_FINALISATION.md | ||
| PROGRES_FINALISATION_COMPLET.md | ||
| QA_AUDIT_E2E_REPORT.md | ||
| RAPPORT_LAB.md | ||
| README.md | ||
| RESUME_CLEANUP_100_PERCENT.md | ||
| RESUME_CLEANUP_COMPLET.md | ||
| RESUME_CLEANUP_COMPLET_FINAL.md | ||
| RESUME_CLEANUP_FINAL.md | ||
| RESUME_CLEANUP_FINAL_COMPLET.md | ||
| RESUME_CLEANUP_VIEWS_COMPLET.md | ||
| RESUME_COMPLET_FINAL.md | ||
| RESUME_COMPLET_TESTS.md | ||
| RESUME_CORRECTION_TESTS.md | ||
| RESUME_FINAL_CLEANUP.md | ||
| RESUME_FINAL_COMPLET.md | ||
| RESUME_FINAL_COMPLET_FINAL.md | ||
| RESUME_FINAL_MULTI_PHASES.md | ||
| RESUME_FINAL_PHASE2.md | ||
| RESUME_FINALISATION.md | ||
| RESUME_MIGRATION_HTTPONLY.md | ||
| RESUME_MULTI_PHASES.md | ||
| RESUME_OPTIMISATIONS_FINAL.md | ||
| RESUME_PHASE2_COMPLET.md | ||
| RESUME_PHASE2_FINAL.md | ||
| RESUME_PHASE2_TESTS.md | ||
| RESUME_PHASE3_COMPLET.md | ||
| RESUME_PHASE3_COMPLET_FINAL.md | ||
| RESUME_PHASE3_FINAL.md | ||
| RESUME_PHASE4_COMPLET.md | ||
| RESUME_TESTS_PHASE1.md | ||
| RUNTIME_AUDIT_REPORT.md | ||
| RUNTIME_ISSUES.json | ||
| STATUT_FINALISATION.md | ||
| STORYBOOK_AUDIT_COMPARISON.md | ||
| STORYBOOK_AUDIT_REPORT.md | ||
| TABLEAU_COMPARATIF_ULTRA_DETAILLE.md | ||
| tailwind.config.ts | ||
| TEST_CORRECTIONS.md | ||
| tsc_check_services.txt | ||
| tsc_check_services_final.txt | ||
| tsc_components_errors.txt | ||
| tsc_errors.txt | ||
| tsc_errors_2.txt | ||
| tsc_errors_3.txt | ||
| tsc_errors_4.txt | ||
| tsc_errors_5.txt | ||
| tsc_errors_6.txt | ||
| tsc_final_3.txt | ||
| tsc_final_check.txt | ||
| tsc_final_services.txt | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| tsconfig.tsbuildinfo | ||
| typecheck_comprehensive.txt | ||
| typecheck_output.txt | ||
| typecheck_output_v5.txt | ||
| typecheck_output_v6.txt | ||
| TYPESCRIPT_STRICT_MODE.md | ||
| UI_MIGRATION_SUMMARY.md | ||
| VERIFICATION_FINALE.md | ||
| vite.config.ts | ||
| vitest.config.ts | ||
| vitest.shims.d.ts | ||
Veza Frontend
React + TypeScript frontend application for the Veza audio collaboration platform.
Quick Start
Prerequisites
- Node.js 18+ and npm
- Backend API running (see
veza-backend-api/README.md)
Installation
npm install
Development
npm run dev
The application will be available at http://localhost:5173.
Building
npm run build
Setup Steps
1. Environment Variables
Copy .env.example to .env and configure:
# API Configuration
VITE_API_URL=http://localhost:8080/api/v1
VITE_WS_URL=ws://localhost:8081
VITE_STREAM_URL=http://localhost:8082
# Optional: Enable MSW mocks for development
VITE_USE_MSW=0
See .env.example for all available environment variables.
2. Type Generation
TypeScript types are generated from the OpenAPI specification. To regenerate types:
npm run generate:types
This script:
- Reads
veza-backend-api/openapi.yaml - Generates TypeScript types to
src/types/generated/ - Creates barrel exports for easy importing
Note: Types are automatically generated in CI/CD before type checking.
3. Validation
Validate types and schemas:
# Type checking
npm run validate:types
# Schema validation
npm run validate:schemas
# Both
npm run validate:all
Available Scripts
Development
npm run dev- Start development servernpm run dev:lab- Start with lab environment (real database)npm run dev:mocks- Start with MSW mocks enabled
Building
npm run build- Build for productionnpm run preview- Preview production build
Testing
npm test- Run unit tests (Vitest)npm run test:ui- Run tests with UInpm run test:e2e- Run E2E tests (Playwright)
Code Quality
npm run lint- Run ESLintnpm run lint:fix- Fix ESLint issuesnpm run typecheck- Type check without emitting filesnpm run fmt- Format code with Prettier
Type Generation & Validation
npm run generate:types- Generate TypeScript types from OpenAPI specnpm run validate:schemas- Validate Zod schemasnpm run validate:types- Type checknpm run validate:all- Run all validations
Project Structure
apps/web/
├── src/
│ ├── components/ # Reusable UI components
│ ├── features/ # Feature modules (auth, tracks, playlists, etc.)
│ ├── hooks/ # Custom React hooks
│ ├── services/ # API clients and services
│ ├── stores/ # Zustand state management (UI state stores)
│ │ # Note: Feature stores (auth, chat) are in features/*/store/
│ ├── types/ # TypeScript types
│ │ └── generated/ # Auto-generated types from OpenAPI
│ ├── utils/ # Utility functions
│ └── styles/ # Global styles and design tokens
├── e2e/ # End-to-end tests (Playwright)
├── scripts/ # Build and utility scripts
└── public/ # Static assets
Design System
The application uses the Kodo design system:
- Colors: Kodo color palette (see
src/styles/COLOR_USAGE.md) - Components: Design system components in
src/components/ui/ - Typography: Type scale system (see
src/styles/TYPOGRAPHY_GUIDE.md) - Spacing: Spacing scale system (see
src/styles/SPACING_GUIDE.md)
See src/components/COMPONENT_USAGE.md for component usage guidelines.
ESLint Rules
The project enforces:
- Typography: Use type scale classes (text-xs, text-sm, etc.) instead of arbitrary sizes
- Spacing: Use spacing scale (gap-0 through gap-24) instead of arbitrary values
- Colors: Use Kodo design system colors instead of Tailwind defaults
- Components: Use design system Button component instead of native
<button>
See eslint.config.js for full rule configuration.
Contributing
- Follow the existing code style
- Run
npm run validate:allbefore committing - Ensure all tests pass:
npm test - Type generation runs automatically in CI/CD
Documentation
- Architecture Guide:
docs/ARCHITECTURE.md(MUST READ) - Component Usage:
src/components/COMPONENT_USAGE.md - Color Usage:
src/styles/COLOR_USAGE.md - Typography:
src/styles/TYPOGRAPHY_GUIDE.md - Spacing:
src/styles/SPACING_GUIDE.md
Troubleshooting
Type Generation Fails
Ensure veza-backend-api/openapi.yaml exists and is valid:
cd ../../veza-backend-api
swag init # Generate OpenAPI spec
Build Errors
-
Clear node_modules and reinstall:
rm -rf node_modules package-lock.json npm install -
Clear Vite cache:
rm -rf node_modules/.vite
Type Errors
Run type generation and validation:
npm run generate:types
npm run validate:types