@avenirs-esr/avenirs-dsav 0.1.106 → 0.1.108

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.
@@ -41,6 +41,7 @@ export declare const MDI_ICONS: {
41
41
  CHECK: string;
42
42
  CHECK_CIRCLE: string;
43
43
  CHECK_CIRCLE_OUTLINE: string;
44
+ CHECK_DECAGRAM_OUTLINE: string;
44
45
  CHECKBOX_BLANK_OUTLINE: string;
45
46
  CHECKBOX_MARKED: string;
46
47
  CHEVRON_DOUBLE_LEFT: string;
@@ -68,6 +69,7 @@ export declare const MDI_ICONS: {
68
69
  FILE_RESTORE_OUTLINE: string;
69
70
  FILE_TREE_OUTLINE: string;
70
71
  FLAG_VARIANT: string;
72
+ FLARE: string;
71
73
  FORMAT_LIST_BULLETED: string;
72
74
  HAMBURGER_MENU: string;
73
75
  HISTORY: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@avenirs-esr/avenirs-dsav",
3
3
  "type": "module",
4
- "version": "0.1.106",
4
+ "version": "0.1.108",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/avenirs-esr/avenirs-dsav"
@@ -1,12 +1,18 @@
1
1
  @use '../core/namespace' as *;
2
2
  @use '../settings/breakpoints' as bp;
3
3
  @use '../core/spacing' as sp;
4
-
5
- $columns: 12;
4
+ @use "sass:map";
6
5
 
7
6
  // === Containers ===
8
- // Default container
9
- // Ex: .av-container, .av-container--fluid
7
+ $container-paddings: (
8
+ sm: sm,
9
+ md: sm,
10
+ lg: md,
11
+ xl: md
12
+ );
13
+
14
+ // === Base container ===
15
+ // Ex: .av-container, .av-container-fluid
10
16
  @include ns("container") {
11
17
  max-width: 90rem;
12
18
  margin-left: auto;
@@ -14,30 +20,25 @@ $columns: 12;
14
20
  padding-left: sp.get(sm);
15
21
  padding-right: sp.get(sm);
16
22
 
17
- &--fluid {
23
+ &-fluid {
18
24
  max-width: none;
19
- padding-left: var(--spacing-none);
20
- padding-right: var(--spacing-none);
25
+ padding-left: 0;
26
+ padding-right: 0;
21
27
  overflow: hidden;
22
28
  }
23
29
  }
24
30
 
25
- // Breakpoint-specific containers
26
- // Ex: .av-container-md / .av-container-lg
31
+ // === Responsive containers ===
32
+ // Ex: .av-container--md / .av-container--lg
27
33
  @each $bp-name, $bp-value in bp.$breakpoints {
28
34
  @media (min-width: #{$bp-value}) {
29
- @include ns("container-#{$bp-name}") {
35
+ @include ns("container--#{$bp-name}") {
30
36
  width: 100%;
31
37
  max-width: #{$bp-value};
32
38
  margin-left: auto;
33
39
  margin-right: auto;
34
- @if $bp-name == lg or $bp-name == xl {
35
- padding-left: sp.get(md);
36
- padding-right: sp.get(md);
37
- } @else {
38
- padding-left: sp.get(sm);
39
- padding-right: sp.get(sm);
40
- }
40
+ padding-left: sp.get(map.get($container-paddings, $bp-name));
41
+ padding-right: sp.get(map.get($container-paddings, $bp-name));
41
42
  }
42
43
  }
43
44
  }
@@ -56,67 +57,32 @@ $row-alignments: (
56
57
  bottom: flex-end
57
58
  );
58
59
 
59
- @include ns("row") {
60
+ // === Mixin row layout ===
61
+ @mixin row-layout {
60
62
  display: flex;
61
- flex-wrap: wrap;
63
+ flex-direction: row;
64
+ }
62
65
 
63
- // Horizontal alignments
64
- // Ex: .av-row--left / .av-row--center
65
- @each $mod-name, $justify in $row-justifications {
66
- &--#{$mod-name} {
67
- justify-content: $justify;
68
- }
66
+ // === Base row ===
67
+ // Ex: .av-row / .av-row-wrap / .av-row-nowrap
68
+ @include ns("row") {
69
+ @include row-layout;
70
+
71
+ &-wrap {
72
+ flex-wrap: wrap;
69
73
  }
70
74
 
71
- // Vertical alignments
72
- // Ex: .av-row--top / .av-row--bottom
73
- @each $mod-name, $align in $row-alignments {
74
- &--#{$mod-name} {
75
- align-items: $align;
76
- }
75
+ &-nowrap {
76
+ flex-wrap: nowrap;
77
77
  }
78
78
  }
79
79
 
80
+ // === Responsive layout for rows ===
81
+ // Ex: .av-row--md
80
82
  @each $bp-name, $bp-value in bp.$breakpoints {
81
83
  @media (min-width: #{$bp-value}) {
82
- // Base row
83
- // Ex: .av-row-md
84
- @include ns("row-#{$bp-name}") {
85
- display: flex;
86
- flex-wrap: wrap;
87
- margin-left: -#{sp.get(sm)};
88
- margin-right: -#{sp.get(sm)};
89
-
90
- > * {
91
- padding-left: sp.get(sm);
92
- padding-right: sp.get(sm);
93
- }
94
-
95
- &.av-no-gutters {
96
- margin-left: 0;
97
- margin-right: 0;
98
-
99
- > * {
100
- padding-left: 0;
101
- padding-right: 0;
102
- }
103
- }
104
-
105
- // Horizontal alignments
106
- // Ex: .av-row-md--left / .av-row-lg--center
107
- @each $mod-name, $justify in $row-justifications {
108
- &--#{$mod-name} {
109
- justify-content: $justify;
110
- }
111
- }
112
-
113
- // Vertical alignments
114
- // Ex: .av-row-md--top / .av-row-lg--bottom
115
- @each $mod-name, $align in $row-alignments {
116
- &--#{$mod-name} {
117
- align-items: $align;
118
- }
119
- }
84
+ @include ns("row--#{$bp-name}") {
85
+ @include row-layout;
120
86
  }
121
87
  }
122
88
  }
@@ -128,56 +94,24 @@ $col-alignments: (
128
94
  bottom: flex-end
129
95
  );
130
96
 
131
- @each $bp-name, $bp-value in bp.$breakpoints {
132
- @media (min-width: #{$bp-value}) {
133
- // Base column
134
- // Ex: .av-col-md
135
- @include ns("col-#{$bp-name}") {
136
- flex: 1;
137
- }
138
-
139
- // Align-self modifiers
140
- // Ex: .av-col-md--top / .av-col-lg--bottom
141
- @each $mod-name, $align in $col-alignments {
142
- @include ns("col-#{$bp-name}--#{$mod-name}") {
143
- align-self: $align;
144
- }
145
- }
146
-
147
- // Width and offsets
148
- // Ex: .av-col-md-4 / .av-col-offset-md-2 / .av-col-offset-md-2--right
149
- @for $i from 1 through $columns {
150
- @include ns("col-#{$bp-name}-#{$i}") {
151
- flex: 0 0 calc(100% * #{$i} / #{$columns});
152
- max-width: calc(100% * #{$i} / #{$columns});
153
- }
154
-
155
- @include ns("col-offset-#{$bp-name}-#{$i}") {
156
- margin-left: calc(100% * #{$i} / #{$columns});
157
- }
158
-
159
- @include ns("col-offset-#{$bp-name}-#{$i}--right") {
160
- margin-left: 0;
161
- margin-right: calc(100% * #{$i} / #{$columns});
162
- }
163
- }
164
- }
97
+ // === Mixin column layout ===
98
+ @mixin col-layout {
99
+ display: flex;
100
+ flex-direction: column;
165
101
  }
166
102
 
167
- // === Gapped flex directions ===
168
- // Ex: .av-flex-row-md / .av-flex-col-sm
169
- $flex-directions: (
170
- row: row,
171
- col: column,
172
- );
103
+ // === Base column ===
104
+ // Ex: .av-col
105
+ @include ns("col") {
106
+ @include col-layout;
107
+ }
173
108
 
174
- @each $dir-name, $dir-value in $flex-directions {
175
- @each $size, $value in sp.$spacing {
176
- @include ns("flex-#{$dir-name}-#{$size}") {
177
- display: flex;
178
- flex: 1;
179
- flex-direction: $dir-value;
180
- gap: var(--spacing-#{$size});
109
+ // === Responsive layout for columns ===
110
+ // Ex: .av-col--md
111
+ @each $bp-name, $bp-value in bp.$breakpoints {
112
+ @media (min-width: #{$bp-value}) {
113
+ @include ns("col--#{$bp-name}") {
114
+ @include col-layout;
181
115
  }
182
116
  }
183
117
  }
@@ -33,6 +33,7 @@
33
33
  --icon-mdi-check: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMSA3TDkgMTlsLTUuNS01LjVsMS40MS0xLjQxTDkgMTYuMTdMMTkuNTkgNS41OXoiLz48L3N2Zz4=");
34
34
  --icon-mdi-check-circle: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwczEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMm0tMiAxNWwtNS01bDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOHoiLz48L3N2Zz4=");
35
35
  --icon-mdi-check-circle-outline: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwczEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMm0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04czggMy41OSA4IDhzLTMuNTkgOC04IDhtNC41OS0xMi40MkwxMCAxNC4xN2wtMi41OS0yLjU4TDYgMTNsNCA0bDgtOHoiLz48L3N2Zz4=");
36
+ --icon-mdi-check-decagram-outline: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0yMyAxMmwtMi40LTIuOGwuMy0zLjdsLTMuNi0uOGwtMS45LTMuMkwxMiAzTDguNiAxLjVMNi43IDQuN2wtMy42LjhsLjMgMy43TDEgMTJsMi40IDIuOGwtLjMgMy43bDMuNi44bDEuOSAzLjJMMTIgMjFsMy40IDEuNWwxLjktMy4ybDMuNi0uOGwtLjMtMy43em0tNC4zIDQuOWwtMi43LjZsLTEuNCAyLjRsLTIuNi0xLjFsLTIuNiAxLjFMOCAxNy41bC0yLjctLjZsLjItMi44TDMuNyAxMmwxLjgtMi4xbC0uMi0yLjhMOCA2LjVsMS40LTIuNEwxMiA1LjJsMi42LTEuMUwxNiA2LjVsMi43LjZsLS4yIDIuOGwxLjggMi4xbC0xLjggMi4xem0tMi4xLTkuM0wxOCA5bC04IDhsLTQtNGwxLjQtMS40bDIuNiAyLjZ6Ii8+PC9zdmc+");
36
37
  --icon-mdi-checkbox-blank-outline: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xOSAzSDVjLTEuMTEgMC0yIC44OS0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMm0wIDJ2MTRINVY1eiIvPjwvc3ZnPg==");
37
38
  --icon-mdi-checkbox-marked: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xMCAxN2wtNS01bDEuNDEtMS40MkwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOG0wLTVINWMtMS4xMSAwLTIgLjg5LTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0yIi8+PC9zdmc+");
38
39
  --icon-mdi-chevron-double-left: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xOC40MSA3LjQxTDE3IDZsLTYgNmw2IDZsMS40MS0xLjQxTDEzLjgzIDEyem0tNiAwTDExIDZsLTYgNmw2IDZsMS40MS0xLjQxTDcuODMgMTJ6Ii8+PC9zdmc+");
@@ -60,6 +61,7 @@
60
61
  --icon-mdi-file-restore-outline: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOHptNCAxOEg2VjRoN2w1IDV6bS0xLTYuNzZjMCAyLjYyLTIuMTMgNC43Ni00Ljc2IDQuNzZjLTEuOTUgMC0zLjYzLTEuMTgtNC4zNi0yLjg2SDkuNWMuNjEuODYgMS42MSAxLjQzIDIuNzQgMS40M2MxLjg0IDAgMy4zMy0xLjUgMy4zMy0zLjMzUzE0LjA4IDkuOSAxMi4yNCA5LjljLTEuMjkgMC0yLjM4Ljc1LTIuOTUgMS44MWwxLjUyIDEuNTNIN1Y5LjQzbDEuMjQgMS4yNGE0LjcxIDQuNzEgMCAwIDEgNC0yLjE3YzIuNjMtLjAzIDQuNzYgMi4xMSA0Ljc2IDQuNzQiLz48L3N2Zz4=");
61
62
  --icon-mdi-file-tree-outline: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMiAxM0g3djVoNXYySDVWMTBoMnYxaDV6TTggNHYySDRWNHptMi0ySDJ2Nmg4em0xMCA5djJoLTR2LTJ6bTItMmgtOHY2aDh6bS0yIDl2MmgtNHYtMnptMi0yaC04djZoOHoiLz48L3N2Zz4=");
62
63
  --icon-mdi-flag-variant: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik02IDNhMSAxIDAgMCAxIDEgMXYuODhDOC4wNiA0LjQ0IDkuNSA0IDExIDRjMyAwIDMgMiA1IDJjMyAwIDQtMiA0LTJ2OHMtMSAyLTQgMnMtMy0yLTUtMmMtMyAwLTQgMi00IDJ2N0g1VjRhMSAxIDAgMCAxIDEtMSIvPjwvc3ZnPg==");
64
+ --icon-mdi-flare: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03IDExSDF2Mmg2em0yLjE3LTMuMjRMNy4wNSA1LjY0TDUuNjQgNy4wNWwyLjEyIDIuMTJ6TTEzIDFoLTJ2Nmgyem01LjM2IDYuMDVsLTEuNDEtMS40MWwtMi4xMiAyLjEybDEuNDEgMS40MXpNMTcgMTF2Mmg2di0yem0tNS0yYTMgMyAwIDAgMC0zIDNhMyAzIDAgMCAwIDMgM2EzIDMgMCAwIDAgMy0zYTMgMyAwIDAgMC0zLTNtMi44MyA3LjI0bDIuMTIgMi4xMmwxLjQxLTEuNDFsLTIuMTItMi4xMnptLTkuMTkuNzFsMS40MSAxLjQxbDIuMTItMi4xMmwtMS40MS0xLjQxek0xMSAyM2gydi02aC0yeiIvPjwvc3ZnPg==");
63
65
  --icon-mdi-format-list-bulleted: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03IDVoMTR2Mkg3em0wIDh2LTJoMTR2MnpNNCA0LjVBMS41IDEuNSAwIDAgMSA1LjUgNkExLjUgMS41IDAgMCAxIDQgNy41QTEuNSAxLjUgMCAwIDEgMi41IDZBMS41IDEuNSAwIDAgMSA0IDQuNW0wIDZBMS41IDEuNSAwIDAgMSA1LjUgMTJBMS41IDEuNSAwIDAgMSA0IDEzLjVBMS41IDEuNSAwIDAgMSAyLjUgMTJBMS41IDEuNSAwIDAgMSA0IDEwLjVNNyAxOXYtMmgxNHYyem0tMy0yLjVBMS41IDEuNSAwIDAgMSA1LjUgMThBMS41IDEuNSAwIDAgMSA0IDE5LjVBMS41IDEuNSAwIDAgMSAyLjUgMThBMS41IDEuNSAwIDAgMSA0IDE2LjUiLz48L3N2Zz4=");
64
66
  --icon-mdi-hamburger-menu: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0zIDZoMTh2Mkgzem0wIDVoMTh2Mkgzem0wIDVoMTh2MkgzeiIvPjwvc3ZnPg==");
65
67
  --icon-mdi-history: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMy41IDhIMTJ2NWw0LjI4IDIuNTRsLjcyLTEuMjFsLTMuNS0yLjA4ek0xMyAzYTkgOSAwIDAgMC05IDlIMWwzLjk2IDQuMDNMOSAxMkg2YTcgNyAwIDAgMSA3LTdhNyA3IDAgMCAxIDcgN2E3IDcgMCAwIDEtNyA3Yy0xLjkzIDAtMy42OC0uNzktNC45NC0yLjA2bC0xLjQyIDEuNDJBOC45IDguOSAwIDAgMCAxMyAyMWE5IDkgMCAwIDAgOS05YTkgOSAwIDAgMC05LTkiLz48L3N2Zz4=");
@@ -1,24 +1,73 @@
1
1
  @use '../settings/breakpoints' as bp;
2
+ @use '../core/spacing' as sp;
2
3
  @use '../core/namespace' as *;
3
4
 
4
- // === Hidden class ===
5
- @include ns("hidden") {
6
- display: none !important;
7
- }
5
+ // === Responsive utility mixin ===
6
+ @mixin responsive-utility($class-name, $prop, $value) {
7
+ // Base class
8
+ @include ns($class-name) {
9
+ #{$prop}: #{$value};
10
+ }
8
11
 
9
- // === Breakpoint visibility classes ===
10
- @each $bp-name, $bp-value in bp.$breakpoints {
11
- @media (min-width: #{$bp-value}) {
12
- @include ns("hidden-#{$bp-name}") {
13
- display: none !important;
14
- }
15
- @include ns("unhidden-#{$bp-name}") {
16
- display: inherit !important;
12
+ // Breakpoint-specific classes
13
+ @each $bp-name, $bp-value in bp.$breakpoints {
14
+ @media (min-width: #{$bp-value}) {
15
+ @include ns("#{$class-name}--#{$bp-name}") {
16
+ #{$prop}: #{$value};
17
+ }
17
18
  }
18
19
  }
19
20
  }
20
21
 
22
+ // === Visibility classes ===
23
+ // Ex: .av-hidden / .av-hidden--md / .av-unhidden / .av-unhidden--lg
24
+ @include responsive-utility("hidden", display, "none !important");
25
+ @include responsive-utility("unhidden", display, "inherit !important");
26
+
27
+ // === Gapped layouts ===
28
+ // Ex: .av-gap-sm / .av-gap-lg / .av-gap-lg--lg
29
+ @each $size, $value in sp.$spacing {
30
+ @include responsive-utility("gap-#{$size}", gap, var(--spacing-#{$size}));
31
+ }
32
+
33
+ // === Flex fill class ===
34
+ // Ex: .av-flex-fill / .av-flex-fill--md
35
+ @include responsive-utility("flex-fill", flex, "1 1 0%");
36
+
37
+ // === Full width/height classes ===
38
+ // Ex: .av-w-full / .av-h-full / .av-w-full--lg / .av-h-full--md
39
+ @include responsive-utility("w-full", width, 100%);
40
+ @include responsive-utility("h-full", height, 100%);
41
+
42
+ // === Flex alignment classes ===
43
+ // Ex: .av-align-center / .av-align-end
44
+ $alignments: (
45
+ start: flex-start,
46
+ center: center,
47
+ end: flex-end,
48
+ stretch: stretch,
49
+ baseline: baseline
50
+ );
51
+ @each $alignment, $value in $alignments {
52
+ @include responsive-utility("align-#{$alignment}", align-items, $value);
53
+ }
54
+
55
+ // === Flex justification classes ===
56
+ // Ex: .av-justify-center / .av-justify-between
57
+ $justifications: (
58
+ start: flex-start,
59
+ center: center,
60
+ end: flex-end,
61
+ between: space-between,
62
+ around: space-around,
63
+ evenly: space-evenly
64
+ );
65
+ @each $justification, $value in $justifications {
66
+ @include responsive-utility("justify-#{$justification}", justify-content, $value);
67
+ }
68
+
21
69
  // === No before/after classes ===
70
+ // Ex: .av-no-before / .av-no-after
22
71
  @include ns("no-after") {
23
72
  &::after {
24
73
  content: none !important;
@@ -71,11 +120,6 @@
71
120
  display: none !important;
72
121
  }
73
122
 
74
- // === Full height class ===
75
- .h-full {
76
- height: 100%;
77
- }
78
-
79
123
  // === Reset link background image ===
80
124
  a,
81
125
  [href] {