@skbkontur/colors 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,228 @@
1
+ import * as ColorsStories from './Colors.docs.stories';
2
+ import { Stories } from '@storybook/blocks';
3
+ import { Meta } from '../../../.storybook-docs/Meta';
4
+
5
+ <Meta of={ColorsStories} />
6
+
7
+ # Kontur Colors
8
+
9
+ <style>{`
10
+ .docs-link {
11
+ position: relative;
12
+ display: inline-flex;
13
+ gap: 6px;
14
+ padding: 4px 8px;
15
+ align-items: center;
16
+ transition: 0.15s;
17
+ border-radius: 8px;
18
+ font-size: 16px;
19
+ text-decoration: none !important;
20
+ margin-top: 12px;
21
+ margin-bottom: 12px;
22
+ margin-left: -8px;
23
+ margin-right: 8px;
24
+ }
25
+ .docs-link img {
26
+ width: 16px;
27
+ height: 16px;
28
+ }
29
+ .docs-link:hover {
30
+ background: rgba(0, 0, 0, 0.06);
31
+ }
32
+ .docs-link:active {
33
+ background: rgba(0, 0, 0, 0.1);
34
+ }
35
+ .ep__pageLayout {
36
+ min-height: 720px;
37
+ }
38
+ `}</style>
39
+
40
+ <a
41
+ className="docs-link"
42
+ href="https://guides.kontur.ru/principles/base/color/"
43
+ target="_blank"
44
+ children={
45
+ <>
46
+ <img src="https://tech.skbkontur.ru/kontur-ui/favicon.svg" alt="" /> Гайд
47
+ </>
48
+ }
49
+ />
50
+ <a
51
+ className="docs-link"
52
+ href="https://www.figma.com/design/XVgPCAAFhEbIiQDDznkdat/%F0%9F%9A%A7-Kontur-Colors?m=auto&t=cg9j7F8DpdELh2px-6"
53
+ target="_blank"
54
+ children={
55
+ <>
56
+ <img src="https://static.figma.com/app/icon/1/favicon.svg" alt="" /> Figma
57
+ </>
58
+ }
59
+ />
60
+ <a
61
+ className="docs-link"
62
+ target="_blank"
63
+ href="https://git.skbkontur.ru/ui/ui-parking-2/-/tree/master/packages/colors"
64
+ children={
65
+ <>
66
+ <img
67
+ src="https://git.skbkontur.ru/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png"
68
+ alt=""
69
+ />{' '}
70
+ GitLab
71
+ </>
72
+ }
73
+ />
74
+
75
+ Kontur Colors — библиотека цветов для продуктов Контура.
76
+
77
+ **Возможности**
78
+
79
+ - Содержит цветовые схемы для каждого брендового цвета
80
+ - Построена на семантических токенах
81
+ - Поддерживает тёмные темы
82
+ - Доступность. Контрастность цветов по APCA W3
83
+ - Полностью синхронизирована с переменными Figma
84
+
85
+ **Совместимость с любыми веб-фреймворками**
86
+
87
+ - Работает на CSS-переменных `var(--k-color-token-name)` доступных через JS/SCSS/Less
88
+ - Конфигурация сразу нескольких схем через HTML-атрибуты `data-k-brand`, `data-k-accent`, `data-k-theme`
89
+ - [Расширеный JS API](./?path=/docs/colors-colors-api--docs) для генерации палитр любых оттенков и создания кастомных токенов
90
+
91
+ <br />
92
+ <br />
93
+
94
+ ## Установка
95
+
96
+ ```bash
97
+ npm i @skbkontur/colors
98
+ ```
99
+
100
+ Доступны [выгрузки из 14 цветовых схем в виде JSON](https://app.unpkg.com/@skbkontur/colors/files/tokens-mobile) для приложений iOS/Android, языков C#/Java/Python и других платформ.
101
+
102
+ <br />
103
+
104
+ ---
105
+
106
+ <Stories title="" includePrimary={true} />
107
+
108
+ ## Подключение
109
+
110
+ <br />
111
+
112
+ ### 1. Подключение CSS
113
+
114
+ Подключить CSS-файл с одной или несколькими цветовыми схемами продукта: `brand-[цвет]_accent-[gray|brand].css`
115
+
116
+ ```css
117
+ /* Список всех цветовых схем. Выберите одну или несколько */
118
+ @import '@skbkontur/colors/tokens/brand-red_accent-gray.css';
119
+ @import '@skbkontur/colors/tokens/brand-orange_accent-gray.css';
120
+ @import '@skbkontur/colors/tokens/brand-mint_accent-brand.css';
121
+ @import '@skbkontur/colors/tokens/brand-mint_accent-gray.css';
122
+ @import '@skbkontur/colors/tokens/brand-blue_accent-brand.css';
123
+ @import '@skbkontur/colors/tokens/brand-blue_accent-gray.css';
124
+ @import '@skbkontur/colors/tokens/brand-blue-deep_accent-brand.css';
125
+ @import '@skbkontur/colors/tokens/brand-blue-deep_accent-gray.css';
126
+ @import '@skbkontur/colors/tokens/brand-green_accent-brand.css';
127
+ @import '@skbkontur/colors/tokens/brand-green_accent-gray.css';
128
+ @import '@skbkontur/colors/tokens/brand-violet_accent-brand.css';
129
+ @import '@skbkontur/colors/tokens/brand-violet_accent-gray.css';
130
+ @import '@skbkontur/colors/tokens/brand-purple_accent-brand.css';
131
+ @import '@skbkontur/colors/tokens/brand-purple_accent-gray.css';
132
+ ```
133
+
134
+ ### 2. Конфигурация в HTML
135
+
136
+ Настройка контекста через 3 data-атрибута:
137
+
138
+ - **data-k-brand** — брендовый цвет `red | orange | green | mint | blue | blueDeep | violet | purple`
139
+ - **data-k-accent** — акцентный цвет `gray | brand`
140
+ - **data-k-theme** — тема `light | dark` (по умолчанию light)
141
+
142
+ ```html
143
+ <div data-k-brand="orange" data-k-accent="gray" data-k-theme="light">
144
+ <div class="block">Блок Контур.Экстерна</div>
145
+
146
+ <div data-k-brand="blue" data-k-accent="brand" data-k-theme="light">
147
+ <div class="banner">Рекламный баннер Контур.Эльбы</div>
148
+ </div>
149
+ </div>
150
+ ```
151
+
152
+ ## Использование
153
+
154
+ ### CSS
155
+
156
+ Токены доступны в виде CSS-переменных `var(--k-color-token-name)`
157
+
158
+ ```css
159
+ .block {
160
+ color: var(--k-color-text-on-accent-default-primary);
161
+ background: var(--k-color-shape-default-accent-faint);
162
+ }
163
+ ```
164
+
165
+ ### JS/TS
166
+
167
+ Переменные `colors.tokenName` содержат ссылки на `var(--k-color-token-name)`
168
+
169
+ ```js
170
+ import * as colors from '@skbkontur/colors';
171
+
172
+ const text = `
173
+ <div style="color: ${colors.textNeutralHeavy}">
174
+ Блок с текстом
175
+ </div>
176
+ `;
177
+ ```
178
+
179
+ ### SCSS
180
+
181
+ Переменные `colors.$token-name` содержат ссылки на `var(--k-color-token-name)`
182
+
183
+ ```css
184
+ @use '@skbkontur/colors/colors.scss';
185
+
186
+ .class {
187
+ color: $color-text-neutral-heavy;
188
+ }
189
+ ```
190
+
191
+ ### Less
192
+
193
+ Переменные `$token-name` содержат ссылки на `var(--k-color-token-name)`
194
+
195
+ ```css
196
+ @import '@skbkontur/colors/colors.less';
197
+
198
+ .class {
199
+ color: $color-text-neutral-heavy;
200
+ }
201
+ ```
202
+
203
+ <br />
204
+
205
+ ## Colors API: генерация палитр и кастомные токены
206
+
207
+ Библиотека Colors содержит JS API для продвинутых сценариев:
208
+
209
+ - Генерация палитр для произвольных HEX-цветов, а не только брендовых
210
+ - Создание/расширение цветовых палитр с собственными семантическими токенами
211
+ - Генерация цветов в форматах для разных платформ (oklch, hex, rgba и др.)
212
+ - Перекраска интерфейсов в любой цвет на лету
213
+
214
+ Функция `getColors` позволяет получать цвета для произвольных `brand`, `accent` и `theme`. Настраивать образцы оттенков `warning`, `error`. Указывать формат цвета, задавать кастомные токены со ссылками на сгенерированные палитры и другие параметры.
215
+
216
+ ```js static
217
+ import { getColors } from '@skbkontur/colors';
218
+
219
+ const colors = getColors({ brand: 'orange', accent: 'gray', theme: 'light' });
220
+
221
+ const text = `
222
+ <div style="color: ${colors.textNeutralHeavy}">
223
+ Блок с текстом
224
+ </div>
225
+ `;
226
+ ```
227
+
228
+ [Более подробно в разделе Colors API →](./?path=/docs/colors-colors-api--docs)