mirror of
https://github.com/tabler/tabler.git
synced 2026-10-12 13:17:00 +04:00
58 lines
1.6 KiB
SCSS
58 lines
1.6 KiB
SCSS
@use '../config' as *;
|
|
|
|
.signal {
|
|
// scss-docs-start signal-css-vars
|
|
--signal-size: #{$signal-size};
|
|
--signal-color: #{$text-secondary};
|
|
--signal-bars: 3;
|
|
--signal-bar-border-radius: #{$signal-bar-border-radius};
|
|
--signal-bar-inactive-opacity: #{$signal-bar-inactive-opacity};
|
|
--signal-gap: calc(var(--signal-size) * #{$signal-gap-ratio});
|
|
--signal-padding-y: calc(var(--signal-size) * #{$signal-padding-y-ratio});
|
|
--signal-padding-x: calc(var(--signal-size) * #{$signal-padding-x-ratio});
|
|
// scss-docs-end signal-css-vars
|
|
display: inline-flex;
|
|
flex-shrink: 0;
|
|
gap: var(--signal-gap);
|
|
align-items: flex-end;
|
|
width: var(--signal-size);
|
|
height: var(--signal-size);
|
|
padding: var(--signal-padding-y) var(--signal-padding-x);
|
|
vertical-align: middle;
|
|
}
|
|
|
|
// Each bar takes its share of the full height: the first of three is a third, the last is full
|
|
.signal-bar {
|
|
--signal-bar-index: 1;
|
|
flex: 1;
|
|
height: calc(100% * var(--signal-bar-index) / var(--signal-bars));
|
|
background: var(--signal-color);
|
|
opacity: var(--signal-bar-inactive-opacity);
|
|
@include border-radius(var(--signal-bar-border-radius));
|
|
|
|
&.active {
|
|
opacity: 1;
|
|
}
|
|
|
|
@for $index from 2 through $signal-max-bars {
|
|
&:nth-child(#{$index}) {
|
|
--signal-bar-index: #{$index};
|
|
}
|
|
}
|
|
}
|
|
|
|
// The number of bars is read from the markup, so the steps stay even for any count
|
|
@for $count from 2 through $signal-max-bars {
|
|
@if $count != 3 {
|
|
.signal:has(> .signal-bar:last-child:nth-child(#{$count})) {
|
|
--signal-bars: #{$count};
|
|
}
|
|
}
|
|
}
|
|
|
|
@each $name, $color in $theme-colors {
|
|
.signal-#{$name} {
|
|
--signal-color: var(--#{$name});
|
|
}
|
|
}
|