@megafon/ui-core 2.0.0 → 2.1.3
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.
- package/CHANGELOG.md +55 -0
- package/dist/es/colors/ColorItem/ColorItem.css +52 -0
- package/dist/es/colors/ColorItem/ColorItem.d.ts +12 -0
- package/dist/es/colors/ColorItem/ColorItem.js +35 -0
- package/dist/es/colors/Colors.css +203 -32
- package/dist/es/colors/Colors.js +243 -35
- package/dist/es/colors/colorsData.d.ts +20 -7
- package/dist/es/colors/colorsData.js +204 -61
- package/dist/es/components/Banner/BannerDot.css +2 -2
- package/dist/es/components/Button/Button.css +11 -11
- package/dist/es/components/Button/Button.js +11 -4
- package/dist/es/components/Carousel/Carousel.css +1 -1
- package/dist/es/components/Carousel/Carousel.js +6 -1
- package/dist/es/components/ContentArea/ContentArea.css +4 -0
- package/dist/es/components/ContentArea/ContentArea.d.ts +13 -9
- package/dist/es/components/ContentArea/ContentArea.js +39 -6
- package/dist/es/components/Counter/Counter.css +3 -3
- package/dist/es/components/NavArrow/NavArrow.css +1 -1
- package/dist/es/components/Notification/Notification.css +10 -19
- package/dist/es/components/Paragraph/Paragraph.css +2 -0
- package/dist/es/components/Paragraph/Paragraph.d.ts +17 -1
- package/dist/es/components/Paragraph/Paragraph.js +40 -1
- package/dist/es/components/Tabs/Tab.d.ts +2 -0
- package/dist/es/components/Tabs/Tabs.css +2 -2
- package/dist/es/components/Tabs/Tabs.d.ts +2 -0
- package/dist/es/components/Tabs/Tabs.js +12 -2
- package/dist/es/components/TextField/TextField.js +8 -3
- package/dist/lib/colors/ColorItem/ColorItem.css +52 -0
- package/dist/lib/colors/ColorItem/ColorItem.d.ts +12 -0
- package/dist/lib/colors/ColorItem/ColorItem.js +50 -0
- package/dist/lib/colors/Colors.css +203 -32
- package/dist/lib/colors/Colors.js +250 -36
- package/dist/lib/colors/colorsData.d.ts +20 -7
- package/dist/lib/colors/colorsData.js +204 -61
- package/dist/lib/components/Banner/BannerDot.css +2 -2
- package/dist/lib/components/Button/Button.css +11 -11
- package/dist/lib/components/Button/Button.js +12 -4
- package/dist/lib/components/Carousel/Carousel.css +1 -1
- package/dist/lib/components/Carousel/Carousel.js +6 -1
- package/dist/lib/components/ContentArea/ContentArea.css +4 -0
- package/dist/lib/components/ContentArea/ContentArea.d.ts +13 -9
- package/dist/lib/components/ContentArea/ContentArea.js +42 -6
- package/dist/lib/components/Counter/Counter.css +3 -3
- package/dist/lib/components/NavArrow/NavArrow.css +1 -1
- package/dist/lib/components/Notification/Notification.css +10 -19
- package/dist/lib/components/Paragraph/Paragraph.css +2 -0
- package/dist/lib/components/Paragraph/Paragraph.d.ts +17 -1
- package/dist/lib/components/Paragraph/Paragraph.js +44 -1
- package/dist/lib/components/Tabs/Tab.d.ts +2 -0
- package/dist/lib/components/Tabs/Tabs.css +2 -2
- package/dist/lib/components/Tabs/Tabs.d.ts +2 -0
- package/dist/lib/components/Tabs/Tabs.js +12 -2
- package/dist/lib/components/TextField/TextField.js +8 -3
- package/package.json +4 -3
- package/styles/base.less +87 -39
|
@@ -149,28 +149,28 @@ h5 {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
.mfui-notification_type_error .mfui-notification__icon-container {
|
|
152
|
-
background-color:
|
|
152
|
+
background-color: #FFC4C9;
|
|
153
153
|
}
|
|
154
154
|
.mfui-notification_type_error .mfui-notification__icon-container svg {
|
|
155
155
|
/* stylelint-disable-line max-nesting-depth */
|
|
156
|
-
fill: #
|
|
156
|
+
fill: #F62434;
|
|
157
157
|
}
|
|
158
158
|
.mfui-notification_type_success .mfui-notification__icon-container {
|
|
159
|
-
background-color:
|
|
159
|
+
background-color: #DDFFEC;
|
|
160
160
|
}
|
|
161
161
|
.mfui-notification_type_success .mfui-notification__icon-container svg {
|
|
162
162
|
/* stylelint-disable-line max-nesting-depth */
|
|
163
163
|
fill: #00B956;
|
|
164
164
|
}
|
|
165
165
|
.mfui-notification_type_warning .mfui-notification__icon-container {
|
|
166
|
-
background-color:
|
|
166
|
+
background-color: #FFEDD1;
|
|
167
167
|
}
|
|
168
168
|
.mfui-notification_type_warning .mfui-notification__icon-container svg {
|
|
169
169
|
/* stylelint-disable-line max-nesting-depth */
|
|
170
170
|
fill: #FFA717;
|
|
171
171
|
}
|
|
172
172
|
.mfui-notification_type_info .mfui-notification__icon-container {
|
|
173
|
-
background-color:
|
|
173
|
+
background-color: #E1FAFF;
|
|
174
174
|
}
|
|
175
175
|
.mfui-notification_type_info .mfui-notification__icon-container svg {
|
|
176
176
|
/* stylelint-disable-line max-nesting-depth */
|
|
@@ -180,10 +180,10 @@ h5 {
|
|
|
180
180
|
background-color: #FFFFFF;
|
|
181
181
|
}
|
|
182
182
|
.mfui-notification_colored .mfui-notification__close:hover {
|
|
183
|
-
background-color: rgba(255, 255, 255, 0.
|
|
183
|
+
background-color: rgba(255, 255, 255, 0.3);
|
|
184
184
|
}
|
|
185
185
|
.mfui-notification_colored.mfui-notification_type_error {
|
|
186
|
-
background-color: #
|
|
186
|
+
background-color: #F8505D;
|
|
187
187
|
}
|
|
188
188
|
.mfui-notification_colored.mfui-notification_type_error .mfui-notification__title,
|
|
189
189
|
.mfui-notification_colored.mfui-notification_type_error .mfui-notification__text,
|
|
@@ -194,27 +194,18 @@ h5 {
|
|
|
194
194
|
fill: #FFFFFF;
|
|
195
195
|
}
|
|
196
196
|
.mfui-notification_colored.mfui-notification_type_error .mfui-notification__icon-container {
|
|
197
|
-
background-color:
|
|
197
|
+
background-color: #FFFFFF33;
|
|
198
198
|
}
|
|
199
199
|
.mfui-notification_colored.mfui-notification_type_error .mfui-notification__icon-container svg {
|
|
200
200
|
/* stylelint-disable-line max-nesting-depth */
|
|
201
201
|
fill: #FFFFFF;
|
|
202
202
|
}
|
|
203
203
|
.mfui-notification_colored.mfui-notification_type_success {
|
|
204
|
-
background-color:
|
|
205
|
-
}
|
|
206
|
-
.mfui-notification_colored.mfui-notification_type_success .mfui-notification__icon-container svg {
|
|
207
|
-
fill: #00B956;
|
|
204
|
+
background-color: #DDFFEC;
|
|
208
205
|
}
|
|
209
206
|
.mfui-notification_colored.mfui-notification_type_warning {
|
|
210
207
|
background-color: #FFEDD1;
|
|
211
208
|
}
|
|
212
|
-
.mfui-notification_colored.mfui-notification_type_warning .mfui-notification__icon-container svg {
|
|
213
|
-
fill: #FFA717;
|
|
214
|
-
}
|
|
215
209
|
.mfui-notification_colored.mfui-notification_type_info {
|
|
216
|
-
background-color: #
|
|
217
|
-
}
|
|
218
|
-
.mfui-notification_colored.mfui-notification_type_info .mfui-notification__icon-container svg {
|
|
219
|
-
fill: #5BD9E5;
|
|
210
|
+
background-color: #E1FAFF;
|
|
220
211
|
}
|
|
@@ -36,6 +36,7 @@ h5 {
|
|
|
36
36
|
.mfui-paragraph_color_purple {
|
|
37
37
|
color: #731982;
|
|
38
38
|
}
|
|
39
|
+
.mfui-paragraph_color_base,
|
|
39
40
|
.mfui-paragraph_color_clearWhite {
|
|
40
41
|
color: #FFFFFF;
|
|
41
42
|
}
|
|
@@ -48,6 +49,7 @@ h5 {
|
|
|
48
49
|
.mfui-paragraph_color_spbSky2 {
|
|
49
50
|
color: #D8D8D8;
|
|
50
51
|
}
|
|
52
|
+
.mfui-paragraph_color_content,
|
|
51
53
|
.mfui-paragraph_color_freshAsphalt {
|
|
52
54
|
color: #333333;
|
|
53
55
|
}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import './Paragraph.less';
|
|
3
|
+
declare const COLORS: {
|
|
4
|
+
GREEN: string;
|
|
5
|
+
PURPLE: string;
|
|
6
|
+
BASE: string;
|
|
7
|
+
SPB_SKY_0: string;
|
|
8
|
+
SPB_SKY_1: string;
|
|
9
|
+
SPB_SKY_2: string;
|
|
10
|
+
CONTENT: string;
|
|
11
|
+
FULL_BLACK: string;
|
|
12
|
+
INHERIT: string;
|
|
13
|
+
/** @deprecated */
|
|
14
|
+
CLEAR_WHITE: string;
|
|
15
|
+
/** @deprecated */
|
|
16
|
+
FRESH_ASPHALT: string;
|
|
17
|
+
};
|
|
18
|
+
declare type ColorType = typeof COLORS[keyof typeof COLORS];
|
|
3
19
|
export interface IParagraphProps {
|
|
4
20
|
/** Выравнивание по горизонтали */
|
|
5
21
|
align?: 'left' | 'center' | 'right';
|
|
@@ -8,7 +24,7 @@ export interface IParagraphProps {
|
|
|
8
24
|
/** Вертикальный отступ (включен по умолчанию) */
|
|
9
25
|
hasMargin?: boolean;
|
|
10
26
|
/** Цвет текста */
|
|
11
|
-
color?:
|
|
27
|
+
color?: ColorType;
|
|
12
28
|
/** Дополнительный класс корневого элемента */
|
|
13
29
|
className?: string;
|
|
14
30
|
}
|
|
@@ -7,6 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
|
|
10
|
+
require("core-js/modules/es.array.concat");
|
|
11
|
+
|
|
12
|
+
require("core-js/modules/es.array.includes");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/es.object.values");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/es.string.includes");
|
|
17
|
+
|
|
10
18
|
var React = _interopRequireWildcard(require("react"));
|
|
11
19
|
|
|
12
20
|
var _uiHelpers = require("@megafon/ui-helpers");
|
|
@@ -17,6 +25,23 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
|
|
|
17
25
|
|
|
18
26
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
27
|
|
|
28
|
+
var COLORS = {
|
|
29
|
+
GREEN: 'green',
|
|
30
|
+
PURPLE: 'purple',
|
|
31
|
+
BASE: 'base',
|
|
32
|
+
SPB_SKY_0: 'spbSky0',
|
|
33
|
+
SPB_SKY_1: 'spbSky1',
|
|
34
|
+
SPB_SKY_2: 'spbSky2',
|
|
35
|
+
CONTENT: 'content',
|
|
36
|
+
FULL_BLACK: 'fullBlack',
|
|
37
|
+
INHERIT: 'inherit',
|
|
38
|
+
|
|
39
|
+
/** @deprecated */
|
|
40
|
+
CLEAR_WHITE: 'clearWhite',
|
|
41
|
+
|
|
42
|
+
/** @deprecated */
|
|
43
|
+
FRESH_ASPHALT: 'freshAsphalt'
|
|
44
|
+
};
|
|
20
45
|
var cn = (0, _uiHelpers.cnCreate)('mfui-paragraph');
|
|
21
46
|
|
|
22
47
|
var Paragraph = function Paragraph(_ref) {
|
|
@@ -43,7 +68,25 @@ Paragraph.propTypes = {
|
|
|
43
68
|
align: PropTypes.oneOf(['left', 'center', 'right']),
|
|
44
69
|
size: PropTypes.oneOf(['regular', 'small']),
|
|
45
70
|
hasMargin: PropTypes.bool,
|
|
46
|
-
color:
|
|
71
|
+
color: function color(props, propName, componentName) {
|
|
72
|
+
var deprecatedBlackValue = COLORS.FRESH_ASPHALT;
|
|
73
|
+
var deprecatedWhiteValue = COLORS.CLEAR_WHITE;
|
|
74
|
+
var propValue = props[propName];
|
|
75
|
+
|
|
76
|
+
if (propValue && !Object.values(COLORS).includes(propValue)) {
|
|
77
|
+
return new Error("Failed prop type: Invalid prop '".concat(propName, "' of value '").concat(propValue, "' supplied to '").concat(componentName, "', \n expected one of [").concat(Object.values(COLORS), "]"));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (propValue && props[propName] === deprecatedBlackValue) {
|
|
81
|
+
return new Error("Failed prop type: Invalid prop '".concat(propName, "' of value '").concat(propValue, "' supplied to '").concat(componentName, "',\n value '").concat(deprecatedBlackValue, "' is deprecated, please use value '").concat(COLORS.CONTENT, "'"));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (propValue && props[propName] === deprecatedWhiteValue) {
|
|
85
|
+
return new Error("Failed prop type: Invalid prop '".concat(propName, "' of value '").concat(propValue, "' supplied to '").concat(componentName, "',\n value '").concat(deprecatedWhiteValue, "' is deprecated, please use value '").concat(COLORS.BASE, "'"));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
47
90
|
};
|
|
48
91
|
var _default = Paragraph;
|
|
49
92
|
exports["default"] = _default;
|
|
@@ -7,6 +7,8 @@ export interface ITabProps extends IFilterDataAttrs {
|
|
|
7
7
|
icon?: React.ReactNode;
|
|
8
8
|
/** Ссылка */
|
|
9
9
|
href?: string;
|
|
10
|
+
/** Дочерние элементы */
|
|
11
|
+
children?: React.ReactNode;
|
|
10
12
|
/** Функция рендера компонента-обертки для заголовка и иконки */
|
|
11
13
|
renderTabWrapper?: (tab: React.ReactNode) => React.ReactNode;
|
|
12
14
|
}
|
|
@@ -254,8 +254,8 @@ h5 {
|
|
|
254
254
|
border-color: rgba(237, 237, 237, 0.5);
|
|
255
255
|
}
|
|
256
256
|
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner {
|
|
257
|
-
color:
|
|
258
|
-
fill:
|
|
257
|
+
color: #FFFFFF80;
|
|
258
|
+
fill: #FFFFFF80;
|
|
259
259
|
}
|
|
260
260
|
.mfui-tabs_tab-color_green:not(.mfui-tabs_sticky) .mfui-tabs__tab-inner:hover {
|
|
261
261
|
color: #FFFFFF;
|
|
@@ -39,6 +39,8 @@ export interface ITabsProps {
|
|
|
39
39
|
currentIndex?: number;
|
|
40
40
|
/** Индекс активного таба по умолчанию (не работает в режиме управления табами снаружи) */
|
|
41
41
|
defaultIndex?: number;
|
|
42
|
+
/** Рендер содержимого только для текущего таба */
|
|
43
|
+
renderOnlyCurrentPanel?: boolean;
|
|
42
44
|
/** Обработчика клика по табам */
|
|
43
45
|
onTabClick?: (index: number) => void;
|
|
44
46
|
children: Array<React.ReactElement<ITabProps>>;
|
|
@@ -94,6 +94,8 @@ var Tabs = function Tabs(_ref) {
|
|
|
94
94
|
_ref$defaultIndex = _ref.defaultIndex,
|
|
95
95
|
defaultIndex = _ref$defaultIndex === void 0 ? 0 : _ref$defaultIndex,
|
|
96
96
|
outerIndex = _ref.currentIndex,
|
|
97
|
+
_ref$renderOnlyCurren = _ref.renderOnlyCurrentPanel,
|
|
98
|
+
renderOnlyCurrentPanel = _ref$renderOnlyCurren === void 0 ? false : _ref$renderOnlyCurren,
|
|
97
99
|
children = _ref.children,
|
|
98
100
|
onTabClick = _ref.onTabClick;
|
|
99
101
|
var tabsRef = React.useRef([]);
|
|
@@ -248,11 +250,18 @@ var Tabs = function Tabs(_ref) {
|
|
|
248
250
|
}, [renderTab, children]);
|
|
249
251
|
var renderPanels = React.useCallback(function () {
|
|
250
252
|
return React.Children.map(children, function (child, i) {
|
|
253
|
+
var panel = child.props.children;
|
|
254
|
+
var isCurrentPanel = currentIndex === i;
|
|
255
|
+
|
|
256
|
+
if (!panel || renderOnlyCurrentPanel && !isCurrentPanel) {
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
|
|
251
260
|
return /*#__PURE__*/React.createElement("div", {
|
|
252
261
|
className: cn('panel', {
|
|
253
|
-
current:
|
|
262
|
+
current: isCurrentPanel
|
|
254
263
|
})
|
|
255
|
-
},
|
|
264
|
+
}, panel);
|
|
256
265
|
});
|
|
257
266
|
}, [children, currentIndex]);
|
|
258
267
|
var handleReachBeginning = React.useCallback(function (swiper) {
|
|
@@ -400,6 +409,7 @@ Tabs.propTypes = {
|
|
|
400
409
|
sticky: _propTypes["default"].bool,
|
|
401
410
|
currentIndex: _propTypes["default"].number,
|
|
402
411
|
defaultIndex: _propTypes["default"].number,
|
|
412
|
+
renderOnlyCurrentPanel: _propTypes["default"].bool,
|
|
403
413
|
onTabClick: _propTypes["default"].func
|
|
404
414
|
};
|
|
405
415
|
var _default = Tabs;
|
|
@@ -150,6 +150,11 @@ var TextField = function TextField(_ref) {
|
|
|
150
150
|
isMaxLimitExceeded = _useState10[0],
|
|
151
151
|
setIsMaxLimitExceeded = _useState10[1];
|
|
152
152
|
|
|
153
|
+
var _useState11 = (0, React.useState)(false),
|
|
154
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
155
|
+
isTouch = _useState12[0],
|
|
156
|
+
setTouch = _useState12[1];
|
|
157
|
+
|
|
153
158
|
var fieldNode = (0, React.useRef)();
|
|
154
159
|
var isPasswordType = (0, React.useMemo)(function () {
|
|
155
160
|
return type === 'password';
|
|
@@ -157,9 +162,6 @@ var TextField = function TextField(_ref) {
|
|
|
157
162
|
var isVisiblePassword = (0, React.useMemo)(function () {
|
|
158
163
|
return isPasswordType && !isPasswordHidden;
|
|
159
164
|
}, [isPasswordHidden, isPasswordType]);
|
|
160
|
-
var isTouch = (0, React.useMemo)(function () {
|
|
161
|
-
return (0, _uiHelpers.detectTouch)();
|
|
162
|
-
}, []);
|
|
163
165
|
var checkSymbolMaxLimit = (0, React.useCallback)(function () {
|
|
164
166
|
var textareaValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
165
167
|
|
|
@@ -173,6 +175,9 @@ var TextField = function TextField(_ref) {
|
|
|
173
175
|
!isControlled && setInputValue(value);
|
|
174
176
|
checkSymbolMaxLimit(value);
|
|
175
177
|
}, [value, checkSymbolMaxLimit]);
|
|
178
|
+
(0, React.useEffect)(function () {
|
|
179
|
+
setTouch((0, _uiHelpers.detectTouch)());
|
|
180
|
+
}, []);
|
|
176
181
|
var togglePasswordHiding = (0, React.useCallback)(function () {
|
|
177
182
|
return setPasswordHidden(function (prevPassState) {
|
|
178
183
|
return !prevPassState;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@megafon/ui-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"styles"
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"lint": "yarn lint:ts && yarn lint:less",
|
|
29
29
|
"lint:ts": "eslint --ext .js,.jsx,.ts,.tsx src --max-warnings=0",
|
|
30
30
|
"lint:less": "stylelint --syntax less src/**/*.less src/**/**/*.less",
|
|
31
|
+
"lint:less:fix": "yarn lint:less --fix",
|
|
31
32
|
"test": "yarn test:unit",
|
|
32
33
|
"test:unit": "jest",
|
|
33
34
|
"test:update": "jest --updateSnapshot"
|
|
@@ -52,7 +53,7 @@
|
|
|
52
53
|
"@babel/preset-env": "^7.8.6",
|
|
53
54
|
"@babel/preset-react": "^7.8.3",
|
|
54
55
|
"@babel/preset-typescript": "^7.8.3",
|
|
55
|
-
"@megafon/ui-icons": "^0.1.
|
|
56
|
+
"@megafon/ui-icons": "^0.1.1",
|
|
56
57
|
"@svgr/core": "^2.4.1",
|
|
57
58
|
"@testing-library/react-hooks": "^7.0.1",
|
|
58
59
|
"@types/enzyme": "^3.10.5",
|
|
@@ -95,5 +96,5 @@
|
|
|
95
96
|
"react-popper": "^2.2.3",
|
|
96
97
|
"swiper": "^6.5.6"
|
|
97
98
|
},
|
|
98
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "884922566102445160ff8cbc20f6d54142b621e5"
|
|
99
100
|
}
|
package/styles/base.less
CHANGED
|
@@ -1,49 +1,77 @@
|
|
|
1
|
-
@class-prefix: 'mfui';
|
|
2
|
-
|
|
3
1
|
// Basic Colors
|
|
4
2
|
@green: #00B956;
|
|
5
3
|
@purple: #731982;
|
|
6
|
-
@
|
|
4
|
+
@base: #FFFFFF;
|
|
7
5
|
@spbSky0: #F6F6F6;
|
|
8
6
|
@spbSky1: #EDEDED;
|
|
9
7
|
@spbSky2: #D8D8D8;
|
|
10
|
-
@
|
|
8
|
+
@spbSky3: #999999;
|
|
9
|
+
@content: #333333;
|
|
11
10
|
@fullBlack: #000000;
|
|
12
11
|
|
|
13
12
|
// Secondary Colors
|
|
14
13
|
@warmRedC: #EB5A40;
|
|
15
|
-
@
|
|
14
|
+
@Pantone137C: #FFA717;
|
|
16
15
|
@Pantone311C: #5BD9E5;
|
|
17
16
|
@reflexBlue: #444189;
|
|
18
17
|
|
|
19
18
|
// System Colors
|
|
20
19
|
@fury: #F62434;
|
|
21
|
-
@
|
|
20
|
+
@systemBlue: #34AAF2;
|
|
21
|
+
@background: #FFFFFF;
|
|
22
|
+
|
|
23
|
+
// Gradients
|
|
24
|
+
@basic: linear-gradient(90deg, #01873F 0%, #00B956 74%, #14CD6A 100%);
|
|
25
|
+
@vip: linear-gradient(90deg, #5B1168 0%, #731982 74%, #821E93 100%);
|
|
26
|
+
@exclusive: linear-gradient(90deg, #2A2674 0%, #444189 74%, #504D93 100%);
|
|
27
|
+
|
|
28
|
+
// Static
|
|
29
|
+
@STCBlack: #333333;
|
|
30
|
+
@STCWhite: #FFFFFF;
|
|
31
|
+
|
|
32
|
+
// Static Opacity
|
|
33
|
+
|
|
34
|
+
@STCWhite5: #FFFFFF0D;
|
|
35
|
+
@STCWhite10: #FFFFFF1A;
|
|
36
|
+
@STCWhite20: #FFFFFF33;
|
|
37
|
+
@STCWhite50: #FFFFFF80;
|
|
38
|
+
@STCBlack5: #3333330D;
|
|
39
|
+
@STCBlack10: #3333331A;
|
|
40
|
+
@STCBlack20: #33333333;
|
|
41
|
+
@STCBlack50: #33333380;
|
|
42
|
+
|
|
43
|
+
// Soft (new)
|
|
44
|
+
@green80: #0CDC78;
|
|
45
|
+
@green20: #DDFFEC;
|
|
46
|
+
@purple80: #AA67C1;
|
|
47
|
+
@purple20: #FFEEFF;
|
|
48
|
+
@warmRedC80: #FF765D;
|
|
49
|
+
@warmRedC20: #FFCFC7;
|
|
50
|
+
@Pantone137C80: #FFB945;
|
|
51
|
+
@Pantone137C20: #FFEDD1;
|
|
52
|
+
@Pantone311C80: #62E3FF;
|
|
53
|
+
@Pantone311C20: #E1FAFF;
|
|
54
|
+
@reflexBlue80: #554FC9;
|
|
55
|
+
@reflexBlue20: #EBEAFF;
|
|
56
|
+
@fury80: #F8505D;
|
|
57
|
+
@fury20: #FFC5C9;
|
|
58
|
+
|
|
59
|
+
// old colors
|
|
22
60
|
@buttonHoverGreen: #10E272;
|
|
23
|
-
@buttonhoverPurple: #
|
|
61
|
+
@buttonhoverPurple: #534455;
|
|
24
62
|
@buttonDown: #404D46;
|
|
25
63
|
|
|
26
64
|
// Notification Colors
|
|
27
|
-
// TODO: будут отрефакторены после
|
|
28
|
-
@error: #
|
|
29
|
-
@success: rgba(0, 185, 86, 0.1);
|
|
30
|
-
@info: #DEF7FA;
|
|
31
|
-
@warning: #FFEDD1;
|
|
32
|
-
@green20: fade(@green, 20);
|
|
33
|
-
@warmRedC20: fade(@warmRedC, 20);
|
|
34
|
-
@mandarin20: fade(@mandarin, 20);
|
|
35
|
-
@Pantone311C20: fade(@Pantone311C, 20);
|
|
65
|
+
// TODO: будут отрефакторены после обновления дизайном Notification по новой палитре
|
|
66
|
+
@error: #FFC4C9;
|
|
36
67
|
@spbSky160: fade(@spbSky1, 60);
|
|
37
|
-
@
|
|
38
|
-
@clearWhite20: fade(@clearWhite, 20);
|
|
68
|
+
@base30: fade(@base, 30);
|
|
39
69
|
|
|
40
70
|
// Additional Colors Variants
|
|
41
|
-
@
|
|
42
|
-
@freshAsphalt25: fade(@freshAsphalt, 25);
|
|
43
|
-
@freshAsphalt50: fade(@freshAsphalt, 50);
|
|
71
|
+
@content25: fade(@content, 25);
|
|
44
72
|
@fullBlack25: fade(@fullBlack, 25);
|
|
45
73
|
@fullBlack50: fade(@fullBlack, 50);
|
|
46
|
-
@
|
|
74
|
+
@contentLighten50: lighten(@content, 50);
|
|
47
75
|
|
|
48
76
|
// BREAKPOINTS
|
|
49
77
|
@mobileSmallEnd: 479px;
|
|
@@ -107,6 +135,20 @@
|
|
|
107
135
|
font-family: Graphik, Arial, sans-serif;
|
|
108
136
|
}
|
|
109
137
|
|
|
138
|
+
.fontFamily() {
|
|
139
|
+
font-family: inherit;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.commonFont() {
|
|
143
|
+
font-size: 15px;
|
|
144
|
+
line-height: 24px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.smallFont() {
|
|
148
|
+
font-size: 12px;
|
|
149
|
+
line-height: 16px;
|
|
150
|
+
}
|
|
151
|
+
|
|
110
152
|
h1,
|
|
111
153
|
h2,
|
|
112
154
|
h3,
|
|
@@ -115,6 +157,26 @@ h5 {
|
|
|
115
157
|
margin: 0;
|
|
116
158
|
}
|
|
117
159
|
|
|
160
|
+
.h1() {
|
|
161
|
+
font-weight: 600;
|
|
162
|
+
font-size: 36px;
|
|
163
|
+
line-height: 30px;
|
|
164
|
+
letter-spacing: 0.5px;
|
|
165
|
+
|
|
166
|
+
@media @mobileB {
|
|
167
|
+
font-size: 36px;
|
|
168
|
+
line-height: 40px;
|
|
169
|
+
}
|
|
170
|
+
@media @desktop {
|
|
171
|
+
font-size: 44px;
|
|
172
|
+
line-height: 48px;
|
|
173
|
+
}
|
|
174
|
+
@media @desktopMU {
|
|
175
|
+
font-size: 52px;
|
|
176
|
+
line-height: 56px;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
118
180
|
.h2() {
|
|
119
181
|
font-weight: 600;
|
|
120
182
|
font-size: 22px;
|
|
@@ -157,7 +219,7 @@ h5 {
|
|
|
157
219
|
font-weight: 400;
|
|
158
220
|
}
|
|
159
221
|
|
|
160
|
-
.
|
|
222
|
+
.pIndents() {
|
|
161
223
|
margin-top: 0;
|
|
162
224
|
margin-bottom: 16px;
|
|
163
225
|
|
|
@@ -166,25 +228,11 @@ h5 {
|
|
|
166
228
|
}
|
|
167
229
|
}
|
|
168
230
|
|
|
169
|
-
.
|
|
170
|
-
color: @
|
|
231
|
+
.link() {
|
|
232
|
+
color: @systemBlue;
|
|
171
233
|
text-decoration: none;
|
|
172
234
|
|
|
173
235
|
&:hover {
|
|
174
236
|
text-decoration: underline;
|
|
175
237
|
}
|
|
176
238
|
}
|
|
177
|
-
|
|
178
|
-
.fontFamily() {
|
|
179
|
-
font-family: inherit;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
.commonFont() {
|
|
183
|
-
font-size: 15px;
|
|
184
|
-
line-height: 24px;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
.smallFont() {
|
|
188
|
-
font-size: 12px;
|
|
189
|
-
line-height: 16px;
|
|
190
|
-
}
|