veza/apps/web
senke 1e897c95a0 ui(tokens): migrate kodo-cyan to primary (51 files, 88 instances)
Replace legacy text-kodo-cyan/border-kodo-cyan/bg-kodo-cyan with semantic
text-primary/border-primary/bg-primary across 51 components.

The brand primary color now uses the design system token, enabling proper
theme adaptation. Covers UI primitives, search, dashboard, chat, playlists,
settings, social, marketplace, and auth components.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 00:19:12 +01:00
..
.husky state-ownership: delete unused optimisticStoreUpdates.ts file 2026-01-15 19:26:53 +01:00
.storybook ui(storybook): add allowedHosts config and update DESIGN_TOKENS docs 2026-02-08 22:49:24 +01:00
desy refactor of veza frontend ui- batch 1 2026-01-22 17:23:11 +01:00
dist_verification small fixes : cors + login loop 2026-02-07 20:36:48 +01:00
docs docs: update UI_QUALITY_LOG with levers 17-25 2026-02-09 00:15:56 +01:00
e2e feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout 2026-02-08 17:15:58 +01:00
lighthouse-reports BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
playwright-report improving UI: adding API doc to Developer Page 2026-01-26 14:12:17 +01:00
public chore(dx): add .cursorrules and design system audit documentation 2026-02-05 14:20:06 +01:00
scripts docs: add UI/UX audit reports and design system documentation 2026-02-08 22:49:40 +01:00
src ui(tokens): migrate kodo-cyan to primary (51 files, 88 instances) 2026-02-09 00:19:12 +01:00
test-results improving UI: adding API doc to Developer Page 2026-01-26 14:12:17 +01:00
visual-tests feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout 2026-02-08 17:15:58 +01:00
.dockerignore BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
.env.example small fixes : cors + login loop 2026-02-07 20:36:48 +01:00
.env.local small fixes : cors + login loop 2026-02-07 20:36:48 +01:00
.env.production config(prod): add frontend production environment file 2026-01-29 23:23:04 +01:00
.env.storybook fix(storybook): remediate crashes and improve mock stability 2026-02-04 19:33:00 +01:00
.gitignore feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout 2026-02-08 17:15:58 +01:00
.prettierignore BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
.prettierrc.json BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
all_components.txt feat(storybook): complete comprehensive ui coverage for auth, player, tracks, and groups 2026-02-02 20:55:57 +01:00
ANALYSE_DEPENDANCES.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
ANALYSE_PROBLEME_VISUEL.md fix: Corriger URL Swagger et finaliser implémentation DeveloperPage 2026-01-18 13:55:28 +01:00
analyze_lint.py stabilisation commit A 2026-01-07 19:39:21 +01:00
AUDIT_FRONTEND_COMPLET.md stabilisation commit A 2026-01-07 19:39:21 +01:00
AUDIT_FRONTEND_GAP_ANALYSIS.md stabilizing apps/web: SITUATION AWARENESS 2025-12-16 14:40:16 -05:00
AUDIT_ISSUES.json stabilizing apps/web: FIRST BATCH 2025-12-17 08:07:35 -05:00
AUDIT_PRODUCTION_FRONTEND.md stabilizing apps/web: FIRST BATCH 2025-12-17 08:07:35 -05:00
audit_remediation.json feat(frontend): complete design system migration and cleanup old pages 2026-01-25 12:33:46 +01:00
AUDIT_STRATEGIQUE_FRONTEND_2025.md feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout 2026-02-08 17:15:58 +01:00
AUDIT_TECHNIQUE_EXHAUSTIF.md implicit-tasks: update documentation with correct store paths after migration 2026-01-16 14:57:33 +01:00
build_errors.txt improving UI: adding API doc to Developer Page 2026-01-26 14:12:17 +01:00
build_errors_2.txt improving UI: adding API doc to Developer Page 2026-01-26 14:12:17 +01:00
build_output.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
BUTTONS_STATUS.md docs: Mettre à jour BUTTONS_STATUS.md avec Create Post et Create Channel 2026-01-18 13:35:05 +01:00
CART_MIGRATION.md docs(cart): list all CartContext consumers 2026-02-03 09:32:21 +01:00
COMPATIBILITY_CHECK_PROMPT.md fix(frontend): stabilize architecture (router, lazy loading, build, auth) 2025-12-17 09:15:45 -05:00
CORRECTIONS_APPLIQUEES.md fix: Corriger URL Swagger et finaliser implémentation DeveloperPage 2026-01-18 13:55:28 +01:00
CORRECTIONS_SUMMARY.md fix: Corriger URL Swagger et finaliser implémentation DeveloperPage 2026-01-18 13:55:28 +01:00
covered_components.txt feat(storybook): complete comprehensive ui coverage for auth, player, tracks, and groups 2026-02-02 20:55:57 +01:00
DIAGNOSTIC_REPORT.md stabilizing apps/web: FIRST BATCH 2025-12-17 08:07:35 -05:00
Dockerfile fix(MVP-006): Standardize environment variable names (VITE_API_BASE_URL → VITE_API_URL) 2025-12-22 22:56:37 +01:00
Dockerfile.dev BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
Dockerfile.production [INFRA-002] infra: Set up Docker production images 2025-12-25 21:31:20 +01:00
e2e-results.json improving UI: adding API doc to Developer Page 2026-01-26 14:12:17 +01:00
e2e_test_output.json stabilisation commit A 2026-01-07 19:39:21 +01:00
eslint.config.js feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout 2026-02-08 17:15:58 +01:00
final_errors.txt improving UI: adding API doc to Developer Page 2026-01-26 14:12:17 +01:00
FIX_MODULE_ERROR.md fix: Corriger URL Swagger et finaliser implémentation DeveloperPage 2026-01-18 13:55:28 +01:00
FIX_VISUEL_APPLIQUE.md fix: Corriger URL Swagger et finaliser implémentation DeveloperPage 2026-01-18 13:55:28 +01:00
FIX_VISUEL_COMPLET.md fix: Corriger URL Swagger et finaliser implémentation DeveloperPage 2026-01-18 13:55:28 +01:00
FIX_VISUEL_RADICAL.md fix: Corriger URL Swagger et finaliser implémentation DeveloperPage 2026-01-18 13:55:28 +01:00
FRONTEND_INTEGRATION.md stabilizing apps/web: SITUATION AWARENESS 2025-12-16 14:40:16 -05:00
FRONTEND_STATUS.md implicit-tasks: update documentation with correct store paths after migration 2026-01-16 14:57:33 +01:00
full_test_result.txt batch 1 2025-12-22 22:00:50 +01:00
GUIDE_CORRECTION_TESTS.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
index.html refactor of veza frontend ui- batch 1 2026-01-22 17:23:11 +01:00
jest.config.js BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
KODO_MIGRATION_COMPLETE.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
KODO_PURE_MIGRATION.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
lint_comprehensive.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report_2.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report_3.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report_4.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report_5.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report_6.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report_7.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report_final.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_report_v2.json stabilisation commit A 2026-01-07 19:39:21 +01:00
lint_results.txt feat: Visual masterpiece - true light mode & premium UI 2026-01-11 02:32:21 +01:00
lint_results_2.txt feat: Visual masterpiece - true light mode & premium UI 2026-01-11 02:32:21 +01:00
lint_results_3.txt feat: Visual masterpiece - true light mode & premium UI 2026-01-11 02:32:21 +01:00
lint_results_final.txt feat: Visual masterpiece - true light mode & premium UI 2026-01-11 02:32:21 +01:00
lint_results_final_v2.txt feat: Visual masterpiece - true light mode & premium UI 2026-01-11 02:32:21 +01:00
MERGE_FINAL_REPORT.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
MERGE_V2_V3_COMPLETE.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
MIGRATION_FINALE_COMPLETE.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
MIGRATION_GUIDE.md batch 1 2025-12-22 22:00:50 +01:00
MIGRATION_HTTPONLY_COOKIES.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
nginx.conf feat: prepare production environment and fix frontend build 2025-12-31 16:27:36 +00:00
nginx.production.conf [INFRA-002] infra: Set up Docker production images 2025-12-25 21:31:20 +01:00
openapitools.json api-contracts: install openapi-generator-cli and create type generation script 2026-01-11 16:30:43 +01:00
OPTIMISATIONS_BUNDLE_APPLIQUEES.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
OPTIMISATIONS_SUPPLEMENTAIRES.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
package.json feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout 2026-02-08 17:15:58 +01:00
PLAN_ACTION_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PLAN_AMELIORATION_TESTS.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PLAN_CORRECTION_TESTS.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PLAN_DOCUMENTATION_UI.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PLAN_FINALISATION_FRONTEND.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PLAN_OPTIMISATION_BUNDLE.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PLAN_TESTS_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PLAN_TESTS_PRIORITES.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
playwright.config.storybook.ts test(storybook): Playwright suite for full Storybook + Spotify/Discord polish 2026-02-07 20:30:49 +01:00
playwright.config.ts improving UI: adding API doc to Developer Page 2026-01-26 14:12:17 +01:00
playwright.config.ts.patch batch 1 2025-12-22 22:00:50 +01:00
playwright.config.visual.ts feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout 2026-02-08 17:15:58 +01:00
postcss.config.js BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
PROCHAINES_ETAPES.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PROGRES_CLEANUP.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PROGRES_FINALISATION.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
PROGRES_FINALISATION_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
QA_AUDIT_E2E_REPORT.md report generation and future tasks selection 2025-12-08 19:57:54 +01:00
RAPPORT_LAB.md report generation and future tasks selection 2025-12-08 19:57:54 +01:00
README.md feat(web): UI premium Discord/Spotify-like — tokens, shadows, focus, layout 2026-02-08 17:15:58 +01:00
RESUME_CLEANUP_100_PERCENT.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_CLEANUP_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_CLEANUP_COMPLET_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_CLEANUP_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_CLEANUP_FINAL_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_CLEANUP_VIEWS_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_COMPLET_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_COMPLET_TESTS.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_CORRECTION_TESTS.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_FINAL_CLEANUP.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_FINAL_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_FINAL_COMPLET_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_FINAL_MULTI_PHASES.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_FINAL_PHASE2.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_FINALISATION.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_MIGRATION_HTTPONLY.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_MULTI_PHASES.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_OPTIMISATIONS_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_PHASE2_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_PHASE2_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_PHASE2_TESTS.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_PHASE3_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_PHASE3_COMPLET_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_PHASE3_FINAL.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_PHASE4_COMPLET.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RESUME_TESTS_PHASE1.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
RUNTIME_AUDIT_REPORT.md [FIX] PROD-010: Corriger ENUM PostgreSQL dans modèle User - Tests E2E passent 2026-01-04 01:44:19 +01:00
RUNTIME_ISSUES.json [LOGGING] Fix #10: Erreurs silencieuses - Ajout de logs avec contexte pour toutes les erreurs dans core/auth et core/track 2026-01-04 01:44:15 +01:00
STATUT_FINALISATION.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
storybook-roadmap.json stabilisation: fix commit 2026-02-03 09:56:11 +01:00
storybook_audit_before_20260205.json chore(dx): add .cursorrules and design system audit documentation 2026-02-05 14:20:06 +01:00
STORYBOOK_AUDIT_COMPARISON.md docs(storybook): final comparison 67%→0%, contract update, silent toasts in Storybook 2026-02-05 13:39:59 +01:00
storybook_audit_detailed.json small fixes : cors + login loop 2026-02-07 20:36:48 +01:00
STORYBOOK_AUDIT_REPORT.md chore(dx): add .cursorrules and design system audit documentation 2026-02-05 14:20:06 +01:00
storybook_errors.json docs(chat): update audit report for ChatSidebar refactor 2026-02-05 20:07:31 +01:00
TABLEAU_COMPARATIF_ULTRA_DETAILLE.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
tailwind.config.ts visual-hierarchy: create Tailwind config and verify text size utilities 2026-01-15 21:15:59 +01:00
TEST_CORRECTIONS.md fix: Corriger URL Swagger et finaliser implémentation DeveloperPage 2026-01-18 13:55:28 +01:00
tsc_check_services.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_check_services_final.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_components_errors.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_errors.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_errors_2.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_errors_3.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_errors_4.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_errors_5.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_errors_6.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_final_3.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_final_check.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsc_final_services.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
tsconfig.app.json [T0-003] fix(frontend): Corriger erreurs TypeScript/React 2026-01-04 01:44:20 +01:00
tsconfig.json [T0-003] fix(frontend): Corriger erreurs TypeScript/React 2026-01-04 01:44:20 +01:00
tsconfig.node.json [FE-TYPE-014] fe-type: Add strict TypeScript mode 2025-12-25 15:04:01 +01:00
tsconfig.tsbuildinfo BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
typecheck_comprehensive.txt stabilisation commit A 2026-01-07 19:39:21 +01:00
typecheck_output.txt refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
typecheck_output_v5.txt chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
typecheck_output_v6.txt chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
TYPESCRIPT_STRICT_MODE.md [FE-TYPE-014] fe-type: Add strict TypeScript mode 2025-12-25 15:04:01 +01:00
UI_MIGRATION_SUMMARY.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
VERIFICATION_FINALE.md chore: resolve property mismatches and type conflicts for snake_case alignment 2026-01-07 11:15:48 +01:00
vite.config.ts small fixes : cors + login loop 2026-02-07 20:36:48 +01:00
vitest.config.ts chore(test): disable broken storybook plugin in vitest config 2026-02-03 09:37:16 +01:00
vitest.shims.d.ts feat: global update including storybook setup and backend fixes 2026-02-02 19:34:14 +01:00

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 server
  • npm run dev:lab - Start with lab environment (real database)
  • npm run dev:mocks - Start with MSW mocks enabled

