@actabldesign/bellhop-styles 0.0.4 → 0.0.12

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 (60) hide show
  1. package/README.md +105 -70
  2. package/dist/index.css +33 -0
  3. package/dist/utilities.css +5730 -0
  4. package/llms.txt +2765 -119
  5. package/package.json +6 -1
  6. package/rollup.config.js +39 -24
  7. package/src/bh-tokens/_primitives.scss +296 -0
  8. package/src/bh-tokens/_semantic.scss +158 -0
  9. package/src/bh-tokens/components/_avatar.tokens.scss +64 -0
  10. package/src/bh-tokens/components/_badge-dot.tokens.scss +33 -0
  11. package/src/bh-tokens/components/_badge.tokens.scss +61 -0
  12. package/src/bh-tokens/components/_button-icon.tokens.scss +65 -0
  13. package/src/bh-tokens/components/_button.tokens.scss +185 -0
  14. package/src/bh-tokens/components/_checkbox.tokens.scss +67 -0
  15. package/src/bh-tokens/components/_dropdown.tokens.scss +103 -0
  16. package/src/bh-tokens/components/_featured-icon.tokens.scss +57 -0
  17. package/src/bh-tokens/components/_input-number.tokens.scss +50 -0
  18. package/src/bh-tokens/components/_input.tokens.scss +86 -0
  19. package/src/bh-tokens/components/_label.tokens.scss +37 -0
  20. package/src/bh-tokens/components/_modal.tokens.scss +42 -0
  21. package/src/bh-tokens/components/_pagination.tokens.scss +104 -0
  22. package/src/bh-tokens/components/_password.tokens.scss +63 -0
  23. package/src/bh-tokens/components/_progress-bar.tokens.scss +34 -0
  24. package/src/bh-tokens/components/_progress-spinner.tokens.scss +51 -0
  25. package/src/bh-tokens/components/_radiobutton.tokens.scss +90 -0
  26. package/src/bh-tokens/components/_skeleton.tokens.scss +22 -0
  27. package/src/bh-tokens/components/_textarea.tokens.scss +76 -0
  28. package/src/bh-tokens/components/_toggle.tokens.scss +74 -0
  29. package/src/bh-tokens/components/avatar.scss +288 -0
  30. package/src/bh-tokens/components/badge-dot.scss +177 -0
  31. package/src/bh-tokens/components/badge.scss +497 -0
  32. package/src/bh-tokens/components/button-icon.scss +227 -0
  33. package/src/bh-tokens/components/button.scss +640 -0
  34. package/src/bh-tokens/components/checkbox.scss +254 -0
  35. package/src/bh-tokens/components/dropdown.scss +231 -0
  36. package/src/bh-tokens/components/featured-icon.scss +219 -0
  37. package/src/bh-tokens/components/input-number.scss +147 -0
  38. package/src/bh-tokens/components/input.scss +271 -0
  39. package/src/bh-tokens/components/label.scss +176 -0
  40. package/src/bh-tokens/components/modal.scss +103 -0
  41. package/src/bh-tokens/components/pagination.scss +324 -0
  42. package/src/bh-tokens/components/password.scss +193 -0
  43. package/src/bh-tokens/components/progress-bar.scss +124 -0
  44. package/src/bh-tokens/components/progress-spinner.scss +130 -0
  45. package/src/bh-tokens/components/radiobutton.scss +193 -0
  46. package/src/bh-tokens/components/skeleton.scss +50 -0
  47. package/src/bh-tokens/components/textarea.scss +228 -0
  48. package/src/bh-tokens/components/toggle.scss +320 -0
  49. package/src/mixins/_responsive.scss +167 -0
  50. package/src/tokens/bellhop-typography.css +34 -0
  51. package/src/utilities/_breakpoints.scss +19 -0
  52. package/src/utilities/_flex.scss +228 -0
  53. package/src/utilities/_grid.scss +189 -0
  54. package/src/utilities/_index.scss +32 -0
  55. package/src/utilities/_scrollable.scss +239 -0
  56. package/src/utilities/_sizing.scss +229 -0
  57. package/src/utilities/_spacing.scss +187 -0
  58. package/src/utilities/_truncation.scss +126 -0
  59. package/src/utilities/_visibility.scss +117 -0
  60. package/src/utilities.scss +32 -0
