UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

119 lines (96 loc) 5.2 kB
--- title: 'Quick Reference' description: 'A compact, practical guide for building with Eufemia: install, components, forms, and key conventions. AI-friendly.' version: 10.104.0 generatedAt: 2026-04-17T18:46:12.814Z checksum: 090b7d977ba4be5e2c4c04d199a30a4048416c59f443a56985df2f80629d9c40 --- # Eufemia quick reference This is a compact, practical guide for teams who already know they want Eufemia and need the fastest path to decisions and common patterns. ## Before you build 1. **Choose the brand theme**: - `ui` (default), `sbanken`, `carnegie`, or `eiendom` ([theming](/uilib/usage/customisation/theming)). 2. **Form-heavy flow?** - Prefer the [Forms extension](/uilib/extensions/forms) and `Field.*` components for validation and structure. 3. **Multi-step journeys?** - Use [Wizard](/uilib/extensions/forms/Wizard) for step navigation and focus management. 4. **Loading states?** - Plan for [Skeleton](/uilib/components/skeleton) or [ProgressIndicator](/uilib/components/progress-indicator). 5. **Internationalization?** - Plan for [localization and i18n](/uilib/usage/customisation/localization). 6. **Styling strategy?** - Decide how to [import styles](/uilib/usage/customisation/styling/consume-styles) and whether you need [style isolation](/uilib/usage/customisation/styling/style-isolation). ## Setup ```bash npm i @dnb/eufemia react react-dom ``` ```tsx // App entry - import styles once import '@dnb/eufemia/style' // Components and other imports import { Button, Input, Card, Dialog, Icon } from '@dnb/eufemia' import { H1, H2, P } from '@dnb/eufemia' import { Flex, Space } from '@dnb/eufemia' import { Form, Field, Value, Wizard, Iterate, Connectors, } from '@dnb/eufemia/extensions/forms' import { ChildrenWithAge } from '@dnb/eufemia/extensions/forms/blocks' import { Provider, Theme, useTheme, useSharedContext, useTranslation, useMedia, } from '@dnb/eufemia/shared' ``` ## Key conventions 1. Prefer [Flex](/uilib/layout/flex) and [Forms](/uilib/extensions/forms) over other layout and form solutions. 2. Use `Field.*` components for user input and forms whenever available (all [fields](/uilib/extensions/forms/feature-fields/)). 3. Follow [accessibility basics](/uilib/usage/accessibility) and avoid font sizes below 14px. 4. Use the [spacing system](/uilib/layout/spacing) and [Space](/uilib/layout/space) instead of ad-hoc margins. 5. Import styles once at the app root (`import '@dnb/eufemia/style'`). 6. Prefer [helpers and tools](/uilib/helpers) over custom one-off utilities. 7. Use [HTML elements](/uilib/elements) for semantic structure, even when not using components. 8. Favor CSS custom properties and spacing helpers over hard-coded values ([Spacing](/uilib/layout/spacing), [Typography](/uilib/typography)). ## Detailed references - [Components](/uilib/components) - [Forms extension](/uilib/extensions/forms) - [Layout](/uilib/layout) - [Styling and theming](/uilib/usage/customisation) - [Typography](/uilib/typography) - [Colors](/uilib/usage/customisation/colors/) - [Theming](/uilib/usage/customisation/theming) - [Icons](/icons) See [Forms](/uilib/extensions/forms) for validation, schema, and more fields. ## Forms essentials - Start with [Getting started](/uilib/extensions/forms/getting-started) for forms patterns, validation, and data handling. - Use [Form.Handler](/uilib/extensions/forms/Form/Handler) for submit/validation and [GlobalStatus](/uilib/components/global-status) for error summaries. - For multi-step flows, use [Wizard](/uilib/extensions/forms/Wizard). - For edit/view modes, use [Form.Section](/uilib/extensions/forms/Form/Section). - Prefer [feature fields](/uilib/extensions/forms/feature-fields) (e.g. `Field.*`) when available. - For read-only outputs, use [Value components](/uilib/extensions/forms/Value) (e.g. `Value.*`). - Most `Field.*` components have a corresponding `Value.*` component; you can mix fields and values in the same form. - For read-only summaries, use [Value.SummaryList](/uilib/extensions/forms/Value/SummaryList). - Validation schemas can be provided via Zod or [AJV JSON Schema](/uilib/extensions/forms/Connectors). ## AI instructions and skills Eufemia's documentation is optimized for AI assistance. When generating or reviewing code, use the following sources in order of priority. - Use the documentation exactly as provided. - Gather all required information from the documentation before using it as a reference. - Do not make assumptions or infer missing details unless explicitly instructed to do so. ### Versioned documentation (preferred) 1. Install `@dnb/eufemia` with the package manager used in your project (e.g., npm, yarn, pnpm). 2. Find where `node_modules` is located in your project. 3. Read docs from `node_modules/@dnb/eufemia/docs/uilib/usage/first-steps/quick-reference.md`. 4. Follow relative links between markdown files. 5. Use this content as the primary reference. ### Non-versioned documentation 1. Fetch `https://eufemia.dnb.no/uilib/usage/first-steps/quick-reference.md`. 2. Read docs from the fetched markdown file. 3. Follow absolute URLs for referenced markdown files. 4. Use this content as a reference only.