@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,228 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES - FLEX
3
+ Flexbox layout and alignment utilities
4
+
5
+ Dependencies:
6
+ - _semantic.scss (tokens)
7
+ - _responsive.scss (breakpoint mixins)
8
+
9
+ Generated classes:
10
+ - .bh-flex, .bh-inline-flex (display)
11
+ - .bh-flex-row, .bh-flex-col (direction)
12
+ - .bh-flex-wrap (wrapping)
13
+ - .bh-justify_{alignment} (main axis)
14
+ - .bh-align_{alignment} (cross axis)
15
+ - .bh-self_{alignment} (self alignment)
16
+ - .bh-flex_{grow/shrink} (grow/shrink)
17
+ ========================================================================== */
18
+
19
+ @use '../mixins/responsive' as *;
20
+
21
+ /* --- BASE FLEX --- */
22
+
23
+ .bh-flex {
24
+ display: flex;
25
+ }
26
+
27
+ .bh-inline-flex {
28
+ display: inline-flex;
29
+ }
30
+
31
+ /* --- FLEX DIRECTION --- */
32
+
33
+ .bh-flex-row {
34
+ flex-direction: row;
35
+ }
36
+
37
+ .bh-flex-row-reverse {
38
+ flex-direction: row-reverse;
39
+ }
40
+
41
+ .bh-flex-col {
42
+ flex-direction: column;
43
+ }
44
+
45
+ .bh-flex-col-reverse {
46
+ flex-direction: column-reverse;
47
+ }
48
+
49
+ /* --- FLEX WRAP --- */
50
+
51
+ .bh-flex-wrap {
52
+ flex-wrap: wrap;
53
+ }
54
+
55
+ .bh-flex-wrap-reverse {
56
+ flex-wrap: wrap-reverse;
57
+ }
58
+
59
+ .bh-flex-nowrap {
60
+ flex-wrap: nowrap;
61
+ }
62
+
63
+ /* --- JUSTIFY CONTENT (Main Axis) --- */
64
+
65
+ .bh-justify_start {
66
+ justify-content: flex-start;
67
+ }
68
+
69
+ .bh-justify_end {
70
+ justify-content: flex-end;
71
+ }
72
+
73
+ .bh-justify_center {
74
+ justify-content: center;
75
+ }
76
+
77
+ .bh-justify_between {
78
+ justify-content: space-between;
79
+ }
80
+
81
+ .bh-justify_around {
82
+ justify-content: space-around;
83
+ }
84
+
85
+ .bh-justify_evenly {
86
+ justify-content: space-evenly;
87
+ }
88
+
89
+ .bh-justify_stretch {
90
+ justify-content: stretch;
91
+ }
92
+
93
+ /* --- ALIGN ITEMS (Cross Axis) --- */
94
+
95
+ .bh-align_start {
96
+ align-items: flex-start;
97
+ }
98
+
99
+ .bh-align_end {
100
+ align-items: flex-end;
101
+ }
102
+
103
+ .bh-align_center {
104
+ align-items: center;
105
+ }
106
+
107
+ .bh-align_baseline {
108
+ align-items: baseline;
109
+ }
110
+
111
+ .bh-align_stretch {
112
+ align-items: stretch;
113
+ }
114
+
115
+ /* --- ALIGN CONTENT (Multi-line) --- */
116
+
117
+ .bh-align-content_start {
118
+ align-content: flex-start;
119
+ }
120
+
121
+ .bh-align-content_end {
122
+ align-content: flex-end;
123
+ }
124
+
125
+ .bh-align-content_center {
126
+ align-content: center;
127
+ }
128
+
129
+ .bh-align-content_between {
130
+ align-content: space-between;
131
+ }
132
+
133
+ .bh-align-content_around {
134
+ align-content: space-around;
135
+ }
136
+
137
+ .bh-align-content_evenly {
138
+ align-content: space-evenly;
139
+ }
140
+
141
+ .bh-align-content_stretch {
142
+ align-content: stretch;
143
+ }
144
+
145
+ /* --- ALIGN SELF --- */
146
+
147
+ .bh-self_auto {
148
+ align-self: auto;
149
+ }
150
+
151
+ .bh-self_start {
152
+ align-self: flex-start;
153
+ }
154
+
155
+ .bh-self_end {
156
+ align-self: flex-end;
157
+ }
158
+
159
+ .bh-self_center {
160
+ align-self: center;
161
+ }
162
+
163
+ .bh-self_baseline {
164
+ align-self: baseline;
165
+ }
166
+
167
+ .bh-self_stretch {
168
+ align-self: stretch;
169
+ }
170
+
171
+ /* --- FLEX GROW/SHRINK/BASIS --- */
172
+
173
+ .bh-flex_1 {
174
+ flex: 1 1 0%;
175
+ }
176
+
177
+ .bh-flex_auto {
178
+ flex: 1 1 auto;
179
+ }
180
+
181
+ .bh-flex_initial {
182
+ flex: 0 1 auto;
183
+ }
184
+
185
+ .bh-flex_none {
186
+ flex: none;
187
+ }
188
+
189
+ /* --- FLEX GROW --- */
190
+
191
+ .bh-grow {
192
+ flex-grow: 1;
193
+ }
194
+
195
+ .bh-grow_0 {
196
+ flex-grow: 0;
197
+ }
198
+
199
+ /* --- FLEX SHRINK --- */
200
+
201
+ .bh-shrink {
202
+ flex-shrink: 1;
203
+ }
204
+
205
+ .bh-shrink_0 {
206
+ flex-shrink: 0;
207
+ }
208
+
209
+ /* --- ORDER --- */
210
+
211
+ .bh-order_first {
212
+ order: -9999;
213
+ }
214
+
215
+ .bh-order_last {
216
+ order: 9999;
217
+ }
218
+
219
+ .bh-order_none {
220
+ order: 0;
221
+ }
222
+
223
+ // Generate .bh-order_1 through .bh-order_12
224
+ @for $i from 1 through 12 {
225
+ .bh-order_#{$i} {
226
+ order: $i;
227
+ }
228
+ }
@@ -0,0 +1,189 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES - GRID
3
+ CSS Grid layout utilities
4
+
5
+ Dependencies:
6
+ - _semantic.scss (tokens)
7
+ - _responsive.scss (breakpoint mixins)
8
+
9
+ Generated classes:
10
+ - .bh-grid (display: grid)
11
+ - .bh-grid-cols_{n} (grid-template-columns)
12
+ - .bh-grid-cols_auto-fit (responsive auto-fit)
13
+ - .bh-col-span_{n} (grid-column span)
14
+ - .bh-grid-rows_{n} (grid-template-rows)
15
+ - .bh-grid-place_{alignment} (place-items)
16
+ - Responsive variants for column counts
17
+ ========================================================================== */
18
+
19
+ @use '../mixins/responsive' as *;
20
+
21
+ /* --- BASE GRID --- */
22
+
23
+ .bh-grid {
24
+ display: grid;
25
+ }
26
+
27
+ /* --- GRID COLUMNS (Explicit) --- */
28
+
29
+ // Generate .bh-grid-cols_1 through .bh-grid-cols_12 with responsive variants
30
+ @for $i from 1 through 12 {
31
+ @include generate-responsive(
32
+ 'bh-grid-cols_#{$i}',
33
+ (
34
+ 'grid-template-columns': repeat($i, minmax(0, 1fr)),
35
+ )
36
+ );
37
+ }
38
+
39
+ /* --- GRID COLUMNS (Auto-fit Responsive) --- */
40
+
41
+ .bh-grid-cols_auto-fit {
42
+ grid-template-columns: repeat(
43
+ auto-fit,
44
+ minmax(var(--bh-grid-min, 280px), 1fr)
45
+ );
46
+ }
47
+
48
+ /* --- COLUMN SPAN --- */
49
+
50
+ // Generate .bh-col-span_1 through .bh-col-span_12
51
+ @for $i from 1 through 12 {
52
+ .bh-col-span_#{$i} {
53
+ grid-column: span #{$i} / span #{$i};
54
+ }
55
+ }
56
+
57
+ // Full width column span
58
+ .bh-col-span_full {
59
+ grid-column: 1 / -1;
60
+ }
61
+
62
+ /* --- GRID ROWS --- */
63
+
64
+ // Generate .bh-grid-rows_1 through .bh-grid-rows_6
65
+ @for $i from 1 through 6 {
66
+ .bh-grid-rows_#{$i} {
67
+ grid-template-rows: repeat($i, minmax(0, 1fr));
68
+ }
69
+ }
70
+
71
+ /* --- ROW SPAN --- */
72
+
73
+ // Generate .bh-row-span_1 through .bh-row-span_6
74
+ @for $i from 1 through 6 {
75
+ .bh-row-span_#{$i} {
76
+ grid-row: span #{$i} / span #{$i};
77
+ }
78
+ }
79
+
80
+ // Full height row span
81
+ .bh-row-span_full {
82
+ grid-row: 1 / -1;
83
+ }
84
+
85
+ /* --- GRID ALIGNMENT --- */
86
+
87
+ // Place items (both axes)
88
+ .bh-grid-place_center {
89
+ place-items: center;
90
+ }
91
+
92
+ .bh-grid-place_start {
93
+ place-items: start;
94
+ }
95
+
96
+ .bh-grid-place_end {
97
+ place-items: end;
98
+ }
99
+
100
+ .bh-grid-place_stretch {
101
+ place-items: stretch;
102
+ }
103
+
104
+ // Justify items (inline/horizontal axis)
105
+ .bh-grid-justify_start {
106
+ justify-items: start;
107
+ }
108
+
109
+ .bh-grid-justify_end {
110
+ justify-items: end;
111
+ }
112
+
113
+ .bh-grid-justify_center {
114
+ justify-items: center;
115
+ }
116
+
117
+ .bh-grid-justify_stretch {
118
+ justify-items: stretch;
119
+ }
120
+
121
+ // Align items (block/vertical axis)
122
+ .bh-grid-align_start {
123
+ align-items: start;
124
+ }
125
+
126
+ .bh-grid-align_end {
127
+ align-items: end;
128
+ }
129
+
130
+ .bh-grid-align_center {
131
+ align-items: center;
132
+ }
133
+
134
+ .bh-grid-align_stretch {
135
+ align-items: stretch;
136
+ }
137
+
138
+ .bh-grid-align_baseline {
139
+ align-items: baseline;
140
+ }
141
+
142
+ /* --- GRID CONTENT ALIGNMENT --- */
143
+
144
+ // Place content (both axes)
145
+ .bh-grid-place-content_center {
146
+ place-content: center;
147
+ }
148
+
149
+ .bh-grid-place-content_start {
150
+ place-content: start;
151
+ }
152
+
153
+ .bh-grid-place-content_end {
154
+ place-content: end;
155
+ }
156
+
157
+ .bh-grid-place-content_between {
158
+ place-content: space-between;
159
+ }
160
+
161
+ .bh-grid-place-content_around {
162
+ place-content: space-around;
163
+ }
164
+
165
+ .bh-grid-place-content_evenly {
166
+ place-content: space-evenly;
167
+ }
168
+
169
+ /* --- GRID FLOW --- */
170
+
171
+ .bh-grid-flow_row {
172
+ grid-auto-flow: row;
173
+ }
174
+
175
+ .bh-grid-flow_col {
176
+ grid-auto-flow: column;
177
+ }
178
+
179
+ .bh-grid-flow_dense {
180
+ grid-auto-flow: dense;
181
+ }
182
+
183
+ .bh-grid-flow_row-dense {
184
+ grid-auto-flow: row dense;
185
+ }
186
+
187
+ .bh-grid-flow_col-dense {
188
+ grid-auto-flow: column dense;
189
+ }
@@ -0,0 +1,32 @@
1
+ /* ==========================================================================
2
+ BELLHOP UTILITIES - BARREL FILE
3
+ Central import point for all utility modules
4
+
5
+ Phase 1: Foundation (Current)
6
+ - Breakpoints
7
+ - Spacing (margin, padding, gap)
8
+
9
+ Phase 2: Layout (Planned)
10
+ - Grid
11
+ - Flex
12
+ - Sizing
13
+
14
+ Phase 3: Content (Planned)
15
+ - Visibility
16
+ - Truncation
17
+ - Scrollable
18
+ ========================================================================== */
19
+
20
+ // Phase 1: Foundation
21
+ @forward './breakpoints';
22
+ @forward './spacing';
23
+
24
+ // Phase 2: Layout
25
+ @forward './grid';
26
+ @forward './flex';
27
+ @forward './sizing';
28
+
29
+ // Phase 3: Content
30
+ @forward './visibility';
31
+ @forward './truncation';
32
+ @forward './scrollable';
@@ -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
+ }