webcoreui 0.0.12 → 0.2.0

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 (83) hide show
  1. package/README.md +39 -6
  2. package/astro.d.ts +4 -0
  3. package/astro.js +4 -0
  4. package/components/Accordion/accordion.module.scss +20 -27
  5. package/components/Alert/alert.module.scss +19 -22
  6. package/components/Avatar/avatar.module.scss +9 -6
  7. package/components/Badge/badge.module.scss +31 -34
  8. package/components/Button/Button.astro +0 -2
  9. package/components/Button/Button.svelte +0 -2
  10. package/components/Button/Button.tsx +0 -2
  11. package/components/Button/button.module.scss +32 -39
  12. package/components/Button/button.ts +1 -2
  13. package/components/Card/card.module.scss +19 -15
  14. package/components/Checkbox/checkbox.module.scss +27 -41
  15. package/components/Icon/Icon.astro +2 -2
  16. package/components/Icon/map.ts +2 -0
  17. package/components/Input/input.module.scss +28 -36
  18. package/components/Menu/Menu.astro +7 -3
  19. package/components/Menu/Menu.svelte +11 -3
  20. package/components/Menu/Menu.tsx +7 -1
  21. package/components/Menu/menu.module.scss +144 -144
  22. package/components/Menu/menu.ts +1 -0
  23. package/components/Modal/Modal.astro +70 -0
  24. package/components/Modal/Modal.svelte +71 -0
  25. package/components/Modal/Modal.tsx +76 -0
  26. package/components/Modal/modal.module.scss +103 -0
  27. package/components/Modal/modal.ts +18 -0
  28. package/components/Progress/progress.module.scss +26 -22
  29. package/components/Radio/radio.module.scss +32 -41
  30. package/components/Rating/Rating.astro +2 -2
  31. package/components/Rating/Rating.svelte +2 -2
  32. package/components/Rating/Rating.tsx +2 -2
  33. package/components/Rating/rating.module.scss +15 -8
  34. package/components/Slider/Slider.astro +44 -0
  35. package/components/Slider/Slider.svelte +42 -0
  36. package/components/Slider/Slider.tsx +48 -0
  37. package/components/Slider/slider.module.scss +68 -0
  38. package/components/Slider/slider.ts +20 -0
  39. package/components/Spinner/spinner.module.scss +11 -2
  40. package/components/Switch/switch.module.scss +28 -30
  41. package/components/Table/Table.astro +6 -1
  42. package/components/Table/Table.svelte +3 -1
  43. package/components/Table/Table.tsx +7 -1
  44. package/components/Table/table.module.scss +23 -17
  45. package/components/Table/table.ts +1 -0
  46. package/components/Tabs/Tabs.astro +0 -1
  47. package/components/Tabs/tabs.module.scss +45 -48
  48. package/components/ThemeSwitcher/ThemeSwitcher.astro +1 -0
  49. package/components/ThemeSwitcher/ThemeSwitcher.svelte +2 -1
  50. package/components/ThemeSwitcher/ThemeSwitcher.tsx +2 -1
  51. package/components/ThemeSwitcher/themeswitcher.module.scss +28 -26
  52. package/components/Timeline/timeline.module.scss +28 -23
  53. package/components/TimelineItem/TimelineItem.tsx +1 -6
  54. package/components/TimelineItem/timelineitem.module.scss +14 -17
  55. package/components/TimelineItem/timelineitem.ts +5 -0
  56. package/components/Toast/toast.module.scss +10 -14
  57. package/components/Toast/toast.ts +6 -1
  58. package/icons/close.svg +3 -0
  59. package/icons.d.ts +12 -0
  60. package/icons.js +10 -0
  61. package/index.js +2 -0
  62. package/package.json +3 -1
  63. package/react.d.ts +6 -2
  64. package/react.js +4 -0
  65. package/scss/config/color-palette.scss +24 -0
  66. package/scss/config/css-values.scss +44 -0
  67. package/scss/config/layout.scss +41 -0
  68. package/scss/config/mixins.scss +392 -9
  69. package/scss/config/typography.scss +65 -0
  70. package/scss/config.scss +6 -1
  71. package/scss/global/elements.scss +21 -1
  72. package/scss/global/scrollbar.scss +12 -9
  73. package/scss/global/theme.scss +73 -40
  74. package/scss/global/tooltip.scss +42 -35
  75. package/scss/global/utility.scss +79 -61
  76. package/scss/global.scss +0 -1
  77. package/scss/resets.scss +67 -9
  78. package/scss/setup.scss +14 -41
  79. package/svelte.d.ts +4 -0
  80. package/svelte.js +4 -0
  81. package/utils/interpolate.ts +23 -0
  82. package/utils/modal.ts +59 -0
  83. package/utils/toast.ts +3 -2
