<table class="responsive-table complex-table">
        <p class="summary">
            Personen met voornaam, achternaam en beschrijving. De eerste kolom geeft de titel van een persoon weer.
            <th>Lorem Ipsum</th>
            <th>Titel 1</th>
            <td>eget etiam</td>
            <td>pede nullam nascetur habitasse</td>
            <th>Titel 2</th>
            <td>accumsan non</td>
            <td>sit viverra aenean bibendum</td>
            <th>Titel 3</th>
            <td>maecenas pretium</td>
            <td>nascetur risus aliquet ipsum</td>
            <th>Titel 4</th>
            <td>consectetur mi</td>
            <td>metus est dictum mollis elementum torquent. Ad ligula quis convallis per natoque</td>
            <th>Titel 4</th>
            <td>porta non</td>
            <td>aenean lorem pulvinar eros</td>

Complex Responsive Table

A custom component created for Nijmegen, based on this CSS-Tricks demo.


To start using this component and facilitate a correct layout on mobile devices, some JavaScript is needed to initialize it.
Underneath a jQuery example on how to achieve this and should be placed in the Additional component(s) script section as documented in How to use.

    $('.responsive-table.complex-table').each(function () {
        var headings = $(this).find('thead th:not(:first-child)').map(function () {
            return this.textContent;

        if (headings.length > 0) {
            $(this).find('tbody td').each(function (tdIdx) {
                this.setAttribute('data-title', headings[tdIdx % headings.length]);


  • The caption element functions as a heading for the table. Captions help (screen-reader) users to find a table and understand what it’s about.
  • If the caption is not wanted visually you can hide this by applying the class sr-only
  • Handle: @complex-table
  • Preview:
  • Filesystem Path: components/responsive-table/complex-table/complex-table.hbs