Un composant d’accordéon avec une conception 3D, des effets réactifs et une prise en charge du thème sombre en utilisant uniquement HTML et CSS (Tailwind CSS). Le composant utilise CSS pour le mode sombre et inclut des transitions pour des accordéons fluides. Il est entièrement réactif. Aucun JavaScript n’est utilisé.
<div class="accordion-3d">
<div class="accordion-item">
<input type="checkbox" id="item-1" class="accordion-toggle" />
<label for="item-1" class="accordion-header">Section 1</label>
<div class="accordion-content">
<p>Content for section 1 goes here.</p>
</div>
</div>
<div class="accordion-item">
<input type="checkbox" id="item-2" class="accordion-toggle" />
<label for="item-2" class="accordion-header">Section 2</label>
<div class="accordion-content">
<p>Content for section 2 goes here.</p>
</div>
</div>
<div class="accordion-item">
<input type="checkbox" id="item-3" class="accordion-toggle" />
<label for="item-3" class="accordion-header">Section 3</label>
<div class="accordion-content">
<p>Content for section 3 goes here.</p>
</div>
</div>
</div>
<style>
/* Basic Accordion Styling */
.accordion-3d .accordion-item {
border-bottom: 1px solid #ccc;
margin-bottom: 10px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: transform 0.3s ease-in-out;
}
.accordion-3d .accordion-header {
display: block;
padding: 15px;
cursor: pointer;
background-color: #f0f0f0;
position: relative;
z-index: 2;
transition: background-color 0.3s ease-in-out, transform 0.3s ease-in-out;
}
.accordion-3d .accordion-toggle {
display: none;
}
.accordion-3d .accordion-content {
padding: 15px;
background-color: #fff;
overflow: hidden;
max-height: 0;
transition: max-height 0.5s ease-in-out;
position: relative;
z-index: 1;
}
.accordion-3d .accordion-toggle:checked ~ .accordion-content {
max-height: 500px; /* Adjust as needed */
}
/* 3D Effect */
.accordion-3d .accordion-item:hover {
transform: translateY(-5px) rotateX(5deg);
}
.accordion-3d .accordion-header::after {
content: '>';
position: absolute;
right: 15px;
top: 50%;
transform: translateY(-50%) rotate(90deg);
transition: transform 0.3s ease-in-out;
}
.accordion-3d .accordion-toggle:checked ~ .accordion-header::after {
transform: translateY(-50%) rotate(-90deg);
}
/* Dark Mode */
@media (prefers-color-scheme: dark) {
.accordion-3d .accordion-item {
border-bottom: 1px solid #555;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}
.accordion-3d .accordion-header {
background-color: #333;
color: #eee;
}
.accordion-3d .accordion-content {
background-color: #222;
color: #ccc;
}
}
/* Responsive adjustments (optional) */
@media (max-width: 768px) {
.accordion-3d .accordion-item {
margin-bottom: 5px;
}
.accordion-3d .accordion-header {
padding: 10px;
}
.accordion-3d .accordion-content {
padding: 10px;
}
}
</style>