@nuvoui/core 1.1.8 → 1.2.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 (39) hide show
  1. package/README.md +90 -35
  2. package/dist/nuvoui.css +28531 -0
  3. package/dist/nuvoui.css.map +1 -0
  4. package/dist/nuvoui.min.css +2 -1
  5. package/dist/nuvoui.min.css.map +1 -0
  6. package/package.json +48 -27
  7. package/src/styles/abstracts/_config.scss +157 -0
  8. package/src/styles/abstracts/_functions.scss +81 -0
  9. package/src/styles/abstracts/_index.scss +2 -0
  10. package/src/styles/base/_base.scss +2 -2
  11. package/src/styles/base/_index.scss +2 -0
  12. package/src/styles/base/_reset.scss +8 -6
  13. package/src/styles/index.scss +11 -30
  14. package/src/styles/layouts/_container.scss +7 -23
  15. package/src/styles/layouts/_flex.scss +116 -113
  16. package/src/styles/layouts/_grid.scss +70 -100
  17. package/src/styles/layouts/_index.scss +3 -0
  18. package/src/styles/mixins-map.scss +1 -1515
  19. package/src/styles/themes/_index.scss +1 -0
  20. package/src/styles/themes/_theme.scss +175 -55
  21. package/src/styles/utilities/_alignment.scss +9 -7
  22. package/src/styles/utilities/_animations.scss +65 -61
  23. package/src/styles/utilities/_borders.scss +283 -18
  24. package/src/styles/utilities/_colors.scss +68 -49
  25. package/src/styles/utilities/_container-queries.scss +19 -18
  26. package/src/styles/utilities/_display.scss +59 -57
  27. package/src/styles/utilities/_helpers.scss +110 -108
  28. package/src/styles/utilities/_index.scss +19 -0
  29. package/src/styles/utilities/_media-queries.scss +68 -15
  30. package/src/styles/utilities/_opacity.scss +51 -27
  31. package/src/styles/utilities/_position.scss +38 -37
  32. package/src/styles/utilities/_shadows.scss +195 -137
  33. package/src/styles/utilities/_sizing.scss +74 -71
  34. package/src/styles/utilities/_spacing.scss +117 -99
  35. package/src/styles/utilities/_tooltips.scss +153 -105
  36. package/src/styles/utilities/_transitions.scss +77 -73
  37. package/src/styles/utilities/_typography.scss +23 -26
  38. package/src/styles/utilities/_functions.scss +0 -84
  39. package/src/styles/utilities/_variables.scss +0 -126
