Skip to main content

Button chip

En button chip fungerer som en knapp og trigger en handling — for eksempel et hurtigvalg, et forslag eller et filter brukeren aktiverer. Den har ingen vedvarende valgt tilstand.

Kom i gang

Result
Loading...
Kode
Live Editor
<Chip>Chip label</Chip>

Eksempler

Gruppe

Button chips gir mest verdi i grupper. Da blir det tydelig at de hører sammen og at det finnes flere valg.

Result
Loading...
Kode
Live Editor
<div style={{ display: 'flex', flexWrap: 'wrap', gap: 'var(--ix-spacing-sm)' }}>
  <Chip>Alle</Chip>
  <Chip>Sparing</Chip>
  <Chip>Lån</Chip>
  <Chip>Forsikring</Chip>
</div>

Størrelser

Chip finnes i to størrelser: md (standard) og sm.

Result
Loading...
Kode
Live Editor
<div style={{ display: 'flex', alignItems: 'center', gap: 'var(--ix-spacing-sm)' }}>
  <Chip size="sm">Small</Chip>
  <Chip>Medium (standard)</Chip>
</div>

Deaktivert

Result
Loading...
Kode
Live Editor
<Chip disabled>Chip label</Chip>

Vurder om brukeren i stedet bør se en forklaring på hvorfor valget ikke er tilgjengelig.

Som lenke

Bruk as="a" når chipen navigerer til en URL. Den beholder chip-styling, men rendres som <a>.

Result
Loading...
Kode
Live Editor
<Chip as="a" href="https://www.sparebank1.no">
  Gå til sparebank1.no
</Chip>

Universell utforming

Hva du selv må sørge for

  • Gi chipen en kort og tydelig label — teksten er det tilgjengelige navnet. Den skal beskrive handlingen.
  • Bruk chips i grupper — en enkeltstående chip gir lite kontekst. Presenter relaterte chips sammen.
  • Bruk riktig element<button> (standard) for handlinger og as="a" / <a> for navigasjon. Ikke legg click-handlers på <div> eller <span>.
  • Ikke stol på farge alene — teksten må alltid være den primære informasjonsbæreren.
  • Unngå disabled som standard — en disabled chip sier ikke hva som mangler. La heller chipen være aktiv og forklar konteksten.

Hva komponenten gjør automatisk

  • type="button" settes som standard på <button>-elementer så chipen ikke sender inn skjema utilsiktet.
  • Tilgjengelig navn hentes fra tekst-innholdet i chipen.
  • Fokusindikator via :focus-visible — synlig for tastaturbrukere, ikke for mus.
  • Tilstand med fyll og kant — hover og active kommuniseres med mer enn farge.

Tastaturnavigasjon

TastHandling
TabFlytter fokus til chipen
Shift+TabFlytter fokus til forrige fokuserbare element
EnterAktiverer chipen
SpaceAktiverer chipen

Skjermleser

  • Ved fokus: "[chip-tekst], knapp"
  • Som lenke (as="a"): "[chip-tekst], lenke"
  • Deaktivert: "[chip-tekst], knapp, deaktivert"

WCAG-kriterier

Sist gjennomgått: 2026-06-29 — alle 56 WCAG 2.2-kriterier vurdert

