Range

<div class="u-flex u-items-center u-gap-large">
    <input type="range" min="1" max="10" id="ageInputId" step="1" value="1" oninput="ageOutputId.value = ageInputId.value" class="u-p-none">
    <output class="u-heading-10 u-color-success" id="ageOutputId">1</output>
</div>
<div class="u-flex u-items-center u-gap-large">
  <input type="range" min="1" max="10" id="ageInputId" step="1" value="1" oninput="ageOutputId.value = ageInputId.value" class="u-p-none">
  <output class="u-heading-10 u-color-success" id="ageOutputId">1</output>
</div>
/* No context defined. */
  • Content:
    input[type="range"] {
      --c: var(--body-secondary-color); /* active color */
      --g: 8px; /* the gap */
      --l: 5px; /* line thickness*/
      --s: 20px; /* thumb size*/
      --_c: color-mix(in srgb, var(--c), #000 var(--p,0%));
      
      width: 100%;
      height: var(--s); /* needed for Firefox*/
      -webkit-appearance :none;
      -moz-appearance :none;
      appearance :none;
      background: none;
      cursor: pointer;
      overflow: hidden;
      border: none;
      &:disabled {
        cursor: not-allowed;
      }
    }
    
    /* chromium */
    input[type="range"]::-webkit-slider-thumb {
      height: var(--s);
      aspect-ratio: 1;
      border-radius: 50%;
      box-shadow: 0 0 0 var(--_b, var(--l)) inset var(--_c);
      border-image: linear-gradient(90deg, var(--_c) 50%, #ababab 0) 1/0 100vw/0
        calc(100vw + var(--g));
      clip-path: polygon(
        0 calc(50% + var(--l) / 2),
        -100vw calc(50% + var(--l) / 2),
        -100vw calc(50% - var(--l) / 2),
        0 calc(50% - var(--l) / 2),
        0 0,
        100% 0,
        100% calc(50% - var(--l) / 2),
        100vw calc(50% - var(--l) / 2),
        100vw calc(50% + var(--l) / 2),
        100% calc(50% + var(--l) / 2),
        100% 100%,
        0 100%
      );
      -webkit-appearance: none;
      appearance: none;
      transition: 0.3s;
    }
    /* Firefox */
    input[type="range"]::-moz-range-thumb {
      height: var(--s);
      width: var(--s);
      background: none;
      border-radius: 50%;
      box-shadow: 0 0 0 var(--_b, var(--l)) inset var(--_c);
      border-image: linear-gradient(90deg, var(--_c) 50%, #ababab 0) 1/0 100vw/0
        calc(100vw + var(--g));
      clip-path: polygon(
        0 calc(50% + var(--l) / 2),
        -100vw calc(50% + var(--l) / 2),
        -100vw calc(50% - var(--l) / 2),
        0 calc(50% - var(--l) / 2),
        0 0,
        100% 0,
        100% calc(50% - var(--l) / 2),
        100vw calc(50% - var(--l) / 2),
        100vw calc(50% + var(--l) / 2),
        100% calc(50% + var(--l) / 2),
        100% 100%,
        0 100%
      );
      -moz-appearance: none;
      appearance: none;
      transition: 0.3s;
    }
    
  • URL: /components/raw/range/range.scss
  • Filesystem Path: src/lib/components/forms/range/range.scss
  • Size: 1.9 KB

No notes defined.