yarn add @skbkontur/react-ui
И используем компонентики у себя в проекте:
/* ... */
import Button from '@skbkontur/react-ui/Button'
import Toast from '@skbkontur/react-ui/Toast'
const MyApp = () => (
<div>
Click this button
{' '}
<Button onClick={() => Toast.push('Hey!')}>Click me</Button>
</div>
)
Если ругается, что regeneratorRuntime
не определен,
то необходимо подключить regenerator-runtime
или babel-polyfill
,
например в index.html
Квик-старт подойдёт, если вебпак настроен на сборку. Например, вы используете create-react-app
. В противном случае добавьте в конфиг Вебпака style-
, css-
и file-loader
.
Необходимо в конфиг webpack добавить следующие лоадеры:
/* ... */
module: {
/* ... */
loaders: [
{
test: /\.jsx?$/,
use: [
{
loader: 'babel-loader',
options: {
presets: [
'env',
'react'
],
plugins: [
'transform-object-rest-spread',
'transform-class-properties'
]
}
}
],
include: /retail-ui/
},
{
test: /\.less$/,
use: ['style-loader', 'css-loader', 'less-loader'],
include: /retail-ui/
},
{
test: /\.(png|woff|woff2|eot)$/,
use: ['file-loader']
}
]
/* ... */
}
/* ... */
Тут придется юзать слоу-старт. В конфиге нужно указать
/* ... */
resolve: {
/* ... */
alias: {
'react-ui-theme.less': 'path-to-my-theme-variables.less'
}
/* ... */
}
/* ... */
Список переменных можно глянуть в components/variables.less
Если библиотека используется в проекте с легаси, где стилизация сделана прямо по названиям тегов, то внешний вид контролов из библиотеки может сильно испортиться
Если нет возможности разобрать легаси, то можно увеличить специфичность селекторов в библиотеке, тогда стили контролов будут приоритетнее стилей из легаси проекта
Специфичность достигается за счет n-кратного повторения css-класса react-ui
в селекторе стилей. Количество повторений задается через переменную @specificity-level
, значение по умолчанию равно нулю, то есть по умолчанию css-класс react-ui
никак ни на что не будет влиять
Чтобы специфичность заработала в легаси проекте, react-блок, в котором используются компоненты из библиотеки, должен быть обернут в тег с css-классом react-ui
Пример настройки специфичности
/* ... */
@specificity-level: 5;
/* ... */
Никак.
Тестирование происходит с использованием jest и
gemini.
Для запуска тестов на gemini необходимо проставить переменные окружения
SAUCE_USERNAME
и SAUCE_ACCESS_KEY
.
Для запуска только jest тестов можно выполнить npm run unit-test
Мы рады любой сторонней помощи. Не стесняйтесь писать в issues
баги и идеи для развития библиотеки.
Присылайте пулл-реквесты. Даже если в них нет поддержки IE8. Мы доделаем (: