Aksel designsystem — spacing-tokens, layout-komponenter, responsivt design og komponentmønstre for Nav-frontend
Bruk denne skillen når du jobber i Nav-frontend med @navikt/ds-react, layout i Aksel-primitives og responsiv UI. Hovedregler ligger her; detaljer ligger i references/.
@navikt/ds-react@navikt/aksel-icons@navikt/ds-tokensaksel.nav.nopnpm add @navikt/ds-react @navikt/ds-css @navikt/aksel-icons
Importer CSS i roten av appen (f.eks. _app.tsx, layout.tsx eller main.tsx):
@import "@navikt/ds-css";
For detaljert oppsett, token-importstier og v8-codemods, se references/setup.md.
Foretrekk Aksel spacing-tokens. Unngå Tailwind padding/margin når Aksel-tokens er tilgjengelige.
space-* i Box, VStack, HStack, HGrid og andre Aksel-primitivesgap, paddingBlock, paddingInline, marginBlock og marginInlineimport { Box, VStack } from "@navikt/ds-react";
export function Example(): JSX.Element {
return (
<Box paddingBlock={{ xs: "space-16", md: "space-24" }} paddingInline="space-16">
<VStack gap="space-12">
<div>Header</div>
<div>Content</div>
</VStack>
</Box>
);
}
import { BodyShort, Box } from "@navikt/ds-react";
export function Example(): JSX.Element {
return (
<Box background="default" borderColor="neutral-subtle" borderRadius="12" borderWidth="1" padding="space-16">
<BodyShort>Card content</BodyShort>
</Box>
);
}
import { BodyShort, Heading, VStack } from "@navikt/ds-react";
export function Example(): JSX.Element {
return (
<VStack gap="space-12">
<Heading size="medium" level="2">Section title</Heading>
<BodyShort>Supporting text</BodyShort>
</VStack>
);
}
import { Button, HStack } from "@navikt/ds-react";
export function Example(): JSX.Element {
return (
<HStack gap="space-8" justify="end">
<Button variant="secondary">Cancel</Button>
<Button>Save</Button>
</HStack>
);
}
import { Box, HGrid } from "@navikt/ds-react";
export function Example(): JSX.Element {
return (
<HGrid columns={{ xs: 1, md: 2, xl: 3 }} gap="space-16">
<Box padding="space-16" background="neutral-soft">A</Box>
<Box padding="space-16" background="neutral-soft">B</Box>
<Box padding="space-16" background="neutral-soft">C</Box>
</HGrid>
);
}
xs, sm, md, lg, xlShow / Hide når innhold faktisk skal skiftes per breakpointimport { Box, HGrid, Show } from "@navikt/ds-react";
export function Example(): JSX.Element {
return (
<HGrid columns={{ xs: 1, md: "2fr 1fr" }} gap={{ xs: "space-12", md: "space-24" }}>
<Box padding="space-16" background="default">Main content</Box>
<Show above="md">
<Box padding="space-16" background="neutral-soft">Sidebar</Box>
</Show>
</HGrid>
);
}
import { BodyLong, BodyShort, Heading, VStack } from "@navikt/ds-react";
export function Example(): JSX.Element {
return (
<VStack gap="space-8">
<Heading size="large" level="2">Application status</Heading>
<BodyShort>Short summary for scanning.</BodyShort>
<BodyLong>Longer explanatory text with context and next steps.</BodyLong>
</VStack>
);
}
space-*-tokens i layout-propsFor installasjon, CSS-oppsett og v8-codemods, se references/setup.md.
For komplett token-oversikt, se references/tokens.md.
For semantiske --ax-*-tokens og data-color, se references/semantic-tokens.md.
For komponent-API, se references/components.md.
For layout-mønstre (inkl. Next.js), se references/patterns.md.