@royalnavy/design-tokens
v4.25.2
Published
An agnostic way to store variables such as typography, color, and spacing.
Downloads
3,157
Readme
Design Tokens
An agnostic way to store variables such as typography, color, and spacing.
Installation
The Royal Navy Design Tokens are available as an NPM package.
// npm
npm install @royalnavy/design-tokens
// pnpm
pnpm add @royalnavy/design-tokens
Selectors
The reccomended way to access tokens is using the supplied selector functions.
Simply import the selector object and then destructure the selectors you want to use out of this.
import { selectors } from '@royalnavy/design-tokens'
const { color, spacing, mediaQuery } = selectors
// inside a styled-component
const StyledExample = styled.div`
color: ${color('action', '500')};
margin-top: ${spacing('2')};
${mediaQuery({ gte: 'xs', lt: 'xl', media: '' })`
// @media and (min-width:576px) and (max-width:1400px)
color: black;
`}
`
| Selector | Alias | Example Return Value | Description |
| ---------- | ----- | ------------------------------- | ------------------------------------------------------------ |
| animation | | 0.2s
| Animation timing values. |
| breakpoint | | { breakpoint: '768px' }
| Raw object containing breakpoint
. |
| mediaQuery | mq | See usage example above. | Tagged template literal that generates a media query string. |
| color | | #FFFFFF
| A color value as a hex string. |
| shadow | | 0 1px 3px rgba(0, 0, 0, 0.04)
| Preset box-shadow
values. |
| spacing | | 0.5rem
| Fixed spacing value in REMs. |
| fontSize | | 0.5rem
| Fixed font-size
value in REMs. |
| zIndex | | 6001
| Scoped z-index
value with optional modifier. |
The selectors are typed. We reccomend using the hinting in your IDE to see the signatures and available arguments for each selector. Alternatively, you can see the raw tokens here on GitHub.
Raw Tokens
It's also possible to access the raw underlying tokens.
We consider these to be implementation detail (they may change without notice), as such we recommend using selectors over raw tokens in most instances.
JavaScript
import { ColorNeutral100 } from '@royalnavy/design-tokens'
SASS
@use '@royalnavy/design-tokens' as $vars;
Questions
The Design System is maintained by a team at the Royal Navy. If you want to know more about the Royal Navy Design System, please email the Design System Team.
Documentation
The documentation website contains all the information you need to build your application using the Royal Navy Design System.
Contributing
The contributing guide resource presents information about our development process.
Changelog
If you have recently updated then read the release notes
Roadmap
The Design System Roadmap Board contains the work that has been prioritised for the next 12 months.
License
The Royal Navy Design System is licensed under the Apache License 2.0.