@abstraks-dev/ui-library 1.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.
Files changed (158) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +708 -0
  3. package/dist/__tests__/Anchor.test.js +145 -0
  4. package/dist/__tests__/ArrowRight.test.js +91 -0
  5. package/dist/__tests__/Avatar.test.js +123 -0
  6. package/dist/__tests__/Button.test.js +82 -0
  7. package/dist/__tests__/Card.test.js +198 -0
  8. package/dist/__tests__/CheckCircle.test.js +98 -0
  9. package/dist/__tests__/Checkbox.test.js +161 -0
  10. package/dist/__tests__/ChevronDown.test.js +73 -0
  11. package/dist/__tests__/Close.test.js +98 -0
  12. package/dist/__tests__/EditSquare.test.js +99 -0
  13. package/dist/__tests__/Error.test.js +74 -0
  14. package/dist/__tests__/Footer.test.js +66 -0
  15. package/dist/__tests__/Heading.test.js +227 -0
  16. package/dist/__tests__/Hero.test.js +74 -0
  17. package/dist/__tests__/Label.test.js +123 -0
  18. package/dist/__tests__/Loader.test.js +115 -0
  19. package/dist/__tests__/MenuHover.test.js +137 -0
  20. package/dist/__tests__/Paragraph.test.js +93 -0
  21. package/dist/__tests__/PlusCircle.test.js +99 -0
  22. package/dist/__tests__/Radio.test.js +153 -0
  23. package/dist/__tests__/Select.test.js +187 -0
  24. package/dist/__tests__/Tabs.test.js +162 -0
  25. package/dist/__tests__/TextArea.test.js +127 -0
  26. package/dist/__tests__/TextInput.test.js +181 -0
  27. package/dist/__tests__/Toggle.test.js +120 -0
  28. package/dist/__tests__/TrashX.test.js +99 -0
  29. package/dist/__tests__/useHeadingAccessibility.test.js +144 -0
  30. package/dist/components/Anchor.js +131 -0
  31. package/dist/components/Animation.js +129 -0
  32. package/dist/components/AnimationGroup.js +207 -0
  33. package/dist/components/AnimationToggle.js +216 -0
  34. package/dist/components/Avatar.js +153 -0
  35. package/dist/components/Button.js +218 -0
  36. package/dist/components/Card.js +222 -0
  37. package/dist/components/Checkbox.js +305 -0
  38. package/dist/components/Crud.js +564 -0
  39. package/dist/components/DragAndDrop.js +337 -0
  40. package/dist/components/Error.js +206 -0
  41. package/dist/components/Footer.js +99 -0
  42. package/dist/components/Form.js +412 -0
  43. package/dist/components/Header.js +372 -0
  44. package/dist/components/Heading.js +134 -0
  45. package/dist/components/Hero.js +181 -0
  46. package/dist/components/Label.js +256 -0
  47. package/dist/components/Loader.js +302 -0
  48. package/dist/components/MenuHover.js +114 -0
  49. package/dist/components/Paragraph.js +128 -0
  50. package/dist/components/Prompt.js +61 -0
  51. package/dist/components/Radio.js +254 -0
  52. package/dist/components/Select.js +422 -0
  53. package/dist/components/SideMenu.js +313 -0
  54. package/dist/components/Tabs.js +297 -0
  55. package/dist/components/TextArea.js +370 -0
  56. package/dist/components/TextInput.js +286 -0
  57. package/dist/components/Toggle.js +186 -0
  58. package/dist/components/crudFiles/CrudEditBase.js +150 -0
  59. package/dist/components/crudFiles/CrudViewBase.js +39 -0
  60. package/dist/components/crudFiles/crudDevelopment.js +118 -0
  61. package/dist/components/crudFiles/crudEditHandlers.js +50 -0
  62. package/dist/constants/animation.js +30 -0
  63. package/dist/icons/ArrowIcon.js +32 -0
  64. package/dist/icons/ArrowRight.js +33 -0
  65. package/dist/icons/CheckCircle.js +33 -0
  66. package/dist/icons/ChevronDown.js +28 -0
  67. package/dist/icons/Close.js +33 -0
  68. package/dist/icons/EditSquare.js +33 -0
  69. package/dist/icons/Ellipses.js +34 -0
  70. package/dist/icons/Hamburger.js +39 -0
  71. package/dist/icons/LoadingSpinner.js +42 -0
  72. package/dist/icons/PlusCircle.js +33 -0
  73. package/dist/icons/SaveIcon.js +32 -0
  74. package/dist/icons/TrashX.js +33 -0
  75. package/dist/icons/__tests__/CheckCircle.test.js +9 -0
  76. package/dist/icons/__tests__/ChevronDown.test.js +9 -0
  77. package/dist/icons/__tests__/Close.test.js +9 -0
  78. package/dist/icons/__tests__/EditSquare.test.js +9 -0
  79. package/dist/icons/__tests__/PlusCircle.test.js +9 -0
  80. package/dist/icons/__tests__/TrashX.test.js +9 -0
  81. package/dist/icons/index.js +89 -0
  82. package/dist/index.js +332 -0
  83. package/dist/setupTests.js +3 -0
  84. package/dist/styles/_variables.scss +286 -0
  85. package/dist/styles/anchor.scss +40 -0
  86. package/dist/styles/animation-accessibility.scss +96 -0
  87. package/dist/styles/animation-toggle.scss +233 -0
  88. package/dist/styles/animation.scss +3781 -0
  89. package/dist/styles/avatar.scss +285 -0
  90. package/dist/styles/button.scss +430 -0
  91. package/dist/styles/card.scss +210 -0
  92. package/dist/styles/checkbox.scss +160 -0
  93. package/dist/styles/crud.scss +474 -0
  94. package/dist/styles/dragAndDrop.scss +312 -0
  95. package/dist/styles/error.scss +232 -0
  96. package/dist/styles/footer.scss +58 -0
  97. package/dist/styles/form.scss +420 -0
  98. package/dist/styles/grid.scss +29 -0
  99. package/dist/styles/header.scss +276 -0
  100. package/dist/styles/heading.scss +118 -0
  101. package/dist/styles/hero.scss +185 -0
  102. package/dist/styles/htmlElements.scss +20 -0
  103. package/dist/styles/image.scss +9 -0
  104. package/dist/styles/label.scss +340 -0
  105. package/dist/styles/list-item.scss +5 -0
  106. package/dist/styles/loader.scss +354 -0
  107. package/dist/styles/logo.scss +19 -0
  108. package/dist/styles/main.css +9056 -0
  109. package/dist/styles/main.css.map +1 -0
  110. package/dist/styles/main.scss +0 -0
  111. package/dist/styles/menu-hover.scss +30 -0
  112. package/dist/styles/paragraph.scss +88 -0
  113. package/dist/styles/prompt.scss +51 -0
  114. package/dist/styles/radio.scss +202 -0
  115. package/dist/styles/select.scss +363 -0
  116. package/dist/styles/side-menu.scss +334 -0
  117. package/dist/styles/tabs.scss +540 -0
  118. package/dist/styles/text-area.scss +388 -0
  119. package/dist/styles/text-input.scss +171 -0
  120. package/dist/styles/toggle.scss +0 -0
  121. package/dist/styles/unordered-list.scss +8 -0
  122. package/dist/utils/ScrollHandler.js +30 -0
  123. package/dist/utils/accessibility.js +128 -0
  124. package/dist/utils/heroUtils.js +316 -0
  125. package/dist/utils/index.js +104 -0
  126. package/dist/utils/inputValidation.js +29 -0
  127. package/dist/utils/keyboardNavigation.js +536 -0
  128. package/dist/utils/labelUtils.js +708 -0
  129. package/dist/utils/loaderUtils.js +387 -0
  130. package/dist/utils/menuUtils.js +575 -0
  131. package/dist/utils/useHeadingAccessibility.js +298 -0
  132. package/dist/utils/useRadioGroup.js +260 -0
  133. package/dist/utils/useSelectAccessibility.js +426 -0
  134. package/dist/utils/useTabsAccessibility.js +278 -0
  135. package/dist/utils/useTextAreaAccessibility.js +255 -0
  136. package/dist/utils/useTextInputAccessibility.js +295 -0
  137. package/dist/utils/useTypographyAccessibility.js +168 -0
  138. package/dist/utils/useWindowSize.js +32 -0
  139. package/dist/utils/utils/ScrollHandler.js +26 -0
  140. package/dist/utils/utils/accessibility.js +133 -0
  141. package/dist/utils/utils/heroUtils.js +348 -0
  142. package/dist/utils/utils/index.js +9 -0
  143. package/dist/utils/utils/inputValidation.js +22 -0
  144. package/dist/utils/utils/keyboardNavigation.js +664 -0
  145. package/dist/utils/utils/labelUtils.js +772 -0
  146. package/dist/utils/utils/loaderUtils.js +436 -0
  147. package/dist/utils/utils/menuUtils.js +651 -0
  148. package/dist/utils/utils/useHeadingAccessibility.js +334 -0
  149. package/dist/utils/utils/useRadioGroup.js +311 -0
  150. package/dist/utils/utils/useSelectAccessibility.js +498 -0
  151. package/dist/utils/utils/useTabsAccessibility.js +316 -0
  152. package/dist/utils/utils/useTextAreaAccessibility.js +303 -0
  153. package/dist/utils/utils/useTextInputAccessibility.js +338 -0
  154. package/dist/utils/utils/useTypographyAccessibility.js +180 -0
  155. package/dist/utils/utils/useWindowSize.js +26 -0
  156. package/dist/utils/utils/validation.js +131 -0
  157. package/dist/utils/validation.js +139 -0
  158. package/package.json +90 -0
