Skip to content

Størrelser

Størrelsessystemet gir tre moduser som styrer dimensjonene til alle komponenter gjennom et konsistent sett med tokens.

Tre størrelsesmoduser

ModusBasestørrelseBeskrivelse
DsSize.sm16pxKompakt visning
DsSize.md18pxStandard (brukes når ingen størrelse er angitt)
DsSize.lg21pxStor visning

DsSizeTokens

DsSizeTokens inneholder 31 nummererte verdier, fra size0 til size30. Hver verdi beregnes med formelen:

verdi = base + (trinn * 4px)

Eksempler for DsSize.md (base 18px):

TokenVerdi
size018px
size122px
size226px
size538px
size1058px

DsSizeScope

Bruk DsSizeScope for å sette størrelsen for et undertreav widgeter:

dart
DsSizeScope(
  size: DsSize.sm,
  child: Column(
    children: [
      DsButton(
        variant: DsButtonVariant.primary,
        onPressed: () {},
        child: Text('Kompakt knapp'),
      ),
      DsTextfield(
        label: 'Kompakt felt',
      ),
    ],
  ),
)

Prioritering

Når en komponent har både en lokal size-parameter og en DsSizeScope-ancestor, vinner den lokale parameteren:

dart
DsSizeScope(
  size: DsSize.sm,
  child: DsButton(
    size: DsSize.lg, // Denne vinner over DsSizeScope
    variant: DsButtonVariant.primary,
    onPressed: () {},
    child: Text('Stor knapp'),
  ),
)

Standardverdi

Hvis verken en lokal size-parameter eller DsSizeScope er angitt, brukes DsSize.md som standard.

Hente størrelsestokens fra kontekst

dart
Widget build(BuildContext context) {
  final størrelser = DsTheme.of(context).sizeTokens;

  return Padding(
    padding: EdgeInsets.all(størrelser.size2),
    child: Text('Innhold'),
  );
}