Hopp til innhold

Grunnleggende

Theming

Aksel har støtte for lyst og mørkt tema. Denne artikkelen tar for seg det tekniske aspektet for theming. For design, se Design i light og dark mode.

Vi bruker klassenavn light og dark for å bytte mellom fargetema. Dette lar deg endre mellom lyst og mørkt tema ved å sette klassen på <html>-elementet, eller scopet til bare en liten del av appen. Som standard faller systemet tilbake på light hvis du ikke har lagt til noe klassenavn.

Theme-komponent

Vi tilbyr en egen komponent for å definere fargetema og sette bakgrunnsfarge.

Dynamiske farger

Ved å bruke html data-attributtet data-color kan du endre farge brukt på komponenter. Vi tilbyr alle fargene våre gjennom dette API-et. Som standard er globalt "app"-tema accent, slik at alt av lenker, primærknapper osv. vil være blå.

Implementasjonen er hierarkisk, slik at du kan definere fargene brukt slik:

tsx
<div data-color="neutral">
<!-- Innhold får neutral-tint -->
</div>
<div data-color="accent">
<!-- Innhold får accent-tint -->
</div>

Bruk med komponenter

Dette kan være nyttig for mange komponenter, men i noen tilfeller ønsker vi å begrense muligheten (f.eks. i LocalAlert). Vi deler komponenter inn i tre grupper for hvor bra de støtter endring av farge.

Static

Error-states samt elementer med statusfarger som LocalAlert og ErrorSummary støtter kun et begrenset antall farger og vil ofte ikke kunne endres med data-color.

Neutral

Komponenter som Modal og Tooltip vil alltid være nøytrale, og vil ikke påvirkes av data-color. Men innholdet brukt på innsiden av komponentene vil bli påvirket.

Cascade

De fleste resterende komponenter vil arve data-color og da endre farge basert på dette.

tsx
<div data-color="neutral">
<Button>
Neutral button
</Button>
</div>
<Button data-color="danger">
Danger button
</Button>

Autocomplete

Dette API-et fungerer på vanlige HTML-elementer også, så lenge du har brukt tokens som støtter "fargelegging".

tsx
--ax-bg-soft
--ax-bg-softA
--ax-bg-moderate
--ax-bg-moderateA
--ax-bg-moderate-hover
--ax-bg-moderate-hoverA
--ax-bg-moderate-pressed
--ax-bg-moderate-pressedA
--ax-bg-strong
--ax-bg-strong-hover
--ax-bg-strong-pressed
--ax-text-default
--ax-text-subtle
--ax-text-decoration
--ax-text-contrast
--ax-border-default
--ax-border-subtle
--ax-border-subtleA
--ax-border-strong

For å få riktige typer når du bruker data-color, kan du legge til typen i tsconfig:

tsconfig.ts
{
"compilerOptions": {
"types": ["@navikt/ds-react/types/theme"]
}
}

Egne farger

Noen subdomener i Nav har til dels egen branding, noe som er støttet gjennom themingsystemet vårt. Ta kontakt med team Aksel for hjelp med å sette opp dette i både Figma og kode.

Forvalter

Team
Aksel
Artikkel oppdatert 10. juli 2026