Files
Styleguide/styles/41-components-charts.css
T

293 lines
6.7 KiB
CSS

/* ========================================================= */
/* Components: Charts */
/* ========================================================= */
.sg-score-bar-list {
display: grid;
grid-template-columns: var(--layout-score-bar-item-columns);
column-gap: var(--layout-score-bar-item-gap);
row-gap: var(--spacing-small);
align-items: center;
width: 100%;
}
.sg-score-bar-item {
display: contents;
}
.sg-score-bar-list--single-score {
--layout-score-bar-item-columns: var(--layout-score-bar-item-single-score-columns);
}
.sg-score-state--positive,
.sg-score-state--neutral,
.sg-score-state--negative {
margin: 0;
justify-self: end;
text-align: right;
}
.sg-score-state--positive {
color: var(--text-score-state-positive);
}
.sg-score-state--neutral {
color: var(--text-score-state-neutral);
}
.sg-score-state--negative {
color: var(--text-score-state-negative);
}
.sg-score-bar-label {
margin: 0;
color: var(--text-chart-default);
}
.sg-score-bar {
position: relative;
height: var(--score-bar-height);
overflow: visible;
border-radius: var(--radius-graph-bar);
background: var(--surface-score-bar-track);
}
.sg-score-bar--marker-mid {
--score-marker-position: 50%;
}
.sg-score-bar--no-value {
display: block;
}
.sg-score-bar__value {
height: 100%;
border-radius: var(--radius-graph-bar);
}
.sg-score-bar__value--w96 { width: 96%; }
.sg-score-bar__value--w64 { width: 64%; }
.sg-score-bar__value--w35 { width: 35%; }
.sg-score-bar__value--positive { background: var(--chart-value-positive); }
.sg-score-bar__value--neutral { background: var(--chart-value-neutral); }
.sg-score-bar__value--negative { background: var(--chart-value-negative); }
.sg-score-bar__median-marker {
position: absolute;
top: 50%;
left: var(--score-marker-position);
width: var(--score-marker-width);
height: var(--score-marker-height);
border-radius: 0;
background: var(--chart-marker-line);
transform: translate(-50%, -50%);
}
.sg-score-bar__median-marker--outline {
border: var(--chart-grid-line-width) solid var(--chart-marker-line);
background: transparent;
}
.sg-score-bar__empty-state {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: flex-start;
padding-inline-start: var(--spacing-small);
color: var(--text-chart-default);
font-family: var(--font-family-base);
font-size: var(--font-size-small);
font-weight: var(--font-weight-regular);
line-height: var(--line-height-base);
pointer-events: none;
}
.sg-chart-preview-area {
min-width: var(--layout-object-card-min-width);
max-width: var(--layout-object-card-max-width);
width: 100%;
}
.sg-bar-chart {
display: block;
width: 100%;
box-sizing: border-box;
padding: 0;
background: var(--surface-chart-area);
color: var(--text-chart-default);
}
.sg-chart-frame {
display: grid;
grid-template-columns: min-content 1fr;
column-gap: var(--chart-axis-label-gap);
height: calc(var(--chart-height-bar) * 0.7);
}
.sg-chart-y-labels {
position: relative;
width: min-content;
margin: 0;
padding: 0;
list-style: none;
color: var(--text-chart-default);
text-align: right;
pointer-events: none;
}
.sg-chart-y-labels li {
position: absolute;
white-space: nowrap;
right: 0;
top: var(--chart-label-position);
transform: translateY(-50%);
}
.sg-chart-x-labels {
display: grid;
grid-template-columns: repeat(10, 1fr);
margin: var(--spacing-small) 0 var(--spacing-large) 0;
padding: 0 0 0 calc(var(--interaction-height) + var(--chart-axis-label-gap));
list-style: none;
color: var(--text-chart-default);
text-align: center;
}
.sg-chart-x-labels--line {
position: relative;
display: block;
height: var(--spacing-large);
grid-template-columns: none;
}
.sg-chart-x-labels--line li {
position: absolute;
left: var(--chart-label-position);
transform: translateX(-50%);
}
.sg-chart-y-labels li,
.sg-chart-x-labels li {
font-family: var(--font-family-base);
font-size: var(--font-size-small);
font-weight: var(--font-weight-regular);
line-height: var(--line-height-base);
}
.sg-bar-chart__svg,
.sg-line-chart__svg {
display: block;
width: 100%;
height: 100%;
overflow: hidden;
}
.sg-bar-chart__grid-line,
.sg-line-chart__grid-line {
stroke: var(--chart-grid-line);
stroke-width: var(--chart-grid-line-width);
}
.sg-bar-chart__axis-line,
.sg-line-chart__axis-line {
stroke: var(--chart-axis-line);
stroke-width: var(--chart-grid-line-width);
}
.sg-bar-chart__bar {
rx: var(--radius-graph-bar);
ry: var(--radius-graph-bar);
}
.sg-bar-chart__bar--value { fill: var(--chart-value-primary); }
.sg-bar-chart__bar--median { fill: var(--chart-value-reference); }
.sg-bar-chart__label,
.sg-line-chart__label { display: none; }
.sg-bar-chart__legend,
.sg-line-chart__legend {
display: flex;
gap: var(--spacing-large);
padding-left: 0;
margin-left: 0;
}
.sg-bar-chart__legend {
flex-wrap: wrap;
margin-top: 0;
color: var(--text-chart-default);
}
.sg-line-chart__legend {
margin-top: var(--spacing-large);
}
.sg-bar-chart__legend-item,
.sg-line-chart__legend-item {
display: inline-flex;
align-items: center;
gap: var(--spacing-small);
color: var(--text-chart-default);
font-family: var(--font-family-base);
font-size: var(--font-size-small);
font-weight: var(--font-weight-regular);
line-height: var(--line-height-base);
}
.sg-bar-chart__legend-swatch {
display: inline-block;
width: var(--interaction-height);
height: var(--interaction-height);
border-radius: var(--radius-interaction);
}
.sg-bar-chart__legend-swatch--value { background: var(--chart-value-primary); }
.sg-bar-chart__legend-swatch--median { background: var(--chart-value-reference); }
.sg-line-chart {
width: 100%;
box-sizing: border-box;
padding: 0;
background: var(--surface-chart-area);
color: var(--text-chart-default);
}
.sg-chart-frame--line {
height: calc(var(--chart-height-line) * 0.7);
}
.sg-line-chart__line {
fill: none;
stroke: var(--chart-value-primary);
stroke-width: var(--chart-line-width);
stroke-linecap: round;
stroke-linejoin: round;
}
.sg-line-chart__median-line {
fill: none;
stroke: var(--chart-median-line);
stroke-width: var(--chart-grid-line-width);
stroke-dasharray: var(--sandwich-line-height) var(--sandwich-line-height);
}
.sg-line-chart__legend-line {
display: inline-block;
width: var(--spacing-large);
height: var(--chart-line-width);
background: var(--chart-value-primary);
}
.sg-line-chart__legend-line--median {
height: var(--chart-grid-line-width);
background: repeating-linear-gradient(
to right,
var(--chart-median-line) 0,
var(--chart-median-line) var(--sandwich-line-height),
transparent var(--sandwich-line-height),
transparent calc(var(--sandwich-line-height) * 2)
);
}