@@ -0,0 +1,229 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES - SIZING
3
+ Width, height, and size constraint utilities
4
+
5
+ Dependencies:
6
+ - _semantic.scss (tokens)
7
+ - _responsive.scss (breakpoint mixins)
8
+
9
+ Generated classes:
10
+ - .bh-w_{size} (width)
11
+ - .bh-max-w_{size} (max-width)
12
+ - .bh-min-w_{size} (min-width)
13
+ - .bh-h_{size} (height)
14
+ - .bh-max-h_{size} (max-height)
15
+ - .bh-min-h_{size} (min-height)
16
+ ========================================================================== */
17
+
18
+ @use '../mixins/responsive' as *;
19
+
20
+ /* --- WIDTH --- */
21
+
22
+ .bh-w_auto {
23
+ width: auto;
24
+ }
25
+
26
+ .bh-w_full {
27
+ width: 100%;
28
+ }
29
+
30
+ .bh-w_screen {
31
+ width: 100vw;
32
+ }
33
+
34
+ .bh-w_fit {
35
+ width: fit-content;
36
+ }
37
+
38
+ .bh-w_min {
39
+ width: min-content;
40
+ }
41
+
42
+ .bh-w_max {
43
+ width: max-content;
44
+ }
45
+
46
+ /* --- MAX WIDTH (Container Sizes) --- */
47
+
48
+ .bh-max-w_xs {
49
+ max-width: 320px;
50
+ }
51
+
52
+ .bh-max-w_sm {
53
+ max-width: 640px;
54
+ }
55
+
56
+ .bh-max-w_md {
57
+ max-width: 768px;
58
+ }
59
+
60
+ .bh-max-w_lg {
61
+ max-width: 1120px;
62
+ }
63
+
64
+ .bh-max-w_xl {
65
+ max-width: 1440px;
66
+ }
67
+
68
+ .bh-max-w_wide {
69
+ max-width: 1680px;
70
+ }
71
+
72
+ .bh-max-w_full {
73
+ max-width: 100%;
74
+ }
75
+
76
+ .bh-max-w_none {
77
+ max-width: none;
78
+ }
79
+
80
+ .bh-max-w_fit {
81
+ max-width: fit-content;
82
+ }
83
+
84
+ .bh-max-w_min {
85
+ max-width: min-content;
86
+ }
87
+
88
+ .bh-max-w_max {
89
+ max-width: max-content;
90
+ }
91
+
92
+ /* --- MIN WIDTH --- */
93
+
94
+ .bh-min-w_0 {
95
+ min-width: 0;
96
+ }
97
+
98
+ .bh-min-w_full {
99
+ min-width: 100%;
100
+ }
101
+
102
+ .bh-min-w_fit {
103
+ min-width: fit-content;
104
+ }
105
+
106
+ .bh-min-w_min {
107
+ min-width: min-content;
108
+ }
109
+
110
+ .bh-min-w_max {
111
+ min-width: max-content;
112
+ }
113
+
114
+ /* --- HEIGHT --- */
115
+
116
+ .bh-h_auto {
117
+ height: auto;
118
+ }
119
+
120
+ .bh-h_full {
121
+ height: 100%;
122
+ }
123
+
124
+ .bh-h_screen {
125
+ height: 100vh;
126
+ }
127
+
128
+ .bh-h_fit {
129
+ height: fit-content;
130
+ }
131
+
132
+ .bh-h_min {
133
+ height: min-content;
134
+ }
135
+
136
+ .bh-h_max {
137
+ height: max-content;
138
+ }
139
+
140
+ /* --- MAX HEIGHT --- */
141
+
142
+ .bh-max-h_full {
143
+ max-height: 100%;
144
+ }
145
+
146
+ .bh-max-h_screen {
147
+ max-height: 100vh;
148
+ }
149
+
150
+ .bh-max-h_none {
151
+ max-height: none;
152
+ }
153
+
154
+ .bh-max-h_fit {
155
+ max-height: fit-content;
156
+ }
157
+
158
+ .bh-max-h_min {
159
+ max-height: min-content;
160
+ }
161
+
162
+ .bh-max-h_max {
163
+ max-height: max-content;
164
+ }
165
+
166
+ /* --- MIN HEIGHT --- */
167
+
168
+ .bh-min-h_0 {
169
+ min-height: 0;
170
+ }
171
+
172
+ .bh-min-h_full {
173
+ min-height: 100%;
174
+ }
175
+
176
+ .bh-min-h_screen {
177
+ min-height: 100vh;
178
+ }
179
+
180
+ .bh-min-h_fit {
181
+ min-height: fit-content;
182
+ }
183
+
184
+ .bh-min-h_min {
185
+ min-height: min-content;
186
+ }
187
+
188
+ .bh-min-h_max {
189
+ min-height: max-content;
190
+ }
191
+
192
+ /* --- SIZE (Both Width and Height) --- */
193
+
194
+ .bh-size_auto {
195
+ width: auto;
196
+ height: auto;
197
+ }
198
+
199
+ .bh-size_full {
200
+ width: 100%;
201
+ height: 100%;
202
+ }
203
+
204
+ .bh-size_fit {
205
+ width: fit-content;
206
+ height: fit-content;
207
+ }
208
+
209
+ /* --- ASPECT RATIO --- */
210
+
211
+ .bh-aspect_square {
212
+ aspect-ratio: 1 / 1;
213
+ }
214
+
215
+ .bh-aspect_video {
216
+ aspect-ratio: 16 / 9;
217
+ }
218
+
219
+ .bh-aspect_portrait {
220
+ aspect-ratio: 3 / 4;
221
+ }
222
+
223
+ .bh-aspect_landscape {
224
+ aspect-ratio: 4 / 3;
225
+ }
226
+
227
+ .bh-aspect_auto {
228
+ aspect-ratio: auto;
229
+ }
@@ -0,0 +1,187 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES - SPACING
3
+ Margin, padding, and gap utilities with responsive variants
4
+
5
+ Dependencies:
6
+ - _semantic.scss (tokens)
7
+ - _responsive.scss (breakpoint mixins)
8
+
9
+ Generated classes:
10
+ - .bh-m_{size}, .bh-m-{side}_{size}, .bh-m-x_{size}, .bh-m-y_{size}
11
+ - .bh-p_{size}, .bh-p-{side}_{size}, .bh-p-x_{size}, .bh-p-y_{size}
12
+ - .bh-gap_{size}, .bh-gap-x_{size}, .bh-gap-y_{size}
13
+ - Responsive variants: .bh-{utility}@tablet, @desktop, @wide
14
+ ========================================================================== */
15
+
16
+ @use '../mixins/responsive' as *;
17
+
18
+ // Spacing scale map (references CSS custom properties from _semantic.scss)
19
+ $bh-spacing-scale: (
20
+ 'none': var(--bh-spacing-none),
21
+ 'xxs': var(--bh-spacing-xxs),
22
+ 'xs': var(--bh-spacing-xs),
23
+ 'sm': var(--bh-spacing-sm),
24
+ 'md': var(--bh-spacing-md),
25
+ 'lg': var(--bh-spacing-lg),
26
+ 'xl': var(--bh-spacing-xl),
27
+ '2xl': var(--bh-spacing-2xl),
28
+ '3xl': var(--bh-spacing-3xl),
29
+ '4xl': var(--bh-spacing-4xl),
30
+ '5xl': var(--bh-spacing-5xl),
31
+ '6xl': var(--bh-spacing-6xl),
32
+ );
33
+
34
+ // Sides for directional utilities
35
+ $bh-spacing-sides: (
36
+ 'top': 'top',
37
+ 'right': 'right',
38
+ 'bottom': 'bottom',
39
+ 'left': 'left',
40
+ );
41
+
42
+ /* --- MARGIN UTILITIES --- */
43
+
44
+ // All sides: .bh-m_{size}
45
+ @each $size-name, $size-value in $bh-spacing-scale {
46
+ @include generate-responsive(
47
+ 'bh-m_#{$size-name}',
48
+ (
49
+ 'margin': $size-value,
50
+ )
51
+ );
52
+ }
53
+
54
+ // Directional: .bh-m-{side}_{size}
55
+ @each $side-name, $side-value in $bh-spacing-sides {
56
+ @each $size-name, $size-value in $bh-spacing-scale {
57
+ @include generate-responsive(
58
+ 'bh-m-#{$side-name}_#{$size-name}',
59
+ (
60
+ 'margin-#{$side-value}': $size-value,
61
+ )
62
+ );
63
+ }
64
+ }
65
+
66
+ // Horizontal: .bh-m-x_{size}
67
+ @each $size-name, $size-value in $bh-spacing-scale {
68
+ @include generate-responsive(
69
+ 'bh-m-x_#{$size-name}',
70
+ (
71
+ 'margin-left': $size-value,
72
+ 'margin-right': $size-value,
73
+ )
74
+ );
75
+ }
76
+
77
+ // Vertical: .bh-m-y_{size}
78
+ @each $size-name, $size-value in $bh-spacing-scale {
79
+ @include generate-responsive(
80
+ 'bh-m-y_#{$size-name}',
81
+ (
82
+ 'margin-top': $size-value,
83
+ 'margin-bottom': $size-value,
84
+ )
85
+ );
86
+ }
87
+
88
+ // Auto margins: .bh-m_auto, .bh-m-x_auto, .bh-m-{side}_auto
89
+ @include generate-responsive(
90
+ 'bh-m_auto',
91
+ (
92
+ 'margin': auto,
93
+ )
94
+ );
95
+ @include generate-responsive(
96
+ 'bh-m-x_auto',
97
+ (
98
+ 'margin-left': auto,
99
+ 'margin-right': auto,
100
+ )
101
+ );
102
+ @each $side-name, $side-value in $bh-spacing-sides {
103
+ @include generate-responsive(
104
+ 'bh-m-#{$side-name}_auto',
105
+ (
106
+ 'margin-#{$side-value}': auto,
107
+ )
108
+ );
109
+ }
110
+
111
+ /* --- PADDING UTILITIES --- */
112
+
113
+ // All sides: .bh-p_{size}
114
+ @each $size-name, $size-value in $bh-spacing-scale {
115
+ @include generate-responsive(
116
+ 'bh-p_#{$size-name}',
117
+ (
118
+ 'padding': $size-value,
119
+ )
120
+ );
121
+ }
122
+
123
+ // Directional: .bh-p-{side}_{size}
124
+ @each $side-name, $side-value in $bh-spacing-sides {
125
+ @each $size-name, $size-value in $bh-spacing-scale {
126
+ @include generate-responsive(
127
+ 'bh-p-#{$side-name}_#{$size-name}',
128
+ (
129
+ 'padding-#{$side-value}': $size-value,
130
+ )
131
+ );
132
+ }
133
+ }
134
+
135
+ // Horizontal: .bh-p-x_{size}
136
+ @each $size-name, $size-value in $bh-spacing-scale {
137
+ @include generate-responsive(
138
+ 'bh-p-x_#{$size-name}',
139
+ (
140
+ 'padding-left': $size-value,
141
+ 'padding-right': $size-value,
142
+ )
143
+ );
144
+ }
145
+
146
+ // Vertical: .bh-p-y_{size}
147
+ @each $size-name, $size-value in $bh-spacing-scale {
148
+ @include generate-responsive(
149
+ 'bh-p-y_#{$size-name}',
150
+ (
151
+ 'padding-top': $size-value,
152
+ 'padding-bottom': $size-value,
153
+ )
154
+ );
155
+ }
156
+
157
+ /* --- GAP UTILITIES --- */
158
+
159
+ // Gap: .bh-gap_{size}
160
+ @each $size-name, $size-value in $bh-spacing-scale {
161
+ @include generate-responsive(
162
+ 'bh-gap_#{$size-name}',
163
+ (
164
+ 'gap': $size-value,
165
+ )
166
+ );
167
+ }
168
+
169
+ // Column gap: .bh-gap-x_{size}
170
+ @each $size-name, $size-value in $bh-spacing-scale {
171
+ @include generate-responsive(
172
+ 'bh-gap-x_#{$size-name}',
173
+ (
174
+ 'column-gap': $size-value,
175
+ )
176
+ );
177
+ }
178
+
179
+ // Row gap: .bh-gap-y_{size}
180
+ @each $size-name, $size-value in $bh-spacing-scale {
181
+ @include generate-responsive(
182
+ 'bh-gap-y_#{$size-name}',
183
+ (
184
+ 'row-gap': $size-value,
185
+ )
186
+ );
187
+ }
@@ -0,0 +1,126 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES - TRUNCATION
3
+ Text overflow and truncation utilities
4
+
5
+ Dependencies:
6
+ - None (standalone utilities)
7
+
8
+ Generated classes:
9
+ - .bh-truncate (single line ellipsis)
10
+ - .bh-line-clamp_{n} (multi-line clamp)
11
+ - .bh-truncate_none (disable truncation)
12
+ - .bh-break-word, .bh-break-all (word breaking)
13
+ ========================================================================== */
14
+
15
+ /* --- SINGLE LINE TRUNCATE --- */
16
+
17
+ .bh-truncate {
18
+ overflow: hidden;
19
+ text-overflow: ellipsis;
20
+ white-space: nowrap;
21
+ }
22
+
23
+ /* --- MULTI-LINE CLAMP --- */
24
+ /* Uses -webkit-line-clamp for cross-browser support */
25
+
26
+ .bh-line-clamp_1 {
27
+ display: -webkit-box;
28
+ -webkit-box-orient: vertical;
29
+ -webkit-line-clamp: 1;
30
+ overflow: hidden;
31
+ }
32
+
33
+ .bh-line-clamp_2 {
34
+ display: -webkit-box;
35
+ -webkit-box-orient: vertical;
36
+ -webkit-line-clamp: 2;
37
+ overflow: hidden;
38
+ }
39
+
40
+ .bh-line-clamp_3 {
41
+ display: -webkit-box;
42
+ -webkit-box-orient: vertical;
43
+ -webkit-line-clamp: 3;
44
+ overflow: hidden;
45
+ }
46
+
47
+ .bh-line-clamp_4 {
48
+ display: -webkit-box;
49
+ -webkit-box-orient: vertical;
50
+ -webkit-line-clamp: 4;
51
+ overflow: hidden;
52
+ }
53
+
54
+ .bh-line-clamp_5 {
55
+ display: -webkit-box;
56
+ -webkit-box-orient: vertical;
57
+ -webkit-line-clamp: 5;
58
+ overflow: hidden;
59
+ }
60
+
61
+ .bh-line-clamp_6 {
62
+ display: -webkit-box;
63
+ -webkit-box-orient: vertical;
64
+ -webkit-line-clamp: 6;
65
+ overflow: hidden;
66
+ }
67
+
68
+ /* --- DISABLE TRUNCATION --- */
69
+
70
+ .bh-truncate_none {
71
+ overflow: visible;
72
+ text-overflow: clip;
73
+ white-space: normal;
74
+ }
75
+
76
+ /* --- WORD BREAKING --- */
77
+
78
+ .bh-break-word {
79
+ word-break: break-word;
80
+ overflow-wrap: break-word;
81
+ }
82
+
83
+ .bh-break-all {
84
+ word-break: break-all;
85
+ }
86
+
87
+ .bh-break-normal {
88
+ word-break: normal;
89
+ overflow-wrap: normal;
90
+ }
91
+
92
+ .bh-break-keep {
93
+ word-break: keep-all;
94
+ }
95
+
96
+ /* --- WHITE SPACE --- */
97
+
98
+ .bh-whitespace-normal {
99
+ white-space: normal;
100
+ }
101
+
102
+ .bh-whitespace-nowrap {
103
+ white-space: nowrap;
104
+ }
105
+
106
+ .bh-whitespace-pre {
107
+ white-space: pre;
108
+ }
109
+
110
+ .bh-whitespace-pre-line {
111
+ white-space: pre-line;
112
+ }
113
+
114
+ .bh-whitespace-pre-wrap {
115
+ white-space: pre-wrap;
116
+ }
117
+
118
+ /* --- TEXT OVERFLOW --- */
119
+
120
+ .bh-text-ellipsis {
121
+ text-overflow: ellipsis;
122
+ }
123
+
124
+ .bh-text-clip {
125
+ text-overflow: clip;
126
+ }
@@ -0,0 +1,117 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES - VISIBILITY
3
+ Responsive show/hide and accessibility utilities
4
+
5
+ Dependencies:
6
+ - _semantic.scss (tokens)
7
+ - _responsive.scss (breakpoint mixins)
8
+
9
+ Generated classes:
10
+ - .bh-hidden, .bh-invisible (always hidden)
11
+ - .bh-hide@{breakpoint} (responsive hide)
12
+ - .bh-show@{breakpoint} (responsive show)
13
+ - .bh-sr-only (screen reader only)
14
+ - .bh-hide@print, .bh-show@print (print utilities)
15
+ ========================================================================== */
16
+
17
+ @use '../mixins/responsive' as *;
18
+
19
+ /* --- ALWAYS HIDDEN --- */
20
+
21
+ .bh-hidden {
22
+ display: none !important;
23
+ }
24
+
25
+ .bh-invisible {
26
+ visibility: hidden;
27
+ }
28
+
29
+ /* --- RESPONSIVE HIDE --- */
30
+ /* Hidden at breakpoint and below (mobile-first) */
31
+
32
+ .bh-hide\@mobile {
33
+ @include bh-breakpoint-only('mobile') {
34
+ display: none !important;
35
+ }
36
+ }
37
+
38
+ .bh-hide\@tablet {
39
+ @include bh-breakpoint-down('tablet') {
40
+ display: none !important;
41
+ }
42
+ }
43
+
44
+ .bh-hide\@desktop {
45
+ @include bh-breakpoint-down('desktop') {
46
+ display: none !important;
47
+ }
48
+ }
49
+
50
+ /* --- RESPONSIVE SHOW --- */
51
+ /* Hidden by default, shown at breakpoint and above */
52
+
53
+ .bh-show\@tablet {
54
+ display: none !important;
55
+
56
+ @include bh-breakpoint-up('tablet') {
57
+ display: block !important;
58
+ }
59
+ }
60
+
61
+ .bh-show\@desktop {
62
+ display: none !important;
63
+
64
+ @include bh-breakpoint-up('desktop') {
65
+ display: block !important;
66
+ }
67
+ }
68
+
69
+ .bh-show\@wide {
70
+ display: none !important;
71
+
72
+ @include bh-breakpoint-up('wide') {
73
+ display: block !important;
74
+ }
75
+ }
76
+
77
+ /* --- SCREEN READER ONLY --- */
78
+ /* Accessible to screen readers but visually hidden */
79
+
80
+ .bh-sr-only {
81
+ position: absolute;
82
+ width: 1px;
83
+ height: 1px;
84
+ padding: 0;
85
+ margin: -1px;
86
+ overflow: hidden;
87
+ clip: rect(0, 0, 0, 0);
88
+ white-space: nowrap;
89
+ border-width: 0;
90
+ }
91
+
92
+ /* Allow element to be focusable when navigated to via keyboard */
93
+ .bh-sr-only-focusable:focus,
94
+ .bh-sr-only-focusable:active {
95
+ position: static;
96
+ width: auto;
97
+ height: auto;
98
+ padding: inherit;
99
+ margin: inherit;
100
+ overflow: visible;
101
+ clip: auto;
102
+ white-space: normal;
103
+ }
104
+
105
+ /* --- PRINT UTILITIES --- */
106
+
107
+ .bh-hide\@print {
108
+ @media print {
109
+ display: none !important;
110
+ }
111
+ }
112
+
113
+ .bh-show\@print {
114
+ @media not print {
115
+ display: none !important;
116
+ }
117
+ }
@@ -0,0 +1,32 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES
3
+ Public entry point for all utility classes
4
+
5
+ Usage:
6
+ @import '@actabldesign/bellhop-styles/utilities';
7
+
8
+ Or import specific utilities:
9
+ @import '@actabldesign/bellhop-styles/utilities/spacing';
10
+
11
+ Available utilities:
12
+
13
+ Phase 1 - Foundation:
14
+ - Spacing: margin, padding, gap with responsive variants
15
+ - Breakpoints: CSS custom properties for JavaScript access
16
+
17
+ Phase 2 - Layout:
18
+ - Grid: CSS Grid layout utilities
19
+ - Flex: Flexbox alignment utilities
20
+ - Sizing: Width/height utilities
21
+
22
+ Phase 3 - Content:
23
+ - Visibility: Show/hide utilities with responsive and print support
24
+ - Truncation: Text overflow and line-clamp utilities
25
+ - Scrollable: Overflow and scroll behavior utilities
26
+ ========================================================================== */
27
+
28
+ // Import design tokens first (required for utilities)
29
+ @use './bh-tokens/semantic';
30
+
31
+ // Import all utilities
32
+ @use './utilities/index';