Grunnleggende
Kom i gang med kodepakkene
Introduksjon
Dette er en rask innføring i hvordan du tar i bruk kodepakkene våre. Hvis du er utvikler i Nav som skal starte på et nytt prosjekt, anbefaler vi at du også leser artikkelen om Golden Path for frontend i Nav.
Installasjon
yarn add @navikt/ds-react @navikt/ds-cssnpm install @navikt/ds-react @navikt/ds-cssAksels pakker finner man på både NPM og GPR (GitHub Package Registry). Vi anbefaler team i Nav å bruke GPR om mulig. Får du 401-error ved installering kan det være lurt å sjekke token i .npmrc
Bruk
import "@navikt/ds-css"; // <- Trenger bare importeres ett stedimport { Button } from "@navikt/ds-react";
<Button variant="primary">Send inn søknad</Button>All React-koden er tree-shakable, slik at du bare inkluderer den koden du trenger. Les mer om komponent-API.
CSS
Pakken @navikt/ds-css inneholder all komponentstyling, fonter, ulike CSS-resets, print-styling, CSS-variablene våre fra @navikt/ds-tokens og normalize.css v8.
Stylelint
Vi anbefaler alle å ta i bruk stylelint-konfigurasjonen vår. Den hjelper deg med å unngå feil og følge anbefalt praksis.
Fontlasting
Fonten vi benytter blir lastet fra CDN, slik at du må gjøre noen tilpasninger i løsningen din.
Vi angir font-display: swap, som medfører at en erstatningsfont vil bli lastet dersom den fonten ikke hentes raskt nok. For å unngå FOUT anbefales det å legge til en link-tag med preload i <head>. Les mer om font preloading.
<link rel="preload" href="https://cdn.nav.no/aksel/fonts/SourceSans3-normal.woff2" as="font" type="font/woff2" crossorigin/>Du må også oppdatere content security policy for å tillate font-src fra cdn.nav.no.
font-src 'self' https://cdn.nav.noIkoner
Ikonpakken vår inneholder 800+ ikoner i stroke- og fill-versjon. Disse kan benyttes som separate React-komponenter eller direkte som SVG-er etter behov.
yarn add @navikt/aksel-iconsnpm install @navikt/aksel-iconsimport { StarIcon } from "@navikt/aksel-icons";
<StarIcon title="Alternativ tekst" fontSize="1.5rem" />Standard bredde og høyde på ikonene er satt til 1em for å gjøre det enkelt å plassere ikonene inline med tekst. Ellers anbefaler vi å bruke 24px (fontSize="1.5rem") der det er mulig, da ikonene er designet for denne størrelsen.
Vi anbefaler også å bruke title-attributtet der det er mulig, fremfor aria-label, ettersom dette gir en bedre opplevelse for skjermleserbrukere.
Språk
Dersom appen din har støtte for flere språk, kan du bruke Provider til å endre språket på komponentene.
Versjonering
Sørg for at alle Aksel-pakkene du bruker er på samme versjonsnummer. Dette sikrer at alle løsningene fra oss fungerer optimalt sammen.
Dependabot
Det er generelt anbefalt å bruke Dependabot for å holde avhengigheter oppdatert med tanke på sårbarheter. Dependabot bør da settes opp til å gruppere alle Aksel-pakkene slik at de oppgraderes samtidig. Dette kan gjøres ved å legge til følgende under - package-ecosystem: npm i filen .github/dependabot.yml:
groups: aksel: patterns: - "@navikt/aksel*" - "@navikt/ds*"Se eventuelt hvordan andre har satt opp sin dependabot.yml-fil.