@ivds/core 0.1.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 (154) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +215 -0
  3. package/lib/all.css +6802 -0
  4. package/lib/all.min.css +1 -0
  5. package/lib/base/base.css +215 -0
  6. package/lib/base/base.min.css +1 -0
  7. package/lib/components/_breadcrumb-mixins.scss +173 -0
  8. package/lib/components/_button-mixin.scss +120 -0
  9. package/lib/components/_card-mixin.scss +196 -0
  10. package/lib/components/_checkbox-mixin.scss +208 -0
  11. package/lib/components/_footer-mixin.scss +385 -0
  12. package/lib/components/_header-mixin.scss +275 -0
  13. package/lib/components/_navigation-mixins.scss +270 -0
  14. package/lib/components/_notification-mixin.scss +239 -0
  15. package/lib/components/_pagination-mixins.scss +280 -0
  16. package/lib/components/_radio-button-mixin.scss +207 -0
  17. package/lib/components/_tag-mixin.scss +261 -0
  18. package/lib/components/_text-input-mixin.scss +203 -0
  19. package/lib/components/all.css +3005 -0
  20. package/lib/components/all.min.css +1 -0
  21. package/lib/components/breadcrumb/breadcrumb.css +141 -0
  22. package/lib/components/breadcrumb/breadcrumb.min.css +1 -0
  23. package/lib/components/button/button.css +221 -0
  24. package/lib/components/button/button.min.css +1 -0
  25. package/lib/components/card/card.css +236 -0
  26. package/lib/components/card/card.min.css +1 -0
  27. package/lib/components/checkbox/checkbox.css +305 -0
  28. package/lib/components/checkbox/checkbox.min.css +1 -0
  29. package/lib/components/footer/footer.css +466 -0
  30. package/lib/components/footer/footer.min.css +1 -0
  31. package/lib/components/header/header.css +274 -0
  32. package/lib/components/header/header.min.css +1 -0
  33. package/lib/components/navigation/navigation.css +214 -0
  34. package/lib/components/navigation/navigation.min.css +1 -0
  35. package/lib/components/notification/notification.css +253 -0
  36. package/lib/components/notification/notification.min.css +1 -0
  37. package/lib/components/pagination/pagination.css +221 -0
  38. package/lib/components/pagination/pagination.min.css +1 -0
  39. package/lib/components/radio-button/radio-button.css +326 -0
  40. package/lib/components/radio-button/radio-button.min.css +1 -0
  41. package/lib/components/tag/tag.css +367 -0
  42. package/lib/components/tag/tag.min.css +1 -0
  43. package/lib/components/text-input/text-input.css +243 -0
  44. package/lib/components/text-input/text-input.min.css +1 -0
  45. package/lib/icons/icon-arrow-left.css +139 -0
  46. package/lib/icons/icon-arrow-left.min.css +1 -0
  47. package/lib/icons/icon-arrow-right.css +139 -0
  48. package/lib/icons/icon-arrow-right.min.css +1 -0
  49. package/lib/icons/icon-check.css +139 -0
  50. package/lib/icons/icon-check.min.css +1 -0
  51. package/lib/icons/icon-close.css +140 -0
  52. package/lib/icons/icon-close.min.css +1 -0
  53. package/lib/icons/icon-error.css +140 -0
  54. package/lib/icons/icon-error.min.css +1 -0
  55. package/lib/icons/icon-info.css +140 -0
  56. package/lib/icons/icon-info.min.css +1 -0
  57. package/lib/icons/icon-success.css +139 -0
  58. package/lib/icons/icon-success.min.css +1 -0
  59. package/lib/icons/icon-warning.css +139 -0
  60. package/lib/icons/icon-warning.min.css +1 -0
  61. package/lib/icons/icons.css +1158 -0
  62. package/lib/icons/icons.min.css +1 -0
  63. package/lib/utils/_flex.scss +200 -0
  64. package/lib/utils/_grid.scss +211 -0
  65. package/lib/utils/_layout.scss +253 -0
  66. package/lib/utils/_spacing.scss +260 -0
  67. package/lib/utils/_typography.scss +111 -0
  68. package/lib/utils/utils.css +2434 -0
  69. package/lib/utils/utils.min.css +1 -0
  70. package/lib/utils-only.css +2801 -0
  71. package/lib/utils-only.min.css +1 -0
  72. package/lib/variables/variables.css +2 -0
  73. package/lib/variables/variables.min.css +0 -0
  74. package/package.json +194 -0
  75. package/src/__tests__/example.test.scss +12 -0
  76. package/src/accessibility.stories.js +416 -0
  77. package/src/all.scss +9 -0
  78. package/src/base/_layout.scss +97 -0
  79. package/src/base/_reset.scss +85 -0
  80. package/src/base/_typography.scss +105 -0
  81. package/src/base/base.scss +6 -0
  82. package/src/components/all.scss +22 -0
  83. package/src/components/breadcrumb/_breadcrumb-mixins.scss +173 -0
  84. package/src/components/breadcrumb/breadcrumb.scss +68 -0
  85. package/src/components/breadcrumb/breadcrumb.stories.js +483 -0
  86. package/src/components/button/__tests__/button-mixins.test.scss +35 -0
  87. package/src/components/button/_button-mixin.scss +120 -0
  88. package/src/components/button/button.scss +126 -0
  89. package/src/components/button/button.stories.js +364 -0
  90. package/src/components/card/__tests__/card-mixins.test.scss +36 -0
  91. package/src/components/card/_card-mixin.scss +196 -0
  92. package/src/components/card/card.scss +193 -0
  93. package/src/components/card/card.stories.js +635 -0
  94. package/src/components/checkbox/_checkbox-mixin.scss +208 -0
  95. package/src/components/checkbox/checkbox.scss +141 -0
  96. package/src/components/checkbox/checkbox.stories.js +303 -0
  97. package/src/components/footer/_footer-mixin.scss +385 -0
  98. package/src/components/footer/footer.scss +86 -0
  99. package/src/components/footer/footer.stories.js +740 -0
  100. package/src/components/header/_header-mixin.scss +275 -0
  101. package/src/components/header/header.scss +84 -0
  102. package/src/components/header/header.stories.js +450 -0
  103. package/src/components/navigation/_navigation-mixins.scss +270 -0
  104. package/src/components/navigation/navigation.scss +64 -0
  105. package/src/components/navigation/navigation.stories.js +410 -0
  106. package/src/components/notification/_notification-mixin.scss +239 -0
  107. package/src/components/notification/notification.scss +118 -0
  108. package/src/components/notification/notification.stories.js +378 -0
  109. package/src/components/overview.stories.js +473 -0
  110. package/src/components/pagination/_pagination-mixins.scss +280 -0
  111. package/src/components/pagination/pagination.scss +76 -0
  112. package/src/components/pagination/pagination.stories.js +729 -0
  113. package/src/components/radio-button/_radio-button-mixin.scss +207 -0
  114. package/src/components/radio-button/radio-button.scss +178 -0
  115. package/src/components/radio-button/radio-button.stories.js +379 -0
  116. package/src/components/tag/_tag-mixin.scss +261 -0
  117. package/src/components/tag/tag.scss +244 -0
  118. package/src/components/tag/tag.stories.js +482 -0
  119. package/src/components/text-input/_text-input-mixin.scss +203 -0
  120. package/src/components/text-input/text-input.scss +150 -0
  121. package/src/components/text-input/text-input.stories.js +723 -0
  122. package/src/icons/_icon.scss +121 -0
  123. package/src/icons/icon-arrow-left.scss +23 -0
  124. package/src/icons/icon-arrow-right.scss +23 -0
  125. package/src/icons/icon-check.scss +23 -0
  126. package/src/icons/icon-close.scss +24 -0
  127. package/src/icons/icon-error.scss +24 -0
  128. package/src/icons/icon-info.scss +24 -0
  129. package/src/icons/icon-success.scss +23 -0
  130. package/src/icons/icon-warning.scss +23 -0
  131. package/src/icons/icons.scss +12 -0
  132. package/src/icons/icons.stories.js +249 -0
  133. package/src/icons/svg/arrow-left.svg +3 -0
  134. package/src/icons/svg/arrow-right.svg +3 -0
  135. package/src/icons/svg/check.svg +3 -0
  136. package/src/icons/svg/close.svg +4 -0
  137. package/src/icons/svg/error.svg +5 -0
  138. package/src/icons/svg/info.svg +5 -0
  139. package/src/icons/svg/success.svg +4 -0
  140. package/src/icons/svg/warning.svg +5 -0
  141. package/src/utils/__tests__/utilities.test.scss +37 -0
  142. package/src/utils/_flex.scss +200 -0
  143. package/src/utils/_grid.scss +211 -0
  144. package/src/utils/_layout.scss +253 -0
  145. package/src/utils/_spacing.scss +260 -0
  146. package/src/utils/_typography.scss +111 -0
  147. package/src/utils/utils.scss +8 -0
  148. package/src/variables/_borders.scss +15 -0
  149. package/src/variables/_breakpoints.scss +11 -0
  150. package/src/variables/_colors.scss +97 -0
  151. package/src/variables/_shadows.scss +14 -0
  152. package/src/variables/_spacing.scss +24 -0
  153. package/src/variables/_typography.scss +47 -0
  154. package/src/variables/variables.scss +9 -0