WCAG-kriterier6 ditt ansvar · 14 håndtert · 41 ikke relevant · 0 ikke på plass
Ditt ansvar (6)
KriteriumNivåHva du må gjøre
2.4.6 Overskrifter og ledeteksterAAGi chipen en kort og tydelig label. Teksten i chipen er det tilgjengelige navnet. Den skal være kort og beskrive handlingen — f.eks. «Vis flere» eller «Sparing». Unngå lange tekster; chips er ment for raske valg, ikke forklaringer.
1.3.1 Informasjon og relasjonerAGi chipen en kort og tydelig label. Teksten i chipen er det tilgjengelige navnet. Den skal være kort og beskrive handlingen — f.eks. «Vis flere» eller «Sparing». Unngå lange tekster; chips er ment for raske valg, ikke forklaringer.
1.3.1 Informasjon og relasjonerABruk chips i grupper, ikke alene. En enkeltstående chip gir lite mening for brukeren. Presenter button chips sammen i en gruppe slik at det er tydelig at de hører sammen og at det finnes flere valg. Enkeltstående bruk er primært aktuelt for å trigge én handling.
1.4.1 Bruk av fargeAIkke stol på farge alene for å skille chips. Forskjeller mellom chips må ikke kun kommuniseres med farge. Teksten må alltid være den primære informasjonsbæreren. Bruk ev. ikon som støtte — ikke som erstatning for tekst.
4.1.2 Navn, rolle, verdiABruk semantisk element basert på funksjon. Button chip skal være et <button>-element (standard) eller <a> (via as="a") når den navigerer. Ikke bruk <div> eller <span> som chip — det bryter nativ tastaturnavigasjon og skjermleser-annonsering. Button chip trigger en handling og skal ikke ha vedvarende valgt tilstand.
3.3.1 Identifikasjon av feilAUnngå disabled som standard. En disabled chip forteller ikke brukeren hva som mangler. Der det er mulig, la chipen være aktiv og forklar i konteksten hvorfor et valg ev. ikke er tilgjengelig.
Håndtert av komponenten (14)
KriteriumNivåHva komponenten gjør
1.3.1 Informasjon og relasjonerANative <button>-element med implisitt rolle. Tekst-innhold gir tilgjengelig navn automatisk.
1.3.2 Meningsfull rekkefølgeAInnholdet følger naturlig lesrekkefølge i DOM.
1.4.1 Bruk av fargeATilstand (hover/active) kommuniseres med fyll og kant i tillegg til farge — ikke farge alene.
1.4.4 Endre tekststørrelseAARelative enheter — skalerer korrekt ved 200 % zoom.
1.4.10 OmflytAAReflower korrekt ned til 320px viewport.
1.4.11 Kontrast for ikke-tekstlig innholdAAFokusindikator oppfyller 3:1 kontrastkrav.
2.1.1 TastaturANative <button> aktiveres med Enter og Space. Fullt opererbart med tastatur.
2.1.2 Ingen tastaturfelleAFokus kan navigeres ut med Tab og Shift+Tab.
2.4.3 FokusrekkefølgeAFølger naturlig tab-rekkefølge i DOM.
2.4.7 Synlig fokusAATydelig fokusindikator via :focus-visible med outline-token.
3.2.1 Ved fokusAFokus trigger ingen kontekstendring.
1.4.3 Kontrast (minimum)AATekstfarge bruker --ix-color-foreground-main-default mot fill-main-tokens i alle interaksjonstilstander. Disabled-tilstand (opacity: 0.4) er unntatt fra kravet per WCAG.
2.5.8 Målstørrelse (minimum)AAmd-størrelsen (padding-block spacing-xs + font-size-md) gir klikkflate godt over 24×24px. sm-størrelsen (padding-block spacing-2xs + font-size-sm) er nær minimumet; chips presenteres i grupper med gap (spacing) mellom seg, slik at avstands-unntaket i SC 2.5.8 gjelder. Konsumenten må unngå å pakke sm-chips så tett at både mål og avstand kommer under 24px.
4.1.2 Navn, rolle, verdiANative <button> med implisitt rolle=button og navn fra tekst-innhold. Native disabled-attributt eksponeres til hjelpemidler.
Ikke relevant (41)
KriteriumNivåHvorfor ikke relevant
1.1.1 Ikke-tekstlig innholdAChipen har ingen ikke-tekstlig innhold som bilder — ev. ikon er dekorativt og skjules med aria-hidden.
1.2.1 Bare lyd og bare video (forhåndsinnspilt)AIngen medieelementer.
1.2.2 Teksting (forhåndsinnspilt)AIngen medieelementer.
1.2.3 Synstolking eller mediealternativ (forhåndsinnspilt)AIngen medieelementer.
1.2.4 Teksting (direkte)AAIngen medieelementer.
1.2.5 Synstolking (forhåndsinnspilt)AAIngen medieelementer.
1.3.3 Sensoriske egenskaperAChipen formidler ikke instruksjoner — den utfører en handling.
1.3.4 VisningsretningAAIngen fast orientering — tilpasser seg visningsretning.
1.3.5 Identifiser formål med inndataAAIkke et skjemafelt som ber om personlig informasjon.
1.4.2 Styring av lydAIngen lydelementer.
1.4.5 Bilder av tekstAAIngen bilder av tekst.
1.4.12 TekstavstandAA
1.4.13 Innhold ved hover eller fokusAA
2.1.4 TastatursnarveierAIngen egendefinerte tastatursnarveier.
2.2.1 Justerbar hastighetAIngen tidsbegrensede funksjoner.
2.2.2 Pause, stopp, skjulAIngen animasjon eller automatisk oppdatering.
2.3.1 Terskelverdi på tre glimtAIngen blinkende eller glimtende innhold.
2.4.1 Hoppe over blokkerASidekrav — gjelder ikke enkeltkomponenter.
2.4.2 SidetitlerASidekrav — gjelder ikke enkeltkomponenter.
2.4.4 Formål med lenke (i kontekst)ALenke-chips (as="a") må ha meningsfull tekst — det er konsumentens ansvar.
2.4.5 Flere måterAASidekrav — gjelder ikke enkeltkomponenter.
2.4.11 Fokus ikke skjult (minimum)AAIngen sticky/overlappende elementer som kan skjule fokus.
2.5.1 PekerbevegelserAIngen drag-and-drop eller sveipebevegelser.
2.5.2 Avbryt pekerANative button-element — nettleseren håndterer pekerinteraksjon.
2.5.3 Label i navnADen synlige label-teksten er det tilgjengelige navnet.
2.5.4 BevegelsesaktiveringAIngen bevegelsesbasert interaksjon.
2.5.6 Samtidige inndatamekanismerA
2.5.7 DrabevegelserAIngen drag-and-drop.
3.1.1 Språk på sidenASidekrav — gjelder ikke enkeltkomponenter.
3.1.2 Språk på deler av innholdAAKomponenten setter ikke lang-attributt — innhold er på sidespråket.
3.2.2 Ved inndataAChipen trigger ingen automatisk kontekstendring ved fokus.
3.2.3 Konsistent navigasjonAASidekrav — gjelder ikke enkeltkomponenter.
3.2.4 Konsistent identifikasjonAASystemkrav — gjelder konsistens på tvers av sider, ikke enkeltkomponenter.
3.2.6 Konsistent hjelpASidekrav — gjelder plassering av hjelpefunksjon på tvers av sider.
3.3.1 Identifikasjon av feilA
3.3.2 Ledetekster eller instruksjonerA
3.3.3 Forslag ved feilAA
3.3.4 Forhindring av feil (juridisk, økonomisk, data)AAFlytkrav — gjelder bekreftelse/reversering av transaksjoner, ikke enkeltfelter.
3.3.7 Redundant oppføringAFlytkrav — gjelder at brukeren ikke skal gjenta informasjon i en prosess.
3.3.8 Tilgjengelig autentisering (minimum)AAIkke en autentiseringskomponent.
4.1.3 StatusmeldingerAAButton chip genererer ingen statusmeldinger selv.