@@ -0,0 +1,65 @@
1
+ $fontTypes: (
2
+ 'regular': (Regular, sans-serif),
3
+ 'bold': (Bold, sans-serif)
4
+ ) !default;
5
+
6
+ $fontSizes: (
7
+ 'xs': 10px,
8
+ 'sm': 12px,
9
+ 'md': 14px,
10
+ 'default': 16px,
11
+ 'lg': 18px,
12
+ 'xl': 21px,
13
+ '2xl': 24px,
14
+ '3xl': 28px
15
+ ) !default;
16
+
17
+ $lineHeights: (
18
+ 'normal': normal,
19
+ 'hmd': 1.5,
20
+ 'hlg': 1.7
21
+ ) !default;
22
+
23
+ $decorations: (
24
+ 'none': none,
25
+ 'underline': underline,
26
+ 'overline': overline,
27
+ 'line-through': line-through,
28
+ 'dotted': underline dotted,
29
+ 'dashed': underline dashed,
30
+ 'double': underline double,
31
+ 'wavy': underline wavy,
32
+ 'overline-dotted': overline dotted,
33
+ 'overline-dashed': overline dashed,
34
+ 'overline-double': overline double,
35
+ 'overline-wavy': overline wavy,
36
+ 'line-through-dotted': line-through dotted,
37
+ 'line-through-dashed': line-through dashed,
38
+ 'line-through-double': line-through double,
39
+ 'line-through-wavy': line-through wavy,
40
+ 'line-through-underline': underline line-through,
41
+ 'line-through-overline': overline line-through,
42
+ 'overunder': underline overline,
43
+ 'overunder-dotted': underline overline dotted,
44
+ 'overunder-dashed': underline overline dashed,
45
+ 'overunder-double': underline overline double,
46
+ 'overunder-wavy': underline overline wavy,
47
+ 'overunder-line-through': underline overline line-through,
48
+ ) !default;
49
+
50
+ $textAlignValues: left,
51
+ right,
52
+ center,
53
+ justify !default;
54
+
55
+ $fontWeights: 100,
56
+ 200,
57
+ 300,
58
+ 400,
59
+ 500,
60
+ 600,
61
+ 700,
62
+ 800,
63
+ 900,
64
+ bolder,
65
+ lighter !default;
package/scss/config.scss CHANGED
@@ -1 +1,6 @@
1
- @import './config/mixins.scss';
1
+ @import '../webcore.config.scss';
2
+ @import './config/color-palette';
3
+ @import './config/css-values';
4
+ @import './config/typography';
5
+ @import './config/layout';
6
+ @import './config/mixins';
@@ -1,6 +1,6 @@
1
1
  @import '../config';
2
2
 