Building

  • npm run build - Build for production
  • npm run preview - Preview production build

Testing

  • npm test - Run unit tests (Vitest)
  • npm run test:ui - Run tests with UI
  • npm run test:e2e - Run E2E tests (Playwright)

Code Quality

  • npm run lint - Run ESLint
  • npm run lint:fix - Fix ESLint issues
  • npm run lint:ui - Run ESLint on src/components and src/features only
  • npm run report:arbitrary - Report Tailwind arbitrary values (w-[...], gap-[...], etc.) for migration
  • npm run typecheck - Type check without emitting files
  • npm run fmt - Format code with Prettier

Type Generation & Validation

  • npm run generate:types - Generate TypeScript types from OpenAPI spec
  • npm run validate:schemas - Validate Zod schemas
  • npm run validate:types - Type check
  • npm 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. Single source of truth for layout, spacing, shadows, and transitions: docs/DESIGN_TOKENS.md. Shell layout: docs/APP_SHELL.md.

  • Colors: Kodo color palette (see src/styles/COLOR_USAGE.md)
  • Components: Design system components in src/components/ui/
  • Typography: Type scale and hierarchy (see docs/DESIGN_TOKENS.md, src/styles/TYPOGRAPHY_GUIDE.md)
  • Spacing: Spacing scale (see docs/SPACING_GUIDE.md) — no arbitrary values (e.g. w-[300px], gap-[7px]) without justification.

Visual regression: npm run visual:capture, npm run visual:compare, npm run visual:update (see visual-tests/README.md). Arbitrary values report: npm run report:arbitrary to list Tailwind arbitrary patterns for migration. New full-layout page: see docs/FULL_LAYOUT_PAGE.md.

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

  1. Follow the existing code style
  2. Run npm run validate:all before committing
  3. Ensure all tests pass: npm test
  4. 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

  1. Clear node_modules and reinstall:

    rm -rf node_modules package-lock.json
    npm install
    
  2. Clear Vite cache:

    rm -rf node_modules/.vite
    

Type Errors

Run type generation and validation:

npm run generate:types
npm run validate:types