@@ -0,0 +1,157 @@
1
+ @use "sass:map";
2
+ @use "sass:math";
3
+
4
+ // Framework Configuration Options
5
+ $generate-utility-classes: true !default;
6
+ $enable-dark-mode: true !default;
7
+ $enable-rtl: true !default;
8
+ $enable-reduced-motion: true !default;
9
+ $enable-container-queries: false !default;
10
+
11
+ $base-size: 16;
12
+
13
+ @function rem($px) {
14
+ @if $px == 0 {
15
+ @return 0;
16
+ }
17
+
18
+ // Strip units if $px has any
19
+ $value: if(math.unit($px) == "", $px, math.div($px, math.unit($px)));
20
+
21
+ @return math.div($value, $base-size) * 1rem;
22
+ }
23
+
24
+ // Global variables that might be used across different modules
25
+ $enable-debuger: false !default;
26
+ $enable-dark-mode: true !default;
27
+ $enable-rtl: true !default;
28
+ $enable-reduced-motion: true !default;
29
+ $column-count: 12 !default;
30
+
31
+ $default-container-name: nuvoui-container !default;
32
+ $nuvoui-container-queries: false !default;
33
+
34
+ $primary: #007bff !default;
35
+ $secondary: #6c757d !default;
36
+ $success: #28a745 !default;
37
+ $danger: #dc3545 !default;
38
+ $warning: #ffc107 !default;
39
+ $info: #17a2b8 !default;
40
+
41
+ $color-primitives: (
42
+ "gray": #6b7280,
43
+ "red": #ef4444,
44
+ "blue": #3b82f6,
45
+ "green": #22c55e,
46
+ "yellow": #eab308,
47
+ "purple": #a855f7,
48
+ "pink": #ec4899,
49
+ ) !default;
50
+
51
+ $theme-tokens: ("background", "foreground", "surface", "border", "text-primary", "text-secondary") !default;
52
+
53
+ // Default theme config (can be overridden)
54
+ $light-theme: (
55
+ "background": #fafafa,
56
+ "foreground": #1a1a1a,
57
+ "surface": #fff,
58
+ "border": #e5e7eb,
59
+ "text-primary": #1a1a1a,
60
+ "text-secondary": #4b5563,
61
+ ) !default;
62
+
63
+ $dark-theme: (
64
+ "background": #1a1a1a,
65
+ "foreground": #f1f1f1,
66
+ "surface": #2e2e2e,
67
+ "border": #2e2e2e,
68
+ "text-primary": #f1f1f1,
69
+ "text-secondary": #a3a3a3,
70
+ ) !default;
71
+
72
+ $shadow-colors: (
73
+ "default": rgb(0 0 0 / 10%),
74
+ "dark": rgb(0 0 0 / 20%),
75
+ "darker": rgb(0 0 0 / 35%),
76
+ "darkest": rgb(0 0 0 / 50%),
77
+ ) !default;
78
+
79
+ // Breakpoints
80
+ $breakpoints: (
81
+ "xs": 480px,
82
+ "sm": 640px,
83
+ "md": 768px,
84
+ "lg": 1024px,
85
+ "xl": 1280px,
86
+ "2xl": 1536px,
87
+ ) !default;
88
+
89
+ $grid-item-sizes: (
90
+ "xs": 200px,
91
+ "sm": 250px,
92
+ "md": 300px,
93
+ "lg": 350px,
94
+ "xl": 400px,
95
+ ) !default;
96
+
97
+ // _variables.scss
98
+ $font-sizes: (
99
+ // 12px
100
+ "xs": 0.75rem,
101
+ // 14px
102
+ "sm": 0.875rem,
103
+ // 16px
104
+ "md": 1rem,
105
+ // 20px
106
+ "lg": 1.25rem,
107
+ // 24px
108
+ "xl": 1.5rem,
109
+ // 28px
110
+ "2xl": 1.75rem,
111
+ // 32px
112
+ "3xl": 2rem,
113
+ // 40px
114
+ "4xl": 2.5rem
115
+ ) !default;
116
+
117
+ // Updated spacing map
118
+ $spacings: (
119
+ // 0rem
120
+ 0: 0,
121
+ // 0.25rem
122
+ 1: rem(4),
123
+ // 0.5rem
124
+ 2: rem(8),
125
+ // 0.75rem
126
+ 3: rem(12),
127
+ // 1rem
128
+ 4: rem(16),
129
+ // 1.25rem
130
+ 5: rem(20),
131
+ // 1.5rem
132
+ 6: rem(24),
133
+ // 2rem
134
+ 8: rem(32),
135
+ // 2.5rem
136
+ 10: rem(40),
137
+ // 3rem
138
+ 12: rem(48),
139
+ // 4rem
140
+ 16: rem(64),
141
+ // 5rem
142
+ 20: rem(80),
143
+ // 6rem
144
+ 24: rem(96),
145
+ // 8rem
146
+ 32: rem(128),
147
+ // 10rem
148
+ 40: rem(160),
149
+ // 12rem
150
+ 48: rem(192),
151
+ // 14rem
152
+ 56: rem(224),
153
+ // 16rem
154
+ 64: rem(256)
155
+ );
156
+
157
+ $percentages: (0, 5, 10, 20, 25, 30, 40, 50, 60, 70, 75, 80, 90, 100) !default;
@@ -0,0 +1,81 @@
1
+ @use "sass:string";
2
+ @use "sass:math";
3
+ @use "sass:map";
4
+ @use "sass:list";
5
+ @use "sass:meta";
6
+ @use "config" as *;
7
+
8
+ @function str-replace($string, $search, $replace: " ") {
9
+ $index: string.index($string, $search);
10
+ @if $index {
11
+ @return string.slice($string, 1, $index - 1) + $replace + str-replace(string.slice($string, $index + string.length($search)), $search, $replace);
12
+ }
13
+ @return $string;
14
+ }
15
+
16
+ @function get-breakpoint-value($bp) {
17
+ @if map.has-key($breakpoints, $bp) {
18
+ @return map.get($breakpoints, $bp);
19
+ } @else if meta.type-of($bp) == number {
20
+ @return $bp;
21
+ } @else {
22
+ @warn 'Invalid breakpoint: #{$bp}';
23
+ @return null;
24
+ }
25
+ }
26
+
27
+ @function strip-unit($value) {
28
+ @return math.div($value, ($value * 0 + 1));
29
+ }
30
+
31
+ @function safe-unit-name($unit) {
32
+ @if $unit == "%" {
33
+ @return "per";
34
+ } @else if $unit == "." {
35
+ @return "dot";
36
+ } @else {
37
+ @return $unit;
38
+ }
39
+ }
40
+
41
+ @function get-unit($value) {
42
+ $value-str: #{$value};
43
+
44
+ // Relative length units
45
+ @if string.index($value-str, "em") {
46
+ @return "em";
47
+ } @else if string.index($value-str, "rem") {
48
+ @return "rem";
49
+ } @else if string.index($value-str, "%") {
50
+ @return "%";
51
+ }
52
+
53
+ // Viewport units
54
+ @else if string.index($value-str, "vw") {
55
+ @return "vw";
56
+ } @else if string.index($value-str, "vh") {
57
+ @return "vh";
58
+ } @else if string.index($value-str, "vmin") {
59
+ @return "vmin";
60
+ } @else if string.index($value-str, "vmax") {
61
+ @return "vmax";
62
+ }
63
+
64
+ // Absolute length units
65
+ @else if string.index($value-str, "px") {
66
+ @return "px";
67
+ } @else if string.index($value-str, "cm") {
68
+ @return "cm";
69
+ } @else if string.index($value-str, "mm") {
70
+ @return "mm";
71
+ } @else if string.index($value-str, "in") {
72
+ @return "in";
73
+ } @else if string.index($value-str, "pt") {
74
+ @return "pt";
75
+ } @else if string.index($value-str, "pc") {
76
+ @return "pc";
77
+ }
78
+
79
+ // Return empty string if no unit found
80
+ @return "";
81
+ }
@@ -0,0 +1,2 @@
1
+ @forward "config";
2
+ @forward "functions";
@@ -1,7 +1,7 @@
1
1
  @use 'sass:map';
