Getting started with development
Getting started with development
Install the React component library, load fonts, and start building with EDS components and design tokens.
Prerequisites: Node.js 24+, React 18+, TypeScript 5.9+ (recommended)
Install
npm install @equinor/eds-core-react styled-components
# or
pnpm add @equinor/eds-core-react styled-components
styled-components@6 is a peer dependency of eds-core-react.
The versions are named after their release status. Latest is what a plain npm install gives you, and Beta is the 3.0.0 beta. See Versioning for which package versions each one is.
Load fonts
Add the EDS variable font stylesheet to your HTML <head>:
<link rel="stylesheet" href="https://cdn.eds.equinor.com/font/eds-uprights-vf.css" />
This stylesheet loads both Equinor and Inter. If you use the Beta (next) components, it is required, because the older equinor-font.css only includes Equinor and will cause fallback fonts. See Typography for details.
Use components
EDS has two component sets: the Latest components and the Beta (next) components.
Latest components
import { Button, Typography } from '@equinor/eds-core-react'
function App() {
return (
<div>
<Typography variant="h1">Welcome to EDS</Typography>
<Button variant="contained">Get Started</Button>
</div>
)
}
Beta components
New components live under the /next export, published on the beta dist-tag. They use vanilla CSS with design tokens instead of styled-components:
npm install @equinor/eds-core-react@beta
import { Button } from '@equinor/eds-core-react/next'
import '@equinor/eds-core-react/next/index.css'
import '@equinor/eds-tokens/css/variables'
function App() {
return <Button variant="primary">Get Started</Button>
}
See the component overview for what's available in each set.
/next ships only on the beta dist-tag, so the plain npm install @equinor/eds-core-react above does not include it. Browsing the components in Storybook does not enable them either.
Beta here means safe to adopt alongside the Latest components, not "wait and see": Latest stays supported until 3.0.0 is released, and mixing both in one application is expected. The API may still change in small ways, and the token setup for /next is being reworked. See About the beta for what beta means.
Versioning
The docs and Storybook name the versions after their release status, the same as the latest and beta dist-tags on npm:
| Latest | Beta | |
|---|---|---|
@equinor/eds-core-react | 2.x | 3.0.0 beta, with the components in /next |
@equinor/eds-tokens | 2.x | 3.0.0 beta |
| Install | npm install @equinor/eds-core-react | npm install @equinor/eds-core-react@beta |
| Storybook | The top-level sections | The Beta section |
The other packages, such as @equinor/eds-icons, are not split into Latest and Beta.
Removing the Latest components is a breaking change, so Beta becomes eds-core-react@3.0.0, in three steps:
- Beta (
3.0.0-beta.N, today): the components live under/next. Small breaking changes can still happen, and each one is listed in the changelog. - Release candidate (
3.0.0-rc.N): the components move out of/nextand the 2.x components are removed. The API is frozen and only fixes go in, so this is the time to test 3.0.0 in your application. Release candidates are published on thercdist-tag. - Stable (
3.0.0): the last release candidate is released as stable, and Latest moves to 3.x.
@equinor/eds-tokens goes through the same steps at the same time.
Design tokens
For custom styling, use EDS design tokens to stay consistent with the system.
CSS variables (recommended)
@import '@equinor/eds-tokens/css/variables';
.my-card {
color: var(--eds-color-text-neutral-strong);
padding: var(--eds-spacing-vertical-md) var(--eds-spacing-horizontal-md);
border-radius: var(--eds-spacing-border-radius-rounded);
}
npm install @equinor/eds-tokens
The token structure is being replaced. The CSS variables are the supported option today, but the variable names will change in the next major release of @equinor/eds-tokens, so keep direct variable references few and centralised. The older tokens JavaScript object is deprecated and should not be used in new code. See the package README for details.
Troubleshooting
Missing fonts: if components render in a generic sans-serif, check that the eds-uprights-vf.css stylesheet is loaded. The Beta components require Inter, which is only in the variable font stylesheet.
Peer dependency warnings: eds-core-react expects react@^18 || ^19, react-dom@^18 || ^19, and styled-components@^6. Check versions with npm ls react styled-components.
TypeScript version: EDS requires 5.9+. If you see type errors, check your tsconfig.json targets a compatible version.
Need help?
The support page has the #eds-design-system Slack channel, email and GitHub issues.