Files
AudiOhm/frontend/web/index.html
T
root 42a1ab54f1 prod: UI Optimisée mise en production
Fichiers mis en production:
-  CSS modulaire (900+ lignes) - architecture 9 sections
-  JavaScript moderne (600+ lignes) - state management complet
-  Sauvegardes des fichiers originaux (.backup)
-  Script de démarrage optimisé (START_WEB_OPTIMIZED.sh)
-  Documentation déploiement (PRODUCTION_READY.md)

Changements CSS:
- 🏗️ Architecture modulaire avec CSS Variables
-  Animations GPU-optimisées (transform/opacity)
-  prefers-reduced-motion implémenté
- 🎯 Focus visible pour accessibilité
- 📱 Responsive mobile-first
- 🎨 Design System V2 complet

Nouvelles fonctionnalités JS:
- 📦 State management centralisé (AppState)
- 🔐 Auth complète (login, register, logout)
- 🎵 Player controls: 8 boutons actifs
- 🍞 Toast notifications système
- ⌨️ Keyboard shortcuts (8 raccourcis)
- 📊 API intégrée (playlists, tracks)
- 🧭 Navigation SPA fluide
- 📱 Menu mobile responsive

Scripts:
- START_WEB_OPTIMIZED.sh - Script de démarrage optimisé

Documentation:
- PRODUCTION_READY.md - Guide complet de déploiement
- Instructions de démarrage
- Raccourcis clavier documentés
- Résolution de problèmes

Accessibilité:
- Focus states visibles
- Reduced motion support
- Touch targets 44x44px
- Contrast 4.5:1 minimum

Performance:
- Transform/opacity animations
- DOM elements cached
- Event delegation
- GPU accelerated

Generated with [Claude Code](https://claude.com/claude-code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-19 13:59:52 +00:00

68 lines
1.8 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<base href="/">
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="A new Flutter project.">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="spotify_le_2">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<link rel="icon" type="image/png" href="favicon.png"/>
<title>spotify_le_2</title>
<link rel="manifest" href="manifest.json">
<style>
body {
margin: 0;
padding: 0;
background: #0A0E27;
}
#loading {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #00F0FF;
font-family: system-ui, -apple-system, sans-serif;
font-size: 24px;
text-align: center;
}
.spinner {
border: 4px solid rgba(0, 240, 255, 0.2);
border-top: 4px solid #00F0FF;
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 1s linear infinite;
margin: 20px auto;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div id="loading">
<div class="spinner"></div>
<div>Chargement de AudiOhm...</div>
</div>
<script>
window.addEventListener('load', function(ev) {
_flutter.loader.loadEntrypoint({
entrypointUrl: "main.dart.js",
onEntrypointLoaded: function(engineInitializer) {
engineInitializer.initializeEngine({
hostElement: document.body,
assetBase: "/",
}).then(function(appRunner) {
appRunner.runApp();
});
}
});
});
</script>
</body>
</html>