@@ -0,0 +1,200 @@
1
+ // Flexbox utility classes
2
+ // Provides comprehensive flexbox utilities with responsive support
3
+
4
+ @use '../variables/variables' as vars;
5
+
6
+ .ivds-flex {
7
+ display: flex !important;
8
+
9
+ // Direction
10
+ &--row { flex-direction: row !important; }
11
+ &--column { flex-direction: column !important; }
12
+ &--row-reverse { flex-direction: row-reverse !important; }
13
+ &--column-reverse { flex-direction: column-reverse !important; }
14
+
15
+ // Wrap
16
+ &--wrap { flex-wrap: wrap !important; }
17
+ &--wrap-reverse { flex-wrap: wrap-reverse !important; }
18
+ &--nowrap { flex-wrap: nowrap !important; }
19
+
20
+ // Justify content (main axis)
21
+ &--justify-normal { justify-content: normal !important; }
22
+ &--justify-start { justify-content: flex-start !important; }
23
+ &--justify-center { justify-content: center !important; }
24
+ &--justify-end { justify-content: flex-end !important; }
25
+ &--justify-between { justify-content: space-between !important; }
26
+ &--justify-around { justify-content: space-around !important; }
27
+ &--justify-evenly { justify-content: space-evenly !important; }
28
+ &--justify-stretch { justify-content: stretch !important; }
29
+
30
+ // Align items (cross axis)
31
+ &--items-start { align-items: flex-start !important; }
32
+ &--items-center { align-items: center !important; }
33
+ &--items-end { align-items: flex-end !important; }
34
+ &--items-stretch { align-items: stretch !important; }
35
+ &--items-baseline { align-items: baseline !important; }
36
+
37
+ // Align content (for wrapped lines)
38
+ &--content-normal { align-content: normal !important; }
39
+ &--content-center { align-content: center !important; }
40
+ &--content-start { align-content: flex-start !important; }
41
+ &--content-end { align-content: flex-end !important; }
42
+ &--content-between { align-content: space-between !important; }
43
+ &--content-around { align-content: space-around !important; }
44
+ &--content-evenly { align-content: space-evenly !important; }
45
+ &--content-stretch { align-content: stretch !important; }
46
+
47
+ // Gap
48
+ &--gap-0 { gap: 0 !important; }
49
+ &--gap-1 { gap: var(--spacing-1, 0.25rem) !important; }
50
+ &--gap-2 { gap: var(--spacing-2, 0.5rem) !important; }
51
+ &--gap-3 { gap: var(--spacing-3, 0.75rem) !important; }
52
+ &--gap-4 { gap: var(--spacing-4, 1rem) !important; }
53
+ &--gap-5 { gap: var(--spacing-5, 1.25rem) !important; }
54
+ &--gap-6 { gap: var(--spacing-6, 1.5rem) !important; }
55
+ &--gap-8 { gap: var(--spacing-8, 2rem) !important; }
56
+ &--gap-10 { gap: var(--spacing-10, 2.5rem) !important; }
57
+ &--gap-12 { gap: var(--spacing-12, 3rem) !important; }
58
+ &--gap-16 { gap: var(--spacing-16, 4rem) !important; }
59
+
60
+ // Column gap
61
+ &--gap-x-0 { column-gap: 0 !important; }
62
+ &--gap-x-1 { column-gap: var(--spacing-1, 0.25rem) !important; }
63
+ &--gap-x-2 { column-gap: var(--spacing-2, 0.5rem) !important; }
64
+ &--gap-x-3 { column-gap: var(--spacing-3, 0.75rem) !important; }
65
+ &--gap-x-4 { column-gap: var(--spacing-4, 1rem) !important; }
66
+ &--gap-x-6 { column-gap: var(--spacing-6, 1.5rem) !important; }
67
+ &--gap-x-8 { column-gap: var(--spacing-8, 2rem) !important; }
68
+
69
+ // Row gap
70
+ &--gap-y-0 { row-gap: 0 !important; }
71
+ &--gap-y-1 { row-gap: var(--spacing-1, 0.25rem) !important; }
72
+ &--gap-y-2 { row-gap: var(--spacing-2, 0.5rem) !important; }
73
+ &--gap-y-3 { row-gap: var(--spacing-3, 0.75rem) !important; }
74
+ &--gap-y-4 { row-gap: var(--spacing-4, 1rem) !important; }
75
+ &--gap-y-6 { row-gap: var(--spacing-6, 1.5rem) !important; }
76
+ &--gap-y-8 { row-gap: var(--spacing-8, 2rem) !important; }
77
+ }
78
+
79
+ // Flex item utilities
80
+ .ivds-flex-item {
81
+ // Flex grow
82
+ &--grow-0 { flex-grow: 0 !important; }
83
+ &--grow { flex-grow: 1 !important; }
84
+
85
+ // Flex shrink
86
+ &--shrink-0 { flex-shrink: 0 !important; }
87
+ &--shrink { flex-shrink: 1 !important; }
88
+
89
+ // Flex basis
90
+ &--basis-0 { flex-basis: 0% !important; }
91
+ &--basis-1 { flex-basis: var(--spacing-1, 0.25rem) !important; }
92
+ &--basis-2 { flex-basis: var(--spacing-2, 0.5rem) !important; }
93
+ &--basis-3 { flex-basis: var(--spacing-3, 0.75rem) !important; }
94
+ &--basis-4 { flex-basis: var(--spacing-4, 1rem) !important; }
95
+ &--basis-6 { flex-basis: var(--spacing-6, 1.5rem) !important; }
96
+ &--basis-8 { flex-basis: var(--spacing-8, 2rem) !important; }
97
+ &--basis-auto { flex-basis: auto !important; }
98
+ &--basis-full { flex-basis: 100% !important; }
99
+
100
+ // Flex shorthand
101
+ &--flex-1 { flex: 1 1 0% !important; }
102
+ &--flex-auto { flex: 1 1 auto !important; }
103
+ &--flex-initial { flex: 0 1 auto !important; }
104
+ &--flex-none { flex: none !important; }
105
+
106
+ // Align self
107
+ &--self-auto { align-self: auto !important; }
108
+ &--self-start { align-self: flex-start !important; }
109
+ &--self-center { align-self: center !important; }
110
+ &--self-end { align-self: flex-end !important; }
111
+ &--self-stretch { align-self: stretch !important; }
112
+ &--self-baseline { align-self: baseline !important; }
113
+
114
+ // Order
115
+ &--order-1 { order: 1 !important; }
116
+ &--order-2 { order: 2 !important; }
117
+ &--order-3 { order: 3 !important; }
118
+ &--order-4 { order: 4 !important; }
119
+ &--order-5 { order: 5 !important; }
120
+ &--order-6 { order: 6 !important; }
121
+ &--order-7 { order: 7 !important; }
122
+ &--order-8 { order: 8 !important; }
123
+ &--order-9 { order: 9 !important; }
124
+ &--order-10 { order: 10 !important; }
125
+ &--order-11 { order: 11 !important; }
126
+ &--order-12 { order: 12 !important; }
127
+ &--order-first { order: -9999 !important; }
128
+ &--order-last { order: 9999 !important; }
129
+ &--order-none { order: 0 !important; }
130
+ }
131
+
132
+ // Responsive flexbox utilities
133
+ @media (min-width: 640px) {
134
+ .ivds-sm-flex--row { flex-direction: row !important; }
135
+ .ivds-sm-flex--column { flex-direction: column !important; }
136
+ .ivds-sm-flex--row-reverse { flex-direction: row-reverse !important; }
137
+ .ivds-sm-flex--column-reverse { flex-direction: column-reverse !important; }
138
+
139
+ .ivds-sm-flex--wrap { flex-wrap: wrap !important; }
140
+ .ivds-sm-flex--nowrap { flex-wrap: nowrap !important; }
141
+
142
+ .ivds-sm-flex--justify-start { justify-content: flex-start !important; }
143
+ .ivds-sm-flex--justify-center { justify-content: center !important; }
144
+ .ivds-sm-flex--justify-end { justify-content: flex-end !important; }
145
+ .ivds-sm-flex--justify-between { justify-content: space-between !important; }
146
+ .ivds-sm-flex--justify-around { justify-content: space-around !important; }
147
+ .ivds-sm-flex--justify-evenly { justify-content: space-evenly !important; }
148
+
149
+ .ivds-sm-flex--items-start { align-items: flex-start !important; }
150
+ .ivds-sm-flex--items-center { align-items: center !important; }
151
+ .ivds-sm-flex--items-end { align-items: flex-end !important; }
152
+ .ivds-sm-flex--items-stretch { align-items: stretch !important; }
153
+ .ivds-sm-flex--items-baseline { align-items: baseline !important; }
154
+ }
155
+
156
+ @media (min-width: 768px) {
157
+ .ivds-md-flex--row { flex-direction: row !important; }
158
+ .ivds-md-flex--column { flex-direction: column !important; }
159
+ .ivds-md-flex--row-reverse { flex-direction: row-reverse !important; }
160
+ .ivds-md-flex--column-reverse { flex-direction: column-reverse !important; }
161
+
162
+ .ivds-md-flex--wrap { flex-wrap: wrap !important; }
163
+ .ivds-md-flex--nowrap { flex-wrap: nowrap !important; }
164
+
165
+ .ivds-md-flex--justify-start { justify-content: flex-start !important; }
166
+ .ivds-md-flex--justify-center { justify-content: center !important; }
167
+ .ivds-md-flex--justify-end { justify-content: flex-end !important; }
168
+ .ivds-md-flex--justify-between { justify-content: space-between !important; }
169
+ .ivds-md-flex--justify-around { justify-content: space-around !important; }
170
+ .ivds-md-flex--justify-evenly { justify-content: space-evenly !important; }
171
+
172
+ .ivds-md-flex--items-start { align-items: flex-start !important; }
173
+ .ivds-md-flex--items-center { align-items: center !important; }
174
+ .ivds-md-flex--items-end { align-items: flex-end !important; }
175
+ .ivds-md-flex--items-stretch { align-items: stretch !important; }
176
+ .ivds-md-flex--items-baseline { align-items: baseline !important; }
177
+ }
178
+
179
+ @media (min-width: 1024px) {
180
+ .ivds-lg-flex--row { flex-direction: row !important; }
181
+ .ivds-lg-flex--column { flex-direction: column !important; }
182
+ .ivds-lg-flex--row-reverse { flex-direction: row-reverse !important; }
183
+ .ivds-lg-flex--column-reverse { flex-direction: column-reverse !important; }
184
+
185
+ .ivds-lg-flex--wrap { flex-wrap: wrap !important; }
186
+ .ivds-lg-flex--nowrap { flex-wrap: nowrap !important; }
187
+
188
+ .ivds-lg-flex--justify-start { justify-content: flex-start !important; }
189
+ .ivds-lg-flex--justify-center { justify-content: center !important; }
190
+ .ivds-lg-flex--justify-end { justify-content: flex-end !important; }
191
+ .ivds-lg-flex--justify-between { justify-content: space-between !important; }
192
+ .ivds-lg-flex--justify-around { justify-content: space-around !important; }
193
+ .ivds-lg-flex--justify-evenly { justify-content: space-evenly !important; }
194
+
195
+ .ivds-lg-flex--items-start { align-items: flex-start !important; }
196
+ .ivds-lg-flex--items-center { align-items: center !important; }
197
+ .ivds-lg-flex--items-end { align-items: flex-end !important; }
198
+ .ivds-lg-flex--items-stretch { align-items: stretch !important; }
199
+ .ivds-lg-flex--items-baseline { align-items: baseline !important; }
200
+ }
@@ -0,0 +1,211 @@
1
+ // CSS Grid utility classes
2
+ // Provides comprehensive grid system utilities with responsive support
3
+
4
+ @use '../variables/variables' as vars;
5
+
6
+ .ivds-grid {
7
+ display: grid !important;
8
+ gap: var(--spacing-4, 1rem);
9
+
10
+ // Column variations
11
+ &--cols-1 { grid-template-columns: repeat(1, 1fr) !important; }
12
+ &--cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
13
+ &--cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
14
+ &--cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
15
+ &--cols-5 { grid-template-columns: repeat(5, 1fr) !important; }
16
+ &--cols-6 { grid-template-columns: repeat(6, 1fr) !important; }
17
+ &--cols-7 { grid-template-columns: repeat(7, 1fr) !important; }
18
+ &--cols-8 { grid-template-columns: repeat(8, 1fr) !important; }
19
+ &--cols-9 { grid-template-columns: repeat(9, 1fr) !important; }
20
+ &--cols-10 { grid-template-columns: repeat(10, 1fr) !important; }
21
+ &--cols-11 { grid-template-columns: repeat(11, 1fr) !important; }
22
+ &--cols-12 { grid-template-columns: repeat(12, 1fr) !important; }
23
+ &--cols-none { grid-template-columns: none !important; }
24
+
25
+ // Row variations
26
+ &--rows-1 { grid-template-rows: repeat(1, 1fr) !important; }
27
+ &--rows-2 { grid-template-rows: repeat(2, 1fr) !important; }
28
+ &--rows-3 { grid-template-rows: repeat(3, 1fr) !important; }
29
+ &--rows-4 { grid-template-rows: repeat(4, 1fr) !important; }
30
+ &--rows-5 { grid-template-rows: repeat(5, 1fr) !important; }
31
+ &--rows-6 { grid-template-rows: repeat(6, 1fr) !important; }
32
+ &--rows-none { grid-template-rows: none !important; }
33
+
34
+ // Gap variations
35
+ &--gap-0 { gap: 0 !important; }
36
+ &--gap-1 { gap: var(--spacing-1, 0.25rem) !important; }
37
+ &--gap-2 { gap: var(--spacing-2, 0.5rem) !important; }
38
+ &--gap-3 { gap: var(--spacing-3, 0.75rem) !important; }
39
+ &--gap-4 { gap: var(--spacing-4, 1rem) !important; }
40
+ &--gap-5 { gap: var(--spacing-5, 1.25rem) !important; }
41
+ &--gap-6 { gap: var(--spacing-6, 1.5rem) !important; }
42
+ &--gap-8 { gap: var(--spacing-8, 2rem) !important; }
43
+ &--gap-10 { gap: var(--spacing-10, 2.5rem) !important; }
44
+ &--gap-12 { gap: var(--spacing-12, 3rem) !important; }
45
+ &--gap-16 { gap: var(--spacing-16, 4rem) !important; }
46
+
47
+ // Column gap variations
48
+ &--gap-x-0 { column-gap: 0 !important; }
49
+ &--gap-x-1 { column-gap: var(--spacing-1, 0.25rem) !important; }
50
+ &--gap-x-2 { column-gap: var(--spacing-2, 0.5rem) !important; }
51
+ &--gap-x-3 { column-gap: var(--spacing-3, 0.75rem) !important; }
52
+ &--gap-x-4 { column-gap: var(--spacing-4, 1rem) !important; }
53
+ &--gap-x-6 { column-gap: var(--spacing-6, 1.5rem) !important; }
54
+ &--gap-x-8 { column-gap: var(--spacing-8, 2rem) !important; }
55
+
56
+ // Row gap variations
57
+ &--gap-y-0 { row-gap: 0 !important; }
58
+ &--gap-y-1 { row-gap: var(--spacing-1, 0.25rem) !important; }
59
+ &--gap-y-2 { row-gap: var(--spacing-2, 0.5rem) !important; }
60
+ &--gap-y-3 { row-gap: var(--spacing-3, 0.75rem) !important; }
61
+ &--gap-y-4 { row-gap: var(--spacing-4, 1rem) !important; }
62
+ &--gap-y-6 { row-gap: var(--spacing-6, 1.5rem) !important; }
63
+ &--gap-y-8 { row-gap: var(--spacing-8, 2rem) !important; }
64
+ }
65
+
66
+ // Grid item utilities
67
+ .ivds-grid-item {
68
+ // Column span
69
+ &--col-span-1 { grid-column: span 1 / span 1 !important; }
70
+ &--col-span-2 { grid-column: span 2 / span 2 !important; }
71
+ &--col-span-3 { grid-column: span 3 / span 3 !important; }
72
+ &--col-span-4 { grid-column: span 4 / span 4 !important; }
73
+ &--col-span-5 { grid-column: span 5 / span 5 !important; }
74
+ &--col-span-6 { grid-column: span 6 / span 6 !important; }
75
+ &--col-span-7 { grid-column: span 7 / span 7 !important; }
76
+ &--col-span-8 { grid-column: span 8 / span 8 !important; }
77
+ &--col-span-9 { grid-column: span 9 / span 9 !important; }
78
+ &--col-span-10 { grid-column: span 10 / span 10 !important; }
79
+ &--col-span-11 { grid-column: span 11 / span 11 !important; }
80
+ &--col-span-12 { grid-column: span 12 / span 12 !important; }
81
+ &--col-span-full { grid-column: 1 / -1 !important; }
82
+
83
+ // Column start
84
+ &--col-start-1 { grid-column-start: 1 !important; }
85
+ &--col-start-2 { grid-column-start: 2 !important; }
86
+ &--col-start-3 { grid-column-start: 3 !important; }
87
+ &--col-start-4 { grid-column-start: 4 !important; }
88
+ &--col-start-5 { grid-column-start: 5 !important; }
89
+ &--col-start-6 { grid-column-start: 6 !important; }
90
+ &--col-start-7 { grid-column-start: 7 !important; }
91
+ &--col-start-8 { grid-column-start: 8 !important; }
92
+ &--col-start-9 { grid-column-start: 9 !important; }
93
+ &--col-start-10 { grid-column-start: 10 !important; }
94
+ &--col-start-11 { grid-column-start: 11 !important; }
95
+ &--col-start-12 { grid-column-start: 12 !important; }
96
+ &--col-start-13 { grid-column-start: 13 !important; }
97
+ &--col-start-auto { grid-column-start: auto !important; }
98
+
99
+ // Column end
100
+ &--col-end-1 { grid-column-end: 1 !important; }
101
+ &--col-end-2 { grid-column-end: 2 !important; }
102
+ &--col-end-3 { grid-column-end: 3 !important; }
103
+ &--col-end-4 { grid-column-end: 4 !important; }
104
+ &--col-end-5 { grid-column-end: 5 !important; }
105
+ &--col-end-6 { grid-column-end: 6 !important; }
106
+ &--col-end-7 { grid-column-end: 7 !important; }
107
+ &--col-end-8 { grid-column-end: 8 !important; }
108
+ &--col-end-9 { grid-column-end: 9 !important; }
109
+ &--col-end-10 { grid-column-end: 10 !important; }
110
+ &--col-end-11 { grid-column-end: 11 !important; }
111
+ &--col-end-12 { grid-column-end: 12 !important; }
112
+ &--col-end-13 { grid-column-end: 13 !important; }
113
+ &--col-end-auto { grid-column-end: auto !important; }
114
+
115
+ // Row span
116
+ &--row-span-1 { grid-row: span 1 / span 1 !important; }
117
+ &--row-span-2 { grid-row: span 2 / span 2 !important; }
118
+ &--row-span-3 { grid-row: span 3 / span 3 !important; }
119
+ &--row-span-4 { grid-row: span 4 / span 4 !important; }
120
+ &--row-span-5 { grid-row: span 5 / span 5 !important; }
121
+ &--row-span-6 { grid-row: span 6 / span 6 !important; }
122
+ &--row-span-full { grid-row: 1 / -1 !important; }
123
+
124
+ // Row start
125
+ &--row-start-1 { grid-row-start: 1 !important; }
126
+ &--row-start-2 { grid-row-start: 2 !important; }
127
+ &--row-start-3 { grid-row-start: 3 !important; }
128
+ &--row-start-4 { grid-row-start: 4 !important; }
129
+ &--row-start-5 { grid-row-start: 5 !important; }
130
+ &--row-start-6 { grid-row-start: 6 !important; }
131
+ &--row-start-7 { grid-row-start: 7 !important; }
132
+ &--row-start-auto { grid-row-start: auto !important; }
133
+
134
+ // Row end
135
+ &--row-end-1 { grid-row-end: 1 !important; }
136
+ &--row-end-2 { grid-row-end: 2 !important; }
137
+ &--row-end-3 { grid-row-end: 3 !important; }
138
+ &--row-end-4 { grid-row-end: 4 !important; }
139
+ &--row-end-5 { grid-row-end: 5 !important; }
140
+ &--row-end-6 { grid-row-end: 6 !important; }
141
+ &--row-end-7 { grid-row-end: 7 !important; }
142
+ &--row-end-auto { grid-row-end: auto !important; }
143
+ }
144
+
145
+ // Grid auto flow utilities
146
+ .ivds-grid-flow-row { grid-auto-flow: row !important; }
147
+ .ivds-grid-flow-col { grid-auto-flow: column !important; }
148
+ .ivds-grid-flow-dense { grid-auto-flow: dense !important; }
149
+ .ivds-grid-flow-row-dense { grid-auto-flow: row dense !important; }
150
+ .ivds-grid-flow-col-dense { grid-auto-flow: column dense !important; }
151
+
152
+ // Grid auto columns utilities
153
+ .ivds-auto-cols-auto { grid-auto-columns: auto !important; }
154
+ .ivds-auto-cols-min { grid-auto-columns: min-content !important; }
155
+ .ivds-auto-cols-max { grid-auto-columns: max-content !important; }
156
+ .ivds-auto-cols-fr { grid-auto-columns: minmax(0, 1fr) !important; }
157
+
158
+ // Grid auto rows utilities
159
+ .ivds-auto-rows-auto { grid-auto-rows: auto !important; }
160
+ .ivds-auto-rows-min { grid-auto-rows: min-content !important; }
161
+ .ivds-auto-rows-max { grid-auto-rows: max-content !important; }
162
+ .ivds-auto-rows-fr { grid-auto-rows: minmax(0, 1fr) !important; }
163
+
164
+ // Responsive grid utilities
165
+ @media (min-width: 640px) {
166
+ .ivds-sm-grid--cols-1 { grid-template-columns: repeat(1, 1fr) !important; }
167
+ .ivds-sm-grid--cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
168
+ .ivds-sm-grid--cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
169
+ .ivds-sm-grid--cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
170
+ .ivds-sm-grid--cols-6 { grid-template-columns: repeat(6, 1fr) !important; }
171
+ .ivds-sm-grid--cols-12 { grid-template-columns: repeat(12, 1fr) !important; }
172
+
173
+ .ivds-sm-grid-item--col-span-1 { grid-column: span 1 / span 1 !important; }
174
+ .ivds-sm-grid-item--col-span-2 { grid-column: span 2 / span 2 !important; }
175
+ .ivds-sm-grid-item--col-span-3 { grid-column: span 3 / span 3 !important; }
176
+ .ivds-sm-grid-item--col-span-4 { grid-column: span 4 / span 4 !important; }
177
+ .ivds-sm-grid-item--col-span-6 { grid-column: span 6 / span 6 !important; }
178
+ .ivds-sm-grid-item--col-span-12 { grid-column: span 12 / span 12 !important; }
179
+ }
180
+
181
+ @media (min-width: 768px) {
182
+ .ivds-md-grid--cols-1 { grid-template-columns: repeat(1, 1fr) !important; }
183
+ .ivds-md-grid--cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
184
+ .ivds-md-grid--cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
185
+ .ivds-md-grid--cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
186
+ .ivds-md-grid--cols-6 { grid-template-columns: repeat(6, 1fr) !important; }
187
+ .ivds-md-grid--cols-12 { grid-template-columns: repeat(12, 1fr) !important; }
188
+
189
+ .ivds-md-grid-item--col-span-1 { grid-column: span 1 / span 1 !important; }
190
+ .ivds-md-grid-item--col-span-2 { grid-column: span 2 / span 2 !important; }
191
+ .ivds-md-grid-item--col-span-3 { grid-column: span 3 / span 3 !important; }
192
+ .ivds-md-grid-item--col-span-4 { grid-column: span 4 / span 4 !important; }
193
+ .ivds-md-grid-item--col-span-6 { grid-column: span 6 / span 6 !important; }
194
+ .ivds-md-grid-item--col-span-12 { grid-column: span 12 / span 12 !important; }
195
+ }
196
+
197
+ @media (min-width: 1024px) {
198
+ .ivds-lg-grid--cols-1 { grid-template-columns: repeat(1, 1fr) !important; }
199
+ .ivds-lg-grid--cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
200
+ .ivds-lg-grid--cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
201
+ .ivds-lg-grid--cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
202
+ .ivds-lg-grid--cols-6 { grid-template-columns: repeat(6, 1fr) !important; }
203
+ .ivds-lg-grid--cols-12 { grid-template-columns: repeat(12, 1fr) !important; }
204
+
205
+ .ivds-lg-grid-item--col-span-1 { grid-column: span 1 / span 1 !important; }
206
+ .ivds-lg-grid-item--col-span-2 { grid-column: span 2 / span 2 !important; }
207
+ .ivds-lg-grid-item--col-span-3 { grid-column: span 3 / span 3 !important; }
208
+ .ivds-lg-grid-item--col-span-4 { grid-column: span 4 / span 4 !important; }
209
+ .ivds-lg-grid-item--col-span-6 { grid-column: span 6 / span 6 !important; }
210
+ .ivds-lg-grid-item--col-span-12 { grid-column: span 12 / span 12 !important; }
211
+ }
@@ -0,0 +1,253 @@
1
+ // Layout utility classes
2
+ // Provides comprehensive display, position, and layout utilities
3
+
4
+ @use '../variables/variables' as vars;
5
+
6
+ // Display utilities
7
+ .ivds-block { display: block !important; }
8
+ .ivds-inline { display: inline !important; }
9
+ .ivds-inline-block { display: inline-block !important; }
10
+ .ivds-flex { display: flex !important; }
11
+ .ivds-inline-flex { display: inline-flex !important; }
12
+ .ivds-grid { display: grid !important; }
13
+ .ivds-inline-grid { display: inline-grid !important; }
14
+ .ivds-table { display: table !important; }
15
+ .ivds-table-cell { display: table-cell !important; }
16
+ .ivds-table-row { display: table-row !important; }
17
+ .ivds-hidden { display: none !important; }
18
+
19
+ // Position utilities
20
+ .ivds-static { position: static !important; }
21
+ .ivds-relative { position: relative !important; }
22
+ .ivds-absolute { position: absolute !important; }
23
+ .ivds-fixed { position: fixed !important; }
24
+ .ivds-sticky { position: sticky !important; }
25
+
26
+ // Top, right, bottom, left utilities
27
+ .ivds-inset-0 { top: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important; }
28
+ .ivds-inset-auto { top: auto !important; right: auto !important; bottom: auto !important; left: auto !important; }
29
+
30
+ .ivds-inset-x-0 { left: 0 !important; right: 0 !important; }
31
+ .ivds-inset-x-auto { left: auto !important; right: auto !important; }
32
+ .ivds-inset-y-0 { top: 0 !important; bottom: 0 !important; }
33
+ .ivds-inset-y-auto { top: auto !important; bottom: auto !important; }
34
+
35
+ .ivds-top-0 { top: 0 !important; }
36
+ .ivds-top-auto { top: auto !important; }
37
+ .ivds-right-0 { right: 0 !important; }
38
+ .ivds-right-auto { right: auto !important; }
39
+ .ivds-bottom-0 { bottom: 0 !important; }
40
+ .ivds-bottom-auto { bottom: auto !important; }
41
+ .ivds-left-0 { left: 0 !important; }
42
+ .ivds-left-auto { left: auto !important; }
43
+
44
+ // Overflow utilities
45
+ .ivds-overflow-auto { overflow: auto !important; }
46
+ .ivds-overflow-hidden { overflow: hidden !important; }
47
+ .ivds-overflow-visible { overflow: visible !important; }
48
+ .ivds-overflow-scroll { overflow: scroll !important; }
49
+
50
+ .ivds-overflow-x-auto { overflow-x: auto !important; }
51
+ .ivds-overflow-x-hidden { overflow-x: hidden !important; }
52
+ .ivds-overflow-x-visible { overflow-x: visible !important; }
53
+ .ivds-overflow-x-scroll { overflow-x: scroll !important; }
54
+
55
+ .ivds-overflow-y-auto { overflow-y: auto !important; }
56
+ .ivds-overflow-y-hidden { overflow-y: hidden !important; }
57
+ .ivds-overflow-y-visible { overflow-y: visible !important; }
58
+ .ivds-overflow-y-scroll { overflow-y: scroll !important; }
59
+
60
+ // Visibility utilities
61
+ .ivds-visible { visibility: visible !important; }
62
+ .ivds-invisible { visibility: hidden !important; }
63
+
64
+ // Z-index utilities
65
+ .ivds-z-0 { z-index: 0 !important; }
66
+ .ivds-z-10 { z-index: 10 !important; }
67
+ .ivds-z-20 { z-index: 20 !important; }
68
+ .ivds-z-30 { z-index: 30 !important; }
69
+ .ivds-z-40 { z-index: 40 !important; }
70
+ .ivds-z-50 { z-index: 50 !important; }
71
+ .ivds-z-auto { z-index: auto !important; }
72
+
73
+ // Float utilities
74
+ .ivds-float-right { float: right !important; }
75
+ .ivds-float-left { float: left !important; }
76
+ .ivds-float-none { float: none !important; }
77
+
78
+ // Clear utilities
79
+ .ivds-clear-left { clear: left !important; }
80
+ .ivds-clear-right { clear: right !important; }
81
+ .ivds-clear-both { clear: both !important; }
82
+ .ivds-clear-none { clear: none !important; }
83
+
84
+ // Object fit utilities
85
+ .ivds-object-contain { object-fit: contain !important; }
86
+ .ivds-object-cover { object-fit: cover !important; }
87
+ .ivds-object-fill { object-fit: fill !important; }
88
+ .ivds-object-none { object-fit: none !important; }
89
+ .ivds-object-scale-down { object-fit: scale-down !important; }
90
+
91
+ // Object position utilities
92
+ .ivds-object-bottom { object-position: bottom !important; }
93
+ .ivds-object-center { object-position: center !important; }
94
+ .ivds-object-left { object-position: left !important; }
95
+ .ivds-object-left-bottom { object-position: left bottom !important; }
96
+ .ivds-object-left-top { object-position: left top !important; }
97
+ .ivds-object-right { object-position: right !important; }
98
+ .ivds-object-right-bottom { object-position: right bottom !important; }
99
+ .ivds-object-right-top { object-position: right top !important; }
100
+ .ivds-object-top { object-position: top !important; }
101
+
102
+ // Container utilities
103
+ .ivds-container {
104
+ width: 100% !important;
105
+ margin-left: auto !important;
106
+ margin-right: auto !important;
107
+ padding-left: var(--spacing-4, 1rem) !important;
108
+ padding-right: var(--spacing-4, 1rem) !important;
109
+
110
+ // Size variations
111
+ &--xs { max-width: 475px !important; }
112
+ &--sm { max-width: 640px !important; }
113
+ &--md { max-width: 768px !important; }
114
+ &--lg { max-width: 1024px !important; }
115
+ &--xl { max-width: 1280px !important; }
116
+ &--2xl { max-width: 1536px !important; }
117
+
118
+ // Padding variations
119
+ &--no-padding {
120
+ padding-left: 0 !important;
121
+ padding-right: 0 !important;
122
+ }
123
+
124
+ &--padding-sm {
125
+ padding-left: var(--spacing-2, 0.5rem) !important;
126
+ padding-right: var(--spacing-2, 0.5rem) !important;
127
+ }
128
+
129
+ &--padding-lg {
130
+ padding-left: var(--spacing-8, 2rem) !important;
131
+ padding-right: var(--spacing-8, 2rem) !important;
132
+ }
133
+ }
134
+
135
+ // Width utilities
136
+ .ivds-w-0 { width: 0 !important; }
137
+ .ivds-w-auto { width: auto !important; }
138
+ .ivds-w-full { width: 100% !important; }
139
+ .ivds-w-screen { width: 100vw !important; }
140
+ .ivds-w-min { width: min-content !important; }
141
+ .ivds-w-max { width: max-content !important; }
142
+ .ivds-w-fit { width: fit-content !important; }
143
+
144
+ // Fractional widths
145
+ .ivds-w-1-2 { width: 50% !important; }
146
+ .ivds-w-1-3 { width: 33.3333% !important; }
147
+ .ivds-w-2-3 { width: 66.6667% !important; }
148
+ .ivds-w-1-4 { width: 25% !important; }
149
+ .ivds-w-2-4 { width: 50% !important; }
150
+ .ivds-w-3-4 { width: 75% !important; }
151
+ .ivds-w-1-5 { width: 20% !important; }
152
+ .ivds-w-2-5 { width: 40% !important; }
153
+ .ivds-w-3-5 { width: 60% !important; }
154
+ .ivds-w-4-5 { width: 80% !important; }
155
+ .ivds-w-1-6 { width: 16.6667% !important; }
156
+ .ivds-w-2-6 { width: 33.3333% !important; }
157
+ .ivds-w-3-6 { width: 50% !important; }
158
+ .ivds-w-4-6 { width: 66.6667% !important; }
159
+ .ivds-w-5-6 { width: 83.3333% !important; }
160
+
161
+ // Height utilities
162
+ .ivds-h-0 { height: 0 !important; }
163
+ .ivds-h-auto { height: auto !important; }
164
+ .ivds-h-full { height: 100% !important; }
165
+ .ivds-h-screen { height: 100vh !important; }
166
+ .ivds-h-min { height: min-content !important; }
167
+ .ivds-h-max { height: max-content !important; }
168
+ .ivds-h-fit { height: fit-content !important; }
169
+
170
+ // Fractional heights
171
+ .ivds-h-1-2 { height: 50% !important; }
172
+ .ivds-h-1-3 { height: 33.3333% !important; }
173
+ .ivds-h-2-3 { height: 66.6667% !important; }
174
+ .ivds-h-1-4 { height: 25% !important; }
175
+ .ivds-h-2-4 { height: 50% !important; }
176
+ .ivds-h-3-4 { height: 75% !important; }
177
+ .ivds-h-1-5 { height: 20% !important; }
178
+ .ivds-h-2-5 { height: 40% !important; }
179
+ .ivds-h-3-5 { height: 60% !important; }
180
+ .ivds-h-4-5 { height: 80% !important; }
181
+ .ivds-h-1-6 { height: 16.6667% !important; }
182
+ .ivds-h-5-6 { height: 83.3333% !important; }
183
+
184
+ // Min/Max width utilities
185
+ .ivds-min-w-0 { min-width: 0 !important; }
186
+ .ivds-min-w-full { min-width: 100% !important; }
187
+ .ivds-min-w-min { min-width: min-content !important; }
188
+ .ivds-min-w-max { min-width: max-content !important; }
189
+ .ivds-min-w-fit { min-width: fit-content !important; }
190
+
191
+ .ivds-max-w-0 { max-width: 0 !important; }
192
+ .ivds-max-w-none { max-width: none !important; }
193
+ .ivds-max-w-xs { max-width: 20rem !important; }
194
+ .ivds-max-w-sm { max-width: 24rem !important; }
195
+ .ivds-max-w-md { max-width: 28rem !important; }
196
+ .ivds-max-w-lg { max-width: 32rem !important; }
197
+ .ivds-max-w-xl { max-width: 36rem !important; }
198
+ .ivds-max-w-2xl { max-width: 42rem !important; }
199
+ .ivds-max-w-3xl { max-width: 48rem !important; }
200
+ .ivds-max-w-4xl { max-width: 56rem !important; }
201
+ .ivds-max-w-5xl { max-width: 64rem !important; }
202
+ .ivds-max-w-6xl { max-width: 72rem !important; }
203
+ .ivds-max-w-7xl { max-width: 80rem !important; }
204
+ .ivds-max-w-full { max-width: 100% !important; }
205
+ .ivds-max-w-min { max-width: min-content !important; }
206
+ .ivds-max-w-max { max-width: max-content !important; }
207
+ .ivds-max-w-fit { max-width: fit-content !important; }
208
+
209
+ // Min/Max height utilities
210
+ .ivds-min-h-0 { min-height: 0 !important; }
211
+ .ivds-min-h-full { min-height: 100% !important; }
212
+ .ivds-min-h-screen { min-height: 100vh !important; }
213
+ .ivds-min-h-min { min-height: min-content !important; }
214
+ .ivds-min-h-max { min-height: max-content !important; }
215
+ .ivds-min-h-fit { min-height: fit-content !important; }
216
+
217
+ .ivds-max-h-0 { max-height: 0 !important; }
218
+ .ivds-max-h-full { max-height: 100% !important; }
219
+ .ivds-max-h-screen { max-height: 100vh !important; }
220
+ .ivds-max-h-min { max-height: min-content !important; }
221
+ .ivds-max-h-max { max-height: max-content !important; }
222
+ .ivds-max-h-fit { max-height: fit-content !important; }
223
+
224
+ // Responsive display utilities
225
+ @media (min-width: 640px) {
226
+ .ivds-sm-block { display: block !important; }
227
+ .ivds-sm-inline { display: inline !important; }
228
+ .ivds-sm-inline-block { display: inline-block !important; }
229
+ .ivds-sm-flex { display: flex !important; }
230
+ .ivds-sm-inline-flex { display: inline-flex !important; }
231
+ .ivds-sm-grid { display: grid !important; }
232
+ .ivds-sm-hidden { display: none !important; }
233
+ }
234
+
235
+ @media (min-width: 768px) {
236
+ .ivds-md-block { display: block !important; }
237
+ .ivds-md-inline { display: inline !important; }
238
+ .ivds-md-inline-block { display: inline-block !important; }
239
+ .ivds-md-flex { display: flex !important; }
240
+ .ivds-md-inline-flex { display: inline-flex !important; }
241
+ .ivds-md-grid { display: grid !important; }
242
+ .ivds-md-hidden { display: none !important; }
243
+ }
244
+
245
+ @media (min-width: 1024px) {
246
+ .ivds-lg-block { display: block !important; }
247
+ .ivds-lg-inline { display: inline !important; }
248
+ .ivds-lg-inline-block { display: inline-block !important; }
249
+ .ivds-lg-flex { display: flex !important; }
250
+ .ivds-lg-inline-flex { display: inline-flex !important; }
251
+ .ivds-lg-grid { display: grid !important; }
252
+ .ivds-lg-hidden { display: none !important; }
253
+ }