@skbkontur/colors 0.5.1 → 1.0.0-alpha.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.
Files changed (124) hide show
  1. package/README.md +90 -48
  2. package/dist/cjs/constants/abney-correction.d.ts +2 -0
  3. package/dist/cjs/constants/abney-correction.js +1105 -0
  4. package/dist/cjs/constants/chroma-settings.d.ts +2 -0
  5. package/dist/cjs/constants/chroma-settings.js +105 -0
  6. package/dist/cjs/constants/default-swatch.d.ts +109 -0
  7. package/dist/cjs/constants/default-swatch.js +112 -0
  8. package/dist/cjs/constants/interaction-settings.d.ts +8 -0
  9. package/dist/cjs/constants/interaction-settings.js +19 -0
  10. package/dist/cjs/constants/logo-lightness.d.ts +1 -0
  11. package/dist/cjs/constants/logo-lightness.js +4 -0
  12. package/dist/cjs/constants/promo-hue-shift.d.ts +3 -0
  13. package/dist/cjs/constants/promo-hue-shift.js +14 -0
  14. package/dist/cjs/constants/warning-hue-patch.d.ts +3 -0
  15. package/dist/cjs/constants/warning-hue-patch.js +25 -0
  16. package/dist/cjs/get-base-tokens.d.ts +19 -0
  17. package/dist/cjs/get-base-tokens.js +199 -0
  18. package/dist/cjs/get-colors.d.ts +19 -0
  19. package/dist/cjs/get-colors.js +25 -0
  20. package/dist/cjs/get-default-tokens.d.ts +645 -0
  21. package/dist/cjs/get-default-tokens.js +996 -0
  22. package/dist/cjs/helpers/get-interactions.d.ts +7 -0
  23. package/dist/cjs/helpers/get-interactions.js +61 -0
  24. package/dist/cjs/helpers/get-logo.d.ts +6 -0
  25. package/dist/cjs/helpers/get-logo.js +32 -0
  26. package/dist/cjs/helpers/get-palette.d.ts +76 -0
  27. package/dist/cjs/helpers/get-palette.js +287 -0
  28. package/dist/cjs/helpers/get-promo.d.ts +12 -0
  29. package/dist/cjs/helpers/get-promo.js +56 -0
  30. package/dist/cjs/types/base-tokens.d.ts +125 -0
  31. package/dist/cjs/types/base-tokens.js +2 -0
  32. package/dist/cjs/types/generator-tokens.d.ts +43 -0
  33. package/dist/cjs/types/generator-tokens.js +2 -0
  34. package/dist/cjs/utils/format-variable.d.ts +2 -0
  35. package/dist/cjs/utils/format-variable.js +15 -0
  36. package/dist/colors.default-dark.js +325 -0
  37. package/dist/colors.default-light.js +326 -0
  38. package/dist/colors.js +319 -0
  39. package/dist/colors.less +319 -0
  40. package/dist/colors.scss +319 -0
  41. package/dist/esm/constants/abney-correction.d.ts +2 -0
  42. package/dist/esm/constants/abney-correction.js +1102 -0
  43. package/dist/esm/constants/chroma-settings.d.ts +2 -0
  44. package/dist/esm/constants/chroma-settings.js +102 -0
  45. package/dist/esm/constants/default-swatch.d.ts +109 -0
  46. package/dist/esm/constants/default-swatch.js +109 -0
  47. package/dist/esm/constants/interaction-settings.d.ts +8 -0
  48. package/dist/esm/constants/interaction-settings.js +8 -0
  49. package/dist/esm/constants/logo-lightness.d.ts +1 -0
  50. package/dist/esm/constants/logo-lightness.js +1 -0
  51. package/dist/esm/constants/promo-hue-shift.d.ts +3 -0
  52. package/dist/esm/constants/promo-hue-shift.js +11 -0
  53. package/dist/esm/constants/warning-hue-patch.d.ts +3 -0
  54. package/dist/esm/constants/warning-hue-patch.js +22 -0
  55. package/dist/esm/get-base-tokens.d.ts +19 -0
  56. package/dist/esm/get-base-tokens.js +147 -0
  57. package/dist/esm/get-colors.d.ts +19 -0
  58. package/dist/esm/get-colors.js +21 -0
  59. package/dist/esm/get-default-tokens.d.ts +645 -0
  60. package/dist/esm/get-default-tokens.js +992 -0
  61. package/dist/esm/helpers/get-interactions.d.ts +7 -0
  62. package/dist/esm/helpers/get-interactions.js +49 -0
  63. package/dist/esm/helpers/get-logo.d.ts +6 -0
  64. package/dist/esm/helpers/get-logo.js +28 -0
  65. package/dist/esm/helpers/get-palette.d.ts +76 -0
  66. package/dist/esm/helpers/get-palette.js +232 -0
  67. package/dist/esm/helpers/get-promo.d.ts +12 -0
  68. package/dist/esm/helpers/get-promo.js +51 -0
  69. package/dist/esm/types/base-tokens.d.ts +125 -0
  70. package/dist/esm/types/base-tokens.js +1 -0
  71. package/dist/esm/types/generator-tokens.d.ts +43 -0
  72. package/dist/esm/types/generator-tokens.js +1 -0
  73. package/dist/esm/utils/format-variable.d.ts +2 -0
  74. package/dist/esm/utils/format-variable.js +10 -0
  75. package/dist/tokens/brand-blue-deep_accent-brand.css +643 -0
  76. package/dist/tokens/brand-blue-deep_accent-gray.css +643 -0
  77. package/dist/tokens/brand-blue_accent-brand.css +643 -0
  78. package/dist/tokens/brand-blue_accent-gray.css +643 -0
  79. package/dist/tokens/brand-green_accent-brand.css +643 -0
  80. package/dist/tokens/brand-green_accent-gray.css +643 -0
  81. package/dist/tokens/brand-mint_accent-brand.css +643 -0
  82. package/dist/tokens/brand-mint_accent-gray.css +643 -0
  83. package/dist/tokens/brand-orange_accent-gray.css +643 -0
  84. package/dist/tokens/brand-purple_accent-brand.css +643 -0
  85. package/dist/tokens/brand-purple_accent-gray.css +643 -0
  86. package/dist/tokens/brand-red_accent-gray.css +643 -0
  87. package/dist/tokens/brand-violet_accent-brand.css +643 -0
  88. package/dist/tokens/brand-violet_accent-gray.css +643 -0
  89. package/dist/tokens-js/brand-blue-deep_accent-brand.js +644 -0
  90. package/dist/tokens-js/brand-blue-deep_accent-gray.js +644 -0
  91. package/dist/tokens-js/brand-blue_accent-brand.js +644 -0
  92. package/dist/tokens-js/brand-blue_accent-gray.js +644 -0
  93. package/dist/tokens-js/brand-green_accent-brand.js +644 -0
  94. package/dist/tokens-js/brand-green_accent-gray.js +644 -0
  95. package/dist/tokens-js/brand-mint_accent-brand.js +644 -0
  96. package/dist/tokens-js/brand-mint_accent-gray.js +644 -0
  97. package/dist/tokens-js/brand-orange_accent-gray.js +644 -0
  98. package/dist/tokens-js/brand-purple_accent-brand.js +644 -0
  99. package/dist/tokens-js/brand-purple_accent-gray.js +644 -0
  100. package/dist/tokens-js/brand-red_accent-gray.js +644 -0
  101. package/dist/tokens-js/brand-violet_accent-brand.js +644 -0
  102. package/dist/tokens-js/brand-violet_accent-gray.js +644 -0
  103. package/dist/tokens-mobile/brand-blue-deep_accent-brand.json +718 -0
  104. package/dist/tokens-mobile/brand-blue-deep_accent-gray.json +718 -0
  105. package/dist/tokens-mobile/brand-blue_accent-brand.json +718 -0
  106. package/dist/tokens-mobile/brand-blue_accent-gray.json +718 -0
  107. package/dist/tokens-mobile/brand-green_accent-brand.json +718 -0
  108. package/dist/tokens-mobile/brand-green_accent-gray.json +718 -0
  109. package/dist/tokens-mobile/brand-mint_accent-brand.json +718 -0
  110. package/dist/tokens-mobile/brand-mint_accent-gray.json +718 -0
  111. package/dist/tokens-mobile/brand-orange_accent-gray.json +718 -0
  112. package/dist/tokens-mobile/brand-purple_accent-brand.json +718 -0
  113. package/dist/tokens-mobile/brand-purple_accent-gray.json +718 -0
  114. package/dist/tokens-mobile/brand-red_accent-gray.json +718 -0
  115. package/dist/tokens-mobile/brand-violet_accent-brand.json +718 -0
  116. package/dist/tokens-mobile/brand-violet_accent-gray.json +718 -0
  117. package/package.json +15 -7
  118. package/CHANGELOG.md +0 -108
  119. package/colors.css +0 -160
  120. package/colors.less +0 -158
  121. package/dist/cjs/colors.d.ts +0 -161
  122. package/dist/cjs/colors.js +0 -163
  123. package/dist/esm/colors.d.ts +0 -161
  124. package/dist/esm/colors.js +0 -160
