@actabldesign/bellhop-styles 0.0.3 → 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 (127) hide show
  1. package/README.md +105 -70
  2. package/dist/index.css +1538 -0
  3. package/dist/utilities.css +5730 -0
  4. package/llms.txt +2852 -0
  5. package/package.json +29 -20
  6. package/project.json +29 -0
  7. package/rollup.config.js +44 -0
  8. package/{base → src/base}/normalize.css +4 -0
  9. package/src/bh-tokens/_primitives.scss +296 -0
  10. package/src/bh-tokens/_semantic.scss +158 -0
  11. package/src/bh-tokens/components/_avatar.tokens.scss +64 -0
  12. package/src/bh-tokens/components/_badge-dot.tokens.scss +33 -0
  13. package/src/bh-tokens/components/_badge.tokens.scss +61 -0
  14. package/src/bh-tokens/components/_button-icon.tokens.scss +65 -0
  15. package/src/bh-tokens/components/_button.tokens.scss +185 -0
  16. package/src/bh-tokens/components/_checkbox.tokens.scss +67 -0
  17. package/src/bh-tokens/components/_dropdown.tokens.scss +103 -0
  18. package/src/bh-tokens/components/_featured-icon.tokens.scss +57 -0
  19. package/src/bh-tokens/components/_input-number.tokens.scss +50 -0
  20. package/src/bh-tokens/components/_input.tokens.scss +86 -0
  21. package/src/bh-tokens/components/_label.tokens.scss +37 -0
  22. package/src/bh-tokens/components/_modal.tokens.scss +42 -0
  23. package/src/bh-tokens/components/_pagination.tokens.scss +104 -0
  24. package/src/bh-tokens/components/_password.tokens.scss +63 -0
  25. package/src/bh-tokens/components/_progress-bar.tokens.scss +34 -0
  26. package/src/bh-tokens/components/_progress-spinner.tokens.scss +51 -0
  27. package/src/bh-tokens/components/_radiobutton.tokens.scss +90 -0
  28. package/src/bh-tokens/components/_skeleton.tokens.scss +22 -0
  29. package/src/bh-tokens/components/_textarea.tokens.scss +76 -0
  30. package/src/bh-tokens/components/_toggle.tokens.scss +74 -0
  31. package/src/bh-tokens/components/avatar.scss +288 -0
  32. package/src/bh-tokens/components/badge-dot.scss +177 -0
  33. package/src/bh-tokens/components/badge.scss +497 -0
  34. package/src/bh-tokens/components/button-icon.scss +227 -0
  35. package/src/bh-tokens/components/button.scss +640 -0
  36. package/src/bh-tokens/components/checkbox.scss +254 -0
  37. package/src/bh-tokens/components/dropdown.scss +231 -0
  38. package/src/bh-tokens/components/featured-icon.scss +219 -0
  39. package/src/bh-tokens/components/input-number.scss +147 -0
  40. package/src/bh-tokens/components/input.scss +271 -0
  41. package/src/bh-tokens/components/label.scss +176 -0
  42. package/src/bh-tokens/components/modal.scss +103 -0
  43. package/src/bh-tokens/components/pagination.scss +324 -0
  44. package/src/bh-tokens/components/password.scss +193 -0
  45. package/src/bh-tokens/components/progress-bar.scss +124 -0
  46. package/src/bh-tokens/components/progress-spinner.scss +130 -0
  47. package/src/bh-tokens/components/radiobutton.scss +193 -0
  48. package/src/bh-tokens/components/skeleton.scss +50 -0
  49. package/src/bh-tokens/components/textarea.scss +228 -0
  50. package/src/bh-tokens/components/toggle.scss +320 -0
  51. package/src/index.css +22 -0
  52. package/src/mixins/_responsive.scss +167 -0
  53. package/src/tokens/bellhop-animations.css +392 -0
  54. package/src/tokens/bellhop-global.css +175 -0
  55. package/src/tokens/bellhop-icons.css +77 -0
  56. package/src/tokens/bellhop-layout.css +216 -0
  57. package/src/tokens/bellhop-primary-colors.css +96 -0
  58. package/src/tokens/bellhop-radius.css +14 -0
  59. package/src/tokens/bellhop-secondary-colors.css +154 -0
  60. package/src/tokens/bellhop-shadows.css +55 -0
  61. package/src/tokens/bellhop-spacing.css +66 -0
  62. package/src/tokens/bellhop-styles.css +174 -0
  63. package/src/tokens/bellhop-typography.css +146 -0
  64. package/src/tokens/colors.json +737 -0
  65. package/src/tokens/colors.mdx +59 -0
  66. package/src/tokens/index.css +17 -0
  67. package/src/utilities/_breakpoints.scss +19 -0
  68. package/src/utilities/_flex.scss +228 -0
  69. package/src/utilities/_grid.scss +189 -0
  70. package/src/utilities/_index.scss +32 -0
  71. package/src/utilities/_scrollable.scss +239 -0
  72. package/src/utilities/_sizing.scss +229 -0
  73. package/src/utilities/_spacing.scss +187 -0
  74. package/src/utilities/_truncation.scss +126 -0
  75. package/src/utilities/_visibility.scss +117 -0
  76. package/src/utilities.scss +32 -0
  77. package/components/appbar.css +0 -167
  78. package/components/autocomplete-menu.css +0 -142
  79. package/components/avatar-add.css +0 -112
  80. package/components/avatar.css +0 -253
  81. package/components/badge-dot.css +0 -78
  82. package/components/badge.css +0 -337
  83. package/components/bar-chart-card.css +0 -261
  84. package/components/bar-chart.css +0 -149
  85. package/components/breadcrumbs.css +0 -136
  86. package/components/button.css +0 -266
  87. package/components/chart-tooltip.css +0 -96
  88. package/components/checkbox-label.css +0 -53
  89. package/components/checkbox.css +0 -127
  90. package/components/container-footer.css +0 -22
  91. package/components/container.css +0 -17
  92. package/components/date-picker-content.css +0 -337
  93. package/components/date-picker.css +0 -103
  94. package/components/date-range-picker-content.css +0 -85
  95. package/components/date-range-picker.css +0 -72
  96. package/components/dropdown-menu.css +0 -204
  97. package/components/dropdown.css +0 -126
  98. package/components/empty-state.css +0 -83
  99. package/components/featured-icon.css +0 -194
  100. package/components/illustrations.css +0 -120
  101. package/components/input-autocomplete.css +0 -158
  102. package/components/input-number.css +0 -2
  103. package/components/input-verification.css +0 -137
  104. package/components/input.css +0 -374
  105. package/components/loader-spinner.css +0 -421
  106. package/components/logo-box.css +0 -85
  107. package/components/month-picker-content.css +0 -190
  108. package/components/month-picker.css +0 -83
  109. package/components/nav-item.css +0 -110
  110. package/components/notification.css +0 -262
  111. package/components/page-navigation.css +0 -294
  112. package/components/picker-menu.css +0 -43
  113. package/components/pie-chart-card.css +0 -213
  114. package/components/pie-chart.css +0 -80
  115. package/components/product-switcher.css +0 -127
  116. package/components/property-switcher.css +0 -95
  117. package/components/radio-button-label.css +0 -53
  118. package/components/radio-button.css +0 -134
  119. package/components/sidebar.css +0 -178
  120. package/components/skeleton-loader.css +0 -47
  121. package/components/tag.css +0 -214
  122. package/components/textarea.css +0 -211
  123. package/components/toggle.css +0 -298
  124. package/components/tooltip.css +0 -85
  125. package/components/trend-chart-card.css +0 -189
  126. package/components/trend-chart.css +0 -94
  127. package/index.css +0 -8115
