# Библиотека компонентов для вертикали SDDS SBCOM [](https://github.com/salute-developers/plasma/blob/master/LICENSE.txt) [](https://www.npmjs.com/package/@salutejs/sdds-sbcom) [](https://www.typescriptlang.org/) Реализация компонентов для создания веб-приложений. Компоненты реализованы с помощью [React](https://react.dev/) и поставляются в виде предсобранного CSS. ## Ссылки - [Документация](https://plasma.sberdevices.ru/sdds-sbcom/) — гайды, список компонентов с примерами и API - [Задать вопрос или сообщить о проблеме](https://github.com/salute-developers/plasma/issues) ## Установка Требуются `react` и `react-dom` версии `16.13.1` или выше: ```bash $ npm install --save react react-dom $ npm install --save @salutejs/sdds-sbcom @salutejs-ds/sdds_sbcom ``` ## Варианты поставки Единственный вариант поставки — предсобранный CSS. | Точка входа | Реализация | Дополнительные зависимости | | ----------------------- | ------------------ | --------------------------- | | `@salutejs/sdds-sbcom` | предсобранный CSS | нет | ```jsx import { Button } from '@salutejs/sdds-sbcom'; ``` Beta-компоненты доступны из точки входа `@salutejs/sdds-sbcom/beta`. Подробнее — в [документации](https://plasma.sberdevices.ru/sdds-sbcom/beta/popover/). ## Подключение шрифтов Типографическая система основана на фирменных шрифтах, они поставляются с CDN. Добавьте два css-файла внутрь тега `
`. ```html ``` ## Подключение темы Тема подключается один раз в корне приложения. > **Примечание:** Для [Next.js](https://nextjs.org/) — в `pages/_app.tsx`. Тема включает в себя цветовые и типографические токены. Доступны светлая и тёмная темы — `sdds_sbcom__light` и `sdds_sbcom__dark`. ```jsx import '@salutejs-ds/sdds_sbcom/css/sdds_sbcom__light.css'; ``` Переключение темы в рантайме и подключение через css-модули описаны в [документации](https://plasma.sberdevices.ru/sdds-sbcom/). ## Использование компонентов ```jsx // App.tsx import { Button, BodyL } from '@salutejs/sdds-sbcom'; import '@salutejs-ds/sdds_sbcom/css/sdds_sbcom__light.css'; export const App = () => { return ( <>Пример использования токена
; ``` ## SSR и Next.js - Библиотека поддерживает React Server Components (App Router) **только** при **явном** использовании директивы `'use client'` в модулях, импортирующих компоненты. - Добавьте пакеты в `transpilePackages` в `next.config.js`: ```js const nextConfig = { transpilePackages: ['@salutejs/sdds-sbcom', '@salutejs/plasma-new-hope', '@salutejs/plasma-icons', '@salutejs-ds/sdds_sbcom'], }; ```