2
2
 
3
3
  /* Import variables */
4
- @use '../utilities/variables' as *;
4
+ @use '../abstracts' as *;
5
5
  @use '../utilities/media-queries' as media;
6
6
 
7
7
  :root {
@@ -10,7 +10,7 @@
10
10
 
11
11
  // Base typography styles
12
12
  html {
13
- font-size: 16px;
13
+ font-size: 16px;
14
14
  font-family: var(--font-family-base);
15
15
  }
16
16
 
@@ -0,0 +1,2 @@
1
+ @forward "base";
2
+ @forward "reset";
@@ -1,7 +1,9 @@
1
1
  // Modern CSS Reset
2
2
 
3
3
  // Box sizing rules
4
- *, *::before, *::after {
4
+ *,
5
+ *::before,
6
+ *::after {
5
7
  box-sizing: border-box;
6
8
  margin: 0;
7
9
  padding: 0;
@@ -32,7 +34,7 @@ body {
32
34
  line-height: 1.5;
33
35
  -webkit-font-smoothing: antialiased;
34
36
  -moz-osx-font-smoothing: grayscale;
35
- font-family: 'Courier New', Courier, monospace;
37
+ font-family: var(--font-family-base);
36
38
  }
37
39
 
38
40
  // Make images easier to work with
@@ -72,10 +74,10 @@ ol {
72
74
  list-style: none;
73
75
  margin: 0;
74
76
  padding: 0;
75
-
77
+
76
78
  // Modern properties
77
- padding-inline-start: 0; // Replaces padding-left
78
- margin-block: 0; // Replaces margin-top/bottom
79
+ padding-inline-start: 0; // Replaces padding-left
80
+ margin-block: 0; // Replaces margin-top/bottom
79
81
  }
80
82
 
81
83
  li {
@@ -99,4 +101,4 @@ a {
99
101
  // Make sure textareas without a rows attribute are not tiny
100
102
  textarea:not([rows]) {
101
103
  min-height: 10em;
102
- }
104
+ }
@@ -1,35 +1,16 @@
1
- /* Forward all modules for external use */
2
- @forward 'utilities/variables';
1
+ // Import abstracts first (configuration)
2
+ @forward "abstracts";
3
3
 
4
- // Base styles
5
- @forward 'base/reset';
6
- @forward 'base/base';
4
+ // Import base styles
5
+ @forward "base";
7
6
 
8
- // Layouts
9
- @forward 'layouts/container';
10
- @forward 'layouts/flex';
11
- @forward 'layouts/grid';
7
+ // Import themes
8
+ @forward "themes";
12
9
 
13
- // Utilities
14
- @forward 'utilities/alignment';
15
- @forward 'utilities/animations';
16
- @forward 'utilities/borders';
17
- @forward 'utilities/colors';
18
- @forward 'utilities/opacity';
19
- @forward 'utilities/position';
20
- @forward 'utilities/media-queries';
21
- @forward 'utilities/shadows';
22
- @forward 'utilities/sizing';
23
- @forward 'utilities/spacing';
24
- @forward 'utilities/transitions';
25
- @forward 'utilities/typography';
26
- @forward 'utilities/tooltips';
27
- @forward 'utilities/display';
10
+ // Import layout components
11
+ @forward "layouts";
28
12
 
29
- @forward 'utilities/helpers';
13
+ // Import utilities based on configuration
14
+ @forward "utilities";
30
15
 
31
-
32
- // Theme
33
- @forward 'themes/theme';
34
-
35
- @forward './mixins-map';
16
+ @forward "./mixins-map";
@@ -1,5 +1,5 @@
1
- @use 'sass:map';
2
- @use '../utilities/variables' as VAR;
1
+ @use "sass:map";
2
+ @use "../abstracts/config" as VAR;
3
3
 
4
4
  // Base container styles
5
5
  @mixin container-base {
@@ -15,7 +15,6 @@
15
15
  }
16
16
  }
17
17
 
18
-
19
18
  // Responsive container mixin
20
19
  @mixin container($display: block) {
21
20
  display: $display;
@@ -28,25 +27,10 @@
28
27
  @include container-padding(1rem);
29
28
  }
30
29
 
31
- // Container classes
32
- .container {
33
- @include container;
34
- }
35
-
36
- .container-flex {
37
- @include container(flex);
38
- }
39
-
40
- .container-grid {
41
- @include container(grid);
42
- }
43
30
 
44
- .container-fluid {
45
- @include container-base;
46
- @include container-padding(1rem);
31
+ @if VAR.$generate-utility-classes {
32
+ // Container classes
33
+ .container {
34
+ @include container;
35
+ }
47
36
  }
48
-
49
- .container-no-padding {
50
- @include container;
51
- @include container-padding(0);
52
- }
@@ -1,5 +1,6 @@
1
1
  // Section: Layout
2
2
  // Module: Flex | Flex Inline
3
+ // Note: Gap utilities are defined in _spacing.scss
3
4
 
4
5
  /**
5
6
  * @component Flex
@@ -44,8 +45,8 @@
44
45
 
45
46
  @use 'sass:math';
46
47
  @use '../utilities/media-queries' as MC;
47
- @use '../utilities/variables' as VAR;
48
- @use '../utilities/functions' as FN;
48
+ @use '../abstracts' as VAR;
49
+ @use '../abstracts/functions' as FN;
49
50
 
50
51
  /**
51
52
  * @description Establishes a flex container.
@@ -298,119 +299,121 @@
298
299
  flex: 0 0 math.percentage(math.div($size, VAR.$column-count));
299
300
  }
300
301
 
301
- // Base flex container
302
- .flex {
303
- display: flex;
304
-
305
- // Direction modifiers
306
- &.row { flex-direction: row; }
307
- &.row-reverse { flex-direction: row-reverse; }
308
- &.col { flex-direction: column; }
309
- &.col-reverse { flex-direction: column-reverse; }
310
-
311
- // Wrap modifiers
312
- &.wrap { flex-wrap: wrap; }
313
- &.nowrap { flex-wrap: nowrap; }
314
- &.wrap-reverse { flex-wrap: wrap-reverse; }
315
-
316
- // Justify modifiers
317
- &.start { justify-content: flex-start; }
318
- &.end { justify-content: flex-end; }
319
- &.center { justify-content: center; }
320
- &.between { justify-content: space-between; }
321
- &.around { justify-content: space-around; }
322
- &.evenly { justify-content: space-evenly; }
323
-
324
- // Align modifiers
325
- &.x-start { align-items: flex-start; }
326
- &.x-end { align-items: flex-end; }
327
- &.x-center { align-items: center; }
328
- &.x-baseline { align-items: baseline; }
329
- &.x-stretch { align-items: stretch; }
330
-
331
- &.x-content-start { align-content: flex-start; }
332
- &.x-content-end { align-content: flex-end; }
333
- &.x-content-center { align-content: center; }
334
- &.x-content-between { align-content: space-between; }
335
- &.x-content-around { align-content: space-around; }
336
- &.x-content-evenly { align-content: space-evenly; }
337
- &.x-content-stretch { align-content: stretch; }
338
-
339
- // Child flex items (using column count)
340
- > .w-auto { @include f-w-auto; }
341
- > .w-full { @include f-w-full; }
342
- > .grow { @include grow; }
343
- > .no-grow { @include no-grow; }
344
-
345
- > .order-first { order: -1; }
346
- > .order-last { order: 9999; }
347
- > .order-none { order: 0; }
348
-
349
- > .shrink { @include shrink; }
350
- > .shrink-0 { @include shrink-0; }
351
- > .shrink-2 { @include shrink-2; }
352
- @for $i from 1 through VAR.$column-count {
353
- > .w-#{$i} { @include w-col($i); }
354
- > .order-#{$i} { order: $i; }
302
+ @if VAR.$generate-utility-classes {
303
+ // Base flex container
304
+ .flex {
305
+ display: flex;
306
+
307
+ // Direction modifiers
308
+ &.row { flex-direction: row; }
309
+ &.row-reverse { flex-direction: row-reverse; }
310
+ &.col { flex-direction: column; }
311
+ &.col-reverse { flex-direction: column-reverse; }
312
+
313
+ // Wrap modifiers
314
+ &.wrap { flex-wrap: wrap; }
315
+ &.nowrap { flex-wrap: nowrap; }
316
+ &.wrap-reverse { flex-wrap: wrap-reverse; }
317
+
318
+ // Justify modifiers
319
+ &.start { justify-content: flex-start; }
320
+ &.end { justify-content: flex-end; }
321
+ &.center { justify-content: center; }
322
+ &.between { justify-content: space-between; }
323
+ &.around { justify-content: space-around; }
324
+ &.evenly { justify-content: space-evenly; }
325
+
326
+ // Align modifiers
327
+ &.x-start { align-items: flex-start; }
328
+ &.x-end { align-items: flex-end; }
329
+ &.x-center { align-items: center; }
330
+ &.x-baseline { align-items: baseline; }
331
+ &.x-stretch { align-items: stretch; }
332
+
333
+ &.x-content-start { align-content: flex-start; }
334
+ &.x-content-end { align-content: flex-end; }
335
+ &.x-content-center { align-content: center; }
336
+ &.x-content-between { align-content: space-between; }
337
+ &.x-content-around { align-content: space-around; }
338
+ &.x-content-evenly { align-content: space-evenly; }
339
+ &.x-content-stretch { align-content: stretch; }
340
+
341
+ // Child flex items (using column count)
342
+ > .w-auto { @include f-w-auto; }
343
+ > .w-full { @include f-w-full; }
344
+ > .grow { @include grow; }
345
+ > .no-grow { @include no-grow; }
346
+
347
+ > .order-first { order: -1; }
348
+ > .order-last { order: 9999; }
349
+ > .order-none { order: 0; }
350
+
351
+ > .shrink { @include shrink; }
352
+ > .shrink-0 { @include shrink-0; }
353
+ > .shrink-2 { @include shrink-2; }
354
+ @for $i from 1 through VAR.$column-count {
355
+ > .w-#{$i} { @include w-col($i); }
356
+ > .order-#{$i} { order: $i; }
357
+ }
355
358
  }
356
- }
357
359
 
358
- @each $breakpoint, $width in VAR.$breakpoints {
359
- // Get breakpoint value using FN function
360
- $bp-val: FN.get-breakpoint-value($breakpoint);
361
-
362
- @media (min-width: #{$bp-val}) {
363
- .flex {
364
- // Direction
365
- &.row\@#{$breakpoint} { flex-direction: row; }
366
- &.row-reverse\@#{$breakpoint} { flex-direction: row-reverse; }
367
- &.col\@#{$breakpoint} { flex-direction: column; }
368
- &.col-reverse\@#{$breakpoint} { flex-direction: column-reverse; }
369
-
370
- // Wrap
371
- &.wrap\@#{$breakpoint} { flex-wrap: wrap; }
372
- &.nowrap\@#{$breakpoint} { flex-wrap: nowrap; }
373
- &.wrap-reverse\@#{$breakpoint} { flex-wrap: wrap-reverse; }
374
-
375
- // Justify
376
- &.start\@#{$breakpoint} { justify-content: flex-start; }
377
- &.end\@#{$breakpoint} { justify-content: flex-end; }
378
- &.center\@#{$breakpoint} { justify-content: center; }
379
- &.between\@#{$breakpoint} { justify-content: space-between; }
380
- &.around\@#{$breakpoint} { justify-content: space-around; }
381
- &.evenly\@#{$breakpoint} { justify-content: space-evenly; }
382
-
383
- // Align
384
- &.x-start\@#{$breakpoint} { align-items: flex-start; }
385
- &.x-end\@#{$breakpoint} { align-items: flex-end; }
386
- &.x-center\@#{$breakpoint} { align-items: center; }
387
- &.x-baseline\@#{$breakpoint} { align-items: baseline; }
388
- &.x-stretch\@#{$breakpoint} { align-items: stretch; }
389
-
390
- &.x-content-start\@#{$breakpoint} { align-content: flex-start; }
391
- &.x-content-end\@#{$breakpoint} { align-content: flex-end; }
392
- &.x-content-center\@#{$breakpoint} { align-content: center; }
393
- &.x-content-between\@#{$breakpoint} { align-content: space-between; }
394
- &.x-content-around\@#{$breakpoint} { align-content: space-around; }
395
- &.x-content-evenly\@#{$breakpoint} { align-content: space-evenly; }
396
- &.x-content-stretch\@#{$breakpoint} { align-content: stretch; }
397
-
398
- // Width (using column count)
399
- & > .w-auto\@#{$breakpoint} { @include f-w-auto; }
400
- & > .w-full\@#{$breakpoint} { @include f-w-full; }
401
- & > .grow\@#{$breakpoint} { @include grow; }
402
- & > .no-grow\@#{$breakpoint} { @include no-grow; }
403
- & > .order-first\@#{$breakpoint} { order: -1; }
404
- & > .order-last\@#{$breakpoint} { order: 9999; }
405
- & > .order-none\@#{$breakpoint} { order: 0; }
406
- & > .shrink\@#{$breakpoint} { @include shrink; }
407
- & > .shrink-0\@#{$breakpoint} { @include shrink-0; }
408
- & > .shrink-2\@#{$breakpoint} { @include shrink-2; }
409
-
410
- @for $i from 1 through VAR.$column-count {
411
- & > .w-#{$i}\@#{$breakpoint} { @include w-col($i); }
412
- & > .col-#{$i}\@#{$breakpoint} { @include w-col($i); }
413
- & > .order-#{$i}\@#{$breakpoint} { order: $i; }
360
+ @each $breakpoint, $width in VAR.$breakpoints {
361
+ // Get breakpoint value using FN function
362
+ $bp-val: FN.get-breakpoint-value($breakpoint);
363
+
364
+ @media (min-width: #{$bp-val}) {
365
+ .flex {
366
+ // Direction
367
+ &.row\@#{$breakpoint} { flex-direction: row; }
368
+ &.row-reverse\@#{$breakpoint} { flex-direction: row-reverse; }
369
+ &.col\@#{$breakpoint} { flex-direction: column; }
370
+ &.col-reverse\@#{$breakpoint} { flex-direction: column-reverse; }
371
+
372
+ // Wrap
373
+ &.wrap\@#{$breakpoint} { flex-wrap: wrap; }
374
+ &.nowrap\@#{$breakpoint} { flex-wrap: nowrap; }
375
+ &.wrap-reverse\@#{$breakpoint} { flex-wrap: wrap-reverse; }
376
+
377
+ // Justify
378
+ &.start\@#{$breakpoint} { justify-content: flex-start; }
379
+ &.end\@#{$breakpoint} { justify-content: flex-end; }
380
+ &.center\@#{$breakpoint} { justify-content: center; }
381
+ &.between\@#{$breakpoint} { justify-content: space-between; }
382
+ &.around\@#{$breakpoint} { justify-content: space-around; }
383
+ &.evenly\@#{$breakpoint} { justify-content: space-evenly; }
384
+
385
+ // Align
386
+ &.x-start\@#{$breakpoint} { align-items: flex-start; }
387
+ &.x-end\@#{$breakpoint} { align-items: flex-end; }
388
+ &.x-center\@#{$breakpoint} { align-items: center; }
389
+ &.x-baseline\@#{$breakpoint} { align-items: baseline; }
390
+ &.x-stretch\@#{$breakpoint} { align-items: stretch; }
391
+
392
+ &.x-content-start\@#{$breakpoint} { align-content: flex-start; }
393
+ &.x-content-end\@#{$breakpoint} { align-content: flex-end; }
394
+ &.x-content-center\@#{$breakpoint} { align-content: center; }
395
+ &.x-content-between\@#{$breakpoint} { align-content: space-between; }
396
+ &.x-content-around\@#{$breakpoint} { align-content: space-around; }
397
+ &.x-content-evenly\@#{$breakpoint} { align-content: space-evenly; }
398
+ &.x-content-stretch\@#{$breakpoint} { align-content: stretch; }
399
+
400
+ // Width (using column count)
401
+ & > .w-auto\@#{$breakpoint} { @include f-w-auto; }
402
+ & > .w-full\@#{$breakpoint} { @include f-w-full; }
403
+ & > .grow\@#{$breakpoint} { @include grow; }
404
+ & > .no-grow\@#{$breakpoint} { @include no-grow; }
405
+ & > .order-first\@#{$breakpoint} { order: -1; }
406
+ & > .order-last\@#{$breakpoint} { order: 9999; }
407
+ & > .order-none\@#{$breakpoint} { order: 0; }
408
+ & > .shrink\@#{$breakpoint} { @include shrink; }
409
+ & > .shrink-0\@#{$breakpoint} { @include shrink-0; }
410
+ & > .shrink-2\@#{$breakpoint} { @include shrink-2; }
411
+
412
+ @for $i from 1 through VAR.$column-count {
413
+ & > .w-#{$i}\@#{$breakpoint} { @include w-col($i); }
414
+ & > .col-#{$i}\@#{$breakpoint} { @include w-col($i); }
415
+ & > .order-#{$i}\@#{$breakpoint} { order: $i; }
416
+ }
414
417
  }
415
418
  }
416
419
  }