3
- @mixin Elements() {
3
+ @mixin elements() {
4
4
  code {
5
5
  display: inline-block;
6
6
  padding: 2px 10px;
@@ -8,4 +8,24 @@
8
8
  border: 1px solid var(--w-color-primary-50);
9
9
  font-size: 14px;
10
10
  }
11
+
12
+ figure {
13
+ margin: 0;
14
+ }
15
+
16
+ p {
17
+ font-size: 16px;
18
+ line-height: 1.7;
19
+ margin: 20px 0;
20
+ }
21
+
22
+ ul, ol {
23
+ line-height: 1.7;
24
+ font-size: 16px;
25
+ margin: 20px 0;
26
+
27
+ li {
28
+ margin-bottom: 10px;
29
+ }
30
+ }
11
31
  }
@@ -1,21 +1,24 @@
1
- @import '../config';
1
+ @use '../config' as *;
2
+
3
+ @mixin scrollbar() {
4
+ body {
5
+ --w-scrollbar-bg: var(--w-color-primary-60);
6
+ --w-scrollbar-fg: var(--w-color-primary-50);
7
+ }
2
8
 
3
- @mixin Scrollbar() {
4
9
  ::-webkit-scrollbar {
5
- width: 10px;
6
- height: 10px;
10
+ @include size(10px);
7
11
  }
8
12
 
9
13
  ::-webkit-scrollbar-track {
10
- border-radius: 5px;
11
- background: var(--w-scrollbar-bg);
14
+ @include border-radius(md);
15
+ @include background(var(--w-scrollbar-bg));
12
16
  cursor: pointer;
13
17
  }
14
18
 
15
19
  ::-webkit-scrollbar-thumb {
16
- border-radius: 5px;
17
- background: var(--w-scrollbar-fg);
20
+ @include border-radius(md);
21
+ @include background(var(--w-scrollbar-fg));
18
22
  cursor: pointer;
19
23
  }
20
24
  }
21
-
@@ -1,13 +1,13 @@
1
- @import '../config';
1
+ @use '../config' as *;
2
2
 
3
- @mixin Theme($theme: 'dark', $selector: ':root') {
3
+ @mixin theme($theme: 'dark', $selector: ':root') {
4
4
  @if $theme == 'dark' {
5
5
  #{$selector} {
6
6
  --w-color-scheme: dark;
7
7
  --w-color-primary: #FFF;
8
8
  --w-color-primary-10: #DDD;
9
9
  --w-color-primary-20: #BBB;
10
- --w-color-primary-30: #555;
10
+ --w-color-primary-30: #757575;
11
11
  --w-color-primary-40: #333;
12
12
  --w-color-primary-50: #252525;
13
13
  --w-color-primary-60: #111;
@@ -22,9 +22,10 @@
22
22
  --w-color-warning: #FF9F43;
23
23
  --w-color-warning-accent: #f7AA61;
24
24
  --w-color-warning-fg: #000;
25
- --w-color-alert: #E73F40;
25
+ --w-color-alert: #de3233;
26
26
  --w-color-alert-accent: #EE5253;
27
27
  --w-color-alert-fg: #FFF;
28
+ --w-color-overlay: #0000009e;
28
29
  }
29
30
  }
30
31
 
@@ -49,9 +50,10 @@
49
50
  --w-color-warning: #FF9F43;
50
51
  --w-color-warning-accent: #f7AA61;
51
52
  --w-color-warning-fg: #000;
52
- --w-color-alert: #E73F40;
53
+ --w-color-alert: #de3233;
53
54
  --w-color-alert-accent: #EE5253;
54
55
  --w-color-alert-fg: #FFF;
56
+ --w-color-overlay: #0000009e;
55
57
  }
56
58
  }
57
59
 
@@ -61,78 +63,109 @@
61
63
  --w-color-primary: #FFF;
62
64
  --w-color-primary-10: #EEE;
63
65
  --w-color-primary-20: #a5b7cf;
64
- --w-color-primary-30: #516580;
66
+ --w-color-primary-30: #667f9e;
65
67
  --w-color-primary-40: #2d4463;
66
68
  --w-color-primary-50: #20344e;
67
69
  --w-color-primary-60: #101a2d;
68
70
  --w-color-primary-70: #061321;
69
71
 
70
- --w-color-info: #1058b6;
71
- --w-color-info-accent: #176ee0;
72
- --w-color-info-fg: #FFF;
73
- --w-color-success: #10ac95;
72
+ --w-color-info: #57a0ff;
73
+ --w-color-info-accent: #71afff;
74
+ --w-color-info-fg: #000;
75
+ --w-color-success: #10b59c;
74
76
  --w-color-success-accent: #1DD1A1;
75
77
  --w-color-success-fg: #000;
76
78
  --w-color-warning: #FF9F43;
77
- --w-color-warning-accent: #f7AA61;
79
+ --w-color-warning-accent: #feb570;
78
80
  --w-color-warning-fg: #000;
79
- --w-color-alert: #E73F40;
80
- --w-color-alert-accent: #EE5253;
81
+ --w-color-alert: #ed3b3c;
82
+ --w-color-alert-accent: #fb6161;
81
83
  --w-color-alert-fg: #FFF;
84
+ --w-color-overlay: #0017239e;
82
85
  }