Props / API

Chip

PropTypeStandardBeskrivelse
size'sm' | 'md''md'Størrelse
asElementType'button'Render som annet element, f.eks. 'a' for lenke-chips
disabledbooleanDeaktiverer chipen (nativ HTML-attributt)

I tillegg støttes alle standard HTML-knapp-attributter (onClick, onFocus, type, name, value, tabIndex osv.) og settes direkte på elementet.

Tilpasning med CSS

Trenger du button chip-stylingen på HTML du setter sammen selv, kan du bruke .ix-chip-klassen direkte på elementene dine.

Tilgjengelige klasser og attributter

Element/tilstandSelektor / attributt
Chip.ix-chip
Liten størrelsedata-size="sm"
Hover / active:hover / :active (automatisk)
Fokus:focus-visible (automatisk)
Deaktivertdisabled eller aria-disabled="true"

Eksempel: ren HTML

<button class="ix-chip" type="button">
Chip label
</button>

<button class="ix-chip" data-size="sm" type="button">
Liten chip
</button>

<a class="ix-chip" href="/sparing">
Sparing
</a>

Relatert

  • Chip — oversikt over chip-familien og felles retningslinjer
  • Removable chip — chip som representerer et aktivt valg og kan fjernes
  • Radio chip — gruppe der brukeren velger nøyaktig ett alternativ
  • Button — for primære og sekundære handlinger i en visning