Библиотека компонентов для вертикали SDDS SERV
Реализация компонентов для создания веб-приложений.
Компоненты реализованы с помощью React и поставляются в трёх вариантах:
- на предсобранном CSS,
- на styled-components
- на emotion.
Ссылки
- Документация — гайды, список компонентов с примерами и API
- Подключение в Next.js
- Changelog
- Задать вопрос или сообщить о проблеме
Установка
Требуются react и react-dom версии 16.13.1 или выше:
$ npm install --save react react-dom
$ npm install --save @salutejs/sdds-serv @salutejs/sdds-themes
Дальнейшие шаги зависят от выбранного варианта поставки.
Для варианта на styled-components:
$ npm install --save styled-components@5.3.1
Для варианта на emotion:
$ npm install --save @emotion/styled @emotion/react @emotion/css
CSS-вариант дополнительных зависимостей не требует.
Варианты поставки
Примечание: CSS-вариант является поставкой по умолчанию.
Один и тот же набор компонентов доступен из трёх точек входа:
| Точка входа | Реализация | Дополнительные зависимости |
|---|---|---|
@salutejs/sdds-serv |
предсобранный CSS | нет |
@salutejs/sdds-serv/styled-components |
styled-components | styled-components@5.3.1 |
@salutejs/sdds-serv/emotion |
emotion | @emotion/styled, @emotion/react, @emotion/css |
import { Button } from '@salutejs/sdds-serv';
// или
import { Button } from '@salutejs/sdds-serv/styled-components';
// или
import { Button } from '@salutejs/sdds-serv/emotion';
Подключение шрифтов
Типографическая система основана на фирменных шрифтах, они поставляются с CDN.
Добавьте три css-файла внутрь тега <head>.
<link rel="stylesheet" href="https://cdn-app.sberdevices.ru/shared-static/0.0.0/styles/SBSansText.0.2.0.css" />
<link rel="stylesheet" href="https://cdn-app.sberdevices.ru/shared-static/0.0.0/styles/SBSansDisplay.0.2.0.css" />
<link rel="stylesheet" href="https://cdn-app.sberdevices.ru/shared-static/0.0.0/styles/SBSansTextMono.0.2.0.css" />
Подключение темы
Тема подключается один раз в корне приложения.
Примечание: Для Next.js — в
pages/_app.tsx.
Тема включает в себя цветовые и типографические токены.
Доступны светлая и тёмная темы — sdds_serv__light и sdds_serv__dark, а также вариант с акцентным цветом малахит — sdds_serv_malachite__light.
Через импорт css-файла
import '@salutejs/sdds-themes/css/sdds_serv__light.css';
Через styled-components
import { createGlobalStyle } from 'styled-components';
import { sdds_serv__light } from '@salutejs/sdds-themes';
const Theme = createGlobalStyle(sdds_serv__light);
// вызовите <Theme /> в корне приложения
Через emotion
import { Global, css } from '@emotion/react';
import { sdds_serv__light } from '@salutejs/sdds-themes';
const themeStyle = css(sdds_serv__light);
// вызовите <Global styles={themeStyle} /> в корне приложения
Переключение темы в рантайме и подключение через css-модули описаны в документации.
Использование компонентов
// App.tsx
import { Button, BodyL } from '@salutejs/sdds-serv';
import '@salutejs/sdds-themes/css/sdds_serv__light.css';
export const App = () => {
return (
<>
<BodyL>Hello, SDDS SERV!</BodyL>
<Button>Кнопка</Button>
</>
);
};
Дизайн-токены доступны в виде js-переменных:
- базовый набор — из
@salutejs/sdds-themes/tokens - уникальные токены темы — из
@salutejs/sdds-themes/tokens/sdds_serv.
import { textAccent } from '@salutejs/sdds-themes/tokens';
<p style={{ color: textAccent }}>Пример использования токена</p>;
AI-kit
Компоненты для построения AI-интерфейсов — доступны из отдельных точек входа с теми же тремя вариантами поставки:
import { Answer } from '@salutejs/sdds-serv/ai';
// или
import { Answer } from '@salutejs/sdds-serv/ai/styled-components';
// или
import { Answer } from '@salutejs/sdds-serv/ai/emotion';
SSR и Next.js
- Библиотека поддерживает React Server Components (App Router) только при явном использовании директивы
'use client'в модулях, импортирующих компоненты. - Для CSS-варианта поставки добавьте пакеты в
transpilePackagesвnext.config.js:
const nextConfig = {
transpilePackages: ['@salutejs/sdds-serv', '@salutejs/plasma-new-hope', '@salutejs/plasma-icons'],
};
Подробности — в гайде по Next.js.
MCP-сервер для AI-агентов
Примечание: Поддерживаются версии библиотеки начиная с
0.343.0— нужная указывается параметром--version.
Библиотека предоставляет MCP-сервер @salutejs/sdds-mcp — через него LLM-агент (Claude Code, Cursor и др.) получает актуальную документацию:
- список компонентов
- описание props
- примеры использования
- токены и гайды.
Сервер работает по stdio:
npx -y @salutejs/sdds-mcp@latest --lib sdds-serv
Если агент настраивается через конфигурацию, используйте шаблон:
{
"mcpServers": {
"sdds-serv": {
"command": "npx",
"args": ["-y", "@salutejs/sdds-mcp@latest", "--lib", "sdds-serv"]
}
}
}
Подробности и список инструментов — в гайде по MCP.