83
86
  }
84
87
 
85
- @if $theme == green {
88
+ @if $theme == 'vintage' {
86
89
  #{$selector} {
87
90
  --w-color-scheme: dark;
88
- --w-color-primary: #FFF;
89
- --w-color-primary-10: #EEE;
90
- --w-color-primary-20: #b7ffe4;
91
- --w-color-primary-30: #dad7cd;
92
- --w-color-primary-40: #10AC84;
93
- --w-color-primary-50: #4d6e4c;
94
- --w-color-primary-60: #315037;
95
- --w-color-primary-70: #22392d;
91
+ --w-color-primary: #000;
92
+ --w-color-primary-10: #111;
93
+ --w-color-primary-20: #6b4430;
94
+ --w-color-primary-30: #d6ccc2;
95
+ --w-color-primary-40: #cbb39a;
96
+ --w-color-primary-50: #e8d0b7;
97
+ --w-color-primary-60: #f5e6d5;
98
+ --w-color-primary-70: #f5ebe0;
96
99
 
97
- --w-color-info: #0ABDE3;
100
+ --w-color-info: #6d95d1;
98
101
  --w-color-info-accent: #48DBFB;
99
102
  --w-color-info-fg: #000;
100
- --w-color-success: #10AC84;
103
+ --w-color-success: #85c8ba;
101
104
  --w-color-success-accent: #1DD1A1;
102
105
  --w-color-success-fg: #000;
103
- --w-color-warning: #FF9F43;
106
+ --w-color-warning: #e79d6b;
104
107
  --w-color-warning-accent: #f7AA61;
105
108
  --w-color-warning-fg: #000;
106
- --w-color-alert: #E73F40;
109
+ --w-color-alert: #bf6170;
107
110
  --w-color-alert-accent: #EE5253;
108
111
  --w-color-alert-fg: #FFF;
112
+ --w-color-overlay: #0000009e;
109
113
  }
110
114
  }
111
115
 
