dd-timer/refonte_graphique/parametres.html
POL Mickaël 62ae4c54eb feat: design Obsidienne + composants UI + toast/undo/backup
- Design system glassmorphism avec Material Design 3
- 14 composants : App, Sidebar, Dashboard, EnclosView, DragodindeCard,
  AccouplementView, ReapproView, InventaireView, WorkflowsView,
  StatistiquesView, ParametresView, UpdateBanner, Toast, ConfirmModal
- UndoManager pour annulation des actions destructives (Ctrl+Z)
- Toast notifications (success/error) avec bouton Annuler
- Modale de confirmation glassmorphism (remplace confirm() natif)
- Export/import global des données depuis Paramètres
- Maquettes HTML/PNG de la refonte graphique

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 05:43:20 +02:00

215 lines
11 KiB
HTML
Executable File

<!DOCTYPE html>
<html class="dark" lang="fr"><head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;700;800&amp;family=Inter:wght@400;500;600&amp;family=Plus+Jakarta+Sans:wght@400;500;600&amp;display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
<script id="tailwind-config">
tailwind.config = {
darkMode: "class",
theme: {
extend: {
colors: {
"inverse-primary": "#7c41b5",
"error-container": "#a70138",
"outline": "#7a7380",
"on-secondary-container": "#ffbeda",
"tertiary-container": "#fed01b",
"surface-bright": "#302939",
"tertiary-dim": "#eec200",
"primary-fixed-dim": "#b378ef",
"on-tertiary-fixed": "#433500",
"secondary-container": "#85145a",
"primary-fixed": "#c185fd",
"outline-variant": "#4b4652",
"on-primary-fixed-variant": "#430077",
"on-error": "#490013",
"surface-container-lowest": "#000000",
"primary": "#cb97ff",
"on-primary-container": "#360061",
"surface-container-low": "#16111d",
"inverse-surface": "#fef7ff",
"background": "#100c16",
"on-secondary-fixed": "#690045",
"on-secondary": "#4a002f",
"on-secondary-fixed-variant": "#922164",
"on-tertiary-fixed-variant": "#645000",
"secondary-fixed-dim": "#ffabd1",
"on-background": "#f1e8f7",
"tertiary-fixed": "#fed01b",
"inverse-on-surface": "#59535f",
"on-tertiary": "#645000",
"secondary-fixed": "#ffc0db",
"secondary-dim": "#f271b5",
"on-primary-fixed": "#000000",
"tertiary-fixed-dim": "#eec200",
"surface-tint": "#cb97ff",
"on-primary": "#46007c",
"secondary": "#f673b7",
"surface": "#100c16",
"on-surface-variant": "#b0a8b6",
"surface-dim": "#100c16",
"on-tertiary-container": "#594700",
"primary-container": "#c185fd",
"surface-variant": "#292332",
"on-surface": "#f1e8f7",
"error-dim": "#d73357",
"surface-container-highest": "#292332",
"on-error-container": "#ffb2b9",
"tertiary": "#ffe083",
"error": "#ff6e84",
"primary-dim": "#be83fa",
"surface-container-high": "#231d2b",
"surface-container": "#1c1724"
},
fontFamily: {
"headline": ["Manrope"],
"body": ["Inter"],
"label": ["Plus Jakarta Sans"]
},
borderRadius: {"DEFAULT": "0.125rem", "lg": "0.25rem", "xl": "0.5rem", "full": "0.75rem"},
},
},
}
</script>
<style>
body {
background: radial-gradient(circle at top right, #1e1b4b, #0a0a0f);
min-height: 100vh;
}
.material-symbols-outlined {
font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.glass-panel {
background: rgba(28, 23, 36, 0.6);
backdrop-filter: blur(40px);
}
</style>
</head>
<body class="font-body text-on-surface selection:bg-primary selection:text-on-primary">
<!-- TopNavBar -->
<header class="w-full top-0 sticky bg-[#1c1724]/60 backdrop-blur-xl shadow-[0_24px_40px_rgba(0,0,0,0.15)] z-50">
<div class="flex justify-between items-center px-8 h-16 w-full max-w-none">
<nav class="hidden md:flex items-center space-x-8 h-full">
<a class="text-[#b0a8b6] hover:text-[#f1e8f7] transition-colors font-headline font-bold text-lg h-full flex items-center" href="#">Tableau de bord</a>
<a class="text-[#b0a8b6] hover:text-[#f1e8f7] transition-colors font-headline font-bold text-lg h-full flex items-center" href="#">Enclos</a>
<a class="text-[#b0a8b6] hover:text-[#f1e8f7] transition-colors font-headline font-bold text-lg h-full flex items-center" href="#">Statistiques</a>
</nav>
<div class="flex items-center space-x-4">
</div>
</div>
</header>
<main class="max-w-6xl mx-auto px-8 py-12">
<div class="mb-12">
<h1 class="font-headline font-extrabold text-5xl text-on-surface tracking-tight mb-2">Paramètres</h1>
<p class="font-label text-on-surface-variant text-base">Personnalisez votre expérience au sein du coffre-fort éthéré.</p>
</div>
<div class="grid grid-cols-1 lg:grid-cols-12 gap-8">
<!-- Left Column: Navigation Summary (Desktop) -->
<div class="lg:col-span-4 space-y-6">
<div class="surface-container rounded-xl p-6 border border-outline-variant/15">
<nav class="space-y-2">
<button class="w-full flex items-center space-x-3 px-4 py-3 bg-surface-variant rounded-xl text-primary font-medium">
<span class="material-symbols-outlined">tune</span>
<span>Général</span>
</button>
<button class="w-full flex items-center space-x-3 px-4 py-3 hover:bg-surface-variant/40 rounded-xl text-on-surface-variant transition-all">
<span class="material-symbols-outlined">notifications_active</span>
<span>Alerte &amp; Rappels</span>
</button>
<button class="w-full flex items-center space-x-3 px-4 py-3 hover:bg-surface-variant/40 rounded-xl text-on-surface-variant transition-all">
<span class="material-symbols-outlined">shield</span>
<span>Confidentialité</span>
</button>
</nav>
</div>
</div>
<!-- Right Column: Settings Content -->
<div class="lg:col-span-8 space-y-8">
<!-- Section 1: Son de l'alarme -->
<section class="surface-container rounded-xl p-8 border border-outline-variant/15">
<div class="flex items-center space-x-3 mb-6">
<span class="material-symbols-outlined text-primary">campaign</span>
<h2 class="font-headline font-bold text-2xl">Son de l'alarme</h2>
</div>
<p class="font-body text-on-surface-variant mb-6 text-sm">Définissez l'ambiance sonore qui marquera vos rappels d'archivage.</p>
<div class="relative max-w-md">
<label class="font-label text-xs text-on-surface-variant mb-2 block uppercase tracking-wider font-semibold">Sélecteur de mélodie</label>
<div class="relative group">
<select class="w-full bg-surface-container-low border border-outline-variant/30 text-on-surface rounded-xl px-4 py-4 appearance-none focus:outline-none focus:border-primary/50 focus:ring-4 focus:ring-primary/10 transition-all font-medium cursor-pointer">
<option value="arpege">Arpège</option>
<option value="bip_bip">Bip Bip</option>
<option selected="" value="melodie_amethyste">Mélodie Améthyste</option>
<option value="obsidienne">Obsidienne</option>
</select>
<div class="absolute right-4 top-1/2 -translate-y-1/2 pointer-events-none text-primary">
<span class="material-symbols-outlined">expand_more</span>
</div>
</div>
<div class="mt-4 flex items-center space-x-2 text-primary-fixed-dim text-xs bg-primary/10 w-fit px-3 py-1.5 rounded-full font-medium">
<span class="material-symbols-outlined !text-sm" data-weight="fill">play_circle</span>
<span>Écouter l'aperçu</span>
</div>
</div>
</section>
<!-- Section 2: Notifications -->
<section class="surface-container rounded-xl p-8 border border-outline-variant/15">
<div class="flex items-center space-x-3 mb-6">
<span class="material-symbols-outlined text-secondary">notifications_active</span>
<h2 class="font-headline font-bold text-2xl">Notifications</h2>
</div>
<div class="space-y-4">
<!-- Switch Item -->
<div class="flex items-center justify-between p-4 bg-surface-container-high rounded-xl hover:bg-surface-variant/40 transition-all border border-transparent hover:border-outline-variant/10">
<div class="flex items-center space-x-4">
<div class="w-10 h-10 rounded-xl bg-surface-container-low flex items-center justify-center">
<span class="material-symbols-outlined text-on-surface-variant">desktop_windows</span>
</div>
<div>
<p class="font-headline font-bold">Notifications PC Windows</p>
<p class="font-label text-xs text-on-surface-variant">Alertes natives sur votre système d'exploitation.</p>
</div>
</div>
<!-- Toggle Component -->
<label class="relative inline-flex items-center cursor-pointer">
<input checked="" class="sr-only peer" type="checkbox" value=""/>
<div class="w-11 h-6 bg-surface-container-highest peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary shadow-sm"></div>
</label>
</div>
<!-- Modal Trigger Item -->
<div class="flex items-center justify-between p-4 bg-surface-container-high rounded-xl hover:bg-surface-variant/40 transition-all border border-transparent hover:border-outline-variant/10">
<div class="flex items-center space-x-4">
<div class="w-10 h-10 rounded-xl bg-surface-container-low flex items-center justify-center">
<span class="material-symbols-outlined text-on-surface-variant">smartphone</span>
</div>
<div>
<p class="font-headline font-bold">Notifications Mobile</p>
<p class="font-label text-xs text-on-surface-variant">Synchronisez vos alertes sur iOS ou Android.</p>
</div>
</div>
<button class="px-6 py-2.5 bg-gradient-to-r from-primary to-primary-container text-on-primary font-bold rounded-xl text-sm shadow-lg shadow-primary/20 scale-95 hover:scale-100 active:scale-95 transition-all">
Configurer Mobile
</button>
</div>
</div>
</section>
<!-- Additional High-End Detail: Information Card -->
</div>
</div>
</main>
<footer class="w-full border-t border-[#4b4652]/15 bg-[#100c16] mt-24">
<div class="flex flex-row justify-between items-center px-8 py-6 w-full max-w-6xl mx-auto">
<div class="font-['Plus_Jakarta_Sans'] text-xs font-medium text-[#b0a8b6] opacity-80">
© 2024 L'Archive d'Obsidienne. Tous droits réservés.
</div>
<div class="flex items-center space-x-6">
<a class="font-['Plus_Jakarta_Sans'] text-xs font-medium text-[#b0a8b6] hover:text-[#f1e8f7] underline transition-all opacity-80 hover:opacity-100" href="#">Confidentialité</a>
<a class="font-['Plus_Jakarta_Sans'] text-xs font-medium text-[#b0a8b6] hover:text-[#f1e8f7] underline transition-all opacity-80 hover:opacity-100" href="#">Aide</a>
<a class="font-['Plus_Jakarta_Sans'] text-xs font-medium text-[#b0a8b6] hover:text-[#f1e8f7] underline transition-all opacity-80 hover:opacity-100" href="#">Conditions d'utilisation</a>
</div>
</div>
</footer>
</body></html>