package/dist/index.js ADDED
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ Anchor: true,
8
+ Animation: true,
9
+ AnimationGroup: true,
10
+ AnimationToggle: true,
11
+ Avatar: true,
12
+ Button: true,
13
+ Card: true,
14
+ Checkbox: true,
15
+ Crud: true,
16
+ DragAndDrop: true,
17
+ Error: true,
18
+ Form: true,
19
+ Header: true,
20
+ Heading: true,
21
+ Hero: true,
22
+ Label: true,
23
+ Loader: true,
24
+ Paragraph: true,
25
+ Radio: true,
26
+ Select: true,
27
+ SideMenu: true,
28
+ Tabs: true,
29
+ TextArea: true,
30
+ TextInput: true,
31
+ ArrowIcon: true,
32
+ ArrowRight: true,
33
+ CheckCircle: true,
34
+ ChevronDown: true,
35
+ Close: true,
36
+ EditSquare: true,
37
+ Ellipses: true,
38
+ Hamburger: true,
39
+ LoadingSpinner: true,
40
+ PlusCircle: true,
41
+ SaveIcon: true,
42
+ TrashX: true
43
+ };
44
+ Object.defineProperty(exports, "Anchor", {
45
+ enumerable: true,
46
+ get: function () {
47
+ return _Anchor.default;
48
+ }
49
+ });
50
+ Object.defineProperty(exports, "Animation", {
51
+ enumerable: true,
52
+ get: function () {
53
+ return _Animation.default;
54
+ }
55
+ });
56
+ Object.defineProperty(exports, "AnimationGroup", {
57
+ enumerable: true,
58
+ get: function () {
59
+ return _AnimationGroup.default;
60
+ }
61
+ });
62
+ Object.defineProperty(exports, "AnimationToggle", {
63
+ enumerable: true,
64
+ get: function () {
65
+ return _AnimationToggle.default;
66
+ }
67
+ });
68
+ Object.defineProperty(exports, "ArrowIcon", {
69
+ enumerable: true,
70
+ get: function () {
71
+ return _ArrowIcon.ArrowIcon;
72
+ }
73
+ });
74
+ Object.defineProperty(exports, "ArrowRight", {
75
+ enumerable: true,
76
+ get: function () {
77
+ return _ArrowRight.ArrowRight;
78
+ }
79
+ });
80
+ Object.defineProperty(exports, "Avatar", {
81
+ enumerable: true,
82
+ get: function () {
83
+ return _Avatar.default;
84
+ }
85
+ });
86
+ Object.defineProperty(exports, "Button", {
87
+ enumerable: true,
88
+ get: function () {
89
+ return _Button.default;
90
+ }
91
+ });
92
+ Object.defineProperty(exports, "Card", {
93
+ enumerable: true,
94
+ get: function () {
95
+ return _Card.default;
96
+ }
97
+ });
98
+ Object.defineProperty(exports, "CheckCircle", {
99
+ enumerable: true,
100
+ get: function () {
101
+ return _CheckCircle.CheckCircle;
102
+ }
103
+ });
104
+ Object.defineProperty(exports, "Checkbox", {
105
+ enumerable: true,
106
+ get: function () {
107
+ return _Checkbox.default;
108
+ }
109
+ });
110
+ Object.defineProperty(exports, "ChevronDown", {
111
+ enumerable: true,
112
+ get: function () {
113
+ return _ChevronDown.ChevronDown;
114
+ }
115
+ });
116
+ Object.defineProperty(exports, "Close", {
117
+ enumerable: true,
118
+ get: function () {
119
+ return _Close.Close;
120
+ }
121
+ });
122
+ Object.defineProperty(exports, "Crud", {
123
+ enumerable: true,
124
+ get: function () {
125
+ return _Crud.default;
126
+ }
127
+ });
128
+ Object.defineProperty(exports, "DragAndDrop", {
129
+ enumerable: true,
130
+ get: function () {
131
+ return _DragAndDrop.default;
132
+ }
133
+ });
134
+ Object.defineProperty(exports, "EditSquare", {
135
+ enumerable: true,
136
+ get: function () {
137
+ return _EditSquare.EditSquare;
138
+ }
139
+ });
140
+ Object.defineProperty(exports, "Ellipses", {
141
+ enumerable: true,
142
+ get: function () {
143
+ return _Ellipses.Ellipses;
144
+ }
145
+ });
146
+ Object.defineProperty(exports, "Error", {
147
+ enumerable: true,
148
+ get: function () {
149
+ return _Error.default;
150
+ }
151
+ });
152
+ Object.defineProperty(exports, "Form", {
153
+ enumerable: true,
154
+ get: function () {
155
+ return _Form.default;
156
+ }
157
+ });
158
+ Object.defineProperty(exports, "Hamburger", {
159
+ enumerable: true,
160
+ get: function () {
161
+ return _Hamburger.Hamburger;
162
+ }
163
+ });
164
+ Object.defineProperty(exports, "Header", {
165
+ enumerable: true,
166
+ get: function () {
167
+ return _Header.default;
168
+ }
169
+ });
170
+ Object.defineProperty(exports, "Heading", {
171
+ enumerable: true,
172
+ get: function () {
173
+ return _Heading.default;
174
+ }
175
+ });
176
+ Object.defineProperty(exports, "Hero", {
177
+ enumerable: true,
178
+ get: function () {
179
+ return _Hero.default;
180
+ }
181
+ });
182
+ Object.defineProperty(exports, "Label", {
183
+ enumerable: true,
184
+ get: function () {
185
+ return _Label.default;
186
+ }
187
+ });
188
+ Object.defineProperty(exports, "Loader", {
189
+ enumerable: true,
190
+ get: function () {
191
+ return _Loader.default;
192
+ }
193
+ });
194
+ Object.defineProperty(exports, "LoadingSpinner", {
195
+ enumerable: true,
196
+ get: function () {
197
+ return _LoadingSpinner.LoadingSpinner;
198
+ }
199
+ });
200
+ Object.defineProperty(exports, "Paragraph", {
201
+ enumerable: true,
202
+ get: function () {
203
+ return _Paragraph.default;
204
+ }
205
+ });
206
+ Object.defineProperty(exports, "PlusCircle", {
207
+ enumerable: true,
208
+ get: function () {
209
+ return _PlusCircle.PlusCircle;
210
+ }
211
+ });
212
+ Object.defineProperty(exports, "Radio", {
213
+ enumerable: true,
214
+ get: function () {
215
+ return _Radio.Radio;
216
+ }
217
+ });
218
+ Object.defineProperty(exports, "SaveIcon", {
219
+ enumerable: true,
220
+ get: function () {
221
+ return _SaveIcon.SaveIcon;
222
+ }
223
+ });
224
+ Object.defineProperty(exports, "Select", {
225
+ enumerable: true,
226
+ get: function () {
227
+ return _Select.Select;
228
+ }
229
+ });
230
+ Object.defineProperty(exports, "SideMenu", {
231
+ enumerable: true,
232
+ get: function () {
233
+ return _SideMenu.SideMenu;
234
+ }
235
+ });
236
+ Object.defineProperty(exports, "Tabs", {
237
+ enumerable: true,
238
+ get: function () {
239
+ return _Tabs.Tabs;
240
+ }
241
+ });
242
+ Object.defineProperty(exports, "TextArea", {
243
+ enumerable: true,
244
+ get: function () {
245
+ return _TextArea.TextArea;
246
+ }
247
+ });
248
+ Object.defineProperty(exports, "TextInput", {
249
+ enumerable: true,
250
+ get: function () {
251
+ return _TextInput.TextInput;
252
+ }
253
+ });
254
+ Object.defineProperty(exports, "TrashX", {
255
+ enumerable: true,
256
+ get: function () {
257
+ return _TrashX.TrashX;
258
+ }
259
+ });
260
+ var _styles = require("./styles");
261
+ Object.keys(_styles).forEach(function (key) {
262
+ if (key === "default" || key === "__esModule") return;
263
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
264
+ if (key in exports && exports[key] === _styles[key]) return;
265
+ Object.defineProperty(exports, key, {
266
+ enumerable: true,
267
+ get: function () {
268
+ return _styles[key];
269
+ }
270
+ });
271
+ });
272
+ var _utils = require("./utils");
273
+ Object.keys(_utils).forEach(function (key) {
274
+ if (key === "default" || key === "__esModule") return;
275
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
276
+ if (key in exports && exports[key] === _utils[key]) return;
277
+ Object.defineProperty(exports, key, {
278
+ enumerable: true,
279
+ get: function () {
280
+ return _utils[key];
281
+ }
282
+ });
283
+ });
284
+ var _animation = require("./constants/animation");
285
+ Object.keys(_animation).forEach(function (key) {
286
+ if (key === "default" || key === "__esModule") return;
287
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
288
+ if (key in exports && exports[key] === _animation[key]) return;
289
+ Object.defineProperty(exports, key, {
290
+ enumerable: true,
291
+ get: function () {
292
+ return _animation[key];
293
+ }
294
+ });
295
+ });
296
+ var _Anchor = _interopRequireDefault(require("./components/Anchor"));
297
+ var _Animation = _interopRequireDefault(require("./components/Animation"));
298
+ var _AnimationGroup = _interopRequireDefault(require("./components/AnimationGroup"));
299
+ var _AnimationToggle = _interopRequireDefault(require("./components/AnimationToggle"));
300
+ var _Avatar = _interopRequireDefault(require("./components/Avatar"));
301
+ var _Button = _interopRequireDefault(require("./components/Button"));
302
+ var _Card = _interopRequireDefault(require("./components/Card"));
303
+ var _Checkbox = _interopRequireDefault(require("./components/Checkbox"));
304
+ var _Crud = _interopRequireDefault(require("./components/Crud"));
305
+ var _DragAndDrop = _interopRequireDefault(require("./components/DragAndDrop"));
306
+ var _Error = _interopRequireDefault(require("./components/Error"));
307
+ var _Form = _interopRequireDefault(require("./components/Form"));
308
+ var _Header = _interopRequireDefault(require("./components/Header"));
309
+ var _Heading = _interopRequireDefault(require("./components/Heading"));
310
+ var _Hero = _interopRequireDefault(require("./components/Hero"));
311
+ var _Label = _interopRequireDefault(require("./components/Label"));
312
+ var _Loader = _interopRequireDefault(require("./components/Loader"));
313
+ var _Paragraph = _interopRequireDefault(require("./components/Paragraph"));
314
+ var _Radio = require("./components/Radio");
315
+ var _Select = require("./components/Select");
316
+ var _SideMenu = require("./components/SideMenu");
317
+ var _Tabs = require("./components/Tabs");
318
+ var _TextArea = require("./components/TextArea");
319
+ var _TextInput = require("./components/TextInput");
320
+ var _ArrowIcon = require("./icons/ArrowIcon");
321
+ var _ArrowRight = require("./icons/ArrowRight");
322
+ var _CheckCircle = require("./icons/CheckCircle");
323
+ var _ChevronDown = require("./icons/ChevronDown");
324
+ var _Close = require("./icons/Close");
325
+ var _EditSquare = require("./icons/EditSquare");
326
+ var _Ellipses = require("./icons/Ellipses");
327
+ var _Hamburger = require("./icons/Hamburger");
328
+ var _LoadingSpinner = require("./icons/LoadingSpinner");
329
+ var _PlusCircle = require("./icons/PlusCircle");
330
+ var _SaveIcon = require("./icons/SaveIcon");
331
+ var _TrashX = require("./icons/TrashX");
332
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom");
@@ -0,0 +1,286 @@
1
+ // Break points
2
+ $small: '(min-width: 607px)';
3
+ $medium: '(min-width: 768px)';
4
+ $large: '(min-width: 992px)';
5
+ $xlarge: '(min-width: 1200px)';
6
+
7
+ // Colors
8
+ $color-primary: #009900;
9
+ $color-primary-hover: rgba(1, 116, 1, 0.9);
10
+
11
+ $color-secondary: #7086f1;
12
+ $color-secondary-hover: rgba(83, 100, 185, 0.9);
13
+
14
+ $color-warning: #ff9800;
15
+ $color-warning-hover: rgba(214, 130, 4, 0.9);
16
+
17
+ $color-success: #57f500;
18
+ $color-success-hover: rgba(74, 207, 2, 0.9);
19
+
20
+ $color-error: #f44336;
21
+ $color-error-hover: rgba(216, 58, 47, 0.9);
22
+
23
+ $color-shade: rgba(0, 0, 0, 0.5);
24
+ $color-tint: rgba(250, 250, 250, 0.5);
25
+
26
+ $color-white: #fff;
27
+ $color-black: #000;
28
+ $color-font-body: #333;
29
+
30
+ $color-black-alpha: rgba(0, 0, 0, 0.6);
31
+
32
+ // Focus and interaction colors
33
+ $focus-color: #4d90fe;
34
+
35
+ // Button shadow variables
36
+ $shadow-primary: rgba(0, 153, 0, 0.2);
37
+ $shadow-primary-hover: rgba(0, 153, 0, 0.3);
38
+ $shadow-primary-strong: rgba(0, 153, 0, 0.4);
39
+ $shadow-primary-strongest: rgba(0, 153, 0, 0.5);
40
+
41
+ $shadow-secondary: rgba(112, 134, 241, 0.2);
42
+ $shadow-secondary-hover: rgba(112, 134, 241, 0.3);
43
+ $shadow-secondary-strong: rgba(112, 134, 241, 0.4);
44
+ $shadow-secondary-strongest: rgba(112, 134, 241, 0.5);
45
+
46
+ $shadow-success: rgba(87, 245, 0, 0.2);
47
+ $shadow-success-hover: rgba(87, 245, 0, 0.3);
48
+ $shadow-success-strong: rgba(87, 245, 0, 0.4);
49
+ $shadow-success-strongest: rgba(87, 245, 0, 0.5);
50
+
51
+ $shadow-error: rgba(244, 67, 54, 0.2);
52
+ $shadow-error-hover: rgba(244, 67, 54, 0.3);
53
+ $shadow-error-strong: rgba(244, 67, 54, 0.4);
54
+ $shadow-error-strongest: rgba(244, 67, 54, 0.5);
55
+
56
+ $shadow-warning: rgba(255, 152, 0, 0.2);
57
+ $shadow-warning-hover: rgba(255, 152, 0, 0.3);
58
+ $shadow-warning-strong: rgba(255, 152, 0, 0.4);
59
+ $shadow-warning-strongest: rgba(255, 152, 0, 0.5);
60
+
61
+ // Border radius variables
62
+ $border-radius-xs: 4px;
63
+ $border-radius-sm: 4px;
64
+ $border-radius-md: 6px;
65
+ $border-radius-lg: 8px;
66
+ $border-radius-xl: 10px;
67
+
68
+ // Z-index layer system
69
+ // Base layers (1-99)
70
+ $z-index-base: 1;
71
+ $z-index-low: 10;
72
+
73
+ // UI elements (100-999)
74
+ $z-index-dropdown: 100;
75
+ $z-index-sticky: 200;
76
+ $z-index-popover: 300;
77
+ $z-index-tooltip: 400;
78
+
79
+ // Overlays and modals (1000+)
80
+ $z-index-overlay: 1000;
81
+ $z-index-modal: 1010;
82
+ $z-index-notification: 1020;
83
+
84
+ // Gray color variables
85
+ $gray-100: #f8f9fa;
86
+ $gray-200: #e9ecef;
87
+ $gray-300: #dee2e6;
88
+ $gray-400: #ced4da;
89
+ $gray-500: #adb5bd;
90
+ $gray-600: #6c757d;
91
+ $gray-700: #495057;
92
+ $gray-800: #343a40;
93
+ $gray-900: #212529;
94
+ $black: #000;
95
+ $color-muted-blue: #8793ab;
96
+
97
+ // Headings
98
+ $heading-one: 2.5rem;
99
+ $heading-two: 2rem;
100
+ $heading-three: 1.75rem;
101
+ $heading-four: 1.5rem;
102
+ $heading-five: 1.25rem;
103
+ $heading-six: 1rem;
104
+
105
+ // Typography
106
+ $font-family-body: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
107
+ Oxygen, Ubuntu, Cantarell, sans-serif;
108
+ $font-size-xs: 0.75rem;
109
+ $font-size-sm: 0.875rem;
110
+ $font-size-base: 1rem;
111
+ $font-size-lg: 1.125rem;
112
+ $font-size-xl: 1.25rem;
113
+ $font-size-2xl: 1.5rem;
114
+ $font-size-3xl: 1.875rem;
115
+
116
+ $line-height-tight: 1.25;
117
+ $line-height-normal: 1.4;
118
+ $line-height-base: 1.5;
119
+ $line-height-relaxed: 1.625;
120
+ $line-height-loose: 1.75;
121
+
122
+ $font-weight-light: 300;
123
+ $font-weight-normal: 400;
124
+ $font-weight-medium: 500;
125
+ $font-weight-semibold: 600;
126
+ $font-weight-bold: 700;
127
+
128
+ // Spacing
129
+ $spacing-xs: 0.25rem;
130
+ $spacing-sm: 0.5rem;
131
+ $spacing-md: 1rem;
132
+ $spacing-lg: 1.5rem;
133
+ $spacing-xl: 2rem;
134
+ $spacing-2xl: 3rem;
135
+
136
+ // Base colors
137
+ $text-color: #1f2937;
138
+ $text-color-primary: #1f2937;
139
+ $text-color-high-contrast: #000000;
140
+ $text-muted: #6b7280;
141
+ $background-color: #ffffff;
142
+ $border-color: #d1d5db;
143
+ $border-color-hover: #9ca3af;
144
+
145
+ // State colors
146
+ $error-text: #dc2626;
147
+ $error-background: #fef2f2;
148
+ $error-border: #fecaca;
149
+
150
+ $success-text: #059669;
151
+ $success-background: #f0fdf4;
152
+ $success-border: #bbf7d0;
153
+
154
+ $warning-text: #d97706;
155
+ $warning-background: #fffbeb;
156
+ $warning-border: #fed7aa;
157
+
158
+ // Focus and interaction
159
+ $primary-color: #3b82f6;
160
+ $focus-ring-color: #3b82f6;
161
+
162
+ // Border radius
163
+ $border-radius: 0.375rem;
164
+
165
+ // --- Sass map of variables to custom property names ---
166
+ $css-vars: (
167
+ small: $small,
168
+ medium: $medium,
169
+ large: $large,
170
+ xlarge: $xlarge,
171
+ color-primary: $color-primary,
172
+ color-primary-hover: $color-primary-hover,
173
+ color-secondary: $color-secondary,
174
+ color-secondary-hover: $color-secondary-hover,
175
+ color-warning: $color-warning,
176
+ color-warning-hover: $color-warning-hover,
177
+ color-success: $color-success,
178
+ color-success-hover: $color-success-hover,
179
+ color-error: $color-error,
180
+ color-error-hover: $color-error-hover,
181
+ color-shade: $color-shade,
182
+ color-tint: $color-tint,
183
+ color-white: $color-white,
184
+ color-black: $color-black,
185
+ color-font-body: $color-font-body,
186
+ color-black-alpha: $color-black-alpha,
187
+ focus-color: $focus-color,
188
+ shadow-primary: $shadow-primary,
189
+ shadow-primary-hover: $shadow-primary-hover,
190
+ shadow-primary-strong: $shadow-primary-strong,
191
+ shadow-primary-strongest: $shadow-primary-strongest,
192
+ shadow-secondary: $shadow-secondary,
193
+ shadow-secondary-hover: $shadow-secondary-hover,
194
+ shadow-secondary-strong: $shadow-secondary-strong,
195
+ shadow-secondary-strongest: $shadow-secondary-strongest,
196
+ shadow-success: $shadow-success,
197
+ shadow-success-hover: $shadow-success-hover,
198
+ shadow-success-strong: $shadow-success-strong,
199
+ shadow-success-strongest: $shadow-success-strongest,
200
+ shadow-error: $shadow-error,
201
+ shadow-error-hover: $shadow-error-hover,
202
+ shadow-error-strong: $shadow-error-strong,
203
+ shadow-error-strongest: $shadow-error-strongest,
204
+ shadow-warning: $shadow-warning,
205
+ shadow-warning-hover: $shadow-warning-hover,
206
+ shadow-warning-strong: $shadow-warning-strong,
207
+ shadow-warning-strongest: $shadow-warning-strongest,
208
+ border-radius-xs: $border-radius-xs,
209
+ border-radius-sm: $border-radius-sm,
210
+ border-radius-md: $border-radius-md,
211
+ border-radius-lg: $border-radius-lg,
212
+ border-radius-xl: $border-radius-xl,
213
+ z-index-base: $z-index-base,
214
+ z-index-low: $z-index-low,
215
+ z-index-dropdown: $z-index-dropdown,
216
+ z-index-sticky: $z-index-sticky,
217
+ z-index-popover: $z-index-popover,
218
+ z-index-tooltip: $z-index-tooltip,
219
+ z-index-overlay: $z-index-overlay,
220
+ z-index-modal: $z-index-modal,
221
+ z-index-notification: $z-index-notification,
222
+ gray-100: $gray-100,
223
+ gray-200: $gray-200,
224
+ gray-300: $gray-300,
225
+ gray-400: $gray-400,
226
+ gray-500: $gray-500,
227
+ gray-600: $gray-600,
228
+ gray-700: $gray-700,
229
+ gray-800: $gray-800,
230
+ gray-900: $gray-900,
231
+ black: $black,
232
+ color-muted-blue: $color-muted-blue,
233
+ heading-one: $heading-one,
234
+ heading-two: $heading-two,
235
+ heading-three: $heading-three,
236
+ heading-four: $heading-four,
237
+ heading-five: $heading-five,
238
+ heading-six: $heading-six,
239
+ font-family-body: $font-family-body,
240
+ font-size-xs: $font-size-xs,
241
+ font-size-sm: $font-size-sm,
242
+ font-size-base: $font-size-base,
243
+ font-size-lg: $font-size-lg,
244
+ font-size-xl: $font-size-xl,
245
+ line-height-tight: $line-height-tight,
246
+ line-height-base: $line-height-base,
247
+ line-height-relaxed: $line-height-relaxed,
248
+ font-weight-light: $font-weight-light,
249
+ font-weight-normal: $font-weight-normal,
250
+ font-weight-medium: $font-weight-medium,
251
+ font-weight-semibold: $font-weight-semibold,
252
+ font-weight-bold: $font-weight-bold,
253
+ spacing-xs: $spacing-xs,
254
+ spacing-sm: $spacing-sm,
255
+ spacing-md: $spacing-md,
256
+ spacing-lg: $spacing-lg,
257
+ spacing-xl: $spacing-xl,
258
+ spacing-2xl: $spacing-2xl,
259
+ text-color: $text-color,
260
+ text-muted: $text-muted,
261
+ background-color: $background-color,
262
+ border-color: $border-color,
263
+ border-color-hover: $border-color-hover,
264
+ error-text: $error-text,
265
+ error-background: $error-background,
266
+ error-border: $error-border,
267
+ success-text: $success-text,
268
+ success-background: $success-background,
269
+ success-border: $success-border,
270
+ warning-text: $warning-text,
271
+ warning-background: $warning-background,
272
+ warning-border: $warning-border,
273
+ primary-color: $primary-color,
274
+ focus-ring-color: $focus-ring-color,
275
+ border-radius: $border-radius,
276
+ );
277
+
278
+ @mixin css-custom-properties($map) {
279
+ @each $name, $value in $map {
280
+ --#{$name}: #{$value};
281
+ }
282
+ }
283
+
284
+ :root {
285
+ @include css-custom-properties($css-vars);
286
+ }
@@ -0,0 +1,40 @@
1
+ @use 'variables' as *;
2
+
3
+ .anchor {
4
+ width: 100%;
5
+ text-decoration: none;
6
+ color: $color-secondary;
7
+
8
+ &:hover,
9
+ &:focus {
10
+ text-decoration: underline;
11
+ background-color: $color-tint;
12
+ }
13
+
14
+ &:focus {
15
+ outline: 0 auto -webkit-focus-ring-color;
16
+ outline-offset: 0;
17
+ border: 0 solid transparent;
18
+ }
19
+ }
20
+
21
+ .anchor[disabled] {
22
+ pointer-events: none;
23
+ color: $color-shade;
24
+ }
25
+
26
+ .anchor.primary {
27
+ color: $color-primary;
28
+
29
+ &:hover {
30
+ color: $color-primary-hover;
31
+ }
32
+ }
33
+
34
+ .anchor.secondary {
35
+ color: $color-secondary;
36
+
37
+ &:hover {
38
+ color: $color-secondary-hover;
39
+ }
40
+ }