UNPKG

@rtdui/tailwind-plugin

Version:

tailwind plugin for Rtdui components

186 lines (163 loc) 4.63 kB
.slider { --slider-size-xs: 4px; --slider-size-sm: 6px; --slider-size-md: 8px; --slider-size-lg: 10px; --slider-size-xl: 12px; --slider-size: var(--slider-size-md); --slider-radius: 999rem; --slider-color: var(--color-neutral); --slider-thumb-size: calc(var(--slider-size) * 2); --slider-track-bg: var(--color-base-300); --slider-bar-disabled-bg: darkgray; -webkit-tap-highlight-color: transparent; outline: none; width: 95%; height: calc(var(--slider-size) * 2); padding-left: var(--slider-size); padding-right: var(--slider-size); display: flex; flex-direction: column; align-items: center; touch-action: none; position: relative; *:focus-visible { outline: none; } .trackContainer { display: flex; align-items: center; width: 100%; height: calc(var(--slider-size) * 2); cursor: var(--_track-cursor, pointer); fieldset:disabled &, &[data-disabled] { --_track-cursor: not-allowed; } .track { position: relative; z-index: 0; width: 100%; height: var(--slider-size); &[data-inverted]:not([data-disabled]) { --_track-bg: var(--slider-color); } fieldset:disabled &[data-inverted], &[data-inverted][data-disabled] { --_track-bg: var(--slider-track-bg); } &::before { content: ""; position: absolute; top: 0; bottom: 0; right: calc(var(--slider-size) * -1); left: calc(var(--slider-size) * -1); border-radius: var(--slider-radius); background-color: var(--_track-bg, var(--slider-track-bg)); z-index: -1; } } .bar { position: absolute; z-index: 1; top: 0; bottom: 0; background-color: var(--_bar-bg, var(--slider-color)); border-radius: var(--slider-radius); width: var(--slider-bar-width); left: var(--slider-bar-offset); &[data-inverted] { --_bar-bg: var(--slider-track-bg); } fieldset:disabled &:not([data-inverted]), &[data-disabled]:not([data-inverted]) { --_bar-bg: var(--slider-bar-disabled-bg); } } .thumb { --_thumb-bd: var(--slider-color); --_thumb-bg: var(--color-base-100); position: absolute; display: var(--_thumb-display, flex); height: var(--slider-thumb-size); width: var(--slider-thumb-size); background-color: var(--_thumb-bg); border: 4px solid var(--_thumb-bd); color: var(--_thumb-bd); transform: var(--_thumb-transform, translate(-50%, -50%)); top: 50%; cursor: pointer; border-radius: var(--slider-radius); align-items: center; justify-content: center; transition: box-shadow 100ms ease, transform 100ms ease; z-index: 3; user-select: none; touch-action: none; box-shadow: var(--_thumb-box-shadow, none); outline-offset: 2px; left: var(--slider-thumb-offset); fieldset:disabled &, &[data-disabled] { --_thumb-display: none; } &[data-dragging] { --_thumb-transform: translate(-50%, -50%) scale(1.05); --_thumb-box-shadow: 2px; } &:focus-visible { outline: 1px solid var(--slider-color); outline-offset: 2px; } .label { position: absolute; transform: translateY(-100%); background-color: var(--color-neutral); font-size: 0.875rem; color: var(--color-neutral-content); padding: 2px 4px; border-radius: 4px; white-space: nowrap; pointer-events: none; user-select: none; touch-action: none; } } } .markWrapper { position: absolute; left: calc(var(--mark-offset) - var(--slider-size) / 2); top: 0; z-index: 2; height: 0; pointer-events: none; } .mark { --_mark-bd: var(--slider-track-bg); border: 2px solid var(--_mark-bd); height: var(--slider-size); width: var(--slider-size); border-radius: 1000px; transform: translateX((calc(var(--slider-size) / -2))); background-color: var(--_mark-bg, white); pointer-events: none; &[data-filled] { --_mark-bd: var(--slider-color); &[data-disabled] { --_mark-bd: var(--slider-bar-disabled-bg); } } } .markLabel { --_mark-label-color: var(--color-base-content); transform: translate(calc(-50% + var(--slider-size) / 2), 4); font-size: 14px; color: var(--_mark-label-color); white-space: nowrap; cursor: pointer; user-select: none; } }