112
- @if $theme == beige {
116
+ @if $theme == 'amber' {
113
117
  #{$selector} {
114
118
  --w-color-scheme: dark;
115
- --w-color-primary: #000;
116
- --w-color-primary-10: #111;
117
- --w-color-primary-20: #97725c;
118
- --w-color-primary-30: #d6ccc2;
119
- --w-color-primary-40: #e3d5ca;
120
- --w-color-primary-50: #ecddcd;
121
- --w-color-primary-60: #f1e6da;
122
- --w-color-primary-70: #f5ebe0;
119
+ --w-color-primary: #FFF;
120
+ --w-color-primary-10: #DDD;
121
+ --w-color-primary-20: #FFF3DB;
122
+ --w-color-primary-30: #757575;
123
+ --w-color-primary-40: #232323;
124
+ --w-color-primary-50: #312e31;
125
+ --w-color-primary-60: #1b1b1b;
126
+ --w-color-primary-70: #111;
123
127
 
124
- --w-color-info: #0ABDE3;
128
+ --w-color-info: #78dcdc;
125
129
  --w-color-info-accent: #48DBFB;
126
130
  --w-color-info-fg: #000;
127
- --w-color-success: #10AC84;
128
- --w-color-success-accent: #1DD1A1;
131
+ --w-color-success: #a9dc62;
132
+ --w-color-success-accent: #97da3b;
129
133
  --w-color-success-fg: #000;
130
- --w-color-warning: #FF9F43;
134
+ --w-color-warning: #FCBA28;
131
135
  --w-color-warning-accent: #f7AA61;
132
136
  --w-color-warning-fg: #000;
133
- --w-color-alert: #E73F40;
137
+ --w-color-alert: #ff6188;
138
+ --w-color-alert-accent: #EE5253;
139
+ --w-color-alert-fg: #000;
140
+ --w-color-overlay: #0000009e;
141
+ }
142
+ }
143
+
144
+ @if $theme == 'synthwave' {
145
+ #{$selector} {
146
+ --w-color-scheme: dark;
147
+ --w-color-primary: #FFF;
148
+ --w-color-primary-10: #EEE;
149
+ --w-color-primary-20: #fad5c0;
150
+ --w-color-primary-30: #eabfff;
151
+ --w-color-primary-40: #8212ba;
152
+ --w-color-primary-50: #9D2BD6;
153
+ --w-color-primary-60: #0f1b33;
154
+ --w-color-primary-70: #030d1e;
155
+
156
+ --w-color-info: #1c98ff;
157
+ --w-color-info-accent: #6be4ff;
158
+ --w-color-info-fg: #000;
159
+ --w-color-success: #83e300;
160
+ --w-color-success-accent: #b7ff51;
161
+ --w-color-success-fg: #000;
162
+ --w-color-warning: #FF9F43;
163
+ --w-color-warning-accent: #ffb672;
164
+ --w-color-warning-fg: #000;
165
+ --w-color-alert: #ff3333;
134
166
  --w-color-alert-accent: #EE5253;
135
167
  --w-color-alert-fg: #FFF;
168
+ --w-color-overlay: #13002cc2;
136
169
  }
137
170
  }
138
171
  }
