npm install --save-dev @gravity-ui/illustrationsSetup illustrations theme. Execute any of the following steps:
Define following css-tokens in app:
--gil-color-object-base: rgb(255, 190, 92);
--gil-color-object-accent-heavy: rgb(211, 101, 7);
--gil-color-object-hightlight: rgb(255, 216, 157);
--gil-color-shadow-over-object: rgb(211, 158, 80);
--gil-color-background-lines: rgb(140, 140, 140);
--gil-color-background-shapes: rgb(242, 242, 242);
--gil-color-object-accent-light: rgb(255, 255, 255);
--gil-color-object-danger: rgb(255, 0, 61);Use the following mixins for styling illustrations in different themes
@import '@gravity-ui/illustrations/styles/theme.scss';
.g-root {
&_theme_light {
@include g-illustrations-colors-light;
}
&_theme_light-hc {
@include g-illustrations-colors-light-hc;
}
&_theme_dark {
@include g-illustrations-colors-dark;
}
&_theme_dark-hc {
@include g-illustrations-colors-dark-hc;
}
}Alternatively, if @gravity-ui/uikit is already installed in the project and default theme is used, you can just import styles.scss to the root file with styles in your project:
// existing gravity styles definition
import '@gravity-ui/uikit/styles/styles.css';
// just add one more import below
import '@gravity-ui/illustrations/styles/styles.scss';import NotFound from '@gravity-ui/illustrations/NotFound';or
import {NotFound} from '@gravity-ui/illustrations';You might need an appropriate loader for this
import notFound from '@gravity-ui/illustrations/svgs/not-found-light.svg';For updating illustrations according to new design, change the content of svg-s in light theme (<this-repository-root>/svgs/<illustration-name>-light.svg files) and then run command:
npm run generateDistributed under the MIT License. See LICENSE for details.
A themed set of flat SVG illustrations (empty states, errors, not-found, etc.) for Gravity UI apps — reach for it when you need ready-made, theme-aware placeholder/empty-state artwork instead of drawing your own or using bare icons.
- Empty states, 404/error pages, or onboarding placeholders that need a consistent illustration, not a functional UI control.
- Themeable artwork — the SVGs respond to Gravity theme tokens (light/dark, high-contrast) via SCSS mixins or CSS variables.
- Importing artwork as React components (default) or as raw
.svgfiles.
- For functional UI iconography (chevrons, checks, buttons), use
@gravity-ui/icons— illustrations are decorative artwork, not UI glyphs. - For a single one-off illustration you already have as an asset, import that asset directly rather than pulling in this package.
- Rendering without a theme import — illustrations appear uncolored unless you import
@gravity-ui/illustrations/styles/styles.scss(or define the--gil-color-*CSS tokens). - Hallucinated default export names — illustration components are PascalCase named exports (e.g.
NotFound), imported from the package root or per-file (@gravity-ui/illustrations/NotFound). - Importing
.svgdirectly in a non-configured bundler — raw SVG imports need an appropriate loader; prefer the React component export to avoid bundler setup.
Agent-readable documentation for the installed version is located in node_modules/@gravity-ui/illustrations/docs/INDEX.md.