Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Glidebryter (enkelt tall)

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-range-field> – Glidebryter (enkelt tall) / Range field

    Om komponenten

    Formål

    Ett-håndtaks glidebryter basert på native <input type="range">, med en live oppdatert verditekst ved siden av etiketten og samme hjelpetekst-/feilmeldingsoppsett som resten av skjemafelt-familien.

    Egner seg for

    • Å velge én enkelt numerisk verdi innenfor et kjent intervall der den relative posisjonen er mer intuitiv enn å skrive et tall - volum, prosent, terskelverdier.

    Egner seg ikke for

    • Å velge et intervall mellom to verdier (min og maks samtidig) - bruk <lm-range-slider>, som dekker APG Slider (multithumb)-mønsteret.
    • Presise, eksakte tall der brukeren vil skrive verdien direkte - bruk <lm-number-field>.

    Bruk

    <script type="module" src="/designsystem/komponenter/skjema/range-field/range-field.js"></script>
    
    <lm-range-field name="sparerate" label="Sparerate" min="0" max="100" value="20" suffiks="%"></lm-range-field>

    Prøv selv

    Rediger koden under - resultatet oppdateres live.

    Attributter

    Attributt Type Standard Beskrivelse
    labelstringAttributt/property. Synlig etikett-tekst.
    namestringAttributt. Skjemafelt-navn - komponenten er form-associated og deltar i FormData under dette navnet.
    valuestringAttributt/property. Gjeldende verdi.
    minnumberAttributt. Videresendes til det interne feltet.
    maxnumberAttributt. Videresendes til det interne feltet.
    stepnumberAttributt. Videresendes til det interne feltet.
    suffiksstringAttributt. Kort enhetstekst (f.eks. "%"/" kr") vist rett etter verditallet.
    disabledbooleanfalseAttributt/property. Deaktiverer feltet.
    helpstringAttributt. Kort hjelpetekst vist under feltet, koblet via aria-describedby.

    Parts

    Part Beskrivelse
    etikettDet omsluttende <label>-elementet.
    etikett-tekst<span>-en med selve etikett-teksten.
    verdi<span>-en som viser gjeldende verdi live.
    feltDet interne <input type="range">-elementet.
    hjelpetekst<small>-elementet med hjelpeteksten.
    feilmelding<small role="alert">-elementet med valideringsmeldingen.

    Styling med ::part()

    Hver part over kan restyles direkte fra et vanlig, ytre stilark - uten å måtte endre selve komponenten eller duplisere den:

    lm-range-field::part(etikett) {
        /* egne stiler for "Det omsluttende `<label>`-elementet." */
    }
    
    lm-range-field::part(etikett-tekst) {
        /* egne stiler for "`<span>`-en med selve etikett-teksten." */
    }
    
    lm-range-field::part(verdi) {
        /* egne stiler for "`<span>`-en som viser gjeldende verdi live." */
    }
    
    lm-range-field::part(felt) {
        /* egne stiler for "Det interne `<input type="range">`-elementet." */
    }
    
    lm-range-field::part(hjelpetekst) {
        /* egne stiler for "`<small>`-elementet med hjelpeteksten." */
    }
    
    lm-range-field::part(feilmelding) {
        /* egne stiler for "`<small role="alert">`-elementet med valideringsmeldingen." */
    }

    Metoder

    Metode Parametre Returverdi Beskrivelse
    checkValidity()-Videresender til den interne ElementInternals.checkValidity().
    reportValidity()-Videresender til den interne ElementInternals.reportValidity().

    Tilgjengelighet

    Selve glidebryteren beholder all native tastatur- (piltaster, Home/End) og skjermleserstøtte uendret (native role="slider" med automatisk aria-valuenow).

    • Selve glidebryteren beholder all native tastatur- og skjermleserstøtte, inkludert automatisk aria-valuenow.
    • Verditeksten er et rent visuelt tillegg ved siden av etiketten, ikke en erstatning for den native aria-valuenow-annonseringen.

    Detaljer

    • Er form-associated og deltar i FormData under sitt name-attributt.
    • valueAsNumber-propertyen gir/tar imot et ekte tall, slik at forbrukerkode slipper manuell streng-parsing.

    Referanser

    Se også:

    Brukes av:

    • Ingen ennå - ny komponent.

    Avhengigheter: designsystem/komponenter/skjema/skjema-felt-delt.css, designsystem/komponenter/skjema/skjema-felt-delt.js