@@ -1,48 +1,56 @@
1
- @import '../config';
1
+ @use '../config' as *;
2
+
3
+ @mixin tooltip() {
4
+ body {
5
+ --w-tooltip-background: var(--w-color-primary);
6
+ --w-tooltip-color: var(--w-color-primary-70);
7
+ }
2
8
 
3
- @mixin Tooltip() {
4
9
  [data-tooltip] {
10
+ @include position(relative);
11
+ @include typography(normal);
12
+
5
13
  display: inline-block;
6
- position: relative;
7
14
 
8
15
  &::before,
9
16
  &::after {
10
- @include Transition();
11
- opacity: 0;
17
+ @include transition();
18
+ @include visibility(0);
19
+ @include layer(header);
20
+
12
21
  left: 50%;
13
22
  transform: translate(-50%, 5px);
14
23
  pointer-events: none;
15
- z-index: 99;
16
24
  }
17
25
 
18
26
  &::before {
27
+ @include border-radius(md);
28
+ @include position(absolute);
29
+ @include typography(md, hlg);
30
+ @include background(var(--w-tooltip-background));
31
+ @include size(wmax-content);
32
+ @include spacing(px-xs);
33
+
19
34
  content: attr(data-tooltip);
20
- border-radius: 5px;
21
- font-size: 14px;
22
- position: absolute;
23
- background: var(--w-tooltip-background);
24
35
  color: var(--w-tooltip-color);
25
- padding: 0 5px;
26
36
  bottom: calc(100% + 5px);
27
- width: max-content;
28
- line-height: 1.8;
29
37
  max-width: 300px;
30
38
  }
31
39
 
32
40
  &::after {
41
+ @include position(absolute, t-5px);
42
+ @include size(0);
43
+ @include border(5px, left, transparent);
44
+ @include border(5px, right, transparent);
45
+
33
46
  content: '';
34
- position: absolute;
35
- width: 0;
36
- height: 0;
37
- border-left: 5px solid transparent;
38
- border-right: 5px solid transparent;
39
47
  border-top: 5px solid var(--w-tooltip-background);
40
- top: -5px;
41
48
  }
42
49
 
43
50
  &:hover::before,
44
51
  &:hover::after {
45
- opacity: 1;
52
+ @include visibility(1);
53
+
46
54
  pointer-events: all;
47
55
  transform: translate(-50%, 0);
48
56
  }
@@ -59,9 +67,8 @@
59
67
  }
60
68
 
61
69
  &::after {
62
- border-left: 5px solid transparent;
63
- border-right: 5px solid transparent;
64
- border-top: 5px solid transparent;
70
+ @include border(5px, top, transparent);
71
+
65
72
  border-bottom: 5px solid var(--w-tooltip-background);
66
73
  top: auto;
67
74
  bottom: -5px;
@@ -86,12 +93,12 @@
86
93
  }
87
94
 
88
95
  &::after {
96
+ @include border(5px, top, transparent);
97
+ @include border(5px, bottom, transparent);
98
+
99
+ top: calc(50%);
89
100
  border-left: 5px solid var(--w-tooltip-background);
90
- border-right: 5px solid transparent;
91
- border-top: 5px solid transparent;
92
- border-bottom: 5px solid transparent;
93
- top: 50%;
94
- transform: translate(10px, -40%);
101
+ transform: translate(10px, -50%);
95
102
  }
96
103
 
97
104
  &:hover::before {
@@ -99,7 +106,7 @@
99
106
  }
100
107
 
101
108
  &:hover::after {
102
- transform: translate(5px, -40%);
109
+ transform: translate(5px, -50%);
103
110
  }
104
111
  }
105
112
 
@@ -115,12 +122,12 @@
115
122
  }
116
123
 
117
124
  &::after {
118
- border-left: 5px solid transparent;
125
+ @include border(5px, top, transparent);
126
+ @include border(5px, bottom, transparent);
127
+
128
+ top: calc(50%);
119
129
  border-right: 5px solid var(--w-tooltip-background);
120
- border-top: 5px solid transparent;
121
- border-bottom: 5px solid transparent;
122
- top: 50%;
123
- transform: translate(-10px, -40%);
130
+ transform: translate(-10px, -50%);
124
131
  }
125
132
 
126
133
  &:hover::before {
@@ -128,7 +135,7 @@
128
135
  }
129
136
 
130
137
  &:hover::after {
131
- transform: translate(-5px, -40%);
138
+ transform: translate(-5px, -50%);
132
139
  }
133
140
  }
134
141
  }
