Het accordioncomponent is een lijst met uitklapbare titels. Gebruikers kunnen hiermee delen van content in- en uitklappen. Doordat alleen de titels zichtbaar zijn ziet de gebruiker snel wat belangrijk is om te lezen.
Een accordion (.dso-accordion
) bestaat uit secties (.dso-accordion-section
). Een sectie heeft een handle (.dso-section-handle
) en body (.dso-section-body
).
Een accordion section in de state โopenโ moet een .dso-open
class op .dso-accordion-section
krijgen. Dit zorgt voor het โchevron-upโ-icoon. Ook als het .dso-accordion-section
element niet in het DOM staat, moet een open accordion altijd .dso-open
krijgen.
Er zijn 4 modifiers: .dso-succes
, .dso-warning
, .dso-info
en .dso-danger
die op de .dso-accordion-section
kunnen.
Het is mogelijk om een accordion in een accordion te plaatsen. Er moet dan wel .dso-nested-accordion
op de .dso-accordion-section
worden gezet.
Gebruik een accordion bij lange paginaโs met veel content om scrollen te verminderen. De titels vormen voor de gebruiker een informatiestructuur die makkelijk te overzien is. Ook wordt een pagina makkelijker leesbaar als je delen van de content kunt verbergen.
In sommige gevallen is een accordion beter dan anchors omdat de informatiestructuur behouden blijft. Accordions zijn ook beter bij mobiele weergave, waar de ruimte op de pagina beperkt is.
Gebruik een accordion niet als alle content zichtbaar moet zijn om vragen van gebruikers te beantwoorden. De relevantie van de content is dan belangrijker dan de totale lengte van de pagina.
Zorg dat de gebruiker meerdere delen tegelijk kan openen. De delen van een accordion hebben twee verschillende posities: ingeklapt en uitgeklapt. De posities zijn af te lezen aan de chevron. Wijst de chevron naar beneden, dan is de accordion ingeklapt. Wijst de chevron naar boven, dan is de accordion uitgeklapt. De accordion kan ook genest gebruikt worden.
Let bij implementatie van het accordion op het volgende:
<button>
.<h1>
). Dan krijgt de knop <h2>
.<h2>
heeft. Dan krijgt de geneste knop een <h3>
.<span class="sr-only">(afgerond)</span>
โ
<!-- Default -->
<div class="dso-accordion">
<div class="dso-accordion-section">
<h2 class="dso-section-handle"><button type="button" aria-expanded="false">Oprit (h2)
</button>
</h2>
</div>
<div class="dso-accordion-section dso-open">
<h3 class="dso-section-handle"><button type="button" aria-expanded="true">Woning (h3)
</button>
</h3>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Woning (h2)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
</div>
</div>
<div class="dso-accordion-section dso-success">
<h4 class="dso-section-handle"><button type="button" aria-expanded="false">
<span class="sr-only">
succes:
</span>
Bouwwerkzaamheden (h4)
</button>
</h4>
</div>
<div class="dso-accordion-section dso-warning dso-open dso-nested-accordion">
<h5 class="dso-section-handle"><button type="button" aria-expanded="true">
<span class="sr-only">
waarschuwing:
</span>
Plaats van het bouwwerk (h5)
</button>
</h5>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Plaats van het bouwwerk (h4)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
<div class="dso-accordion">
<div class="dso-accordion-section">
<h2 class="dso-section-handle">
<button type="button" aria-expanded="false">
Woning (h2)
</button>
</h2>
</div>
<div class="dso-accordion-section dso-success dso-open">
<h3 class="dso-section-handle">
<button type="button" aria-expanded="true">
<span class="sr-only">
succes:
</span>
Bouwwerkzaamheden (h3)
</button>
</h3>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is een geneste accordion. De inhoud is van <strong>Bouwwerkzaamheden (h3)</strong>. Zie de <em>Notes</em> van dit component.</p>
</div>
</div>
</div>
<div class="dso-accordion-section dso-warning">
<h4 class="dso-section-handle">
<button type="button" aria-expanded="false">
<span class="sr-only">
waarschuwing:
</span>
Plaats van het bouwwerk (h4)
</button>
</h4>
</div>
<div class="dso-accordion-section dso-info">
<h5 class="dso-section-handle">
<button type="button" aria-expanded="false">
<span class="sr-only">
info:
</span>
Afmetingen van het bouwwerk (h5)
</button>
</h5>
</div>
<div class="dso-accordion-section dso-danger">
<h5 class="dso-section-handle">
<button type="button" aria-expanded="false">
<span class="sr-only">
fout:
</span>
Extra werkzaamheden (h5)
</button>
</h5>
</div>
</div>
</div>
</div>
<div class="dso-accordion-section dso-info">
<h5 class="dso-section-handle"><button type="button" aria-expanded="false">
<span class="sr-only">
info:
</span>
Afmetingen van het bouwwerk (h5)
</button>
</h5>
</div>
<div class="dso-accordion-section dso-danger">
<h5 class="dso-section-handle"><button type="button" aria-expanded="false">
<span class="sr-only">
fout:
</span>
Extra werkzaamheden (h5)
<span class="dso-status">5 van 8 beantwoord</span>
</button>
</h5>
</div>
<div class="dso-accordion-section dso-warning dso-open">
<h5 class="dso-section-handle"><button type="button" aria-expanded="true">
<span class="sr-only">
waarschuwing:
</span>
Optionele werkzaamheden (h5)
<span class="dso-status">6 van 8 beantwoord</span>
</button>
</h5>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Optionele werkzaamheden (h5)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
</div>
</div>
<div class="dso-accordion-section">
<h5 class="dso-section-handle"><button type="button" aria-expanded="false">Bijgevoegde werkzaamheden (h5)
<dso-attachments-counter count="2"></dso-attachments-counter>
</button>
</h5>
</div>
<div class="dso-accordion-section">
<h5 class="dso-section-handle"><button type="button" aria-expanded="false">Afsluitende werkzaamheden (h5)
<span class="dso-status">7 van 8 beantwoord</span>
</button>
</h5>
</div>
<div class="dso-accordion-section dso-open">
<h5 class="dso-section-handle"><button type="button" aria-expanded="true">Evaluatie werkzaamheden (h5)
<dso-attachments-counter count="1"></dso-attachments-counter>
</button>
</h5>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Evaluatie werkzaamheden (h5)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
</div>
</div>
</div>
<!-- Default Met Links -->
<div class="dso-accordion">
<div class="dso-accordion-section">
<h2 class="dso-section-handle">
<a href="#" aria-expanded="false">
Oprit (h2)
</a>
</h2>
</div>
<div class="dso-accordion-section dso-open">
<h3 class="dso-section-handle">
<a href="#" aria-expanded="true">
Woning (h3)
</a>
</h3>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Woning (h2)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
</div>
</div>
<div class="dso-accordion-section dso-success">
<h4 class="dso-section-handle">
<a href="#" aria-expanded="false">
<span class="sr-only">
succes:
</span>
Bouwwerkzaamheden (h4)
</a>
</h4>
</div>
<div class="dso-accordion-section dso-warning dso-open dso-nested-accordion">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="true">
<span class="sr-only">
waarschuwing:
</span>
Plaats van het bouwwerk (h5)
</a>
</h5>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Plaats van het bouwwerk (h4)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
<div class="dso-accordion">
<div class="dso-accordion-section">
<h2 class="dso-section-handle">
<a href="#" aria-expanded="false">Woning (h2)
</a>
</h2>
</div>
<div class="dso-accordion-section dso-success dso-open">
<h3 class="dso-section-handle">
<a href="#" aria-expanded="true">
<span class="sr-only">
succes:
</span>
Bouwwerkzaamheden (h3)
</a>
</h3>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is een geneste accordion. De inhoud is van <strong>Bouwwerkzaamheden (h3)</strong>. Zie de <em>Notes</em> van dit component.</p>
</div>
</div>
</div>
<div class="dso-accordion-section dso-warning">
<h4 class="dso-section-handle">
<a href="#" aria-expanded="false">
<span class="sr-only">
waarschuwing:
</span>
Plaats van het bouwwerk (h4)
</a>
</h4>
</div>
<div class="dso-accordion-section dso-info">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="false">
<span class="sr-only">
info:
</span>
Afmetingen van het bouwwerk (h5)
</a>
</h5>
</div>
<div class="dso-accordion-section dso-danger">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="false">
<span class="sr-only">
fout:
</span>
Extra werkzaamheden (h5)
</a>
</h5>
</div>
</div>
</div>
</div>
<div class="dso-accordion-section dso-info">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="false">
<span class="sr-only">
info:
</span>
Afmetingen van het bouwwerk (h5)
</a>
</h5>
</div>
<div class="dso-accordion-section dso-danger">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="false">
<span class="sr-only">
fout:
</span>
Extra werkzaamheden (h5)
<span class="dso-status">5 van 8 beantwoord</span>
</a>
</h5>
</div>
<div class="dso-accordion-section dso-warning dso-open">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="true">
<span class="sr-only">
waarschuwing:
</span>
Optionele werkzaamheden (h5)
<span class="dso-status">6 van 8 beantwoord</span>
</a>
</h5>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Optionele werkzaamheden (h5)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
</div>
</div>
<div class="dso-accordion-section">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="false">
Bijgevoegde werkzaamheden (h5)
<dso-attachments-counter count="2"></dso-attachments-counter>
</a>
</h5>
</div>
<div class="dso-accordion-section">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="false">
Afsluitende werkzaamheden (h5)
<span class="dso-status">7 van 8 beantwoord</span>
</a>
</h5>
</div>
<div class="dso-accordion-section dso-open">
<h5 class="dso-section-handle">
<a href="#" aria-expanded="true">
Evaluatie werkzaamheden (h5)
<dso-attachments-counter count="1"></dso-attachments-counter>
</a>
</h5>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Evaluatie werkzaamheden (h5)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
</div>
</div>
</div>
<!-- Default Met Formulier -->
<div class="dso-accordion">
<div class="dso-accordion-section dso-open">
<h3 class="dso-section-handle"><button type="button" aria-expanded="true">Stap met formulier zonder fieldset
</button>
</h3>
<div class="dso-section-body">
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form1" class="control-label">
Postcode
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form1" class="form-control" size="8">
</div>
</div>
<fieldset class="form-group dso-radios">
<legend class="sr-only">Brandstof</legend>
<div class="dso-label-container">
<span class="control-label" aria-hidden="true">
Brandstof
</span>
</div>
<div class="dso-field-container">
<div class="dso-selectable">
<input type="radio" id="default_form2-0" name="default_form2" value="1">
<label for="default_form2-0">
benzine
</label>
</div>
<div class="dso-selectable">
<input type="radio" id="default_form2-1" name="default_form2" value="2">
<label for="default_form2-1">
diesel
</label>
</div>
</div>
</fieldset>
<fieldset class="form-group dso-radios">
<legend class="sr-only">Schrijfwaar</legend>
<div class="dso-label-container">
<span class="control-label" aria-hidden="true">
Schrijfwaar
</span>
</div>
<div class="dso-field-container">
<div class="dso-selectable">
<input type="radio" id="default_form3-0" name="default_form3" value="1">
<label for="default_form3-0">
pen
</label>
</div>
<div class="dso-selectable">
<input type="radio" id="default_form3-1" name="default_form3" value="2">
<label for="default_form3-1">
potlood
</label>
</div>
</div>
</fieldset>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form4" class="control-label">
Huisnummer
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form4" class="form-control" size="8">
</div>
</div>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form5" class="control-label">
Huisnummer toevoeging
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form5" class="form-control" size="8">
</div>
</div>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form6" class="control-label">
Straatnaam
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form6" class="form-control">
</div>
</div>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form7" class="control-label">
Woonplaats
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form7" class="form-control">
</div>
</div>
<fieldset class="form-group dso-radios">
<legend class="sr-only">Type melder</legend>
<div class="dso-label-container">
<span class="control-label" aria-hidden="true">
Type melder
</span>
</div>
<div class="dso-field-container">
<div class="dso-selectable">
<input type="radio" id="default_form8-0" name="default_form8" value="particulier">
<label for="default_form8-0">
particulier
</label>
</div>
<div class="dso-selectable">
<input type="radio" id="default_form8-1" name="default_form8" value="bedrijf">
<label for="default_form8-1">
bedrijf
</label>
</div>
</div>
</fieldset>
<div class="dso-form-buttons">
<button type="submit" class="btn btn-primary"><span>Volgende stap</span></button>
</div>
</div>
</div>
<div class="dso-accordion-section dso-open">
<h5 class="dso-section-handle"><button type="button" aria-expanded="true">Stap met formulier met meerdere fieldsets
</button>
</h5>
<div class="dso-section-body">
<fieldset>
<legend>Adresgegevens</legend>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form-fieldsets1" class="control-label">
Postcode
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form-fieldsets1" class="form-control" size="8">
</div>
</div>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form-fieldsets2" class="control-label">
Huisnummer
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form-fieldsets2" class="form-control" size="8">
</div>
</div>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form-fieldsets3" class="control-label">
Huisnummer toevoeging
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form-fieldsets3" class="form-control" size="8">
</div>
</div>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form-fieldsets4" class="control-label">
Straatnaam
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form-fieldsets4" class="form-control">
</div>
</div>
<div class="form-group dso-input dso-input-text">
<div class="dso-label-container">
<label for="default_form-fieldsets5" class="control-label">
Woonplaats
</label>
</div>
<div class="dso-field-container">
<input type="text" id="default_form-fieldsets5" class="form-control">
</div>
</div>
</fieldset>
<fieldset>
<legend>Melder gegevens</legend>
<fieldset class="form-group dso-radios">
<legend class="sr-only">Type melder</legend>
<div class="dso-label-container">
<span class="control-label" aria-hidden="true">
Type melder
</span>
</div>
<div class="dso-field-container">
<div class="dso-selectable">
<input type="radio" id="type_melder-0" name="type_melder" value="particulier">
<label for="type_melder-0">
particulier
</label>
</div>
<div class="dso-selectable">
<input type="radio" id="type_melder-1" name="type_melder" value="bedrijf">
<label for="type_melder-1">
bedrijf
</label>
</div>
</div>
</fieldset>
</fieldset>
<div class="dso-form-buttons">
<button type="button" class="btn btn-link"><span>Annuleren</span></button>
<button type="submit" class="btn btn-primary"><span>Verstuur</span></button>
</div>
</div>
</div>
</div>
<!-- Default Met Definition List -->
<div class="dso-accordion">
<div class="dso-accordion-section dso-open">
<h3 class="dso-section-handle"><button type="button" aria-expanded="true">Stap met definition-list
</button>
</h3>
<div class="dso-section-body">
<dl>
<dt>Indienen bij:</dt>
<dd>Gemeente Den Haag</dd>
<dt>Soort:</dt>
<dd>Melding</dd>
<dt>Bevat:</dt>
<dd>Milieubelastende activiteit - Vergunning (Gemeente)</dd>
<dt>Omgevingsoverleg mogelijk:</dt>
<dd>Ja</dd>
</dl>
</div>
</div>
</div>
<!-- Compact -->
<div class="dso-accordion dso-accordion-compact">
<div class="dso-accordion-section dso-open">
<h3 class="dso-section-handle"><button type="button" aria-expanded="true">Sectie titel (active)
</button>
</h3>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Sectie titel (active)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
</div>
</div>
<div class="dso-accordion-section">
<h3 class="dso-section-handle"><button type="button" aria-expanded="false">Sectie titel
</button>
</h3>
</div>
<div class="dso-accordion-section">
<h3 class="dso-section-handle"><button type="button" aria-expanded="false">Sectie titel
</button>
</h3>
</div>
<div class="dso-accordion-section">
<h3 class="dso-section-handle"><button type="button" aria-expanded="false">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula, ipsum eu porttitor cursus, metus ante ultricies quam, quis egestas urna justo a quam.
</button>
</h3>
</div>
</div>
<!-- Compact Met Links -->
<div class="dso-accordion dso-accordion-compact">
<div class="dso-accordion-section dso-open">
<h3 class="dso-section-handle">
<a href="#" aria-expanded="true">
Sectie titel (active)
</a>
</h3>
<div class="dso-section-body">
<div class="dso-rich-content">
<p>Dit is de inhoud van <strong>Sectie titel (active)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>)</p>
</div>
</div>
</div>
<div class="dso-accordion-section">
<h3 class="dso-section-handle">
<a href="#" aria-expanded="false">
Sectie titel
</a>
</h3>
</div>
<div class="dso-accordion-section">
<h3 class="dso-section-handle">
<a href="#" aria-expanded="false">
Sectie titel
</a>
</h3>
</div>
<div class="dso-accordion-section">
<h3 class="dso-section-handle">
<a href="#" aria-expanded="false">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula, ipsum eu porttitor cursus, metus ante ultricies quam, quis egestas urna justo a quam.
</a>
</h3>
</div>
</div>
<div {{ className('dso-accordion', modifiers) }}>
{%- for section in sections -%}
<div {{ className('dso-accordion-section', [section.state, 'dso-' + section.state], [section.open, 'dso-open'], [section.sections, 'dso-nested-accordion']) }}>
<{{ section.header if section.header else 'h3' }} class="dso-section-handle">
{%- if section.type === 'link' %}
<a href="#" aria-expanded={% if section.open %}"true"{% else %}"false"{%endif%}>
{% else -%}
<button type="button" aria-expanded={% if section.open %}"true"{% else %}"false"{%endif%}>
{%- endif -%}
{%- if section.state %}
<span class="sr-only">
{%- if section.state === 'success' %}
succes:
{%- elif section.state === 'warning' %}
waarschuwing:
{%- elif section.state === 'danger' %}
fout:
{%- elif section.state === 'info' %}
info:
{% endif %}
</span>
{% endif -%}
{{ section.title }}
{% if section.status %}
<span class="dso-status">{{ section.status }}</span>
{%- endif %}
{% if section.attachments %}
<dso-attachments-counter count="{{ section.attachments }}"></dso-attachments-counter>
{% endif %}
{% if section.type === 'link' %}
</a>
</{{ section.header if section.header else 'h3' }}>
{% else %}
</button>
</{{ section.header if section.header else 'h3' }}>
{%- endif %}
{%- if section.open %}
<div class="dso-section-body">
{% if section.richContent %}
<div class="dso-rich-content">
{{ section.richContent | safe }}
</div>
{% endif %}
{% if section.definitions %}
{% render '@definition-list', {definitions: section.definitions} %}
{% endif %}
{% if section.fieldsets %}
{% render '@form-fieldsets', {fieldsets: section.fieldsets} %}
{% render '@form-buttons', {buttons: section.buttons} %}
{% endif %}
{%- if section.sections %}
<div {{ className('dso-accordion', section.modifiers) }}>
{%- for subsection in section.sections -%}
<div {{ className('dso-accordion-section', [subsection.state, 'dso-' + subsection.state], [subsection.open, 'dso-open'], [subsection.sections, 'dso-nested-accordion']) }}>
<{{ subsection.header if subsection.header else 'div' }} class="dso-section-handle">
{%- if section.type === 'link' %}
<a href="#" aria-expanded={% if subsection.open %}"true"{% else %}"false"{%endif%}>
{%- else %}
<button type="button" aria-expanded={% if subsection.open %}"true"{% else %}"false"{%endif%}>
{% endif %}
{%- if subsection.state %}
<span class="sr-only">
{%- if subsection.state === 'success' %}
succes:
{%- elif subsection.state === 'warning' %}
waarschuwing:
{%- elif subsection.state === 'danger' %}
fout:
{%- elif subsection.state === 'info' %}
info:
{% endif %}
</span>
{% endif -%}
{{ subsection.title }}
{% if subsection.status %}
<span class="dso-status">{{ subsection.status }}</span>
{% endif %}
{% if subsection.attachments %}
<dso-attachments-counter count="{{ subsection.attachments }}"></dso-attachments-counter>
{% endif %}
{% if section.type === 'link' %}
</a>
</{{ subsection.header if subsection.header else 'div' }}>
{% else %}
</button>
</{{ subsection.header if subsection.header else 'div' }}>
{% endif %}
{% if subsection.open %}
<div class="dso-section-body">
{% if subsection.richContent %}
<div class="dso-rich-content">
{{ subsection.richContent | safe }}
</div>
{% endif %}
{% if subsection.definitions %}
{% render '@definition-list', {definitions: subsection.definitions} %}
{% endif %}
{% if subsection.fieldsets %}
{% render '@form-fieldsets', {fieldsets: subsection.fieldsets} %}
{% render '@form-buttons', {buttons: subsection.buttons} %}
{% endif %}
</div>
{% endif %}
</div>
{%- endfor %}
</div>
{% endif %}
</div>
{%- endif %}
</div>
{%- endfor %}
</div>
/* Default */
__title: default
sections:
- title: Oprit (h2)
id: panel_oprit
header: h2
- title: Woning (h3)
id: default_panel1
open: true
header: h3
richContent: >
<p>Dit is de inhoud van <strong>Woning (h2)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
- title: Bouwwerkzaamheden (h4)
id: default_panel2
state: success
header: h4
- title: Plaats van het bouwwerk (h5)
id: default_panel3
state: warning
header: h5
richContent: >
<p>Dit is de inhoud van <strong>Plaats van het bouwwerk (h4)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
open: true
sections:
- title: Woning (h2)
id: default_subpanel1
header: h2
- title: Bouwwerkzaamheden (h3)
id: default_subpanel2
open: true
state: success
header: h3
richContent: >
<p>Dit is een geneste accordion. De inhoud is van
<strong>Bouwwerkzaamheden (h3)</strong>. Zie de <em>Notes</em> van dit
component.</p>
- title: Plaats van het bouwwerk (h4)
id: default_subpanel3
state: warning
header: h4
- title: Afmetingen van het bouwwerk (h5)
id: default_subpanel4
state: info
header: h5
- title: Extra werkzaamheden (h5)
id: default_subpanel5
state: danger
header: h5
- title: Afmetingen van het bouwwerk (h5)
id: default_panel4
state: info
header: h5
- title: Extra werkzaamheden (h5)
id: default_panel5
state: danger
header: h5
status: 5 van 8 beantwoord
- title: Optionele werkzaamheden (h5)
id: default_panel6
state: warning
header: h5
richContent: >
<p>Dit is de inhoud van <strong>Optionele werkzaamheden (h5)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
open: true
status: 6 van 8 beantwoord
- title: Bijgevoegde werkzaamheden (h5)
id: default_panel7
header: h5
attachments: 2
- title: Afsluitende werkzaamheden (h5)
id: default_panel8
header: h5
status: 7 van 8 beantwoord
- title: Evaluatie werkzaamheden (h5)
id: default_panel9
header: h5
attachments: 1
richContent: >
<p>Dit is de inhoud van <strong>Evaluatie werkzaamheden (h5)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
open: true
/* Default Met Links */
__title: default met links
sections:
- title: Oprit (h2)
id: default-links_panel1
type: link
header: h2
- title: Woning (h3)
id: default-links_panel2
type: link
open: true
header: h3
richContent: >
<p>Dit is de inhoud van <strong>Woning (h2)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
- title: Bouwwerkzaamheden (h4)
id: default-links_panel3
type: link
state: success
header: h4
- title: Plaats van het bouwwerk (h5)
id: default-links_panel4
type: link
state: warning
header: h5
richContent: >
<p>Dit is de inhoud van <strong>Plaats van het bouwwerk (h4)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
open: true
sections:
- title: Woning (h2)
id: default-links_subpanel1
type: link
header: h2
- title: Bouwwerkzaamheden (h3)
id: default-links_subpanel2
type: link
open: true
state: success
header: h3
richContent: >
<p>Dit is een geneste accordion. De inhoud is van
<strong>Bouwwerkzaamheden (h3)</strong>. Zie de <em>Notes</em> van dit
component.</p>
- title: Plaats van het bouwwerk (h4)
id: default-links_subpanel3
type: link
state: warning
header: h4
- title: Afmetingen van het bouwwerk (h5)
id: default-links_subpanel4
type: link
state: info
header: h5
- title: Extra werkzaamheden (h5)
id: default-links_subpanel5
type: link
state: danger
header: h5
- title: Afmetingen van het bouwwerk (h5)
id: default-links_panel5
type: link
state: info
header: h5
- title: Extra werkzaamheden (h5)
id: default-links_panel6
type: link
state: danger
header: h5
status: 5 van 8 beantwoord
- title: Optionele werkzaamheden (h5)
id: default-links_panel7
type: link
state: warning
header: h5
richContent: >
<p>Dit is de inhoud van <strong>Optionele werkzaamheden (h5)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
open: true
status: 6 van 8 beantwoord
- title: Bijgevoegde werkzaamheden (h5)
id: default-links_panel8
type: link
header: h5
attachments: 2
- title: Afsluitende werkzaamheden (h5)
id: default-links_panel9
type: link
header: h5
status: 7 van 8 beantwoord
- title: Evaluatie werkzaamheden (h5)
id: default-links_panel10
type: link
header: h5
attachments: 1
richContent: >
<p>Dit is de inhoud van <strong>Evaluatie werkzaamheden (h5)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
open: true
/* Default Met Formulier */
__title: default met formulier
sections:
- title: Stap met formulier zonder fieldset
id: default-formulier_panel1
open: true
fieldsets:
- groups:
- id: default_form1
inputType: input
type: text
label: Postcode
size: 8
- id: default_form2
label: Brandstof
inputType: radios
options:
- value: 1
label: benzine
- value: 2
label: diesel
- id: default_form3
label: Schrijfwaar
inputType: radios
options:
- value: 1
label: pen
- value: 2
label: potlood
- id: default_form4
inputType: input
type: text
label: Huisnummer
size: 8
- id: default_form5
inputType: input
type: text
label: Huisnummer toevoeging
size: 8
- id: default_form6
inputType: input
type: text
label: Straatnaam
- id: default_form7
inputType: input
type: text
label: Woonplaats
- id: default_form8
inputType: radios
label: Type melder
options:
- value: particulier
label: particulier
- value: bedrijf
label: bedrijf
buttons:
- type: submit
modifier: primary
label: Volgende stap
- title: Stap met formulier met meerdere fieldsets
id: default-formulier_panel2
open: true
header: h5
fieldsets:
- legend: Adresgegevens
groups:
- id: default_form-fieldsets1
inputType: input
type: text
label: Postcode
size: 8
- id: default_form-fieldsets2
inputType: input
type: text
label: Huisnummer
size: 8
- id: default_form-fieldsets3
inputType: input
type: text
label: Huisnummer toevoeging
size: 8
- id: default_form-fieldsets4
inputType: input
type: text
label: Straatnaam
- id: default_form-fieldsets5
inputType: input
type: text
label: Woonplaats
- legend: Melder gegevens
groups:
- id: type_melder
inputType: radios
label: Type melder
options:
- value: particulier
label: particulier
- value: bedrijf
label: bedrijf
buttons:
- type: button
modifier: link
label: Annuleren
- type: submit
modifier: primary
label: Verstuur
/* Default Met Definition List */
__title: default met definition-list
sections:
- title: Stap met definition-list
id: default-definition-list_panel1
open: true
definitions:
- term: 'Indienen bij:'
descriptions:
- description: Gemeente Den Haag
- term: 'Soort:'
descriptions:
- description: Melding
- term: 'Bevat:'
descriptions:
- description: Milieubelastende activiteit - Vergunning (Gemeente)
- term: 'Omgevingsoverleg mogelijk:'
descriptions:
- description: Ja
/* Compact */
__title: compact
sections:
- title: Sectie titel (active)
id: default-compact_panel1
header: h3
richContent: >
<p>Dit is de inhoud van <strong>Sectie titel (active)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
open: true
- title: Sectie titel
id: default-compact_panel2
header: h3
- title: Sectie titel
id: default-compact_panel3
header: h3
- title: >-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent
vehicula, ipsum eu porttitor cursus, metus ante ultricies quam, quis
egestas urna justo a quam.
id: default-compact_panel4
header: h3
modifiers: dso-accordion-compact
/* Compact Met Links */
__title: compact met links
sections:
- title: Sectie titel (active)
id: default-compact-links_panel1
type: link
header: h3
richContent: >
<p>Dit is de inhoud van <strong>Sectie titel (active)</strong></p>
<p>Semantisch klopt deze pagina niet, maar om de styling voor de
verschillende <code>.dso-accordion.handle</code>s te waarborgen staan alle
varianten in het DOM (<code>h2</code>, <code>h3</code>, <code>h4</code>,
<code>h5</code>)</p>
open: true
- title: Sectie titel
id: default-compact-links_panel2
type: link
header: h3
- title: Sectie titel
id: default-compact-links_panel3
type: link
header: h3
- title: >-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent
vehicula, ipsum eu porttitor cursus, metus ante ultricies quam, quis
egestas urna justo a quam.
id: default-compact-links_panel4
type: link
header: h3
modifiers: dso-accordion-compact