hinzu"
}
]
},
{
"id": "faq-accordion",
"title": "FAQ-Akkordeon",
"description": "Mehrere <details>-Elemente erstellen ein Akkordeon-artiges FAQ. Jede Frage kann unabhängig aufgeklappt werden.
Dies ist ein häufiges Muster für FAQ-Seiten, Dokumentation und Hilfebereiche.",
"task": "Erstelle einen FAQ-Bereich mit:
1. Einer <h1> mit dem Text 'Häufig gestellte Fragen'
2. Drei <details>-Elementen, jeweils mit einer Frage im <summary> und einer Antwort im <p>",
"previewHTML": "",
"previewBaseCSS": "body { font-family: system-ui; min-height: 100vh; background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%); display: flex; flex-direction: column; justify-content: center; padding: 40px; margin: 0; box-sizing: border-box; } h1 { font-size: 2.5rem; color: #4a4a4a; text-align: center; margin: 0 0 30px 0; } details { background: white; border-radius: 12px; margin-bottom: 15px; padding: 20px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); } summary { font-size: 1.3rem; font-weight: 600; color: #5c5c5c; cursor: pointer; list-style: none; } summary::before { content: '▸ '; color: #fcb69f; } details[open] summary::before { content: '▾ '; } details p { margin: 15px 0 0 0; color: #666; line-height: 1.6; }",
"sandboxCSS": "",
"initialCode": "",
"solution": "Häufig gestellte Fragen
\n\n\n Was ist HTML5?
\n HTML5 ist die neueste Version von HTML mit neuen semantischen Elementen und APIs.
\n \n\n\n Brauche ich JavaScript?
\n Viele interaktive Funktionen funktionieren mit purem HTML5, kein JavaScript nötig!
\n \n\n\n Ist das barrierefrei?
\n Ja! Native HTML-Elemente haben eingebaute Tastatur- und Screenreader-Unterstützung.
\n ",
"previewContainer": "preview-area",
"validations": [
{
"type": "element_exists",
"value": "h1",
"message": "Füge eine <h1>-Überschrift für den FAQ-Titel hinzu"
},
{
"type": "element_count",
"value": { "selector": "details", "min": 3 },
"message": "Erstelle mindestens 3 -Elemente für das FAQ"
},
{
"type": "element_count",
"value": { "selector": "summary", "min": 3 },
"message": "Jedes <details> braucht ein <summary> für die Frage"
},
{
"type": "element_count",
"value": { "selector": "details p", "min": 3 },
"message": "Jedes <details> braucht ein <p> für die Antwort"
}
]
}
]
}