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; | |
} | |
} |