Spaces:
Sleeping
Sleeping
| /* Réinitialisation de base */ | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| /* Corps de la page */ | |
| body { | |
| background-color: #f7fafc; | |
| font-family: Arial, sans-serif; | |
| min-height: 100vh; | |
| } | |
| /* Conteneur principal */ | |
| .container { | |
| max-width: 1024px; | |
| margin: 0 auto; | |
| padding: 2rem 1rem; | |
| } | |
| /* Titre principal */ | |
| h1 { | |
| font-size: 2rem; | |
| font-weight: bold; | |
| text-align: center; | |
| color: #2d3748; | |
| margin-bottom: 1rem; | |
| } | |
| /* Sous-titre */ | |
| .subtitle { | |
| text-align: center; | |
| color: #718096; | |
| margin-bottom: 2rem; | |
| } | |
| /* Conteneur des onglets */ | |
| .tab-container { | |
| background-color: #fff; | |
| border-radius: 0.5rem; | |
| box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); | |
| overflow: hidden; | |
| } | |
| /* Navigation des onglets */ | |
| .tab-nav { | |
| display: flex; | |
| border-bottom: 1px solid #e2e8f0; | |
| position: relative; | |
| } | |
| .tab-nav .tab-btn { | |
| flex: 1; | |
| padding: 1rem; | |
| background-color: #f7fafc; | |
| border: none; | |
| cursor: pointer; | |
| transition: background-color 0.3s ease, transform 0.2s ease; | |
| text-align: center; | |
| font-size: 1rem; | |
| } | |
| .tab-nav .tab-btn:hover { | |
| background-color: #edf2f7; | |
| transform: scale(1.05); | |
| } | |
| .tab-nav .tab-btn.active { | |
| background-color: #edf2f7; | |
| font-weight: bold; | |
| } | |
| /* Effet de soulignement dynamique sur les onglets */ | |
| .tab-nav .tab-btn { | |
| position: relative; | |
| } | |
| .tab-nav .tab-btn::after { | |
| content: ""; | |
| position: absolute; | |
| left: 50%; | |
| bottom: 0; | |
| width: 0; | |
| height: 3px; | |
| background-color: #4299e1; | |
| transition: width 0.3s ease, left 0.3s ease; | |
| } | |
| .tab-nav .tab-btn:hover::after, | |
| .tab-nav .tab-btn.active::after { | |
| width: 100%; | |
| left: 0; | |
| } | |
| /* Contenu des onglets */ | |
| .tab-content-wrapper { | |
| padding: 1.5rem; | |
| } | |
| .tab-content { | |
| margin-bottom: 1rem; | |
| } | |
| /* Masquer les éléments */ | |
| .hidden { | |
| display: none; | |
| } | |
| /* Styles des formulaires */ | |
| .form { | |
| margin-bottom: 1rem; | |
| } | |
| .form input[type="text"], | |
| .form textarea, | |
| .form select { | |
| width: 100%; | |
| padding: 0.5rem; | |
| border: 1px solid #cbd5e0; | |
| border-radius: 0.25rem; | |
| font-size: 1rem; | |
| } | |
| .textarea { | |
| resize: vertical; | |
| min-height: 80px; | |
| } | |
| /* Input type file caché */ | |
| .hidden-file { | |
| display: none; | |
| } | |
| /* Label pour le chargement de fichier */ | |
| .file-upload { | |
| display: block; | |
| width: 100%; | |
| padding: 1rem; | |
| border: 2px dashed #cbd5e0; | |
| border-radius: 0.5rem; | |
| text-align: center; | |
| cursor: pointer; | |
| transition: background-color 0.3s ease; | |
| margin-bottom: 1rem; | |
| } | |
| .file-upload:hover { | |
| background-color: #f7fafc; | |
| } | |
| /* Affichage du nom du fichier */ | |
| .filename-display { | |
| text-align: center; | |
| color: #718096; | |
| font-size: 0.875rem; | |
| margin-bottom: 1rem; | |
| } | |
| /* Boutons */ | |
| .btn { | |
| width: 100%; | |
| padding: 0.75rem; | |
| border: none; | |
| border-radius: 0.25rem; | |
| color: #fff; | |
| cursor: pointer; | |
| transition: background-color 0.3s ease; | |
| font-size: 1rem; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| } | |
| /* Boutons de couleur */ | |
| .btn-blue { | |
| background-color: #4299e1; | |
| } | |
| .btn-blue:hover { | |
| background-color: #3182ce; | |
| } | |
| .btn-green { | |
| background-color: #48bb78; | |
| } | |
| .btn-green:hover { | |
| background-color: #38a169; | |
| } | |
| .btn-purple { | |
| background-color: #9f7aea; | |
| } | |
| .btn-purple:hover { | |
| background-color: #805ad5; | |
| } | |
| .btn-indigo { | |
| background-color: #667eea; | |
| } | |
| .btn-indigo:hover { | |
| background-color: #5a67d8; | |
| } | |
| .btn-pink { | |
| background-color: #ed64a6; | |
| } | |
| .btn-pink:hover { | |
| background-color: #d53f8c; | |
| } | |
| /* Boîte de résultat */ | |
| .result-box { | |
| margin-top: 1rem; | |
| padding: 1rem; | |
| background-color: #f7fafc; | |
| border-radius: 0.25rem; | |
| min-height: 100px; | |
| } | |
| /* Placeholder dans la boîte de résultat */ | |
| .result-box .placeholder { | |
| color: #a0aec0; | |
| font-style: italic; | |
| } | |
| /* Sélecteur de formulaire */ | |
| .select { | |
| width: 100%; | |
| padding: 0.5rem; | |
| border: 1px solid #cbd5e0; | |
| border-radius: 0.25rem; | |
| } | |
| /* Styles pour les messages d'erreur et d'information */ | |
| .error { | |
| color: #e53e3e; | |
| font-weight: bold; | |
| margin: 0; | |
| } | |
| .info { | |
| color: #3182ce; | |
| font-style: italic; | |
| margin: 0; | |
| } | |
| .small { | |
| font-size: 0.875rem; | |
| color: #718096; | |
| margin-top: 0.5rem; | |
| } | |
| /* Style pour les images dans les visualisations */ | |
| .result-box img { | |
| max-width: 100%; | |
| height: auto; | |
| margin-top: 1rem; | |
| border-radius: 0.25rem; | |
| box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); | |
| } | |
| /* Navbar avec animation d'apparition */ | |
| nav { | |
| filter: drop-shadow(0.25rem 0.25rem 0.25rem rgba(0, 0, 0, 0.3)); | |
| width: 100%; | |
| max-width: 14rem; | |
| opacity: 0; | |
| transform: translateY(-20px); | |
| animation: fadeInDown 0.5s ease-out forwards; | |
| } | |
| /* Animation keyframes pour la navbar */ | |
| @keyframes fadeInDown { | |
| from { | |
| opacity: 0; | |
| transform: translateY(-20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| /* Préférence de réduction des animations */ | |
| @media (prefers-reduced-motion: reduce) { | |
| nav * { | |
| transition: 5s ; | |
| animation: 10ms ; | |
| } | |
| } | |
| /* Responsivité pour petits écrans */ | |
| @media (max-width: 768px) { | |
| .tab-nav { | |
| flex-direction: column; | |
| } | |
| .tab-nav .tab-btn { | |
| padding: 0.75rem; | |
| font-size: 0.875rem; | |
| } | |
| h1 { | |
| font-size: 1.5rem; | |
| } | |
| .container { | |
| padding: 1rem; | |
| } | |
| } |