UNPKG

wunderbaum

Version:

JavaScript tree/grid/treegrid control.

555 lines (534 loc) 21.6 kB
@charset "UTF-8"; /*! * Wunderbaum style sheet (generated from wunderbaum.scss) * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license. * @VERSION, @DATE (https://github.com/mar10/wunderbaum) */ :root, :host { --wb-font-stack: Helvetica, sans-serif; --wb-error-color: #b5373b; --wb-node-text-color: #56534c; --wb-border-color: #56534c; --wb-bg-highlight-color: #26a0da; --wb-header-color: #dedede; --wb-background-color: #ffffff; --wb-alternate-row-color: #f7f7f7; --wb-alternate-row-color-hover: #f3f3f3; --wb-focus-border-color: #275dc5; --wb-drop-source-color: rgb(211.3703703704, 209.6481481481, 205.6296296296); --wb-drop-target-color: rgb(212.2834645669, 236.2992125984, 247.7165354331); --wb-dim-color: rgb(139.5925925926, 135.037037037, 124.4074074074); --wb-error-background-color: rgb(244.6292372881, 220.8707627119, 221.625); --wb-hover-color: rgb(247.1401574803, 251.5590551181, 253.6598425197); --wb-hover-border-color: rgb(247.1401574803, 251.5590551181, 253.6598425197); --wb-grid-color: #dedede; --wb-active-color: #e5f3fb; --wb-active-cell-color: rgb(125.1417322835, 198.1496062992, 232.8582677165); --wb-active-border-color: #70c0e7; --wb-active-hover-color: #dceff8; --wb-active-hover-border-color: #26a0da; --wb-active-column-color: rgb(247.1401574803, 251.5590551181, 253.6598425197); --wb-active-header-column-color: rgb(196.5, 196.5, 196.5); --wb-active-color-grayscale: #f0f0f0; --wb-active-border-color-grayscale: rgb(171.5, 171.5, 171.5); --wb-active-hover-color-grayscale: #eaeaea; --wb-active-cell-color-grayscale: #b3b3b3; --wb-grid-color-grayscale: #dedede; --wb-filter-dim-color: #dedede; --wb-filter-submatch-color: #868581; --wb-row-outer-height: 22px; --wb-row-inner-height: 20px; --wb-row-padding-y: 1px; --wb-col-padding-x: 2px; --wb-icon-outer-height: 20px; --wb-icon-outer-width: 20px; --wb-icon-height: 16px; --wb-icon-width: 16px; --wb-icon-padding-y: 2px; --wb-icon-padding-x: 2px; --wb-header-height: 22px; } div.wunderbaum * { box-sizing: border-box; } div.wunderbaum { height: 100%; min-height: 4px; background-color: var(--wb-background-color); margin: 0; padding: 0; font-family: var(--wb-font-stack); font-size: 14px; color: var(--wb-node-text-color); border: 2px solid var(--wb-border-color); border-radius: 4px; background-clip: content-box; overflow-x: auto; overflow-y: scroll; /* --- FIXED-COLUMN --- */ /* Fixed column must be opaque, i.e. have the bg color set. */ /* --- GRID --- */ /* --- FILTER --- */ /* --- DND --- */ /* --- SPECIAL EFFECTS --- */ /* Colorize indentation levels. */ /* Fade out expanders, when container is not hovered or active */ /* Skeleton */ /* Auto-hide checkboxes unless selected or hovered */ } div.wunderbaum:focus, div.wunderbaum:focus-within { border-color: var(--wb-focus-border-color); } div.wunderbaum.wb-disabled { opacity: 0.7; pointer-events: none; } div.wunderbaum div.wb-list-container { position: relative; min-height: 4px; } div.wunderbaum div.wb-header { position: sticky; top: 0; z-index: 2; -webkit-user-select: none; /* Safari */ user-select: none; } div.wunderbaum div.wb-header, div.wunderbaum div.wb-list-container { overflow: unset; } div.wunderbaum div.wb-row { position: absolute; width: 100%; height: var(--wb-row-outer-height); line-height: var(--wb-row-outer-height); border: 1px solid transparent; } div.wunderbaum.wb-fixed-col span.wb-col:first-of-type { position: sticky; left: 0; z-index: 1; background-color: var(--wb-background-color); } div.wunderbaum.wb-fixed-col div.wb-header span.wb-col:first-of-type { background-color: var(--wb-header-color); } div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type { background-color: var(--wb-active-color); } div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-active:hover span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-selected:hover span.wb-col:first-of-type { background-color: var(--wb-active-hover-color); } div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row:hover span.wb-col:first-of-type { background-color: var(--wb-hover-color); } div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type { background-color: var(--wb-active-color-grayscale); border-color: var(--wb-active-border-color-grayscale); } div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type:hover span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type:hover span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type:hover span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type:hover span.wb-col:first-of-type { background-color: var(--wb-active-hover-color-grayscale); } div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-active, div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-selected, div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-active, div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-selected { background-color: var(--wb-active-color-grayscale); border-color: var(--wb-active-border-color-grayscale); } div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-active:hover, div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-selected:hover, div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-active:hover, div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-selected:hover { background-color: var(--wb-active-hover-color-grayscale); } div.wunderbaum.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected) { background-color: var(--wb-alternate-row-color); } div.wunderbaum.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected):hover { background-color: var(--wb-alternate-row-color-hover); } div.wunderbaum div.wb-node-list div.wb-row:hover { background-color: var(--wb-hover-color); } div.wunderbaum div.wb-node-list div.wb-row.wb-active, div.wunderbaum div.wb-node-list div.wb-row.wb-selected { background-color: var(--wb-active-color); } div.wunderbaum div.wb-node-list div.wb-row.wb-active:hover, div.wunderbaum div.wb-node-list div.wb-row.wb-selected:hover { background-color: var(--wb-active-hover-color); } div.wunderbaum div.wb-node-list div.wb-row.wb-focus:not(.wb-active) { border-style: dotted; border-color: var(--wb-active-border-color); } div.wunderbaum div.wb-node-list div.wb-row.wb-active { border-style: solid; border-color: var(--wb-active-border-color); } div.wunderbaum div.wb-node-list div.wb-row.wb-active:hover { border-color: var(--wb-active-hover-border-color); } div.wunderbaum div.wb-node-list div.wb-row.wb-loading { font-style: italic; } div.wunderbaum div.wb-node-list div.wb-row.wb-busy, div.wunderbaum div.wb-node-list div.wb-row i.wb-busy, div.wunderbaum div.wb-node-list div.wb-row .wb-col.wb-busy { font-style: italic; background: repeating-linear-gradient(45deg, transparent, transparent 3.88px, var(--wb-grid-color) 3.88px, var(--wb-grid-color) 7.78px); animation: wb-busy-animation 2s linear infinite; } div.wunderbaum div.wb-node-list div.wb-row.wb-error, div.wunderbaum div.wb-node-list div.wb-row.wb-status-error { color: var(--wb-error-color); } div.wunderbaum div.wb-header { position: sticky; height: var(--wb-header-height); border-bottom: 1px solid var(--wb-border-color); padding: 0; background-color: var(--wb-header-color); } div.wunderbaum div.wb-header span.wb-col { font-weight: bold; overflow: visible; } div.wunderbaum div.wb-header span.wb-col-title { width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } div.wunderbaum div.wb-header span.wb-col-resizer { position: absolute; top: 0; right: -1px; width: 3px; border: none; border-right: 2px solid var(--wb-border-color); height: 100%; -webkit-user-select: none; user-select: none; } div.wunderbaum div.wb-header span.wb-col-resizer.wb-col-resizer-active { cursor: col-resize; } div.wunderbaum div.wb-header i.wb-col-icon { float: inline-end; padding-left: 2px; } div.wunderbaum div.wb-header i.wb-col-icon:hover { cursor: pointer; color: var(--wb-focus-border-color); } div.wunderbaum span.wb-col { position: absolute; display: inline-block; overflow: hidden; height: var(--wb-row-inner-height); line-height: var(--wb-row-inner-height); padding: 0 var(--wb-col-padding-x); border-right: 1px solid var(--wb-grid-color); white-space: nowrap; } div.wunderbaum span.wb-col:last-of-type { border-right: none; } div.wunderbaum span.wb-node { -webkit-user-select: none; user-select: none; /* Fix Bootstrap Icon alignment */ } div.wunderbaum span.wb-node i.wb-checkbox, div.wunderbaum span.wb-node i.wb-expander, div.wunderbaum span.wb-node i.wb-icon, div.wunderbaum span.wb-node i.wb-indent { height: var(--wb-icon-outer-height); width: var(--wb-icon-outer-width); padding: var(--wb-icon-padding-y) var(--wb-icon-padding-x); display: inline-block; } div.wunderbaum span.wb-node i.wb-expander, div.wunderbaum span.wb-node i.wb-icon { background-repeat: no-repeat; background-size: contain; } div.wunderbaum span.wb-node i.bi::before { vertical-align: baseline; } div.wunderbaum span.wb-node img.wb-icon { width: var(--wb-icon-width); height: var(--wb-icon-height); padding: var(--wb-icon-padding-y) var(--wb-icon-padding-x); } div.wunderbaum span.wb-node i.wb-indent::before { content: " "; } div.wunderbaum span.wb-node i.wb-expander.wb-spin, div.wunderbaum span.wb-node i.wb-icon.wb-spin { height: unset; width: unset; padding: 0 3px; animation: wb-spin-animation 2s linear infinite; } div.wunderbaum span.wb-node span.wb-title { min-width: 1em; vertical-align: top; overflow-x: hidden; display: inline-block; white-space: nowrap; text-overflow: ellipsis; } div.wunderbaum.wb-grid div.wb-header div.wb-row span.wb-col:hover { background-color: var(--wb-active-header-column-color); } div.wunderbaum.wb-grid.wb-cell-mode div.wb-header div.wb-row span.wb-col.wb-active { background-color: var(--wb-active-hover-color); } div.wunderbaum.wb-grid div.wb-node-list div.wb-row { border-bottom-color: var(--wb-grid-color); } div.wunderbaum.wb-grid div.wb-node-list div.wb-row:hover:not(.wb-active):not(.wb-selected) { background-color: var(--wb-hover-color); } div.wunderbaum.wb-grid div.wb-node-list div.wb-row.wb-active { border-bottom-color: var(--wb-active-border-color); } div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col { border-right: 1px solid var(--wb-grid-color); } div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col input.wb-input-edit, div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=color], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=date], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=datetime], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=datetime-local], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=email], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=month], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=number], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=password], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=search], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=tel], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=text], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=time], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=url], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=week], div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > select { width: 100%; max-height: var(--wb-row-inner-height); border: none; } div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input:focus, div.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > select:focus { border: 1px dashed #70c0e7; } div.wunderbaum.wb-grid.wb-cell-mode div.wb-row:not(.wb-colspan).wb-active span.wb-col.wb-active { background-color: var(--wb-active-cell-color-grayscale); } div.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected) span.wb-col.wb-active, div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected) span.wb-col.wb-active { background-color: var(--wb-active-column-color); } div.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active, div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active { background-color: var(--wb-active-column-color); } div.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active span.wb-col.wb-active, div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active span.wb-col.wb-active { background-color: var(--wb-active-cell-color); } div.wunderbaum.wb-grid.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected) { background-color: var(--wb-alternate-row-color); } div.wunderbaum.wb-grid.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected):hover { background-color: var(--wb-alternate-row-color-hover); } div.wunderbaum.wb-grid:not(:focus-within) div.wb-node-list div.wb-row, div.wunderbaum.wb-grid:not(:focus) div.wb-node-list div.wb-row { border-bottom-color: var(--wb-grid-color-grayscale); } div.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row, div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row { color: var(--wb-filter-dim-color); } div.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row.wb-submatch, div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row.wb-submatch { color: var(--wb-filter-submatch-color); } div.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row.wb-match, div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row.wb-match { color: var(--wb-node-text-color); } div.wunderbaum.wb-ext-filter-hide.wb-ext-filter-hide-expanders div.wb-node-list div.wb-row:not(.wb-submatch) i.wb-expander { visibility: hidden; } div.wunderbaum div.wb-row.wb-drag-source { opacity: 0.5; } div.wunderbaum div.wb-row.wb-drag-source .wb-node { background-color: var(--wb-drop-source-color); } div.wunderbaum div.wb-row.wb-drop-target { overflow: visible; } div.wunderbaum div.wb-row.wb-drop-target .wb-node { background-color: var(--wb-drop-target-color); overflow: visible; } div.wunderbaum div.wb-row.wb-drop-target .wb-node .wb-icon { position: relative; overflow: visible; } div.wunderbaum div.wb-row.wb-drop-target .wb-node .wb-icon::after { position: absolute; z-index: 1000; content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAMAAABA3o1rAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACKUExURe/v9/f39+//7+f35+f/79bW5wgIawwYd97e55Tnpc731rjA2d7350LOY1LWa7Xvvf///wAQcyAze97e773vxnuczgA5pQBCpdb33rXvxu//9whjxgBaxlKU1oOz5ABz3gB73tbn99bW1rXe/wCM9xiU997v/97e3gCc/xil/9bv/wic/+/3/wAAALM9X5QAAAAudFJOU////////////////////////////////////////////////////////////wCCj3NVAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAqUlEQVQoU6WQ2w6CMAxA54agsCHq1HlFBREv/f/fs1tHAoaoiedlbXrWtGXwhV8FNqAXuAi4DwkShmE0cgGIcSwCCgkSkrAxpEonot0DhQxJptFsbnOpdNdgsFh6VtYwyqzTmG+oijDY7hr22E4qY7QybeGQe46nsxP0Wwc3Q1GWl+qKec8MlqKubxX+xzV7tkDuD1+3d+heigT2zGx/hCMUeUj4wL8CwAsW1kqCTugMCwAAAABJRU5ErkJggg==); left: 0; top: calc((22px - var(--wb-icon-height)) / 2); } div.wunderbaum div.wb-row.wb-drop-target.wb-drop-before .wb-node .wb-icon::after, div.wunderbaum div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after { content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAMAAACROYkbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACNUExURe/v9/f39+//7+f35+f/79bW5wgIawwYd97e55Tnpc731rjA2d7350LOY1LWa7Xvvf///wAQcyAze97e773vxgAAAHuczgA5pQBCpdb33rXvxu//9whjxgBaxlKU1oOz5ABz3gB73tbn99bW1rXe/wCM9xiU997v/97e3gCc/xil/9bv/wic/+/3/wAAAParqS4AAAAvdFJOU/////////////////////////////////////////////////////////////8AWqU49wAAAAlwSFlzAAAOwwAADsMBx2+oZAAAALlJREFUOE/FktsSgiAQhglMS8WstKLzQTM77Ps/XguL16I208cFyzB8/LPAYCC/ErARzcCFx23pBgnGfjAxBYhpKDwq3SBB5DeGWCYz0SUDClIkmgeLpV7HMiNDbrbbYbBaWzbaoKTaJiHfQe5oYLA/NBwxTiyVyqTSghYwox4MTmfL5XozgqxjAtODoizv1QPXPXqgKer6WeH9+Iw9XgF5ve15/Q+6/SQSsE+q8yMcocoREgzg3wKAL4vrpBIKREShAAAAAElFTkSuQmCC); left: 0; top: calc((22px - var(--wb-icon-height)) / 2 - 11px); } div.wunderbaum div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after { top: calc((22px - var(--wb-icon-height)) / 2 + 11px); } div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+1), div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+1) { background: rgb(255, 255, 201); } div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+2), div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+2) { background: rgb(218, 255, 218); } div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+3), div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+3) { background: rgb(255, 217, 254); } div.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+4), div.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+4) { background: rgb(204, 250, 250); } div.wunderbaum.wb-fade-expander i.wb-expander { transition: color 1.5s; color: rgba(86, 83, 76, 0); } div.wunderbaum.wb-fade-expander div.wb-row.wb-loading i.wb-expander, div.wunderbaum.wb-fade-expander:hover i.wb-expander, div.wunderbaum.wb-fade-expander:focus i.wb-expander, div.wunderbaum.wb-fade-expander:focus-within i.wb-expander, div.wunderbaum.wb-fade-expander [class*=wb-statusnode-] i.wb-expander { transition: color 0.6s; color: var(--wb-node-text-color); } div.wunderbaum div.wb-row.wb-skeleton span.wb-title, div.wunderbaum div.wb-row.wb-skeleton i.wb-icon { animation: wb-skeleton-animation 1s linear infinite alternate; border-radius: 0.25em; color: transparent; opacity: 0.7; } div.wunderbaum.wb-checkbox-auto-hide i.wb-checkbox { visibility: hidden; } div.wunderbaum.wb-checkbox-auto-hide .wb-row:hover i.wb-checkbox, div.wunderbaum.wb-checkbox-auto-hide .wb-row.wb-selected i.wb-checkbox { visibility: unset; } div.wunderbaum.wb-checkbox-auto-hide:focus .wb-row.wb-active i.wb-checkbox, div.wunderbaum.wb-checkbox-auto-hide:focus-within .wb-row.wb-active i.wb-checkbox { visibility: unset; } /* --- TOOL CLASSES --- */ a.wb-breadcrumb { cursor: pointer; text-decoration: none; } .wb-helper-center { text-align: center; } .wb-helper-disabled { color: var(--wb-dim-color); } .wb-helper-hidden { display: none; } .wb-helper-invalid { color: var(--wb-error-color); } .wb-helper-lazy-expander { color: var(--wb-bg-highlight-color); } .wb-helper-link { cursor: pointer; } .wb-no-select { -webkit-user-select: none; user-select: none; } .wb-no-select span.wb-title { -webkit-user-select: contain; user-select: contain; } button.wb-filter-hide { font-weight: bolder; } /* RTL support */ .wb-helper-start, .wb-helper-start > input { text-align: left; } .wb-helper-end, .wb-helper-end > input { text-align: right; } .wb-rtl .wb-helper-start, .wb-rtl .wb-helper-start > input { text-align: right; } .wb-rtl .wb-helper-end, .wb-rtl .wb-helper-end > input { text-align: left; } i.wb-icon { position: relative; } i.wb-icon > span.wb-badge { position: absolute; display: inline-block; top: 0; left: -0.6rem; color: white; background-color: var(--wb-bg-highlight-color); padding: 0.2em 0.3rem 0.1em 0.3rem; font-size: 60%; font-weight: 200; line-height: 1; text-align: center; white-space: nowrap; border-radius: 0.5rem; pointer-events: none; } /* Class 'wb-tristate' is used to mark checkboxes that should toggle like * indeterminate -> checked -> unchecked -> indeterminate ... */ .wb-col input[type=checkbox]:indeterminate { color: var(--wb-dim-color); background-color: red; } .wb-col input:invalid { background-color: var(--wb-error-background-color); } .wb-col.wb-invalid { border: 1px dotted var(--wb-error-color); } @keyframes wb-spin-animation { 0% { transform: rotate(0deg); } to { transform: rotate(1turn); } } @keyframes wb-skeleton-animation { 0% { background-color: hsl(200, 20%, 70%); } 100% { background-color: hsl(200, 20%, 95%); } } @keyframes wb-busy-animation { 0% { background-position: 0 0; } 100% { background-position: 0 22px; } } /*# sourceMappingURL=wunderbaum.css.map */