table.html.twig
Default theme implementation to display a table.
Available variables:
- attributes: HTML attributes to apply to the <table> tag.
- caption: A localized string for the <caption> tag.
- colgroups: Column groups. Each group contains the following properties:
- attributes: HTML attributes to apply to the <col> tag. Note: Drupal currently supports only one table header row, see https://www.drupal.org/node/893530 and http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_tabl….
 
- header: Table header cells. Each cell contains the following properties:
- tag: The HTML tag name to use; either 'th' or 'td'.
- attributes: HTML attributes to apply to the tag.
- content: A localized string for the title of the column.
- field: Field name (required for column sorting).
- sort: Default sort order for this column ("asc" or "desc").
 
- sticky: A flag indicating whether to use a "sticky" table header.
- rows: Table rows. Each row contains the following properties:
- attributes: HTML attributes to apply to the <tr> tag.
- data: Table cells.
- no_striping: A flag indicating that the row should receive no 'even / odd' styling. Defaults to FALSE.
- cells: Table cells of the row. Each cell contains the following keys:
- tag: The HTML tag name to use; either 'th' or 'td'.
- attributes: Any HTML attributes, such as "colspan", to apply to the table cell.
- content: The string to display in the table cell.
- active_table_sort: A boolean indicating whether the cell is the active table sort.
- header: Boolean indicating whether the cell should be rendered as a header (<th>) or not (<td>).
 
 
- footer: Table footer rows, in the same format as the rows variable.
- empty: The message to display in an extra row if table does not have any rows.
- no_striping: A boolean indicating that the row should receive no striping.
- header_columns: The number of columns in the header.
See also
10 theme calls to table.html.twig
- ContentTranslationController::overview in core/modules/ content_translation/ src/ Controller/ ContentTranslationController.php 
- Builds the translations overview page.
- MenuForm::buildOverviewForm in core/modules/ menu_ui/ src/ MenuForm.php 
- Form constructor to edit an entire menu tree at once.
- NodeController::revisionOverview in core/modules/ node/ src/ Controller/ NodeController.php 
- Generates an overview table of older revisions of a node.
- PagerTestController::buildTestTable in core/modules/ system/ tests/ modules/ pager_test/ src/ Controller/ PagerTestController.php 
- Builds a render array for a multi-page test table.
- Table::getInfo in core/lib/ Drupal/ Core/ Render/ Element/ Table.php 
- Returns the element properties for this element.
File
- 
              core/modules/ system/ templates/ table.html.twig 
View source
- {#
- /**
-  * @file
-  * Default theme implementation to display a table.
-  *
-  * Available variables:
-  * - attributes: HTML attributes to apply to the <table> tag.
-  * - caption: A localized string for the <caption> tag.
-  * - colgroups: Column groups. Each group contains the following properties:
-  *   - attributes: HTML attributes to apply to the <col> tag.
-  *     Note: Drupal currently supports only one table header row, see
-  *     https://www.drupal.org/node/893530 and
-  *     http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
-  * - header: Table header cells. Each cell contains the following properties:
-  *   - tag: The HTML tag name to use; either 'th' or 'td'.
-  *   - attributes: HTML attributes to apply to the tag.
-  *   - content: A localized string for the title of the column.
-  *   - field: Field name (required for column sorting).
-  *   - sort: Default sort order for this column ("asc" or "desc").
-  * - sticky: A flag indicating whether to use a "sticky" table header.
-  * - rows: Table rows. Each row contains the following properties:
-  *   - attributes: HTML attributes to apply to the <tr> tag.
-  *   - data: Table cells.
-  *   - no_striping: A flag indicating that the row should receive no
-  *     'even / odd' styling. Defaults to FALSE.
-  *   - cells: Table cells of the row. Each cell contains the following keys:
-  *     - tag: The HTML tag name to use; either 'th' or 'td'.
-  *     - attributes: Any HTML attributes, such as "colspan", to apply to the
-  *       table cell.
-  *     - content: The string to display in the table cell.
-  *     - active_table_sort: A boolean indicating whether the cell is the active
-          table sort.
-  *     - header: Boolean indicating whether the cell should be rendered as a
-  *       header (<th>) or not (<td>).
-  * - footer: Table footer rows, in the same format as the rows variable.
-  * - empty: The message to display in an extra row if table does not have
-  *   any rows.
-  * - no_striping: A boolean indicating that the row should receive no striping.
-  * - header_columns: The number of columns in the header.
-  *
-  * @see template_preprocess_table()
-  *
-  * @ingroup themeable
-  */
- #}
- <table{{ attributes }}>
-   {% if caption %}
-     <caption>{{ caption }}</caption>
-   {% endif %}
- 
-   {% for colgroup in colgroups %}
-     {% if colgroup.cols %}
-       <colgroup{{ colgroup.attributes }}>
-         {% for col in colgroup.cols %}
-           <col{{ col.attributes }} />
-         {% endfor %}
-       </colgroup>
-     {% else %}
-       <colgroup{{ colgroup.attributes }} />
-     {% endif %}
-   {% endfor %}
- 
-   {% if header %}
-     <thead>
-       <tr>
-         {% for cell in header %}
-           <{{ cell.tag }}{{ cell.attributes }}>
-             {{- cell.content -}}
-           </{{ cell.tag }}>
-         {% endfor %}
-       </tr>
-     </thead>
-   {% endif %}
- 
-   {% if rows %}
-     <tbody>
-       {% for row in rows %}
-         <tr{{ row.attributes }}>
-           {% for cell in row.cells %}
-             <{{ cell.tag }}{{ cell.attributes }}>
-               {{- cell.content -}}
-             </{{ cell.tag }}>
-           {% endfor %}
-         </tr>
-       {% endfor %}
-     </tbody>
-   {% elseif empty %}
-     <tbody>
-       <tr>
-         <td colspan="{{ header_columns }}">{{ empty }}</td>
-       </tr>
-     </tbody>
-   {% endif %}
-   {% if footer %}
-     <tfoot>
-       {% for row in footer %}
-         <tr{{ row.attributes }}>
-           {% for cell in row.cells %}
-             <{{ cell.tag }}{{ cell.attributes }}>
-               {{- cell.content -}}
-             </{{ cell.tag }}>
-           {% endfor %}
-         </tr>
-       {% endfor %}
-     </tfoot>
-   {% endif %}
- </table>
Related topics
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