@@ -0,0 +1,239 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES - SCROLLABLE
3
+ Overflow and scroll container utilities
4
+
5
+ Dependencies:
6
+ - None (standalone utilities)
7
+
8
+ Generated classes:
9
+ - .bh-overflow_{type} (overflow control)
10
+ - .bh-scroll-x, .bh-scroll-y (directional scroll)
11
+ - .bh-scroll_smooth (smooth scrolling)
12
+ - .bh-scrollbar_thin, .bh-scrollbar_hidden (scrollbar styling)
13
+ - .bh-snap-x, .bh-snap-y (scroll snap)
14
+ ========================================================================== */
15
+
16
+ /* --- OVERFLOW CONTROL --- */
17
+
18
+ .bh-overflow_auto {
19
+ overflow: auto;
20
+ }
21
+
22
+ .bh-overflow_hidden {
23
+ overflow: hidden;
24
+ }
25
+
26
+ .bh-overflow_visible {
27
+ overflow: visible;
28
+ }
29
+
30
+ .bh-overflow_scroll {
31
+ overflow: scroll;
32
+ }
33
+
34
+ .bh-overflow_clip {
35
+ overflow: clip;
36
+ }
37
+
38
+ /* --- OVERFLOW X (Horizontal) --- */
39
+
40
+ .bh-overflow-x_auto {
41
+ overflow-x: auto;
42
+ }
43
+
44
+ .bh-overflow-x_hidden {
45
+ overflow-x: hidden;
46
+ }
47
+
48
+ .bh-overflow-x_visible {
49
+ overflow-x: visible;
50
+ }
51
+
52
+ .bh-overflow-x_scroll {
53
+ overflow-x: scroll;
54
+ }
55
+
56
+ .bh-overflow-x_clip {
57
+ overflow-x: clip;
58
+ }
59
+
60
+ /* --- OVERFLOW Y (Vertical) --- */
61
+
62
+ .bh-overflow-y_auto {
63
+ overflow-y: auto;
64
+ }
65
+
66
+ .bh-overflow-y_hidden {
67
+ overflow-y: hidden;
68
+ }
69
+
70
+ .bh-overflow-y_visible {
71
+ overflow-y: visible;
72
+ }
73
+
74
+ .bh-overflow-y_scroll {
75
+ overflow-y: scroll;
76
+ }
77
+
78
+ .bh-overflow-y_clip {
79
+ overflow-y: clip;
80
+ }
81
+
82
+ /* --- DIRECTIONAL SCROLL --- */
83
+ /* Convenience classes for common scroll patterns */
84
+
85
+ .bh-scroll-x {
86
+ overflow-x: auto;
87
+ overflow-y: hidden;
88
+ }
89
+
90
+ .bh-scroll-y {
91
+ overflow-x: hidden;
92
+ overflow-y: auto;
93
+ }
94
+
95
+ /* --- SCROLL BEHAVIOR --- */
96
+
97
+ .bh-scroll_smooth {
98
+ scroll-behavior: smooth;
99
+ }
100
+
101
+ .bh-scroll_auto {
102
+ scroll-behavior: auto;
103
+ }
104
+
105
+ /* --- OVERSCROLL BEHAVIOR --- */
106
+
107
+ .bh-overscroll_auto {
108
+ overscroll-behavior: auto;
109
+ }
110
+
111
+ .bh-overscroll_contain {
112
+ overscroll-behavior: contain;
113
+ }
114
+
115
+ .bh-overscroll_none {
116
+ overscroll-behavior: none;
117
+ }
118
+
119
+ .bh-overscroll-x_auto {
120
+ overscroll-behavior-x: auto;
121
+ }
122
+
123
+ .bh-overscroll-x_contain {
124
+ overscroll-behavior-x: contain;
125
+ }
126
+
127
+ .bh-overscroll-x_none {
128
+ overscroll-behavior-x: none;
129
+ }
130
+
131
+ .bh-overscroll-y_auto {
132
+ overscroll-behavior-y: auto;
133
+ }
134
+
135
+ .bh-overscroll-y_contain {
136
+ overscroll-behavior-y: contain;
137
+ }
138
+
139
+ .bh-overscroll-y_none {
140
+ overscroll-behavior-y: none;
141
+ }
142
+
143
+ /* --- SCROLLBAR STYLING --- */
144
+
145
+ .bh-scrollbar_thin {
146
+ scrollbar-width: thin;
147
+
148
+ &::-webkit-scrollbar {
149
+ width: 6px;
150
+ height: 6px;
151
+ }
152
+
153
+ &::-webkit-scrollbar-track {
154
+ background: var(--bh-neutral-100);
155
+ border-radius: 3px;
156
+ }
157
+
158
+ &::-webkit-scrollbar-thumb {
159
+ background: var(--bh-neutral-400);
160
+ border-radius: 3px;
161
+
162
+ &:hover {
163
+ background: var(--bh-neutral-500);
164
+ }
165
+ }
166
+ }
167
+
168
+ .bh-scrollbar_hidden {
169
+ scrollbar-width: none;
170
+ -ms-overflow-style: none;
171
+
172
+ &::-webkit-scrollbar {
173
+ display: none;
174
+ }
175
+ }
176
+
177
+ .bh-scrollbar_auto {
178
+ scrollbar-width: auto;
179
+
180
+ &::-webkit-scrollbar {
181
+ width: auto;
182
+ height: auto;
183
+ }
184
+ }
185
+
186
+ /* --- SCROLL SNAP --- */
187
+ /* For carousels and snap-scroll containers */
188
+
189
+ .bh-snap-x {
190
+ scroll-snap-type: x mandatory;
191
+
192
+ & > * {
193
+ scroll-snap-align: start;
194
+ }
195
+ }
196
+
197
+ .bh-snap-y {
198
+ scroll-snap-type: y mandatory;
199
+
200
+ & > * {
201
+ scroll-snap-align: start;
202
+ }
203
+ }
204
+
205
+ .bh-snap-both {
206
+ scroll-snap-type: both mandatory;
207
+
208
+ & > * {
209
+ scroll-snap-align: start;
210
+ }
211
+ }
212
+
213
+ /* --- SNAP ALIGNMENT --- */
214
+
215
+ .bh-snap-start {
216
+ scroll-snap-align: start;
217
+ }
218
+
219
+ .bh-snap-center {
220
+ scroll-snap-align: center;
221
+ }
222
+
223
+ .bh-snap-end {
224
+ scroll-snap-align: end;
225
+ }
226
+
227
+ .bh-snap-align_none {
228
+ scroll-snap-align: none;
229
+ }
230
+
231
+ /* --- SNAP STOP --- */
232
+
233
+ .bh-snap-normal {
234
+ scroll-snap-stop: normal;
235
+ }
236
+
237
+ .bh-snap-always {
238
+ scroll-snap-stop: always;
239
+ }
@@ -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
+ }