package/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  NPM-пакет для доступа к цветам из общей Figma-библиотеки [Kontur.Colors](https://www.figma.com/file/XuiIin3JAOEcHHPihtthOJ/%E2%9A%A1%EF%B8%8F-Kontur-Colors?node-id=0%3A1&t=pL38Ju5ZOo3VC6vt-0)
4
4
 
5
-
6
5
  ## Установка
7
6
 
8
7
  ```bash
@@ -11,9 +10,9 @@ npm i @skbkontur/colors
11
10
 
12
11
  ## Использование
13
12
 
14
- - JS/TS токены содержатся в объекте `KonturColors`
15
- - В Less виде препроцессорных `@переменных`
16
- - В CSS в виде глобальных `--css-переменных` в `:root { ... }`
13
+ - JS/TS токены содержатся в объекте `KonturColors.color.name`
14
+ - В CSS в виде глобальных переменных`--kontur-color-name` в `:root { ... }`
15
+ - В препроцессорах Less `@color-name` и SCSS `$color-name`
17
16
 
18
17
  #### JS/TS
19
18
 
@@ -29,8 +28,8 @@ const text = `<div style="color: ${KonturColors.blueDark90}">Цвет blueDark90
29
28
  import { KonturColors } from '@skbkontur/colors';
30
29
 
31
30
  const Component = () => {
32
- return <div style={{ color: KonturColors.blueDark90 }}>Цвет blueDark90</div>
33
- }
31
+ return <div style={{ color: KonturColors.blueDark90 }}>Цвет blueDark90</div>;
32
+ };
34
33
  ```
35
34
 
36
35
  #### CSS
@@ -39,7 +38,17 @@ const Component = () => {
39
38
  @import '@skbkontur/colors/colors.css';
40
39
 
41
40
  .class {
42
- color: var(--blueDark90);
41
+ color: var(--blue-dark-90);
42
+ }
43
+ ```
44
+
45
+ #### SCSS
46
+
47
+ ```scss
48
+ @import '@skbkontur/colors/colors.scss';
49
+
50
+ .class {
51
+ color: $blue-dark-90;
43
52
  }
44
53
  ```
