1
0
mirror of https://github.com/tabler/tabler.git synced 2026-08-08 04:12:26 +04:00
Files
tabler/core/scss/ui/_segmented.scss
T
2026-08-01 19:06:39 +02:00

106 lines
3.3 KiB
SCSS

@use '../config' as *;
.nav-segmented {
--#{$prefix}nav-bg: var(--#{$prefix}bg-surface-tertiary);
--#{$prefix}nav-padding: #{$nav-segmented-padding};
--#{$prefix}nav-height: #{$nav-segmented-height};
--#{$prefix}nav-gap: #{$nav-segmented-gap};
--#{$prefix}nav-active-bg: var(--#{$prefix}bg-surface);
--#{$prefix}nav-font-size: inherit;
--#{$prefix}nav-radius: #{$nav-segmented-radius};
--#{$prefix}nav-link-disabled-color: var(--#{$prefix}disabled-color);
--#{$prefix}nav-link-gap: #{$nav-segmented-link-gap};
--#{$prefix}nav-link-padding-x: #{$nav-segmented-link-padding-x};
--#{$prefix}nav-link-icon-size: #{$nav-segmented-link-icon-size};
--#{$prefix}nav-link-icon-margin: #{$nav-segmented-icon-margin};
display: inline-flex;
flex-wrap: wrap;
gap: var(--#{$prefix}nav-gap);
padding: var(--#{$prefix}nav-padding);
list-style: none;
background: var(--#{$prefix}nav-bg);
@include border-radius(calc(var(--#{$prefix}nav-radius) + var(--#{$prefix}nav-padding)));
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.04);
.nav-link {
display: inline-flex;
gap: calc(#{$nav-segmented-link-gap} + var(--#{$prefix}nav-link-gap));
align-items: center;
margin: 0;
font-size: var(--#{$prefix}nav-font-size);
min-width: calc(var(--#{$prefix}nav-height) - 2 * var(--#{$prefix}nav-padding));
height: calc(var(--#{$prefix}nav-height) - 2 * var(--#{$prefix}nav-padding));
padding: 0 calc(var(--#{$prefix}nav-link-padding-x) - 2px);
border: 1px solid transparent;
background: transparent;
color: var(--#{$prefix}secondary);
text-align: center;
text-decoration: none;
white-space: nowrap;
cursor: pointer;
transition:
background-color $transition-time,
color $transition-time;
@include border-radius(var(--#{$prefix}nav-radius));
flex-grow: 1;
justify-content: center;
&:hover,
&.hover {
background: rgba(0, 0, 0, 0.04);
color: var(--#{$prefix}body-color);
}
&.disabled,
&:disabled {
color: var(--#{$prefix}nav-link-disabled-color);
cursor: not-allowed;
}
}
.nav-link-input:checked + .nav-link,
.nav-link.active {
color: var(--#{$prefix}body-color);
background: var(--#{$prefix}nav-active-bg);
border-color: var(--#{$prefix}border-color);
}
.nav-link-input {
display: none;
}
.nav-link-icon {
width: var(--#{$prefix}nav-link-icon-size);
height: var(--#{$prefix}nav-link-icon-size);
margin: 0 var(--#{$prefix}nav-link-icon-margin);
color: inherit;
}
}
.nav-segmented-vertical {
flex-direction: column;
.nav-link {
justify-content: start;
}
}
.nav-sm {
--#{$prefix}nav-height: #{$nav-segmented-height-sm};
--#{$prefix}nav-font-size: var(--tblr-font-size-h5);
--#{$prefix}nav-radius: #{$nav-segmented-radius-sm};
--#{$prefix}nav-link-padding-x: #{$nav-segmented-link-padding-x-sm};
--#{$prefix}nav-link-gap: #{$nav-segmented-link-gap-sm};
--#{$prefix}nav-link-icon-size: #{$nav-segmented-link-icon-size-sm};
}
.nav-lg {
--#{$prefix}nav-height: #{$nav-segmented-height-lg};
--#{$prefix}nav-font-size: var(--tblr-font-size-h3);
--#{$prefix}nav-radius: #{$nav-segmented-radius-lg};
--#{$prefix}nav-link-padding-x: #{$nav-segmented-link-padding-x-lg};
--#{$prefix}nav-link-gap: #{$nav-segmented-link-gap-lg};
--#{$prefix}nav-link-icon-size: #{$nav-segmented-link-icon-size-lg};
}