@@ -1,88 +1,106 @@
1
- @import '../config';
2
-
3
- @mixin Utility() {
1
+ @use 'sass:string';
2
+ @use 'sass:meta';
3
+ @use 'sass:list';
4
+ @use 'sass:map';
5
+ @use '../config' as *;
6
+
7
+ $breakpointMap: (
8
+ 'xs': 3,
9
+ 'sm': 4,
10
+ 'md': 6,
11
+ 'lg': 8
12
+ );
13
+
14
+ $alignments: (
15
+ 'items-center': center,
16
+ 'items-start': flex-start,
17
+ 'items-end': flex-end,
18
+ 'items-baseline': baseline,
19
+ 'items-stretch': stretch,
20
+
21
+ 'justify-center': center,
22
+ 'justify-start': flex-start,
23
+ 'justify-end': flex-end,
24
+ 'justify-between': space-between,
25
+ 'justify-around': space-around,
26
+ 'justify-evenly': space-evenly,
27
+ 'justify-stretch': stretch
28
+ );
29
+
30
+ @mixin utility() {
4
31
  .container {
5
- margin: 0 auto;
32
+ @include spacing(auto-none, px-default);
6
33
  max-width: 1200px;
7
- padding: 0 20px;
8
34
  }
9
35
 
10
- .grid {
11
- display: grid;
12
- gap: 20px;
13
-
14
- &.col-2 {
15
- grid-template-columns: repeat(2, minmax(0, 1fr));
36
+ // Gaps
37
+ .flex, .grid {
38
+ @each $key, $value in $spacing {
39
+ $numberList: ('2', '3', '4', '5');
40
+ $firstLetter: string.slice($key, 1, 1);
41
+ $class: $key;
42
+
43
+ @if (list.index($numberList, $firstLetter)) {
44
+ $class: string.slice($key, 2, -1) + $firstLetter;
45
+ }
46
+
47
+ &.#{$class} { gap: $value; }
16
48
  }
17
49
  }
18
50
 
19
- .flex {
20
- display: flex;
21
- gap: 20px;
22
-
23
- &.column {
24
- flex-direction: column;
25
- }
26
-
27
- &.xs {
28
- gap: 5px;
29
- }
30
-
31
- &.sm {
32
- gap: 10px;
33
- }
34
-
35
- &.wrap {
36
- flex-wrap: wrap;
37
- }
38
-
39
- &.center {
40
- justify-content: center;
41
- align-items: center;
42
- }
43
-
44
- &.justify-center {
45
- justify-content: center;
46
- }
47
-
48
- &.items-center {
49
- align-items: center;
50
- }
51
-
52
- &.items-start {
53
- align-items: flex-start;
51
+ // Alignments
52
+ @each $key, $value in $alignments {
53
+ .#{$key} {
54
+ @if (string.index($key, 'items')) {
55
+ align-items: $value;
56
+ } @else {
57
+ justify-content: $value;
58
+ }
54
59
  }
55
60
  }
56
61
 
57
- .my {
58
- margin: 20px auto;
62
+ .flex.center,
63
+ .grid.center {
64
+ justify-content: center;
65
+ align-items: center;
59
66
  }
60
67
 
61
- @include Media('md') {
62
- .grid.md-2 {
63
- grid-template-columns: repeat(2, minmax(0, 1fr));
64
- }
68
+ .flex {
69
+ @include layout(flex, default);
65
70
 
66
- .grid.md-3 {
67
- grid-template-columns: repeat(3, minmax(0, 1fr));
71
+ @each $direction in $flexDirectionValues {
72
+ &.#{$direction} {
73
+ flex-direction: $direction;
74
+ }
68
75
  }
69
76
 
70
- .grid.md-4 {
71
- grid-template-columns: repeat(4, minmax(0, 1fr));
77
+ @each $wrap in $flexWrapValues {
78
+ &.#{$wrap} {
79
+ flex-wrap: $wrap;
80
+ }
72
81
  }
73
82
  }
74
83
 
75
- @include Media('lg') {
76
- .grid.lg-2 {
84
+ .grid {
85
+ @include layout(grid, default);
86
+
87
+ &.col-2 {
77
88
  grid-template-columns: repeat(2, minmax(0, 1fr));
78
89
  }
79
90
 
80
- .grid.lg-3 {
91
+ &.col-3 {
81
92
  grid-template-columns: repeat(3, minmax(0, 1fr));
82
93
  }
94
+ }
83
95
 
84
- .grid.lg-4 {
85
- grid-template-columns: repeat(4, minmax(0, 1fr));
96
+ // Grid columns
97
+ @each $key, $value in $breakpoints {
98
+ @include media($key) {
99
+ @for $i from 2 to map.get($breakpointMap, $key) + 1 {
100
+ .grid.#{$key}-#{$i} {
101
+ grid-template-columns: repeat($i, minmax(0, 1fr));
102
+ }
103
+ }
86
104
  }
87
105
  }
88
106
  }
package/scss/global.scss CHANGED
@@ -1,4 +1,3 @@
1
- @import './global/elements.scss';
2
1
  @import './global/scrollbar.scss';
3
2
  @import './global/theme.scss';
4
3
  @import './global/tooltip.scss';