45
54
 
@@ -49,15 +58,24 @@ const Component = () => {
49
58
  @import '@skbkontur/colors/colors.less';
50
59
 
51
60
  .class {
52
- color: @blueDark90;
61
+ color: @blue-dark-90;
53
62
  }
54
63
  ```
55
64
 
56
65
  ## Палитра
57
66
 
58
- ```jsx
67
+ ```jsx harmony
59
68
  import { KonturColors } from '@skbkontur/colors';
60
- import { Toast } from '@skbkontur/react-ui';
69
+ import {
70
+ Toast,
71
+ DropdownMenu,
72
+ MenuHeader,
73
+ MenuItem,
74
+ ThemeContext,
75
+ ThemeFactory,
76
+ THEME_2022_UPDATE_2024,
77
+ } from '@skbkontur/react-ui';
78
+
61
79
  import { css } from '@skbkontur/react-ui/lib/theming/Emotion';
62
80
 
63
81
  const styles = {
@@ -81,14 +99,14 @@ const styles = {
81
99
  cursor: pointer;
82
100
  padding: 8px;
83
101
  border-radius: 8px;
84
- transition: .1s ease;
102
+ transition: 0.1s ease;
85
103
 
86
104
  &:hover {
87
- background: rgba(0,0,0,.06);
105
+ background: rgba(0, 0, 0, 0.06);
88
106
  }
89
107
 
90
108
  &:active {
91
- background: rgba(0,0,0,.1);
109
+ background: rgba(0, 0, 0, 0.1);
92
110
  }
93
111
  `,
94
112
  colorTile: css`
@@ -118,47 +136,71 @@ const styles = {
118
136
  display: block;
119
137
  fontSize: 12px;
120
138
  color: #8b8b8b;
121
- }`
139
+ }`,
122
140
  };
123
141
 
124
- const colorGroups = Object.entries(KonturColors)
125
- .reduce((acc, [colorKey, colorValue]) => {
126
- const firstWord =
127
- ['greenMint', 'blueDark'].find((color) => colorKey.match(color)) || colorKey.match(/^[a-z]+/)[0];
142
+ const colorGroups = Object.entries(KonturColors).reduce((acc, [colorKey, colorValue]) => {
143
+ const firstWord = ['greenMint', 'blueDark'].find((color) => colorKey.match(color)) || colorKey.match(/^[a-z]+/)[0];
144
+
145
+ acc[firstWord] = { ...acc[firstWord], [colorKey]: colorValue };
146
+
147
+ return acc;
148
+ }, {});
128
149
 
129
- acc[firstWord] = { ...acc[firstWord], [colorKey]: colorValue };
150
+ const getColors = (color) => {
151
+ const colorDashCase = color
152
+ .replace(/[A-Z]/g, (m) => '-' + m.toLowerCase())
153
+ .replace(/\d/, (m) => `-${m}`)
154
+ .replace('f-f-f', 'fff');
130
155
 
131
- return acc;
132
- }, {});
156
+ return {
157
+ 'JavaScript / TypeScript': `KonturColors.${color}`,
158
+ CSS: `var(--kontur-${colorDashCase})`,
159
+ SCSS: `$${colorDashCase}`,
160
+ Less: `@${colorDashCase}`,
161
+ };
162
+ };
163
+
164
+ const copyColor = (color) => {
165
+ navigator.clipboard.writeText(color);
166
+ Toast.push('Цвет скопирован', null, 1000);
167
+ };
133
168
 
134
169
  <div className={styles.colors}>
135
- {Object.entries(colorGroups).map(([group, colors]) => {
136
- return (
137
- <div className={styles.colorGroup}>
138
- <div className={styles.groupTitle}>{group}</div>
139
-
140
- {Object.keys(colors).map((colorName) => {
141
- const colorValue = KonturColors[colorName];
142
- return (
143
- <button
144
- className={styles.colorBlock}
145
- onClick={() => {
146
- navigator.clipboard.writeText(colorName)
147
- Toast.push('Цвет скопирован', null, 1000);
148
- }}
149
- >
150
- <span className={styles.colorTile} style={{ backgroundColor: colorValue }} />
151
- <span>
152
- <span className={styles.colorName}>{colorName}</span>
153
- <span className={styles.colorValue}>{colorValue}</span>
154
- </span>
155
- </button>
156
- );
157
- })}
158
- </div>
159
- )
160
- })}
161
- </div>
170
+ <ThemeContext.Provider value={THEME_2022_UPDATE_2024}>
171
+ {Object.entries(colorGroups).map(([group, colors]) => {
172
+ return (
173
+ <div className={styles.colorGroup}>
174
+ <div className={styles.groupTitle}>{group}</div>
175
+ {Object.keys(colors).map((colorName) => {
176
+ const colorValue = KonturColors[colorName];
177
+ const colorTile = (
178
+ <div className={styles.colorBlock}>
179
+ <span className={styles.colorTile} style={{ backgroundColor: colorValue }} />
180
+ <span>
181
+ <span className={styles.colorName}>{colorName}</span>
182
+ <span className={styles.colorValue}>{colorValue}</span>
183
+ </span>
184
+ </div>
185
+ );
186
+ return (
187
+ <div>
188
+ <DropdownMenu caption={colorTile} width="300">
189
+ <MenuHeader>Скопировать переменную</MenuHeader>
190
+ {Object.entries(getColors(colorName)).map(([lang, color]) => (
191
+ <MenuItem onClick={() => copyColor(color)} comment={lang}>
192
+ <div style={{ minWidth: 270 }}>{color}</div>
193
+ </MenuItem>
194
+ ))}
195
+ </DropdownMenu>
196
+ </div>
197
+ );
198
+ })}
199
+ </div>
200
+ );
201
+ })}
202
+ </ThemeContext.Provider>
203
+ </div>;
162
204
  ```
163
205
 
164
206
  ## Разработка
@@ -0,0 +1,2 @@
1
+ import type { GeneratorColorAbneyCorrection } from '../types/generator-tokens';
2
+ export declare const ABNEY_CORRECTION: GeneratorColorAbneyCorrection;