@abw/badger-react-ui
Version:
React UI Components
1,083 lines (1,050 loc) • 30.2 kB
CSS
/* config/all.scss */
/* config/namespaces.scss */
/* config/units.scss */
:where(html) {
--unit-size: 1em;
--unit-line: 1.5;
--unit-space: 0.25;
--unit-margin: 0.25rem;
--unit-padding: 0.25em;
--unit-padding-v: 0.25em;
--unit-padding-h: 0.5em;
--unit-radius: 0.25rem;
--unit-transition: 0.3s;
}
:where(.alert) {
--dismiss-color: var(--color-90);
--dismiss-hover: var(--color-100);
--transition-time: var(--unit-transition);
--icon-margin: 0.5em;
--icon-size: 2em;
--icon-padding: 0.125em;
--icon-gap: 1.5em;
--icon-align: flex-start;
--icon-color: var(--color-100);
--icon-background: var(--color-50);
--icon-border-color: var(--color-80);
--icon-border-width: 0.125em;
--icon-ring-color: var(--color-70);
--icon-ring-width: 0.125em;
}
.alert h3 {
font-size: 1.25em;
}
.alert .headline .on-left {
margin-right: var(--icon-margin);
margin-left: calc(var(--icon-margin) + -1 * var(--padding-h));
}
.alert .headline .on-right {
margin-left: var(--icon-margin);
margin-right: calc(var(--icon-margin) + -1 * var(--padding-h));
}
.alert.dismissable .icon.dismiss {
color: var(--dismiss-color);
transition: var(--transition-time) color;
}
.alert.dismissable .icon.dismiss:hover {
color: var(--dismiss-hover);
}
.alert.revealable .headline:hover {
--headline-back: var(--color-45);
transition: var(--transition-time) background-color;
cursor: pointer;
}
.alert.revealable:not(.revealed) {
padding-bottom: 0;
}
.alert.revealable:not(.revealed) .headline {
margin-bottom: 0;
}
.alert .side-icon {
display: flex;
align-items: var(--icon-align);
gap: var(--icon-gap);
}
.alert .side-icon > .icon {
color: var(--icon-color);
background-color: var(--icon-background);
font-size: var(--icon-size);
margin: 0.25em;
padding: var(--icon-padding);
border: var(--icon-border-width) solid var(--icon-border-color);
box-shadow: 0 0 0 var(--icon-ring-width) var(--icon-ring-color);
border-radius: 50%;
}
.alert.compact {
--icon-size: 1em;
--icon-gap: 0.5em;
--icon-align: center;
}
[data-theme=dark] .alert {
--icon-color: var(--color-80);
--icon-background: var(--color-40);
--icon-ring-color: var(--color-30);
--icon-border-color: var(--color-20);
}
section.datatable {
--header-icon-color: var(--brand-30);
--header-icon-opacity: 0.2;
--header-icon-hover-opacity: 0.5;
--header-size: 0.875em;
--filters-shade: var(--color-95);
--filtering-color: var(--brand-70);
--filtering-hover: var(--brand-80);
--has-filters-color: var(--red-60);
--has-filters-hover: var(--red-50);
--no-rows-color: var(--red-20);
--no-rows-background: var(--red-90);
--sorting-shade-1: var(--color-95);
--sorting-shade-2: var(--color-90);
--sorting-shade-3: var(--color-80);
--sorting-shade-4: var(--color-75);
--filtering-mix: 5%;
--filtering-stripe: var(--color-50);
--filtering-gradient-width: 16px;
--filtering-gradient-angle: 30deg;
--filtering-gradient-angle1: calc(90deg + var(--filtering-gradient-angle));
--filtering-gradient-angle2: calc(90deg - var(--filtering-gradient-angle));
}
section.datatable > header {
margin-bottom: 0.5rem;
}
section.datatable > header .controls .trigger:hover {
cursor: pointer;
}
section.datatable > header .controls .trigger:hover path, section.datatable > header .controls .trigger:hover rect {
fill: var(--filtering-hover);
}
section.datatable > header .controls .filtering.trigger path {
fill: var(--filtering-color);
}
section.datatable > header .controls .has-filters.trigger path {
fill: var(--has-filters-color);
}
section.datatable > header .controls .has-filters.trigger:hover path, section.datatable > header .controls .has-filters.trigger:hover rect {
fill: var(--has-filters-hover);
}
section.datatable > footer {
margin-top: 0.5rem;
}
section.datatable table {
overflow: visible;
}
section.datatable table thead {
font-size: var(--header-size);
}
section.datatable table th.heading {
--header-stripe: var(--background-color);
--header-gradient: repeating-linear-gradient(
var(--filtering-gradient-angle1),
var(--background-color),
var(--background-color) var(--filtering-gradient-width),
var(--header-stripe) var(--filtering-gradient-width),
var(--header-stripe) calc(var(--filtering-gradient-width) * 2)
);
background-color: var(--background-color);
background-image: var(--header-gradient);
}
section.datatable table th.heading.sortable {
cursor: pointer;
}
section.datatable table th.heading .sort-icon, section.datatable table th.heading .filter-icon {
opacity: var(--header-icon-opacity);
transition: 0.3s opacity;
color: var(--header-icon-color);
}
section.datatable table th.heading.sortable:hover {
--background-color: var(--sorting-shade-4);
}
section.datatable table th.heading.sortable:hover .sort-icon {
opacity: var(--header-icon-hover-opacity);
}
section.datatable table th.heading.sorting {
--background-color: var(--sorting-shade-3);
}
section.datatable table th.heading.sorting .sort-icon {
opacity: 1;
}
section.datatable table th.heading.filtering {
--header-stripe: color-mix(
in srgb,
var(--background-color),
var(--filtering-stripe) var(--filtering-mix)
) ;
}
section.datatable table th.heading.text-right .flex {
flex-direction: row-reverse;
}
section.datatable table th.heading.text-center .flex {
padding-left: 1em;
}
section.datatable table thead tr.filters th {
padding: 0px 4px 0px 0px;
font-weight: normal;
background-color: var(--filters-shade);
}
section.datatable table thead tr.filters th input, section.datatable table thead tr.filters th select, section.datatable table thead tr.filters th label, section.datatable table thead tr.filters th .inputs {
border-color: transparent;
}
section.datatable table thead tr.filters th svg.icon {
color: var(--header-icon-color);
opacity: var(--header-icon-opacity);
}
section.datatable table thead tr.filters th.filtering svg.icon {
opacity: var(--header-icon-hover-opacity);
}
section.datatable table thead tr.filters th.filtering svg.icon:hover {
opacity: 1;
}
section.datatable table tbody tr td {
--cell-stripe: var(--background-color);
--cell-gradient: repeating-linear-gradient(
var(--filtering-gradient-angle1),
var(--background-color),
var(--background-color) var(--filtering-gradient-width),
var(--cell-stripe) var(--filtering-gradient-width),
var(--cell-stripe) calc(var(--filtering-gradient-width) * 2)
);
background-color: var(--background-color);
background-image: var(--cell-gradient);
}
section.datatable table tr:nth-child(odd) td,
section.datatable table tr:nth-child(even) th {
--filtering-gradient-angle1: var(--filtering-gradient-angle2);
}
section.datatable table tbody tr.no-rows td {
text-align: center;
--color: var(--no-rows-color);
--background-color: var(--no-rows-background);
}
section.datatable table tbody tr td.sorting {
font-weight: 500;
--background-color: var(--sorting-shade-1);
}
section.datatable table tbody tr td.filtering {
--cell-stripe: color-mix(
in srgb,
var(--background-color),
var(--filtering-stripe) var(--filtering-mix)
) ;
}
section.datatable table.striped tbody tr:nth-child(even) td.sorting {
--background-color: var(--sorting-shade-2);
}
section.datatable table.selectable tbody tr:hover:not(.unselectable) td, section.datatable table.selectable tbody tr:hover:not(.unselectable) th {
--background-color: var(--selectable-background);
}
section.datatable table.selectable tbody tr:hover:not(.unselectable) td > *:not(dialog), section.datatable table.selectable tbody tr:hover:not(.unselectable) th > *:not(dialog) {
background-color: transparent;
color: var(--selectable-color);
transition: background-color 0.3s ease;
}
section.datatable table.selectable tbody tr:hover:not(.unselectable) td > .badge, section.datatable table.selectable tbody tr:hover:not(.unselectable) td > button, section.datatable table.selectable tbody tr:hover:not(.unselectable) td > .button, section.datatable table.selectable tbody tr:hover:not(.unselectable) td > .inverse, section.datatable table.selectable tbody tr:hover:not(.unselectable) th > .badge, section.datatable table.selectable tbody tr:hover:not(.unselectable) th > button, section.datatable table.selectable tbody tr:hover:not(.unselectable) th > .button, section.datatable table.selectable tbody tr:hover:not(.unselectable) th > .inverse {
border-color: color-mix(in srgb, var(--selectable-color), transparent 30%);
background-color: color-mix(in srgb, var(--selectable-color), transparent 80%);
}
section.datatable .columns.menu .icons {
display: inline-grid;
}
section.datatable .columns.menu .item:hover label {
color: var(--active-color);
transition: color 0.1s;
}
[data-theme=dark] section.datatable {
--header-icon-color: var(--brand-70);
--sorting-shade-1: var(--color-10);
--sorting-shade-2: var(--color-15);
--sorting-shade-3: var(--color-20);
--sorting-shade-4: var(--color-25);
--filters-shade: var(--color-15);
--has-filters-color: var(--red-40);
--no-rows-color: var(--red-80);
--no-rows-background: var(--red-15);
--filtering-mix: 11%;
}
:where(.details) {
--icon-transition: 0.3s;
}
.details .summary {
display: flex;
gap: 0.25em;
align-items: center;
padding-right: var(--body-padding);
}
.details .summary .icon {
transition: all var(--icon-transition);
}
.details.open > .summary .icon {
transform: rotate(var(--icon-rotate, 0));
}
.details.wide-summary .summary .summary-text {
flex-grow: 1;
}
:where(.dropdown) {
--menu-margin: 0.5em;
--max-height: 50vh;
--trigger-padding: var(--input-padding-v) var(--input-padding-h);
--trigger-line-height: var(--input-line-height);
--trigger-border-radius: var(--input-border-radius);
--trigger-border-width: var(--input-border-width);
--focus-ring-outline: 0 0 0 var(--input-focus-ring-width) var(--input-focus-ring-color);
--focus-ring-inline: 0 0 0 var(--input-focus-ring-gap) var(--input-focus-gap-color);
--focus-ring: var(--focus-ring-inline), var(--focus-ring-outline);
--icon-margin: 0.5em;
--icon-transition: 0.3s;
--body-background: var(--color-100);
--body-padding: 0.5em 0.5em;
}
:where([data-theme=dark] .dropdown) {
--body-background: var(--color-0);
}
.dropdown {
--menu-z-index: 100;
--safe-z-index: 99;
position: relative;
overflow: visible;
display: inline-block;
}
.dropdown .trigger {
position: relative;
white-space: nowrap;
cursor: pointer;
}
.dropdown .trigger:not(button):not(.button) {
display: inline-block;
padding: var(--trigger-padding);
border-radius: var(--trigger-border-radius);
font-size: 1em;
line-height: var(--trigger-line-height);
border: var(--trigger-border-width) solid transparent;
}
.dropdown .trigger:not(button):not(.button):focus:not(.no-focus) {
--color: var(--input-focus-color);
--border-color: var(--input-focus-border-color);
--background-color: var(--input-focus-background-color);
outline: none;
box-shadow: var(--focus-ring);
}
.dropdown .trigger.button.icon svg.icon {
margin-left: 0;
margin-right: 0;
}
.dropdown .trigger.button svg.icon.on-right {
margin-left: var(--icon-margin);
margin-right: var(--icon-pull);
}
.dropdown .trigger .icon {
transition: all var(--icon-transition);
}
.dropdown.open .trigger .icon {
transform: rotate(var(--icon-rotate, 0));
}
.dropdown.open .trigger .safe-area {
display: block;
position: absolute;
left: 0;
right: 0;
top: 100%;
height: calc(var(--menu-margin) + 10px);
z-index: var(--safe-z-index);
}
.dropdown .menu, .dropdown .body {
width: max-content;
left: 0;
right: auto;
z-index: var(--menu-z-index);
overflow-y: scroll;
max-height: var(--max-height);
box-shadow: var(--shadow-2);
background-color: var(--item-background);
}
.dropdown .body {
background-color: var(--body-background);
padding: var(--body-padding);
}
.dropdown .body .fluid {
display: block;
width: auto ;
}
.dropdown.right .menu, .dropdown.right .body {
right: 0;
left: auto;
}
.dropdown.wide .menu, .dropdown.wide .body {
width: 100%;
left: 0;
right: 0;
}
.multiselect {
--selection-color: var(--grey-20);
--selection-border: var(--grey-80);
--selection-background: var(--grey-95);
--selection-radius: 0.25rem;
--selection-padding: 0.25em 0.5em;
--unselect-color: var(--red-20);
--unselect-border: var(--red-80);
--unselect-background: var(--red-95);
--sortable-color: var(--orange-20);
--sortable-icon: var(--orange-50);
--sortable-border: var(--orange-80);
--sortable-background: var(--orange-95);
--sorting-color: var(--green-20);
--sorting-icon: var(--green-50);
--sorting-border: var(--green-80);
--sorting-background: var(--green-95);
}
.multiselect .option {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5rem;
}
.multiselect .option > .icon, .multiselect .option > .no-icon {
flex-basis: 1.5rem;
}
.multiselect .option > :first-child {
flex-basis: 100%;
}
.multiselect .selections {
display: flex;
align-items: flex-start;
flex-wrap: wrap;
gap: 0.5rem;
margin-top: 0.5rem;
}
.multiselect .selections .selection {
display: flex;
align-items: center;
gap: 0.25rem;
font-size: var(--size-small);
color: var(--selection-color);
background-color: var(--selection-background);
border: 1px solid var(--selection-border);
border-radius: var(--selection-radius);
padding: var(--selection-padding);
}
.multiselect .selections .selection:hover {
cursor: pointer;
color: var(--unselect-color);
background-color: var(--unselect-background);
border-color: var(--unselect-border);
}
.multiselect .selections .sortable.item .selection .drag-icon {
padding-right: 0.5em;
}
.multiselect .selections .sortable.item .selection .drag-icon:hover {
color: var(--sortable-icon);
}
.multiselect .selections .sortable.item .selection:has(.drag-icon:hover) {
color: var(--sortable-color);
background-color: var(--sortable-background);
border-color: var(--sortable-border);
}
.multiselect .selections .sortable.item[aria-pressed=true] .selection,
.multiselect .selections .sortable.item[aria-pressed=true] .selection:has(.drag-icon:hover) {
color: var(--sorting-color);
background-color: var(--sorting-background);
border-color: var(--sorting-border);
}
.multiselect .selections .sortable.item[aria-pressed=true] .selection .drag-icon:hover,
.multiselect .selections .sortable.item[aria-pressed=true] .selection:has(.drag-icon:hover) .drag-icon:hover {
color: var(--sorting-icon);
}
[data-theme=dark] .multiselect {
--selection-color: var(--grey-80);
--selection-border: var(--grey-20);
--selection-background: var(--grey-10);
--unselect-color: var(--red-90);
--unselect-border: var(--red-25);
--unselect-background: var(--red-10);
--sortable-color: var(--orange-80);
--sortable-border: var(--orange-20);
--sortable-background: var(--orange-10);
--sorting-color: var(--green-80);
--sorting-border: var(--green-20);
--sorting-background: var(--green-10);
}
.pager {
user-select: none;
display: flex;
justify-content: space-between;
gap: 0.5em;
}
.pager .pages {
display: flex;
gap: 0.5em;
}
:where(.range) {
--track-background: var(--color-85);
--track-border: var(--color-70);
--track-fill: var(--color-50);
--track-dragging: var(--color-55);
--thumb-color: var(--track-fill);
--shadow-color: color-mix(in srgb, var(--thumb-color), black 20%);
--shadow-focus-color: color-mix(in srgb, var(--thumb-color), transparent 70%);
--step-color: var(--color-50);
--step-background: var(--color-90);
--step-hover-color: var(--color-30);
--step-hover-background: var(--color-80);
--step-disabled-color: var(--grey-70);
--step-disabled-background: var(--grey-95);
--tick-color: var(--track-border);
--value-color: var(--grey-20);
--scale-color: var(--grey-40);
}
:where([data-theme=dark] .range) {
--track-background: var(--color-15);
--track-border: var(--color-35);
--track-fill: var(--color-50);
--shadow-color: color-mix(in srgb, var(--thumb-color), white 20%);
--shadow-focus-color: color-mix(in srgb, var(--thumb-color), transparent 55%);
--step-color: var(--color-60);
--step-background: var(--color-15);
--step-hover-color: var(--color-70);
--step-hover-background: var(--color-25);
--step-disabled-color: var(--grey-30);
--step-disabled-background: var(--grey-5);
--value-color: var(--grey-80);
}
.range {
--position: 0.5;
--min-position: 0.25;
--max-position: 0.75;
--min-percent: 0;
--max-percent: 100%;
--track-border-width: 1px;
--track-height: calc(0.5em + var(--track-border-width) * 2);
--track-half: calc(var(--track-height) / 2);
--selection-border-offset: 0px;
--thumb-size: calc(1em + var(--track-border-width) * 2);
--thumb-size: 1.25em;
--thumb-half: calc(var(--thumb-size) / 2);
--thumb-opacity: 1;
--track-offset: var(--track-border-width);
--thumbs-offset: calc(var(--thumb-half) - var(--track-border-width));
--shadow-size: 0px;
--shadow-focus-size: 6px;
--z-index: 100;
--percent: 50%;
--steps: 1;
--ticks-offset: calc(var(--thumbs-offset) + var(--track-border-width));
--tick-length: 4px;
--tick-width: 1px;
--tick-radius: 1px;
--tick-offset: calc(0px - var(--tick-length));
--transition-time: var(--unit-transition);
--selection-background: var(--track-fill);
--inputs-gap: 1rem;
--gap: 0.75rem;
width: 100%;
display: grid;
grid-template-columns: repeat(1, minmax(0, 1fr));
gap: var(--gap);
touch-action: none;
user-select: none;
padding: 0.25em 0;
}
.range:has(.range-values.smaller, .range-values.smallest) {
padding-top: 0em;
}
.range:has(.range-values.large) {
padding-top: 0.5em;
}
.range:has(.range-values.larger) {
padding-top: 0.75em;
}
.range:has(.range-values.largest) {
padding-top: 1em;
}
.range.range-dragging {
--selection-background: var(--track-dragging);
--thumb-color: var(--track-dragging);
}
.range.range-has-scale .range-slider {
margin-bottom: 1em;
}
.range.range-has-scale .range-slider:has(.range-scale-value.small) {
margin-bottom: 1.25em;
}
.range.range-has-scale .range-slider:has(.range-scale-value.medium) {
margin-bottom: 1.5em;
}
.range.range-has-scale .range-slider:has(.range-scale-value.large) {
margin-bottom: 1.75em;
}
.range.range-has-scale .range-slider:has(.range-scale-value.larger) {
margin-bottom: 2em;
}
.range.range-has-scale .range-slider:has(.range-scale-value.largest) {
margin-bottom: 2.5em;
}
.range .range-slider {
width: 100%;
height: 1em;
position: relative;
}
.range .range-track {
cursor: pointer;
position: absolute;
left: var(--track-offset);
right: var(--track-offset);
top: 50%;
transform: translateY(-50%);
height: var(--track-height);
border-radius: var(--track-half);
border: var(--track-border-width) solid var(--track-border);
background-color: var(--track-background);
overflow: visible;
}
.range .range-track .range-selection {
position: absolute;
top: var(--selection-border-offset);
bottom: var(--selection-border-offset);
left: calc(var(--selection-border-offset) + var(--min-percent));
right: calc(100% - var(--max-percent));
border-radius: var(--track-half);
border-color: var(--selection-background);
background-color: var(--selection-background);
transition: background-color var(--transition-time);
}
.range .range-track .range-thumbs {
position: absolute;
left: var(--thumbs-offset);
right: var(--thumbs-offset);
top: 0px;
bottom: 0px;
}
.range .range-thumb {
position: absolute;
user-select: none;
top: 50%;
transform: translate(-50%, -50%);
width: var(--thumb-size);
height: var(--thumb-size);
border-radius: var(--thumb-half);
box-shadow: 0 0 0 var(--shadow-size) var(--shadow-color);
transition: box-shadow 300ms, opacity 300ms;
background-color: var(--thumb-color);
opacity: var(--thumb-opacity);
transition: background-color var(--transition-time);
}
.range .range-thumb.min {
left: var(--min-percent);
}
.range .range-thumb.max {
left: var(--max-percent);
}
.range .range-thumb:hover, .range .range-thumb:focus, .range .range-thumb.dragging {
outline: none;
opacity: 1;
--shadow-size: var(--shadow-focus-size);
--shadow-color: var(--shadow-focus-color);
}
.range .range-limits {
display: flex;
justify-content: space-between;
align-items: flex-start;
line-height: 1;
margin-top: -0.5em;
user-select: none;
}
.range .range-scale-value {
color: var(--scale-color);
}
.range .range-ticks {
position: absolute;
top: var(--tick-offset);
bottom: var(--tick-offset);
left: var(--ticks-offset);
right: var(--ticks-offset);
display: flex;
justify-content: space-between;
}
.range .range-ticks .range-tick {
position: relative;
height: 100%;
width: var(--tick-width);
background-color: var(--tick-color);
border-radius: var(--tick-radius);
--transform-scale: 0;
}
.range .range-ticks .range-tick:not(:first-child) {
--transform-scale: -50%;
}
.range .range-ticks .range-tick:first-child {
--transform-scale: -0.5ch;
}
.range .range-ticks .range-tick:last-child {
--transform-scale: calc(-100% + 0.5ch);
}
.range .range-ticks .range-tick .range-scale-value {
position: absolute;
left: 0;
top: 100%;
transform: translateX(var(--transform-scale));
}
.range .range-inputs {
display: flex;
justify-content: space-between;
gap: var(--inputs-gap);
}
.range .range-inputs.center, .range .range-inputs.centre {
justify-content: center;
}
.range .range-inputs.space {
justify-content: space-between;
}
.range .range-inputs.left {
justify-content: flex-start;
}
.range .range-inputs.right {
justify-content: flex-end;
}
.range .range-input {
width: auto;
text-align: center;
}
.range .range-input input, .range .range-input .select {
text-align: left;
}
.range .range-input .step {
color: var(--step-color);
background-color: var(--step-background);
}
.range .range-input .step.disabled {
color: var(--step-disabled-color);
background-color: var(--step-disabled-background);
}
.range .range-input .step:hover:not(.disabled) {
color: var(--step-hover-color);
background-color: var(--step-hover-background);
cursor: pointer;
}
.range .range-input input::-webkit-outer-spin-button,
.range .range-input input::-webkit-inner-spin-button {
margin: 0;
appearance: none;
-webkit-appearance: none;
}
.range .range-input input[type=number] {
appearance: textfield;
-moz-appearance: textfield;
}
.range .range-output {
width: 100%;
min-height: 1em;
line-height: 1;
position: relative;
}
.range .range-output .range-value {
position: absolute;
line-height: 1;
color: var(--value-color);
bottom: 0;
}
.range .range-output .range-value.thumb {
left: var(--percent);
transform: translateX(calc(0% - var(--percent)));
}
.range .range-output .range-value.thumb.min {
--percent: var(--min-percent);
}
.range .range-output .range-value.thumb.max {
--percent: var(--max-percent);
}
.range .range-output .range-value.center {
left: 50%;
transform: translateX(-50%);
}
:where(.search .menu) {
--menu-margin: 0.5em;
--max-height: 50vh;
}
.search {
position: relative;
overflow: visible;
}
.search .inputs.round {
--border-radius: 1em;
}
.search .inputs.round .prefix {
margin-left: 0.25em;
}
.search .inputs.round .suffix {
margin-right: 0.25em;
}
.search .menu {
position: absolute;
display: block;
top: calc(100% + var(--menu-margin));
left: 0;
right: 0;
overflow-y: scroll;
max-height: var(--max-height);
box-shadow: var(--shadow-2);
}
.search .menu .error.item {
background-color: var(--red-50);
color: var(--red-100);
}
:where(.select) {
--menu-margin: 0.5em;
--max-height: 50vh;
--search-margin: 0.5em;
--search-heading-weight: 500;
--search-heading-size: var(--size-small);
--search-heading-color: var(--brand-0);
--search-heading-background: var(--brand-90);
--search-clear-color: var(--brand-10);
--search-clear-background: var(--brand-75);
}
:where([data-theme=dark] .select) {
--search-clear-color: var(--brand-70);
--search-clear-background: var(--brand-25);
}
.select {
position: relative;
overflow: visible;
}
.select .search {
position: absolute;
display: block;
top: calc(100% + var(--menu-margin) - var(--input-border-width));
width: 100%;
z-index: var(--menu-z-index, 100);
box-shadow: var(--shadow-2);
}
.select .search .suffix.clear:hover {
color: var(--search-clear-color);
background-color: var(--search-clear-background);
}
.select .menu {
--top: calc(100% + var(--menu-margin) - var(--input-border-width));
position: absolute;
display: block;
top: var(--top);
left: 0;
right: 0;
overflow-y: scroll;
z-index: var(--menu-z-index, 100);
max-height: var(--max-height);
box-shadow: var(--shadow-2);
background-color: var(--background-color);
}
.select.open .search .inputs {
border-bottom: 1px solid var(--border-color);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
border-bottom-style: solid;
outline: none;
}
.select.open .search .inputs .prefix, .select.open .search .inputs .suffix {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.select.open .inputs {
box-shadow: var(--focus-ring);
}
.select.open .search:has(:focus) .inputs {
box-shadow: none;
}
.select.open .search .inputs {
box-shadow: none;
}
.select.open:has(.search) .menu {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.select.open:has(.search) .menu .item:first-child {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.select:has(.search) .menu {
border-top: 0;
--top: calc(
100% +
1em * var(--input-line-height) +
1 * var(--input-border-width) +
2 * var(--input-padding-v) +
1 * var(--menu-margin)
);
}
.inputs .select .inputs {
border: none;
box-shadow: none;
}
/*
$sortable-list-bg-color: rgba($blue, 0.1) !default;
$sortable-list-border-color: rgba($blue, 0.2) !default;
$sortable-radius: $unit-radius !default;
// $sortable-radius: 10px !default;
$sortable-moved-color: $orange !default;
$sortable-moved-fg-color: darker-color($sortable-moved-color) !default;
$sortable-moved-bg-color: mix($white, $sortable-moved-color, 95%) !default;
$sortable-moving-color: $green !default;
$sortable-moving-fg-color: darker-color($sortable-moving-color) !default;
$sortable-moving-bg-color: mix($white, $sortable-moving-color, 95%) !default;
*/
:where(.sortable) {
--sortable-moving-color: var(--green-20);
--sortable-moving-background: var(--green-95);
--sortable-moving-border: var(--green-80);
--sortable-moved-color: var(--orange-20);
--sortable-moved-background: var(--orange-95);
--sortable-moved-border: var(--orange-80);
}
:where([data-theme=dark] .sortable) {
--sortable-moving-color: var(--green-80);
--sortable-moving-background: var(--green-5);
--sortable-moving-border: var(--green-20);
--sortable-moved-color: var(--orange-80);
--sortable-moved-background: var(--orange-5);
--sortable-moved-border: var(--orange-20);
}
.sortable.item,
.sortable .item {
display: inline-block;
cursor: pointer;
user-select: none;
}
.sortable.item.inactive,
.sortable .item.inactive {
opacity: 0.4;
}
.sortable.item.moved,
.sortable .item.moved {
--border-color: var(--sortable-moved-border);
color: var(--sortable-moved-color);
background-color: var(--sortable-moved-background);
}
.sortable.item[aria-pressed=true],
.sortable .item[aria-pressed=true] {
--border-color: var(--sortable-moving-border);
color: var(--sortable-moving-color);
background-color: var(--sortable-moving-background);
z-index: 9999;
}
.sortable.list.vertical .sortable.item {
display: flex;
align-items: flex-start;
}
.sortable.list.horizontal .sortable.item {
display: flex;
}
.sortable.list.horizontal .sortable.item:nth-last-child(3) {
border-right: none;
}
tr.sortable.item {
display: table-row ;
}
table.sortable tr.item {
display: table-row ;
}
table.sortable tr.moved td, table.sortable tr.moved th {
--border-color: var(--sortable-moved-border);
color: var(--sortable-moved-color);
background-color: var(--sortable-moved-background);
}
.sortable.item[aria-pressed=true] td, .sortable.item[aria-pressed=true] th {
--border-color: var(--sortable-moving-border);
color: var(--sortable-moving-color);
background-color: var(--sortable-moving-background);
z-index: 9999;
}
:where(.tiles) {
--tile-min-width: 100px;
}
.tiles {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(var(--tile-min-width), 1fr));
}
.tiles > .cols-2 {
grid-column: auto/span 2;
}
.tiles > .rows-2 {
grid-row: auto/span 2;
}
.tiles > .cols-3 {
grid-column: auto/span 3;
}
.tiles > .rows-3 {
grid-row: auto/span 3;
}
.tiles > .cols-4 {
grid-column: auto/span 4;
}
.tiles > .rows-4 {
grid-row: auto/span 4;
}
.tiles > .cols-5 {
grid-column: auto/span 5;
}
.tiles > .rows-5 {
grid-row: auto/span 5;
}
.tiles > .cols-6 {
grid-column: auto/span 6;
}
.tiles > .rows-6 {
grid-row: auto/span 6;
}
.tiles > .cols-7 {
grid-column: auto/span 7;
}
.tiles > .rows-7 {
grid-row: auto/span 7;
}
.tiles > .cols-8 {
grid-column: auto/span 8;
}
.tiles > .rows-8 {
grid-row: auto/span 8;
}
.tiles > .cols-9 {
grid-column: auto/span 9;
}
.tiles > .rows-9 {
grid-row: auto/span 9;
}
.tiles > .cols-10 {
grid-column: auto/span 10;
}
.tiles > .rows-10 {
grid-row: auto/span 10;
}
.tiles > .cols-11 {
grid-column: auto/span 11;
}
.tiles > .rows-11 {
grid-row: auto/span 11;
}
.tiles > .cols-12 {
grid-column: auto/span 12;
}
.tiles > .rows-12 {
grid-row: auto/span 12;
}
.tiles > .cols-13 {
grid-column: auto/span 13;
}
.tiles > .rows-13 {
grid-row: auto/span 13;
}
.tiles > .cols-14 {
grid-column: auto/span 14;
}
.tiles > .rows-14 {
grid-row: auto/span 14;
}
.tiles > .cols-15 {
grid-column: auto/span 15;
}
.tiles > .rows-15 {
grid-row: auto/span 15;
}
.tiles > .cols-16 {
grid-column: auto/span 16;
}
.tiles > .rows-16 {
grid-row: auto/span 16;
}