charts.css
Version:
Open source CSS framework for data visualization.
964 lines (954 loc) • 84.7 kB
CSS
/*
* Charts.css v1.2.0 (https://ChartsCSS.org/)
* Copyright 2020 Rami Yushuvaev
* Licensed under MIT
*/
/*
* Chart custom properties
*/
@property --color-1 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-2 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-3 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-4 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-5 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-6 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-7 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-8 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-9 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color-10 {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --color {
syntax: "<color>";
inherits: true;
}
@property --chart-bg-color {
syntax: "<color>";
inherits: true;
}
@property --aspect-ratio {
syntax: "<ratio>";
initial-value: auto;
inherits: true;
}
@property --data-position {
syntax: "<content-position>";
inherits: true;
}
@property --labels-size {
syntax: "<length>";
initial-value: 0;
inherits: true;
}
@property --labels-align-block {
syntax: "<string>";
inherits: true;
}
@property --labels-align-inline {
syntax: "<string>";
inherits: true;
}
@property --primary-axis-width {
syntax: "<length>";
initial-value: 1px;
inherits: true;
}
@property --secondary-axes-width {
syntax: "<length>";
initial-value: 1px;
inherits: true;
}
@property --data-axes-width {
syntax: "<length>";
initial-value: 1px;
inherits: true;
}
@property --legend-border-width {
syntax: "<length>";
initial-value: 1px;
inherits: true;
}
@property --primary-axis-style {
syntax: "<line-style>";
initial-value: solid;
inherits: true;
}
@property --secondary-axes-style {
syntax: "<line-style>";
initial-value: solid;
inherits: true;
}
@property --data-axes-style {
syntax: "<line-style>";
initial-value: solid;
inherits: true;
}
@property --legend-border-style {
syntax: "<line-style>";
initial-value: solid;
inherits: true;
}
@property --primary-axis-color {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --secondary-axes-color {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --data-axes-color {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --legend-border-color {
syntax: "<color>";
initial-value: transparent;
inherits: true;
}
@property --start {
syntax: "<number>";
inherits: true;
}
@property --end {
syntax: "<number>";
inherits: true;
}
@property --size {
syntax: "<number>";
inherits: true;
}
@property --line-size {
syntax: "<number>";
inherits: true;
}
/*
* Chart wrapper element
*/
.charts-css {
--color-1: rgba(240, 50, 50, 0.75);
--color-2: rgba(255, 180, 50, 0.75);
--color-3: rgba(255, 220, 90, 0.75);
--color-4: rgba(100, 210, 80, 0.75);
--color-5: rgba(90, 165, 255, 0.75);
--color-6: rgba(170, 90, 240, 0.75);
--color-7: rgba(180, 180, 180, 0.75);
--color-8: rgba(110, 110, 110, 0.75);
--color-9: rgba(170, 150, 110, 0.75);
--color-10: rgba(130, 50, 20, 0.75);
--chart-bg-color: rgb(245 245 245);
--primary-axis-color: rgba(0 0 0 / 100%);
--primary-axis-style: solid;
--primary-axis-width: 1px;
--secondary-axes-color: rgba(0 0 0 / 15%);
--secondary-axes-style: solid;
--secondary-axes-width: 1px;
--data-axes-color: rgba(0 0 0 / 15%);
--data-axes-style: solid;
--data-axes-width: 1px;
--legend-border-color: rgb(200 200 200);
--legend-border-style: solid;
--legend-border-width: 1px;
position: relative;
display: block;
width: 100%;
height: 100%;
margin: 0 auto;
padding: 0;
border: 0;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
.charts-css, .charts-css::after, .charts-css::before, .charts-css *, .charts-css *::after, .charts-css *::before {
box-sizing: border-box;
}
/*
* Reset table element
*/
table.charts-css {
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
overflow: initial;
background-color: transparent;
}
table.charts-css caption,
table.charts-css colgroup,
table.charts-css thead,
table.charts-css tbody,
table.charts-css tr,
table.charts-css th,
table.charts-css td {
display: block;
margin: 0;
padding: 0;
border: 0;
background-color: transparent;
}
table.charts-css colgroup, table.charts-css thead, table.charts-css tfoot, .charts-css:not(.show-heading) caption, .charts-css.hide-data .data, .charts-css.hide-data .data:not(:focus):not(:focus-within), .charts-css.bar:not(.show-labels) tbody tr th, .charts-css.bar.show-labels tr.hide-label th, .charts-css.bar.show-labels th.hide-label, .charts-css.column:not(.show-labels) tbody tr th, .charts-css.area:not(.show-labels) tbody tr th, .charts-css.line:not(.show-labels) tbody tr th, .charts-css.column.show-labels tr.hide-label th, .charts-css.column.show-labels th.hide-label, .charts-css.area.show-labels tr.hide-label th, .charts-css.area.show-labels th.hide-label, .charts-css.line.show-labels tr.hide-label th, .charts-css.line.show-labels th.hide-label, .charts-css.radial tbody tr, .charts-css.pie tbody tr th, .charts-css.polar tbody tr, .charts-css.radar tbody tr {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
border: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
clip-path: inset(50%);
white-space: nowrap;
}
table.charts-css tbody {
position: relative;
}
/*
* Reset list elements
*/
ul.charts-css,
ol.charts-css {
list-style-type: none;
}
ul.charts-css li,
ol.charts-css li {
margin: 0;
padding: 0;
border: 0;
}
/*
* Chart heading
*/
.charts-css.show-heading caption {
display: block;
width: 100%;
}
/*
* Chart colors
*/
.charts-css.bar tbody tr:nth-of-type(10n + 1) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 1), .charts-css.column tbody tr:nth-of-type(10n + 1) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 1), .charts-css.area tbody tr td:nth-of-type(10n + 1)::before, .charts-css.line tbody tr td:nth-of-type(10n + 1)::before {
background: var(--color, var(--color-1));
}
.charts-css.pie tbody tr:nth-of-type(10n + 1) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 1) {
--c: var(--color, var(--color-1, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 2) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 2), .charts-css.column tbody tr:nth-of-type(10n + 2) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 2), .charts-css.area tbody tr td:nth-of-type(10n + 2)::before, .charts-css.line tbody tr td:nth-of-type(10n + 2)::before {
background: var(--color, var(--color-2));
}
.charts-css.pie tbody tr:nth-of-type(10n + 2) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 2) {
--c: var(--color, var(--color-2, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 3) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 3), .charts-css.column tbody tr:nth-of-type(10n + 3) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 3), .charts-css.area tbody tr td:nth-of-type(10n + 3)::before, .charts-css.line tbody tr td:nth-of-type(10n + 3)::before {
background: var(--color, var(--color-3));
}
.charts-css.pie tbody tr:nth-of-type(10n + 3) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 3) {
--c: var(--color, var(--color-3, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 4) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 4), .charts-css.column tbody tr:nth-of-type(10n + 4) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 4), .charts-css.area tbody tr td:nth-of-type(10n + 4)::before, .charts-css.line tbody tr td:nth-of-type(10n + 4)::before {
background: var(--color, var(--color-4));
}
.charts-css.pie tbody tr:nth-of-type(10n + 4) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 4) {
--c: var(--color, var(--color-4, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 5) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 5), .charts-css.column tbody tr:nth-of-type(10n + 5) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 5), .charts-css.area tbody tr td:nth-of-type(10n + 5)::before, .charts-css.line tbody tr td:nth-of-type(10n + 5)::before {
background: var(--color, var(--color-5));
}
.charts-css.pie tbody tr:nth-of-type(10n + 5) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 5) {
--c: var(--color, var(--color-5, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 6) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 6), .charts-css.column tbody tr:nth-of-type(10n + 6) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 6), .charts-css.area tbody tr td:nth-of-type(10n + 6)::before, .charts-css.line tbody tr td:nth-of-type(10n + 6)::before {
background: var(--color, var(--color-6));
}
.charts-css.pie tbody tr:nth-of-type(10n + 6) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 6) {
--c: var(--color, var(--color-6, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 7) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 7), .charts-css.column tbody tr:nth-of-type(10n + 7) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 7), .charts-css.area tbody tr td:nth-of-type(10n + 7)::before, .charts-css.line tbody tr td:nth-of-type(10n + 7)::before {
background: var(--color, var(--color-7));
}
.charts-css.pie tbody tr:nth-of-type(10n + 7) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 7) {
--c: var(--color, var(--color-7, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 8) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 8), .charts-css.column tbody tr:nth-of-type(10n + 8) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 8), .charts-css.area tbody tr td:nth-of-type(10n + 8)::before, .charts-css.line tbody tr td:nth-of-type(10n + 8)::before {
background: var(--color, var(--color-8));
}
.charts-css.pie tbody tr:nth-of-type(10n + 8) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 8) {
--c: var(--color, var(--color-8, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 9) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 9), .charts-css.column tbody tr:nth-of-type(10n + 9) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 9), .charts-css.area tbody tr td:nth-of-type(10n + 9)::before, .charts-css.line tbody tr td:nth-of-type(10n + 9)::before {
background: var(--color, var(--color-9));
}
.charts-css.pie tbody tr:nth-of-type(10n + 9) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 9) {
--c: var(--color, var(--color-9, transparent));
}
.charts-css.bar tbody tr:nth-of-type(10n + 10) td, .charts-css.bar.multiple tbody tr td:nth-of-type(10n + 10), .charts-css.column tbody tr:nth-of-type(10n + 10) td, .charts-css.column.multiple tbody tr td:nth-of-type(10n + 10), .charts-css.area tbody tr td:nth-of-type(10n + 10)::before, .charts-css.line tbody tr td:nth-of-type(10n + 10)::before {
background: var(--color, var(--color-10));
}
.charts-css.pie tbody tr:nth-of-type(10n + 10) td, .charts-css.pie.multiple tbody tr td:nth-of-type(10n + 10) {
--c: var(--color, var(--color-10, transparent));
}
/*
* Chart data
*/
.charts-css .data {
display: flex;
}
.charts-css.show-data-on-hover .data {
transition-duration: 0.3s;
opacity: 0;
}
.charts-css.show-data-on-hover tr:hover .data, .charts-css.radial.show-data-on-hover tbody:hover .data, .charts-css.pie.show-data-on-hover tbody:hover .data, .charts-css.polar.show-data-on-hover tbody:hover .data, .charts-css.radar.show-data-on-hover tbody:hover .data {
transition-duration: 0.3s;
opacity: 1;
}
.charts-css.bar.data-center tbody tr td, .charts-css.column.data-center tbody tr td {
--data-position: center;
}
.charts-css.bar.data-start:not(.reverse) tbody tr td, .charts-css.bar.data-end.reverse tbody tr td, .charts-css.bar.data-outside.reverse tbody tr td, .charts-css.column.data-start.reverse tbody tr td, .charts-css.column.data-end:not(.reverse) tbody tr td, .charts-css.column.data-outside:not(.reverse) tbody tr td {
--data-position: flex-start;
}
.charts-css.bar.data-start.reverse tbody tr td, .charts-css.bar.data-end:not(.reverse) tbody tr td, .charts-css.bar.data-outside:not(.reverse) tbody tr td, .charts-css.column.data-start:not(.reverse) tbody tr td, .charts-css.column.data-end.reverse tbody tr td, .charts-css.column.data-outside.reverse tbody tr td {
--data-position: flex-end;
}
.charts-css.bar.data-outside:not(.reverse) tbody tr td .data:dir(ltr), .charts-css.bar.data-outside.reverse tbody tr td .data:dir(rtl), .charts-css.bar:not(.reverse) tbody tr td .data.outside:dir(ltr), .charts-css.bar.reverse tbody tr td .data.outside:dir(rtl) {
transform: translateX(100%);
}
.charts-css.bar.data-outside:not(.reverse) tbody tr td .data:dir(rtl), .charts-css.bar.data-outside.reverse tbody tr td .data:dir(ltr), .charts-css.bar:not(.reverse) tbody tr td .data.outside:dir(rtl), .charts-css.bar.reverse tbody tr td .data.outside:dir(ltr) {
transform: translateX(-100%);
}
.charts-css.column.data-outside:not(.reverse) tbody tr td .data, .charts-css.column:not(.reverse) tbody tr td .data.outside {
transform: translateY(-100%);
}
.charts-css.column.data-outside.reverse tbody tr td .data, .charts-css.column.reverse tbody tr td .data.outside {
transform: translateY(100%);
}
.charts-css.bar.reverse tbody tr td.inside .data,
.charts-css.bar.reverse tbody tr td .data.inside, .charts-css.bar:not(.reverse) tbody tr td.inside .data,
.charts-css.bar:not(.reverse) tbody tr td .data.inside, .charts-css.column.reverse tbody tr td.inside .data,
.charts-css.column.reverse tbody tr td .data.inside, .charts-css.column:not(.reverse) tbody tr td.inside .data,
.charts-css.column:not(.reverse) tbody tr td .data.inside, .charts-css.area.reverse tbody tr td.inside .data,
.charts-css.area.reverse tbody tr td .data.inside, .charts-css.area:not(.reverse) tbody tr td.inside .data,
.charts-css.area:not(.reverse) tbody tr td .data.inside, .charts-css.line.reverse tbody tr td.inside .data,
.charts-css.line.reverse tbody tr td .data.inside, .charts-css.line:not(.reverse) tbody tr td.inside .data,
.charts-css.line:not(.reverse) tbody tr td .data.inside {
transform: unset;
}
/*
* Chart labels
*/
.charts-css.bar {
--labels-size: 80px;
}
.charts-css.bar:not(.show-labels), .charts-css.column:not(.show-labels), .charts-css.area:not(.show-labels), .charts-css.line:not(.show-labels) {
--labels-size: 0;
}
.charts-css.bar.show-labels tbody tr th {
display: flex;
flex-direction: row;
gap: 5px;
align-items: var(--labels-align-block, center);
}
.charts-css.bar.show-labels:not(.reverse):not(.reverse-labels) tbody tr th, .charts-css.bar.show-labels.reverse.reverse-labels tbody tr th {
justify-content: var(--labels-align-inline, flex-start);
}
.charts-css.bar.show-labels:not(.reverse).reverse-labels tbody tr th, .charts-css.bar.show-labels.reverse:not(.reverse-labels) tbody tr th {
justify-content: var(--labels-align-inline, flex-end);
}
.charts-css.column, .charts-css.area, .charts-css.line {
--labels-size: 1.5rem;
}
.charts-css.column.show-labels tbody tr th, .charts-css.area.show-labels tbody tr th, .charts-css.line.show-labels tbody tr th {
display: flex;
flex-direction: column;
align-items: var(--labels-align-inline, center);
}
.charts-css.column.show-labels:not(.reverse):not(.reverse-labels) tbody tr th, .charts-css.area.show-labels:not(.reverse):not(.reverse-labels) tbody tr th, .charts-css.line.show-labels:not(.reverse):not(.reverse-labels) tbody tr th, .charts-css.column.show-labels.reverse.reverse-labels tbody tr th, .charts-css.area.show-labels.reverse.reverse-labels tbody tr th, .charts-css.line.show-labels.reverse.reverse-labels tbody tr th {
justify-content: var(--labels-align-block, flex-end);
}
.charts-css.column.show-labels:not(.reverse).reverse-labels tbody tr th, .charts-css.area.show-labels:not(.reverse).reverse-labels tbody tr th, .charts-css.line.show-labels:not(.reverse).reverse-labels tbody tr th, .charts-css.column.show-labels.reverse:not(.reverse-labels) tbody tr th, .charts-css.area.show-labels.reverse:not(.reverse-labels) tbody tr th, .charts-css.line.show-labels.reverse:not(.reverse-labels) tbody tr th {
justify-content: var(--labels-align-block, flex-start);
}
.charts-css.bar.labels-align-inline-start tbody tr th, .charts-css.column.labels-align-inline-start tbody tr th, .charts-css.area.labels-align-inline-start tbody tr th, .charts-css.line.labels-align-inline-start tbody tr th {
--labels-align-inline: flex-start;
}
.charts-css.bar.labels-align-inline-end tbody tr th, .charts-css.column.labels-align-inline-end tbody tr th, .charts-css.area.labels-align-inline-end tbody tr th, .charts-css.line.labels-align-inline-end tbody tr th {
--labels-align-inline: flex-end;
}
.charts-css.bar.labels-align-inline-center tbody tr th, .charts-css.column.labels-align-inline-center tbody tr th, .charts-css.area.labels-align-inline-center tbody tr th, .charts-css.line.labels-align-inline-center tbody tr th {
--labels-align-inline: center;
}
.charts-css.bar.labels-align-block-start tbody tr th, .charts-css.column.labels-align-block-start tbody tr th, .charts-css.area.labels-align-block-start tbody tr th, .charts-css.line.labels-align-block-start tbody tr th {
--labels-align-block: flex-start;
}
.charts-css.bar.labels-align-block-end tbody tr th, .charts-css.column.labels-align-block-end tbody tr th, .charts-css.area.labels-align-block-end tbody tr th, .charts-css.line.labels-align-block-end tbody tr th {
--labels-align-block: flex-end;
}
.charts-css.bar.labels-align-block-center tbody tr th, .charts-css.column.labels-align-block-center tbody tr th, .charts-css.area.labels-align-block-center tbody tr th, .charts-css.line.labels-align-block-center tbody tr th {
--labels-align-block: center;
}
/*
* Chart axes
*/
.charts-css.column.show-primary-axis:not(.reverse) tbody tr, .charts-css.area.show-primary-axis:not(.reverse) tbody tr, .charts-css.line.show-primary-axis:not(.reverse) tbody tr {
border-block-end: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
}
.charts-css.column.show-primary-axis.reverse tbody tr, .charts-css.area.show-primary-axis.reverse tbody tr, .charts-css.line.show-primary-axis.reverse tbody tr {
border-block-start: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
}
.charts-css.column.show-1-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-1-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-1-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 1);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-1-secondary-axes.reverse tbody tr, .charts-css.area.show-1-secondary-axes.reverse tbody tr, .charts-css.line.show-1-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 1);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-2-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-2-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-2-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 2);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-2-secondary-axes.reverse tbody tr, .charts-css.area.show-2-secondary-axes.reverse tbody tr, .charts-css.line.show-2-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 2);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-3-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-3-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-3-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 3);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-3-secondary-axes.reverse tbody tr, .charts-css.area.show-3-secondary-axes.reverse tbody tr, .charts-css.line.show-3-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 3);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-4-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-4-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-4-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 4);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-4-secondary-axes.reverse tbody tr, .charts-css.area.show-4-secondary-axes.reverse tbody tr, .charts-css.line.show-4-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 4);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-5-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-5-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-5-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 5);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-5-secondary-axes.reverse tbody tr, .charts-css.area.show-5-secondary-axes.reverse tbody tr, .charts-css.line.show-5-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 5);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-6-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-6-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-6-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 6);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-6-secondary-axes.reverse tbody tr, .charts-css.area.show-6-secondary-axes.reverse tbody tr, .charts-css.line.show-6-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 6);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-7-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-7-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-7-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 7);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-7-secondary-axes.reverse tbody tr, .charts-css.area.show-7-secondary-axes.reverse tbody tr, .charts-css.line.show-7-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 7);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-8-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-8-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-8-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 8);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-8-secondary-axes.reverse tbody tr, .charts-css.area.show-8-secondary-axes.reverse tbody tr, .charts-css.line.show-8-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 8);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-9-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-9-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-9-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 9);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-9-secondary-axes.reverse tbody tr, .charts-css.area.show-9-secondary-axes.reverse tbody tr, .charts-css.line.show-9-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 9);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-10-secondary-axes:not(.reverse) tbody tr, .charts-css.area.show-10-secondary-axes:not(.reverse) tbody tr, .charts-css.line.show-10-secondary-axes:not(.reverse) tbody tr {
background-size: 100% calc(100% / 10);
background-image: linear-gradient(var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-10-secondary-axes.reverse tbody tr, .charts-css.area.show-10-secondary-axes.reverse tbody tr, .charts-css.line.show-10-secondary-axes.reverse tbody tr {
background-size: 100% calc(100% / 10);
background-image: linear-gradient(0deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.column.show-data-axes tbody tr, .charts-css.area.show-data-axes tbody tr, .charts-css.line.show-data-axes tbody tr, .charts-css.column.show-dataset-axes tbody tr td, .charts-css.area.show-dataset-axes tbody tr td, .charts-css.line.show-dataset-axes tbody tr td {
border-inline-end: var(--data-axes-width) var(--data-axes-style) var(--data-axes-color);
}
.charts-css.column.show-data-axes:not(.reverse-data) tbody tr:first-of-type, .charts-css.area.show-data-axes:not(.reverse-data) tbody tr:first-of-type, .charts-css.line.show-data-axes:not(.reverse-data) tbody tr:first-of-type, .charts-css.column.show-data-axes.reverse-data tbody tr:last-of-type, .charts-css.area.show-data-axes.reverse-data tbody tr:last-of-type, .charts-css.line.show-data-axes.reverse-data tbody tr:last-of-type, .charts-css.column.show-dataset-axes:not(.reverse-data) tbody tr:first-of-type td, .charts-css.area.show-dataset-axes:not(.reverse-data) tbody tr:first-of-type td, .charts-css.line.show-dataset-axes:not(.reverse-data) tbody tr:first-of-type td, .charts-css.column.show-dataset-axes.reverse-data tbody tr:last-of-type td, .charts-css.area.show-dataset-axes.reverse-data tbody tr:last-of-type td, .charts-css.line.show-dataset-axes.reverse-data tbody tr:last-of-type td {
border-inline-start: var(--data-axes-width) var(--data-axes-style) var(--data-axes-color);
}
.charts-css.bar.show-primary-axis:not(.reverse) tbody tr {
border-inline-start: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
}
.charts-css.bar.show-primary-axis.reverse tbody tr {
border-inline-end: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
}
.charts-css.bar.show-1-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 1) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-1-secondary-axes.reverse tbody tr {
background-size: calc(100% / 1) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-2-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 2) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-2-secondary-axes.reverse tbody tr {
background-size: calc(100% / 2) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-3-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 3) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-3-secondary-axes.reverse tbody tr {
background-size: calc(100% / 3) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-4-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 4) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-4-secondary-axes.reverse tbody tr {
background-size: calc(100% / 4) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-5-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 5) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-5-secondary-axes.reverse tbody tr {
background-size: calc(100% / 5) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-6-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 6) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-6-secondary-axes.reverse tbody tr {
background-size: calc(100% / 6) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-7-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 7) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-7-secondary-axes.reverse tbody tr {
background-size: calc(100% / 7) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-8-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 8) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-8-secondary-axes.reverse tbody tr {
background-size: calc(100% / 8) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-9-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 9) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-9-secondary-axes.reverse tbody tr {
background-size: calc(100% / 9) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-10-secondary-axes:not(.reverse) tbody tr {
background-size: calc(100% / 10) 100%;
background-image: linear-gradient(-90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-10-secondary-axes.reverse tbody tr {
background-size: calc(100% / 10) 100%;
background-image: linear-gradient(90deg, var(--secondary-axes-color) var(--secondary-axes-width), transparent var(--secondary-axes-width));
}
.charts-css.bar.show-data-axes tbody tr, .charts-css.bar.show-dataset-axes tbody tr td {
border-block-end: var(--data-axes-width) var(--data-axes-style) var(--data-axes-color);
}
.charts-css.bar.show-data-axes:not(.reverse-data) tbody tr:first-of-type, .charts-css.bar.show-data-axes.reverse-data tbody tr:last-of-type, .charts-css.bar.show-dataset-axes:not(.reverse-data) tbody tr:first-of-type td, .charts-css.bar.show-dataset-axes.reverse-data tbody tr:last-of-type td {
border-block-start: var(--data-axes-width) var(--data-axes-style) var(--data-axes-color);
}
.charts-css.radial.show-primary-axis tbody, .charts-css.pie.show-primary-axis tbody, .charts-css.polar.show-primary-axis tbody, .charts-css.radar.show-primary-axis tbody {
border: var(--primary-axis-width) var(--primary-axis-style) var(--primary-axis-color);
}
.charts-css.radial.show-1-secondary-axes tbody::after, .charts-css.pie.show-1-secondary-axes tbody::after, .charts-css.polar.show-1-secondary-axes tbody::after, .charts-css.radar.show-1-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 2 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 2 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 2), transparent calc(100% / 2 + var(--secondary-axes-width)), transparent calc(100% / 2 + var(--secondary-axes-width)));
}
.charts-css.radial.show-2-secondary-axes tbody::after, .charts-css.pie.show-2-secondary-axes tbody::after, .charts-css.polar.show-2-secondary-axes tbody::after, .charts-css.radar.show-2-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 3 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 3 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 3), transparent calc(100% / 3 + var(--secondary-axes-width)), transparent calc(100% / 3 + var(--secondary-axes-width)));
}
.charts-css.radial.show-3-secondary-axes tbody::after, .charts-css.pie.show-3-secondary-axes tbody::after, .charts-css.polar.show-3-secondary-axes tbody::after, .charts-css.radar.show-3-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 4 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 4 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 4), transparent calc(100% / 4 + var(--secondary-axes-width)), transparent calc(100% / 4 + var(--secondary-axes-width)));
}
.charts-css.radial.show-4-secondary-axes tbody::after, .charts-css.pie.show-4-secondary-axes tbody::after, .charts-css.polar.show-4-secondary-axes tbody::after, .charts-css.radar.show-4-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 5 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 5 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 5), transparent calc(100% / 5 + var(--secondary-axes-width)), transparent calc(100% / 5 + var(--secondary-axes-width)));
}
.charts-css.radial.show-5-secondary-axes tbody::after, .charts-css.pie.show-5-secondary-axes tbody::after, .charts-css.polar.show-5-secondary-axes tbody::after, .charts-css.radar.show-5-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 6 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 6 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 6), transparent calc(100% / 6 + var(--secondary-axes-width)), transparent calc(100% / 6 + var(--secondary-axes-width)));
}
.charts-css.radial.show-6-secondary-axes tbody::after, .charts-css.pie.show-6-secondary-axes tbody::after, .charts-css.polar.show-6-secondary-axes tbody::after, .charts-css.radar.show-6-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 7 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 7 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 7), transparent calc(100% / 7 + var(--secondary-axes-width)), transparent calc(100% / 7 + var(--secondary-axes-width)));
}
.charts-css.radial.show-7-secondary-axes tbody::after, .charts-css.pie.show-7-secondary-axes tbody::after, .charts-css.polar.show-7-secondary-axes tbody::after, .charts-css.radar.show-7-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 8 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 8 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 8), transparent calc(100% / 8 + var(--secondary-axes-width)), transparent calc(100% / 8 + var(--secondary-axes-width)));
}
.charts-css.radial.show-8-secondary-axes tbody::after, .charts-css.pie.show-8-secondary-axes tbody::after, .charts-css.polar.show-8-secondary-axes tbody::after, .charts-css.radar.show-8-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 9 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 9 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 9), transparent calc(100% / 9 + var(--secondary-axes-width)), transparent calc(100% / 9 + var(--secondary-axes-width)));
}
.charts-css.radial.show-9-secondary-axes tbody::after, .charts-css.pie.show-9-secondary-axes tbody::after, .charts-css.polar.show-9-secondary-axes tbody::after, .charts-css.radar.show-9-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 10 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 10 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 10), transparent calc(100% / 10 + var(--secondary-axes-width)), transparent calc(100% / 10 + var(--secondary-axes-width)));
}
.charts-css.radial.show-10-secondary-axes tbody::after, .charts-css.pie.show-10-secondary-axes tbody::after, .charts-css.polar.show-10-secondary-axes tbody::after, .charts-css.radar.show-10-secondary-axes tbody::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
inset: 0;
z-index: 2;
border-radius: 50%;
background: repeating-radial-gradient(closest-side, transparent 0, transparent calc(100% / 11 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 11 - var(--secondary-axes-width)), var(--secondary-axes-color) calc(100% / 11), transparent calc(100% / 11 + var(--secondary-axes-width)), transparent calc(100% / 11 + var(--secondary-axes-width)));
}
/*
* Chart legend
*/
.charts-css.legend {
padding: 1rem;
border: var(--legend-border-width) var(--legend-border-style) var(--legend-border-color);
list-style: none;
font-size: 1rem;
}
.charts-css.legend li {
line-height: 2;
display: flex;
align-items: center;
}
.charts-css.legend li::before {
content: "";
display: inline-block;
vertical-align: middle;
margin-inline-end: 0.5rem;
border-width: 2px;
border-style: solid;
}
.charts-css.legend li:nth-child(10n+1)::before {
background-color: var(--color-1, transparent);
border-color: var(--border-color-1, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+2)::before {
background-color: var(--color-2, transparent);
border-color: var(--border-color-2, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+3)::before {
background-color: var(--color-3, transparent);
border-color: var(--border-color-3, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+4)::before {
background-color: var(--color-4, transparent);
border-color: var(--border-color-4, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+5)::before {
background-color: var(--color-5, transparent);
border-color: var(--border-color-5, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+6)::before {
background-color: var(--color-6, transparent);
border-color: var(--border-color-6, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+7)::before {
background-color: var(--color-7, transparent);
border-color: var(--border-color-7, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+8)::before {
background-color: var(--color-8, transparent);
border-color: var(--border-color-8, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+9)::before {
background-color: var(--color-9, transparent);
border-color: var(--border-color-9, var(--border-color, #000));
}
.charts-css.legend li:nth-child(10n+10)::before {
background-color: var(--color-10, transparent);
border-color: var(--border-color-10, var(--border-color, #000));
}
.charts-css.legend:not(.legend-inline) {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
}
.charts-css.legend.legend-inline {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.charts-css.legend.legend-inline li {
margin-inline-end: 1rem;
}
.charts-css.legend.legend-circle li::before {
width: 1rem;
height: 1rem;
border-radius: 50%;
}
.charts-css.legend.legend-ellipse li::before {
width: 2rem;
height: 1rem;
border-radius: 50%;
}
.charts-css.legend.legend-square li::before {
width: 1rem;
height: 1rem;
border-radius: 3px;
}
.charts-css.legend.legend-rhombus li::before {
width: 1rem;
height: 1rem;
border-radius: 3px;
transform: rotate(45deg) scale(0.85);
}
.charts-css.legend.legend-rectangle li::before {
width: 2rem;
height: 1rem;
border-radius: 3px;
}
.charts-css.legend.legend-line li::before {
width: 2rem;
height: 3px;
border-radius: 2px;
box-sizing: content-box;
}
/*
* Chart tooltips
*/
.charts-css .tooltip {
position: absolute;
z-index: 1;
inset-block-end: 50%;
inset-inline-start: 50%;
width: max-content;
padding: 5px 10px;
border-radius: 6px;
visibility: hidden;
opacity: 0;
transition: opacity 0.3s;
background-color: #555;
color: #fff;
text-align: center;
font-size: 0.9rem;
}
.charts-css .tooltip:dir(ltr), .charts-css.area:not(.reverse):not(.reverse-data) tbody tr td .data:dir(rtl), .charts-css.area:not(.reverse).reverse-data tbody tr td .data:dir(ltr), .charts-css.area.reverse:not(.reverse-data) tbody tr td .data:dir(rtl), .charts-css.area.reverse.reverse-data tbody tr td .data:dir(ltr), .charts-css.line:not(.reverse):not(.reverse-data) tbody tr td .data:dir(rtl), .charts-css.line:not(.reverse).reverse-data tbody tr td .data:dir(ltr), .charts-css.line.reverse:not(.reverse-data) tbody tr td .data:dir(rtl), .charts-css.line.reverse.reverse-data tbody tr td .data:dir(ltr) {
transform: translateX(-50%);
}
.charts-css .tooltip:dir(rtl), .charts-css.area:not(.reverse):not(.reverse-data) tbody tr td .data:dir(ltr), .charts-css.area:not(.reverse).reverse-data tbody tr td .data:dir(rtl), .charts-css.area.reverse:not(.reverse-data) tbody tr td .data:dir(ltr), .charts-css.area.reverse.reverse-data tbody tr td .data:dir(rtl), .charts-css.line:not(.reverse):not(.reverse-data) tbody tr td .data:dir(ltr), .charts-css.line:not(.reverse).reverse-data tbody tr td .data:dir(rtl), .charts-css.line.reverse:not(.reverse-data) tbody tr td .data:dir(ltr), .charts-css.line.reverse.reverse-data tbody tr td .data:dir(rtl) {
transform: translateX(50%);
}
.charts-css .tooltip::after {
content: "";
position: absolute;
inset-block-start: 100%;
inset-inline-start: 50%;
margin-inline-start: -5px;
border-width: 5px;
border-style: solid;
border-color: #555 transparent transparent;
}
.charts-css td:hover .tooltip {
visibility: visible;
opacity: 1;
}
/*
* Bar Chart
*/
.charts-css.bar tbody {
display: flex;
justify-content: space-between;
align-items: stretch;
width: 100%;
aspect-ratio: var(--aspect-ratio, auto);
}
.charts-css.bar tbody tr, .charts-css.column tbody tr, .charts-css.area tbody tr, .charts-css.line tbody tr {
position: relative;
display: flex;
justify-content: flex-start;
flex-grow: 1;
flex-shrink: 1;
flex-basis: 0;
overflow-wrap: anywhere;
}
.charts-css.bar tbody tr th {
position: absolute;
inset: 0;
width: var(--labels-size);
}
.charts-css.bar tbody tr td {
display: flex;
align-items: center;
width: calc(100% * var(--end, var(--size, 1)));
height: 100%;
min-height: 1rem;
padding-block-start: 10px;
padding-block-end: 10px;
position: relative;
}
.charts-css.bar:not(.reverse) tbody tr td {
justify-content: var(--data-position, flex-end);
}
.charts-css.bar:not(.reverse) tbody tr td .data.outside, .charts-css.bar.reverse tbody tr td .data.outside {
white-space: nowrap;
}
.charts-css.bar.reverse tbody tr td {
justify-content: var(--data-position, flex-start);
}
.charts-css.bar:not(.reverse) tbody tr, .charts-css.column.reverse tbody tr, .charts-css.area:not(.reverse) tbody tr td .data, .charts-css.area.reverse tbody tr, .charts-css.line:not(.reverse) tbody tr td .data, .charts-css.line.reverse tbody tr {
align-items: flex-start;
}
.charts-css.bar.reverse tbody tr, .charts-css.column:not(.reverse) tbody tr, .charts-css.area:not(.reverse) tbody tr, .charts-css.area.reverse tbody tr td .data, .charts-css.line:not(.reverse) tbody tr, .charts-css.line.reverse tbody tr td .data {
align-items: flex-end;
}
.charts-css.bar:not(.reverse-labels):not(.reverse) tbody tr, .charts-css.bar.reverse-labels.reverse tbody tr {
margin-inline-start: var(--labels-size);
}
.charts-css.bar:not(.reverse-labels):not(.reverse) tbody tr th {
margin-inline-end: auto;
margin-inline-start: calc(-1 * var(--labels-size) - var(--primary-axis-width));
}
.charts-css.bar:not(.reverse-labels).reverse tbody tr, .charts-css.bar.reverse-labels:not(.reverse) tbody tr {
margin-inline-end: var(--labels-size);
}
.charts-css.bar:not(.reverse-labels).reverse tbody tr th {
margin-inline-start: auto;
margin-inline-end: calc(-1 * var(--labels-size) - var(--primary-axis-width));
}
.charts-css.bar.reverse-labels:not(.reverse) tbody tr th {
margin-inline-start: auto;
margin-inline-end: calc(-1 * var(--labels-size));
}
.charts-css.bar.reverse-labels.reverse tbody tr th {
margin-inline-end: auto;
margin-inline-start: calc(-1 * var(--labels-size));
}
.charts-css.bar:not(.stacked) tbody tr td, .charts-css.column:not(.stacked) tbody tr td {
flex-grow: 1;
flex-shrink: 1;
flex-basis: 0;
}
.charts-css.bar.stacked tbody tr td, .charts-css.column.stacked tbody tr td {
flex-grow: unset;
flex-shrink: unset;
flex-basis: unset;
}
.charts-css.bar.stacked.reverse-datasets tbody tr, .charts-css.column:not(.reverse) tbody tr th, .charts-css.column.stacked.reverse-datasets tbody tr, .charts-css.area:not(.reverse) tbody tr th, .charts-css.line:not(.reverse) tbody tr th {
justify-content: flex-end;
}
.charts-css.bar:not(.reverse-data) tbody, .charts-css.bar:not(.reverse-datasets):not(.stacked) tbody tr, .charts-css.column:not(.reverse-datasets).stacked.reverse tbody tr, .charts-css.column.reverse-datasets.stacked:not(.reverse) tbody tr {
flex-direction: column;
}
.charts-css.bar.reverse-data tbody, .charts-css.bar.reverse-datasets:not(.stacked) tbody tr, .charts-css.column:not(.reverse-datasets).stacked:not(.reverse) tbody tr, .charts-css.column.reverse-datasets.stacked.reverse tbody tr {
flex-direction: column-reverse;
}
.charts-css.bar:not(.reverse-datasets).stacked:not(.reverse) tbody tr, .charts-css.bar.reverse-datasets.stacked.reverse tbody tr, .charts-css.column:not(.reverse-labels):not(.reverse-data) tbody, .charts-css.column.reverse-labels.reverse-data tbody, .charts-css.column:not(.reverse-datasets):not(.stacked) tbody tr, .charts-css.area:not(.reverse-data) tbody, .charts-css.area:not(.reverse-datasets) tbody tr, .charts-css.line:not(.reverse-data) tbody, .charts-css.line:not(.reverse-datasets) tbody tr {
flex-direction: row;
}
.charts-css.bar:not(.reverse-datasets).stacked.reverse tbody tr, .charts-css.bar.reverse-datasets.stacked:not(.reverse) tbody tr, .charts-css.column:not(.reverse-labels).reverse-data tbody, .charts-css.column.reverse-labe