@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.
Files changed (55) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/es/colors/ColorItem/ColorItem.css +52 -0
  3. package/dist/es/colors/ColorItem/ColorItem.d.ts +12 -0
  4. package/dist/es/colors/ColorItem/ColorItem.js +35 -0
  5. package/dist/es/colors/Colors.css +203 -32
  6. package/dist/es/colors/Colors.js +243 -35
  7. package/dist/es/colors/colorsData.d.ts +20 -7
  8. package/dist/es/colors/colorsData.js +204 -61
  9. package/dist/es/components/Banner/BannerDot.css +2 -2
  10. package/dist/es/components/Button/Button.css +11 -11
  11. package/dist/es/components/Button/Button.js +11 -4
  12. package/dist/es/components/Carousel/Carousel.css +1 -1
  13. package/dist/es/components/Carousel/Carousel.js +6 -1
  14. package/dist/es/components/ContentArea/ContentArea.css +4 -0
  15. package/dist/es/components/ContentArea/ContentArea.d.ts +13 -9
  16. package/dist/es/components/ContentArea/ContentArea.js +39 -6
  17. package/dist/es/components/Counter/Counter.css +3 -3
  18. package/dist/es/components/NavArrow/NavArrow.css +1 -1
  19. package/dist/es/components/Notification/Notification.css +10 -19
  20. package/dist/es/components/Paragraph/Paragraph.css +2 -0
  21. package/dist/es/components/Paragraph/Paragraph.d.ts +17 -1
  22. package/dist/es/components/Paragraph/Paragraph.js +40 -1
  23. package/dist/es/components/Tabs/Tab.d.ts +2 -0
  24. package/dist/es/components/Tabs/Tabs.css +2 -2
  25. package/dist/es/components/Tabs/Tabs.d.ts +2 -0
  26. package/dist/es/components/Tabs/Tabs.js +12 -2
  27. package/dist/es/components/TextField/TextField.js +8 -3
  28. package/dist/lib/colors/ColorItem/ColorItem.css +52 -0
  29. package/dist/lib/colors/ColorItem/ColorItem.d.ts +12 -0
  30. package/dist/lib/colors/ColorItem/ColorItem.js +50 -0
  31. package/dist/lib/colors/Colors.css +203 -32
  32. package/dist/lib/colors/Colors.js +250 -36
  33. package/dist/lib/colors/colorsData.d.ts +20 -7
  34. package/dist/lib/colors/colorsData.js +204 -61
  35. package/dist/lib/components/Banner/BannerDot.css +2 -2
  36. package/dist/lib/components/Button/Button.css +11 -11
  37. package/dist/lib/components/Button/Button.js +12 -4
  38. package/dist/lib/components/Carousel/Carousel.css +1 -1
  39. package/dist/lib/components/Carousel/Carousel.js +6 -1
  40. package/dist/lib/components/ContentArea/ContentArea.css +4 -0
  41. package/dist/lib/components/ContentArea/ContentArea.d.ts +13 -9
  42. package/dist/lib/components/ContentArea/ContentArea.js +42 -6
  43. package/dist/lib/components/Counter/Counter.css +3 -3
  44. package/dist/lib/components/NavArrow/NavArrow.css +1 -1
  45. package/dist/lib/components/Notification/Notification.css +10 -19
  46. package/dist/lib/components/Paragraph/Paragraph.css +2 -0
  47. package/dist/lib/components/Paragraph/Paragraph.d.ts +17 -1
  48. package/dist/lib/components/Paragraph/Paragraph.js +44 -1
  49. package/dist/lib/components/Tabs/Tab.d.ts +2 -0
  50. package/dist/lib/components/Tabs/Tabs.css +2 -2
  51. package/dist/lib/components/Tabs/Tabs.d.ts +2 -0
  52. package/dist/lib/components/Tabs/Tabs.js +12 -2
  53. package/dist/lib/components/TextField/TextField.js +8 -3
  54. package/package.json +4 -3
  55. 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: rgba(235, 90, 64, 0.2);
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: #EB5A40;
156
+ fill: #F62434;
157
157
  }
158
158
  .mfui-notification_type_success .mfui-notification__icon-container {
159
- background-color: rgba(0, 185, 86, 0.2);
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: rgba(255, 167, 23, 0.2);
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: rgba(91, 217, 229, 0.2);
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.6);
183
+ background-color: rgba(255, 255, 255, 0.3);
184
184
  }
185
185
  .mfui-notification_colored.mfui-notification_type_error {
186
- background-color: #F1515D;
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: rgba(255, 255, 255, 0.2);
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: rgba(0, 185, 86, 0.1);
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: #DEF7FA;
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?: 'green' | 'purple' | 'clearWhite' | 'spbSky0' | 'spbSky1' | 'spbSky2' | 'freshAsphalt' | 'fullBlack' | 'inherit';
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: PropTypes.oneOf(['green', 'purple', 'clearWhite', 'spbSky0', 'spbSky1', 'spbSky2', 'freshAsphalt', 'fullBlack', 'inherit'])
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: rgba(255, 255, 255, 0.5);
258
- fill: rgba(255, 255, 255, 0.5);
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: currentIndex === i
262
+ current: isCurrentPanel
254
263
  })
255
- }, child);
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.0.0",
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.0",
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": "7f552b59c6bfc912d14a39c4564995685c18d4f5"
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
- @clearWhite: #FFFFFF;
4
+ @base: #FFFFFF;
7
5
  @spbSky0: #F6F6F6;
8
6
  @spbSky1: #EDEDED;
9
7
  @spbSky2: #D8D8D8;
10
- @freshAsphalt: #333333;
8
+ @spbSky3: #999999;
9
+ @content: #333333;
11
10
  @fullBlack: #000000;
12
11
 
13
12
  // Secondary Colors
14
13
  @warmRedC: #EB5A40;
15
- @mandarin: #FFA717;
14
+ @Pantone137C: #FFA717;
16
15
  @Pantone311C: #5BD9E5;
17
16
  @reflexBlue: #444189;
18
17
 
19
18
  // System Colors
20
19
  @fury: #F62434;
21
- @link: #34AAF2;
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: #A500BF;
61
+ @buttonhoverPurple: #534455;
24
62
  @buttonDown: #404D46;
25
63
 
26
64
  // Notification Colors
27
- // TODO: будут отрефакторены после доработки палитры со стороны дизайна
28
- @error: #F1515D;
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
- @clearWhite60: fade(@clearWhite, 60);
38
- @clearWhite20: fade(@clearWhite, 20);
68
+ @base30: fade(@base, 30);
39
69
 
40
70
  // Additional Colors Variants
41
- @clearWhite50: fade(@clearWhite, 50);
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
- @freshAsphaltLighten50: lighten(@freshAsphalt, 50);
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
- .p-indents() {
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
- .default-link() {
170
- color: @link;
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
- }