# Anatomy
Charts are made of several components grouped together. The structure is built with a simple HTML <table>
element. The different components are styled using CSS classes which are defined for the parent element but affect inner HTML elements.
# Chart Layers
The following animation shows how the various elements are separated into layers:
2016 | |
---|---|
2017 | |
2018 | |
2019 | |
2020 |
As was previously mentioned, the layers are composed of different HTML elements nested inside the <table>
element.
- Heading layer - generated from the
<caption>
element. - Labels layer - generated from the
<th>
elements. - Data layer - generated from the
<td>
elements. - Axes layer - generated from the
<tbody>
element.
# Chart Structure
With the help of CSS classes, the HTML table displayed as a chart. These utility classes change the appearance of the table by applying styles on various inner HTML elements.
To transform the <table>
into a chart, only two inner HTML elements are required, the <tbody>
and <td>
elements, without them, nothing works. The other elements are optional. However, we recommend using all the elements, including <caption>
, <thead>
, and <th>
, as they provide more clarity for search-engines and screen-reader users.
# HTML Table
The following table, for example, provides meaningful information like a heading, labels and data. With semantic markup the information visible to search-engines and screen readers.
<table class="charts-css column show-heading show-labels show-primary-axis show-4-secondary-axes show-data-axes data-spacing-15 hide-data">
<caption> Chart Heading </caption>
<thead>
<tr>
<th scope="col"> Year </th>
<th scope="col"> Value </th>
</tr>
</thead>
<tbody>
<tr>
<th> 2016 </th>
<td style="--size: calc( 20 / 100 );"> 20 </td>
</tr>
<tr>
<th> 2017 </th>
<td style="--size: calc( 40 / 100 );"> 40 </td>
</tr>
<tr>
<th> 2018 </th>
<td style="--size: calc( 60 / 100 );"> 60 </td>
</tr>
<tr>
<th> 2019 </th>
<td style="--size: calc( 80 / 100 );"> 80 </td>
</tr>
<tr>
<th> 2020 </th>
<td style="--size: calc( 100 / 100 );"> 100 </td>
</tr>
</tbody>
</table>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Chart View
With the help of CSS classes, the user will see the following chart:
# Table View
When removing the CSS classes, the style will be removed and the user will see a regular table:
Year | Value |
---|---|
2016 | 20 |
2017 | 40 |
2018 | 60 |
2019 | 80 |
2020 | 100 |
← Usage Migrate to v1.0 →