Skip to content

DsChip

Kompakt element for filtrering eller valg med veksle-funksjonalitet.

Bruk

Når bør du bruke DsChip?

  • For filtrering av innhold, f.eks. å velge kategorier eller emner.
  • For valgbare alternativer som kan kombineres fritt.
  • For kompakte, interaktive merkelapper i verktøylinjer eller filterområder.

Når bør du unngå DsChip?

  • For rene visuelle merkelapper uten interaksjon — bruk DsTag i stedet.
  • For enkeltvalg mellom gjensidig utelukkende alternativer — bruk DsRadio.
  • For primærhandlinger — bruk DsButton.

DsChip speiler delene fra React-utgaven av Designsystemet og tilbyr fire navngitte konstruktører:

  • DsChip.button — klikkbar handlingschip (Chip.Button). Kaller onTap.
  • DsChip.removable — chip med fjern-ikon (Chip.Removable). Krever onRemove.
  • DsChip.checkbox — vekslbar flervalgschip (Chip.Checkbox). Krever selected og onChanged av typen ValueChanged<bool>.
  • DsChip.radio — enkeltvalgschip (Chip.Radio). Krever selected og onChanged av typen VoidCallback.

Standardkonstruktøren DsChip(...) lager en generisk chip og styres med onTap.

Eksempler

Grunnleggende chip

DsChip — interaktiv forhåndsvisning
Åpne i nytt vindu ↗
dart
DsChip.checkbox(
  selected: erValgt,
  onChanged: (valgt) => setState(() => erValgt = valgt),
  child: Text('Flutter'),
)

Filtergruppe

dart
Wrap(
  spacing: 8,
  children: [
    DsChip.checkbox(
      selected: filtre.contains('dart'),
      onChanged: (v) => oppdaterFilter('dart', v),
      child: Text('Dart'),
    ),
    DsChip.checkbox(
      selected: filtre.contains('flutter'),
      onChanged: (v) => oppdaterFilter('flutter', v),
      child: Text('Flutter'),
    ),
    DsChip.checkbox(
      selected: filtre.contains('web'),
      onChanged: (v) => oppdaterFilter('web', v),
      child: Text('Web'),
    ),
  ],
)

Fjernbar chip

dart
DsChip.removable(
  onRemove: () => fjernEmne('flutter'),
  child: Text('Flutter'),
)

Enkeltvalg (radio)

dart
DsChip.radio(
  selected: valgtSpråk == 'nynorsk',
  onChanged: () => setState(() => valgtSpråk = 'nynorsk'),
  child: Text('Nynorsk'),
)

Handlingschip

dart
DsChip.button(
  onTap: () => utførHandling(),
  child: Text('Legg til'),
)

Retningslinjer

  • Grupper relaterte chips visuelt med jevn avstand.
  • Bruk korte, beskrivende tekster i hver chip.
  • Vis tydelig forskjell mellom valgt og ikke-valgt tilstand.

Tekst

  • Bruk korte, konsise tekster som «Dart», «Flutter», «Mobil».
  • Unngå setninger eller lengre beskrivelser.

Har du innspill til denne komponenten? Send innspill på GitHub