@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.
- package/README.md +105 -70
- package/dist/index.css +33 -0
- package/dist/utilities.css +5730 -0
- package/llms.txt +2765 -119
- package/package.json +6 -1
- package/rollup.config.js +39 -24
- package/src/bh-tokens/_primitives.scss +296 -0
- package/src/bh-tokens/_semantic.scss +158 -0
- package/src/bh-tokens/components/_avatar.tokens.scss +64 -0
- package/src/bh-tokens/components/_badge-dot.tokens.scss +33 -0
- package/src/bh-tokens/components/_badge.tokens.scss +61 -0
- package/src/bh-tokens/components/_button-icon.tokens.scss +65 -0
- package/src/bh-tokens/components/_button.tokens.scss +185 -0
- package/src/bh-tokens/components/_checkbox.tokens.scss +67 -0
- package/src/bh-tokens/components/_dropdown.tokens.scss +103 -0
- package/src/bh-tokens/components/_featured-icon.tokens.scss +57 -0
- package/src/bh-tokens/components/_input-number.tokens.scss +50 -0
- package/src/bh-tokens/components/_input.tokens.scss +86 -0
- package/src/bh-tokens/components/_label.tokens.scss +37 -0
- package/src/bh-tokens/components/_modal.tokens.scss +42 -0
- package/src/bh-tokens/components/_pagination.tokens.scss +104 -0
- package/src/bh-tokens/components/_password.tokens.scss +63 -0
- package/src/bh-tokens/components/_progress-bar.tokens.scss +34 -0
- package/src/bh-tokens/components/_progress-spinner.tokens.scss +51 -0
- package/src/bh-tokens/components/_radiobutton.tokens.scss +90 -0
- package/src/bh-tokens/components/_skeleton.tokens.scss +22 -0
- package/src/bh-tokens/components/_textarea.tokens.scss +76 -0
- package/src/bh-tokens/components/_toggle.tokens.scss +74 -0
- package/src/bh-tokens/components/avatar.scss +288 -0
- package/src/bh-tokens/components/badge-dot.scss +177 -0
- package/src/bh-tokens/components/badge.scss +497 -0
- package/src/bh-tokens/components/button-icon.scss +227 -0
- package/src/bh-tokens/components/button.scss +640 -0
- package/src/bh-tokens/components/checkbox.scss +254 -0
- package/src/bh-tokens/components/dropdown.scss +231 -0
- package/src/bh-tokens/components/featured-icon.scss +219 -0
- package/src/bh-tokens/components/input-number.scss +147 -0
- package/src/bh-tokens/components/input.scss +271 -0
- package/src/bh-tokens/components/label.scss +176 -0
- package/src/bh-tokens/components/modal.scss +103 -0
- package/src/bh-tokens/components/pagination.scss +324 -0
- package/src/bh-tokens/components/password.scss +193 -0
- package/src/bh-tokens/components/progress-bar.scss +124 -0
- package/src/bh-tokens/components/progress-spinner.scss +130 -0
- package/src/bh-tokens/components/radiobutton.scss +193 -0
- package/src/bh-tokens/components/skeleton.scss +50 -0
- package/src/bh-tokens/components/textarea.scss +228 -0
- package/src/bh-tokens/components/toggle.scss +320 -0
- package/src/mixins/_responsive.scss +167 -0
- package/src/tokens/bellhop-typography.css +34 -0
- package/src/utilities/_breakpoints.scss +19 -0
- package/src/utilities/_flex.scss +228 -0
- package/src/utilities/_grid.scss +189 -0
- package/src/utilities/_index.scss +32 -0
- package/src/utilities/_scrollable.scss +239 -0
- package/src/utilities/_sizing.scss +229 -0
- package/src/utilities/_spacing.scss +187 -0
- package/src/utilities/_truncation.scss +126 -0
- package/src/utilities/_visibility.scss +117 -0
- package/src/utilities.scss +32 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP MODAL COMPONENT TOKENS
|
|
3
|
+
Component-specific tokens that map to semantic layer
|
|
4
|
+
========================================================================== */
|
|
5
|
+
|
|
6
|
+
@use '../_semantic.scss';
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* --- MODAL SIZING --- */
|
|
10
|
+
--bh-modal-max-width: 400px;
|
|
11
|
+
--bh-modal-max-width-mobile: 100%;
|
|
12
|
+
|
|
13
|
+
/* --- MODAL SPACING --- */
|
|
14
|
+
--bh-modal-wrapper-padding: var(--bh-spacing-4xl);
|
|
15
|
+
--bh-modal-wrapper-padding-mobile: var(--bh-spacing-xl);
|
|
16
|
+
|
|
17
|
+
/* --- MODAL BORDER --- */
|
|
18
|
+
--bh-modal-radius: var(--bh-radius-xl);
|
|
19
|
+
|
|
20
|
+
/* --- MODAL Z-INDEX --- */
|
|
21
|
+
--bh-modal-z-index: 1000;
|
|
22
|
+
--bh-modal-content-z-index: 1;
|
|
23
|
+
|
|
24
|
+
/* --- MODAL OVERLAY --- */
|
|
25
|
+
--bh-modal-overlay-bg: rgba(64, 73, 104, 0.7);
|
|
26
|
+
--bh-modal-overlay-backdrop-blur: blur(16px);
|
|
27
|
+
|
|
28
|
+
/* --- MODAL COLORS --- */
|
|
29
|
+
--bh-modal-bg: var(--bh-bg-primary);
|
|
30
|
+
|
|
31
|
+
/* --- MODAL SHADOW --- */
|
|
32
|
+
--bh-modal-shadow:
|
|
33
|
+
0px 20px 24px -4px rgba(16, 24, 40, 0.08),
|
|
34
|
+
0px 8px 8px -4px rgba(16, 24, 40, 0.03);
|
|
35
|
+
|
|
36
|
+
/* --- MODAL ANIMATION --- */
|
|
37
|
+
--bh-modal-animation-duration: 0.2s;
|
|
38
|
+
--bh-modal-animation-timing: ease-out;
|
|
39
|
+
|
|
40
|
+
/* --- MODAL BREAKPOINTS --- */
|
|
41
|
+
--bh-modal-mobile-breakpoint: 480px;
|
|
42
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP PAGINATION COMPONENT TOKENS
|
|
3
|
+
Component-specific tokens that map to semantic layer
|
|
4
|
+
========================================================================== */
|
|
5
|
+
|
|
6
|
+
@use '../_semantic.scss';
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* --- PAGINATION CONTAINER --- */
|
|
10
|
+
--bh-pagination-gap: var(--bh-spacing-4);
|
|
11
|
+
--bh-pagination-padding-block: var(--bh-spacing-3);
|
|
12
|
+
--bh-pagination-padding-inline: var(--bh-spacing-4);
|
|
13
|
+
--bh-pagination-bg: var(--bh-white);
|
|
14
|
+
--bh-pagination-border-color: var(--bh-neutral-200);
|
|
15
|
+
--bh-pagination-border-width: 1px;
|
|
16
|
+
|
|
17
|
+
/* --- DISABLED STATE --- */
|
|
18
|
+
--bh-pagination-disabled-opacity: 0.5;
|
|
19
|
+
|
|
20
|
+
/* --- INFO TEXT --- */
|
|
21
|
+
--bh-pagination-info-font-size: 0.875rem;
|
|
22
|
+
--bh-pagination-info-color: var(--bh-neutral-600);
|
|
23
|
+
|
|
24
|
+
/* --- CONTROLS --- */
|
|
25
|
+
--bh-pagination-controls-gap: var(--bh-spacing-4);
|
|
26
|
+
|
|
27
|
+
/* --- PAGE SIZE SELECTOR --- */
|
|
28
|
+
--bh-pagination-page-size-gap: var(--bh-spacing-2);
|
|
29
|
+
--bh-pagination-page-size-label-font-size: 0.875rem;
|
|
30
|
+
--bh-pagination-page-size-label-color: var(--bh-neutral-600);
|
|
31
|
+
|
|
32
|
+
/* --- SELECT DROPDOWN --- */
|
|
33
|
+
--bh-pagination-select-bg: var(--bh-white);
|
|
34
|
+
--bh-pagination-select-bg-disabled: var(--bh-neutral-100);
|
|
35
|
+
--bh-pagination-select-border: var(--bh-neutral-300);
|
|
36
|
+
--bh-pagination-select-border-hover: var(--bh-neutral-400);
|
|
37
|
+
--bh-pagination-select-border-focus: var(--bh-brand-600);
|
|
38
|
+
--bh-pagination-select-border-radius: var(--bh-radius-md);
|
|
39
|
+
--bh-pagination-select-padding-inline: var(--bh-spacing-3);
|
|
40
|
+
--bh-pagination-select-padding-inline-end: var(--bh-spacing-6);
|
|
41
|
+
--bh-pagination-select-height: 32px;
|
|
42
|
+
--bh-pagination-select-font-size: 0.875rem;
|
|
43
|
+
--bh-pagination-select-color: var(--bh-neutral-900);
|
|
44
|
+
--bh-pagination-select-transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
45
|
+
--bh-pagination-select-focus-ring: 0 0 0 3px var(--bh-brand-100);
|
|
46
|
+
|
|
47
|
+
/* --- NAVIGATION BUTTONS --- */
|
|
48
|
+
--bh-pagination-nav-gap: var(--bh-spacing-1);
|
|
49
|
+
--bh-pagination-btn-size: 32px;
|
|
50
|
+
--bh-pagination-btn-bg: transparent;
|
|
51
|
+
--bh-pagination-btn-bg-hover: var(--bh-neutral-100);
|
|
52
|
+
--bh-pagination-btn-bg-active: var(--bh-neutral-200);
|
|
53
|
+
--bh-pagination-btn-color: var(--bh-neutral-600);
|
|
54
|
+
--bh-pagination-btn-color-hover: var(--bh-neutral-900);
|
|
55
|
+
--bh-pagination-btn-border-radius: var(--bh-radius-md);
|
|
56
|
+
--bh-pagination-btn-disabled-opacity: 0.4;
|
|
57
|
+
--bh-pagination-btn-transition: background-color 0.15s ease, color 0.15s ease;
|
|
58
|
+
--bh-pagination-btn-icon-size: 20px;
|
|
59
|
+
--bh-pagination-btn-focus-ring: 0 0 0 2px var(--bh-brand-100);
|
|
60
|
+
|
|
61
|
+
/* --- PAGE NUMBER BUTTONS --- */
|
|
62
|
+
--bh-pagination-page-btn-min-width: 32px;
|
|
63
|
+
--bh-pagination-page-btn-height: 32px;
|
|
64
|
+
--bh-pagination-page-btn-padding-inline: var(--bh-spacing-2);
|
|
65
|
+
--bh-pagination-page-btn-bg: transparent;
|
|
66
|
+
--bh-pagination-page-btn-bg-hover: var(--bh-neutral-100);
|
|
67
|
+
--bh-pagination-page-btn-bg-active: var(--bh-brand-600);
|
|
68
|
+
--bh-pagination-page-btn-color: var(--bh-neutral-700);
|
|
69
|
+
--bh-pagination-page-btn-color-hover: var(--bh-neutral-900);
|
|
70
|
+
--bh-pagination-page-btn-color-active: var(--bh-white);
|
|
71
|
+
--bh-pagination-page-btn-border-color-active: var(--bh-brand-600);
|
|
72
|
+
--bh-pagination-page-btn-border-radius: var(--bh-radius-md);
|
|
73
|
+
--bh-pagination-page-btn-font-size: 0.875rem;
|
|
74
|
+
--bh-pagination-page-btn-font-weight: 500;
|
|
75
|
+
--bh-pagination-page-btn-disabled-opacity: 0.4;
|
|
76
|
+
--bh-pagination-page-btn-transition: all 0.15s ease;
|
|
77
|
+
--bh-pagination-page-btn-focus-ring: 0 0 0 2px var(--bh-brand-400);
|
|
78
|
+
|
|
79
|
+
/* --- ELLIPSIS --- */
|
|
80
|
+
--bh-pagination-ellipsis-min-width: 24px;
|
|
81
|
+
--bh-pagination-ellipsis-color: var(--bh-neutral-400);
|
|
82
|
+
--bh-pagination-ellipsis-font-size: 0.875rem;
|
|
83
|
+
|
|
84
|
+
/* --- COMPACT MODE - PAGE INPUT --- */
|
|
85
|
+
--bh-pagination-page-display-gap: var(--bh-spacing-2);
|
|
86
|
+
--bh-pagination-page-text-font-size: 0.875rem;
|
|
87
|
+
--bh-pagination-page-text-color: var(--bh-neutral-700);
|
|
88
|
+
--bh-pagination-page-input-width: 60px;
|
|
89
|
+
--bh-pagination-page-input-height: 32px;
|
|
90
|
+
--bh-pagination-page-input-padding: var(--bh-spacing-2);
|
|
91
|
+
--bh-pagination-page-input-border: var(--bh-neutral-300);
|
|
92
|
+
--bh-pagination-page-input-border-hover: var(--bh-neutral-400);
|
|
93
|
+
--bh-pagination-page-input-border-focus: var(--bh-brand-500);
|
|
94
|
+
--bh-pagination-page-input-border-radius: var(--bh-radius-md);
|
|
95
|
+
--bh-pagination-page-input-font-size: 0.875rem;
|
|
96
|
+
--bh-pagination-page-input-color: var(--bh-neutral-900);
|
|
97
|
+
--bh-pagination-page-input-bg: var(--bh-white);
|
|
98
|
+
--bh-pagination-page-input-bg-disabled: var(--bh-neutral-100);
|
|
99
|
+
--bh-pagination-page-input-transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
100
|
+
--bh-pagination-page-input-focus-ring: 0 0 0 3px var(--bh-brand-100);
|
|
101
|
+
|
|
102
|
+
/* --- RESPONSIVE --- */
|
|
103
|
+
--bh-pagination-mobile-gap: var(--bh-spacing-3);
|
|
104
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP PASSWORD COMPONENT TOKENS
|
|
3
|
+
Component-specific tokens that map to semantic layer
|
|
4
|
+
Extends base input tokens
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
@use '../_semantic.scss';
|
|
8
|
+
@use './input.tokens';
|
|
9
|
+
|
|
10
|
+
:root {
|
|
11
|
+
/* --- PASSWORD CONTAINER --- */
|
|
12
|
+
--bh-password-container-gap: var(--bh-spacing-sm);
|
|
13
|
+
--bh-password-container-padding-sm: 0 var(--bh-spacing-sm);
|
|
14
|
+
--bh-password-container-padding-md: 0 var(--bh-spacing-md);
|
|
15
|
+
--bh-password-container-padding-lg: 0 var(--bh-spacing-lg);
|
|
16
|
+
|
|
17
|
+
/* Inherit input sizes */
|
|
18
|
+
--bh-password-height-sm: var(--bh-input-height-sm);
|
|
19
|
+
--bh-password-height-md: var(--bh-input-height-md);
|
|
20
|
+
--bh-password-height-lg: var(--bh-input-height-lg);
|
|
21
|
+
|
|
22
|
+
/* Inherit input colors */
|
|
23
|
+
--bh-password-bg: var(--bh-input-bg);
|
|
24
|
+
--bh-password-border: var(--bh-input-border);
|
|
25
|
+
--bh-password-text: var(--bh-input-text);
|
|
26
|
+
--bh-password-radius: var(--bh-input-radius);
|
|
27
|
+
--bh-password-transition: var(--bh-input-transition);
|
|
28
|
+
--bh-password-border-width: var(--bh-input-border-width);
|
|
29
|
+
|
|
30
|
+
/* --- PASSWORD TOGGLE BUTTON --- */
|
|
31
|
+
--bh-password-toggle-button-size: 20px;
|
|
32
|
+
--bh-password-toggle-button-color: var(--bh-neutral-500);
|
|
33
|
+
--bh-password-toggle-button-color-hover: var(--bh-neutral-700);
|
|
34
|
+
--bh-password-toggle-button-transition: color 0.2s ease-in-out;
|
|
35
|
+
--bh-password-toggle-icon-size: 20px;
|
|
36
|
+
|
|
37
|
+
/* --- PASSWORD FEEDBACK PANEL --- */
|
|
38
|
+
--bh-password-feedback-panel-margin-top: var(--bh-spacing-sm);
|
|
39
|
+
--bh-password-feedback-panel-padding: var(--bh-spacing-md);
|
|
40
|
+
--bh-password-feedback-panel-bg: var(--bh-white);
|
|
41
|
+
--bh-password-feedback-panel-border: 1px solid var(--bh-neutral-200);
|
|
42
|
+
--bh-password-feedback-panel-radius: var(--bh-radius-md);
|
|
43
|
+
--bh-password-feedback-panel-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
44
|
+
|
|
45
|
+
/* --- PASSWORD FEEDBACK HEADER --- */
|
|
46
|
+
--bh-password-feedback-header-gap: var(--bh-spacing-sm);
|
|
47
|
+
--bh-password-feedback-header-font-weight: var(--bh-font-weight-medium);
|
|
48
|
+
--bh-password-feedback-header-font-size: var(--bh-font-size-sm);
|
|
49
|
+
--bh-password-prompt-color: var(--bh-neutral-600);
|
|
50
|
+
--bh-password-strength-label-color: var(--bh-neutral-800);
|
|
51
|
+
|
|
52
|
+
/* --- PASSWORD STRENGTH METER --- */
|
|
53
|
+
--bh-password-strength-meter-width: 100%;
|
|
54
|
+
--bh-password-strength-meter-height: 4px;
|
|
55
|
+
--bh-password-strength-meter-bg: var(--bh-neutral-200);
|
|
56
|
+
--bh-password-strength-meter-radius: 2px;
|
|
57
|
+
--bh-password-strength-meter-transition: width 0.3s ease-in-out, background-color 0.3s ease-in-out;
|
|
58
|
+
|
|
59
|
+
/* --- PASSWORD STRENGTH COLORS --- */
|
|
60
|
+
--bh-password-strength-weak-color: var(--bh-error-500);
|
|
61
|
+
--bh-password-strength-medium-color: var(--bh-warning-500);
|
|
62
|
+
--bh-password-strength-strong-color: var(--bh-success-500);
|
|
63
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP PROGRESS BAR COMPONENT TOKENS
|
|
3
|
+
Component-specific tokens that map to semantic layer
|
|
4
|
+
========================================================================== */
|
|
5
|
+
|
|
6
|
+
@use '../_semantic.scss';
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* --- PROGRESS BAR SIZING --- */
|
|
10
|
+
--bh-progress-bar-height: calc(var(--bh-spacing-md) * 0.5); /* 8px */
|
|
11
|
+
|
|
12
|
+
/* --- PROGRESS BAR BORDER --- */
|
|
13
|
+
--bh-progress-bar-radius: var(--bh-radius-full);
|
|
14
|
+
|
|
15
|
+
/* --- PROGRESS BAR TRANSITION --- */
|
|
16
|
+
--bh-progress-bar-transition: width 0.3s ease-in-out;
|
|
17
|
+
|
|
18
|
+
/* --- PROGRESS BAR ANIMATION --- */
|
|
19
|
+
--bh-progress-bar-animation-duration: 3s;
|
|
20
|
+
|
|
21
|
+
/* --- PROGRESS BAR COLORS --- */
|
|
22
|
+
--bh-progress-bar-bg: var(--bh-neutral-200);
|
|
23
|
+
--bh-progress-bar-bg-filled: var(--bh-brand-600);
|
|
24
|
+
|
|
25
|
+
/* --- PROGRESS BAR LABEL --- */
|
|
26
|
+
--bh-progress-bar-label-color: var(--bh-neutral-800);
|
|
27
|
+
--bh-progress-bar-label-border: var(--bh-neutral-200);
|
|
28
|
+
--bh-progress-bar-label-font-size: var(--bh-font-body-sm);
|
|
29
|
+
--bh-progress-bar-label-line-height: var(--bh-line-height-body);
|
|
30
|
+
--bh-progress-bar-label-font-weight: var(--bh-font-weight-semibold);
|
|
31
|
+
--bh-progress-bar-label-padding: 0 var(--bh-spacing-xs);
|
|
32
|
+
--bh-progress-bar-label-shadow: var(--bh-shadow-sm);
|
|
33
|
+
--bh-progress-bar-label-radius: var(--bh-radius-md);
|
|
34
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP PROGRESS SPINNER COMPONENT TOKENS
|
|
3
|
+
Component-specific tokens that map to semantic layer
|
|
4
|
+
========================================================================== */
|
|
5
|
+
|
|
6
|
+
@use '../_semantic.scss';
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* --- PROGRESS SPINNER SIZING --- */
|
|
10
|
+
--bh-progress-spinner-size-xs: 16px;
|
|
11
|
+
--bh-progress-spinner-size-sm: 24px;
|
|
12
|
+
--bh-progress-spinner-size-md: 40px;
|
|
13
|
+
--bh-progress-spinner-size-lg: 56px;
|
|
14
|
+
--bh-progress-spinner-size-xl: 72px;
|
|
15
|
+
|
|
16
|
+
/* --- PROGRESS SPINNER STROKE --- */
|
|
17
|
+
--bh-progress-spinner-stroke-width: 4;
|
|
18
|
+
|
|
19
|
+
/* --- PROGRESS SPINNER SPACING --- */
|
|
20
|
+
--bh-progress-spinner-gap: var(--bh-spacing-sm);
|
|
21
|
+
--bh-progress-spinner-overlay-gap: var(--bh-spacing-md);
|
|
22
|
+
--bh-progress-spinner-message-margin-top: var(--bh-spacing-xs);
|
|
23
|
+
|
|
24
|
+
/* --- PROGRESS SPINNER ANIMATION --- */
|
|
25
|
+
--bh-progress-spinner-rotation-duration: 2s;
|
|
26
|
+
--bh-progress-spinner-dash-duration: 1.5s;
|
|
27
|
+
--bh-progress-spinner-rotation-duration-hover: 1s;
|
|
28
|
+
--bh-progress-spinner-dash-duration-hover: 0.6s;
|
|
29
|
+
|
|
30
|
+
/* --- PROGRESS SPINNER OVERLAY --- */
|
|
31
|
+
--bh-progress-spinner-overlay-bg: rgba(0, 0, 0, 0.3);
|
|
32
|
+
--bh-progress-spinner-overlay-backdrop-blur: blur(4px);
|
|
33
|
+
--bh-progress-spinner-overlay-z-index: 9999;
|
|
34
|
+
|
|
35
|
+
/* --- PROGRESS SPINNER MESSAGE --- */
|
|
36
|
+
--bh-progress-spinner-message-color: var(--bh-neutral-700);
|
|
37
|
+
--bh-progress-spinner-message-color-overlay: var(--bh-white);
|
|
38
|
+
--bh-progress-spinner-message-font-size: var(--bh-font-size-sm);
|
|
39
|
+
--bh-progress-spinner-message-line-height: var(--bh-line-height-sm);
|
|
40
|
+
--bh-progress-spinner-message-font-weight: var(--bh-font-weight-medium);
|
|
41
|
+
|
|
42
|
+
/* --- PROGRESS SPINNER GRADIENT --- */
|
|
43
|
+
--bh-progress-spinner-gradient-start: var(--bh-accent-300);
|
|
44
|
+
--bh-progress-spinner-gradient-mid: var(--bh-brand-400);
|
|
45
|
+
--bh-progress-spinner-gradient-end: var(--bh-brand-600);
|
|
46
|
+
|
|
47
|
+
/* --- PROGRESS SPINNER WHITE VARIANT --- */
|
|
48
|
+
--bh-progress-spinner-white-opacity-start: 1;
|
|
49
|
+
--bh-progress-spinner-white-opacity-mid: 0.8;
|
|
50
|
+
--bh-progress-spinner-white-opacity-end: 0.5;
|
|
51
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RadioButton Component Tokens
|
|
3
|
+
* Maps semantic design tokens to RadioButton-specific custom properties
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@use '../_semantic.scss';
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* ================================
|
|
10
|
+
Size Tokens
|
|
11
|
+
================================ */
|
|
12
|
+
|
|
13
|
+
--bh-radiobutton-size-sm: 16px;
|
|
14
|
+
--bh-radiobutton-size-md: 20px;
|
|
15
|
+
|
|
16
|
+
/* ================================
|
|
17
|
+
Color Tokens - Default State
|
|
18
|
+
================================ */
|
|
19
|
+
|
|
20
|
+
--bh-radiobutton-bg: var(--bh-white);
|
|
21
|
+
--bh-radiobutton-bg-checked: var(--bh-brand-600);
|
|
22
|
+
--bh-radiobutton-border: var(--bh-neutral-400);
|
|
23
|
+
--bh-radiobutton-border-checked: var(--bh-brand-600);
|
|
24
|
+
--bh-radiobutton-indicator: var(--bh-white);
|
|
25
|
+
|
|
26
|
+
/* ================================
|
|
27
|
+
Color Tokens - Hover State
|
|
28
|
+
================================ */
|
|
29
|
+
|
|
30
|
+
--bh-radiobutton-bg-hover: var(--bh-neutral-50);
|
|
31
|
+
--bh-radiobutton-bg-checked-hover: var(--bh-brand-700);
|
|
32
|
+
--bh-radiobutton-border-hover: var(--bh-brand-500);
|
|
33
|
+
--bh-radiobutton-border-checked-hover: var(--bh-brand-700);
|
|
34
|
+
|
|
35
|
+
/* ================================
|
|
36
|
+
Color Tokens - Focus State
|
|
37
|
+
================================ */
|
|
38
|
+
|
|
39
|
+
--bh-radiobutton-border-focus: var(--bh-brand-600);
|
|
40
|
+
--bh-radiobutton-outline-focus: var(--bh-brand-100);
|
|
41
|
+
--bh-radiobutton-outline-offset: 2px;
|
|
42
|
+
|
|
43
|
+
/* ================================
|
|
44
|
+
Color Tokens - Disabled State
|
|
45
|
+
================================ */
|
|
46
|
+
|
|
47
|
+
--bh-radiobutton-bg-disabled: var(--bh-neutral-100);
|
|
48
|
+
--bh-radiobutton-bg-checked-disabled: var(--bh-neutral-300);
|
|
49
|
+
--bh-radiobutton-border-disabled: var(--bh-neutral-300);
|
|
50
|
+
--bh-radiobutton-indicator-disabled: var(--bh-neutral-500);
|
|
51
|
+
--bh-radiobutton-label-disabled: var(--bh-neutral-500);
|
|
52
|
+
|
|
53
|
+
/* ================================
|
|
54
|
+
Color Tokens - Invalid State
|
|
55
|
+
================================ */
|
|
56
|
+
|
|
57
|
+
--bh-radiobutton-border-invalid: var(--bh-error-600);
|
|
58
|
+
--bh-radiobutton-border-invalid-hover: var(--bh-error-700);
|
|
59
|
+
--bh-radiobutton-outline-invalid: var(--bh-error-100);
|
|
60
|
+
|
|
61
|
+
/* ================================
|
|
62
|
+
Spacing Tokens
|
|
63
|
+
================================ */
|
|
64
|
+
|
|
65
|
+
--bh-radiobutton-indicator-size: 8px;
|
|
66
|
+
--bh-radiobutton-indicator-size-sm: 6px;
|
|
67
|
+
--bh-radiobutton-label-gap: 8px;
|
|
68
|
+
|
|
69
|
+
/* ================================
|
|
70
|
+
Border Tokens
|
|
71
|
+
================================ */
|
|
72
|
+
|
|
73
|
+
--bh-radiobutton-border-width: 2px;
|
|
74
|
+
--bh-radiobutton-border-radius: 50%;
|
|
75
|
+
|
|
76
|
+
/* ================================
|
|
77
|
+
Transition Tokens
|
|
78
|
+
================================ */
|
|
79
|
+
|
|
80
|
+
--bh-radiobutton-transition: all 0.15s ease-in-out;
|
|
81
|
+
|
|
82
|
+
/* ================================
|
|
83
|
+
Variant: Filled
|
|
84
|
+
================================ */
|
|
85
|
+
|
|
86
|
+
--bh-radiobutton-filled-bg: var(--bh-neutral-100);
|
|
87
|
+
--bh-radiobutton-filled-bg-hover: var(--bh-neutral-200);
|
|
88
|
+
--bh-radiobutton-filled-bg-checked: var(--bh-brand-50);
|
|
89
|
+
--bh-radiobutton-filled-border-checked: var(--bh-brand-600);
|
|
90
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skeleton Loader Design Tokens
|
|
3
|
+
* Based on BellhopOS design system
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@use '../_semantic.scss';
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* --- SKELETON COLORS --- */
|
|
10
|
+
--bh-skeleton-bg: var(--bh-neutral-200);
|
|
11
|
+
--bh-skeleton-shimmer-from: rgba(255, 255, 255, 0);
|
|
12
|
+
--bh-skeleton-shimmer-via: rgba(255, 255, 255, 0.4);
|
|
13
|
+
--bh-skeleton-shimmer-to: rgba(255, 255, 255, 0);
|
|
14
|
+
|
|
15
|
+
/* --- SKELETON SHAPE --- */
|
|
16
|
+
--bh-skeleton-border-radius: 0.25rem;
|
|
17
|
+
--bh-skeleton-circle-border-radius: 50%;
|
|
18
|
+
|
|
19
|
+
/* --- SKELETON ANIMATION --- */
|
|
20
|
+
--bh-skeleton-animation-duration: 1.2s;
|
|
21
|
+
--bh-skeleton-animation-timing: ease-in-out;
|
|
22
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP TEXTAREA COMPONENT TOKENS
|
|
3
|
+
Component-specific tokens that map to semantic layer
|
|
4
|
+
========================================================================== */
|
|
5
|
+
|
|
6
|
+
@use '../_semantic.scss';
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* --- TEXTAREA FONT --- */
|
|
10
|
+
--bh-textarea-font-family: var(--bh-font-family-base);
|
|
11
|
+
--bh-textarea-font-size: var(--bh-font-size-sm);
|
|
12
|
+
--bh-textarea-font-weight: var(--bh-font-weight-regular);
|
|
13
|
+
--bh-textarea-line-height: var(--bh-line-height-sm);
|
|
14
|
+
|
|
15
|
+
/* --- TEXTAREA SIZING --- */
|
|
16
|
+
--bh-textarea-padding-sm: var(--bh-spacing-sm) var(--bh-spacing-md);
|
|
17
|
+
--bh-textarea-padding-md: var(--bh-spacing-md);
|
|
18
|
+
--bh-textarea-padding-lg: var(--bh-spacing-lg);
|
|
19
|
+
|
|
20
|
+
--bh-textarea-min-height-sm: 64px;
|
|
21
|
+
--bh-textarea-min-height-md: 80px;
|
|
22
|
+
--bh-textarea-min-height-lg: 96px;
|
|
23
|
+
|
|
24
|
+
/* --- TEXTAREA SPACING --- */
|
|
25
|
+
--bh-textarea-wrapper-gap: var(--bh-spacing-sm);
|
|
26
|
+
--bh-textarea-container-gap: var(--bh-spacing-md);
|
|
27
|
+
--bh-textarea-label-gap: var(--bh-spacing-xs);
|
|
28
|
+
|
|
29
|
+
/* --- TEXTAREA BORDER --- */
|
|
30
|
+
--bh-textarea-border-width: var(--bh-border-stroke-medium);
|
|
31
|
+
--bh-textarea-border-radius: var(--bh-radius-md);
|
|
32
|
+
|
|
33
|
+
/* --- TEXTAREA TRANSITION --- */
|
|
34
|
+
--bh-textarea-transition: all 0.2s ease-in-out;
|
|
35
|
+
|
|
36
|
+
/* --- TEXTAREA COLORS - DEFAULT --- */
|
|
37
|
+
--bh-textarea-bg: var(--bh-white);
|
|
38
|
+
--bh-textarea-border: var(--bh-neutral-300);
|
|
39
|
+
--bh-textarea-text-color: var(--bh-neutral-800);
|
|
40
|
+
--bh-textarea-placeholder-color: var(--bh-neutral-500);
|
|
41
|
+
|
|
42
|
+
--bh-textarea-border-hover: var(--bh-brand-500);
|
|
43
|
+
|
|
44
|
+
--bh-textarea-bg-focused: var(--bh-white);
|
|
45
|
+
--bh-textarea-border-focused: var(--bh-brand-500);
|
|
46
|
+
--bh-textarea-focus-shadow: 0 0 0 1px var(--bh-brand-500);
|
|
47
|
+
|
|
48
|
+
--bh-textarea-bg-disabled: var(--bh-neutral-50);
|
|
49
|
+
--bh-textarea-opacity-disabled: 0.5;
|
|
50
|
+
|
|
51
|
+
--bh-textarea-border-invalid: var(--bh-error-300);
|
|
52
|
+
--bh-textarea-border-invalid-hover: var(--bh-error-500);
|
|
53
|
+
--bh-textarea-border-invalid-focused: var(--bh-brand-600);
|
|
54
|
+
|
|
55
|
+
/* --- TEXTAREA COLORS - FILLED VARIANT --- */
|
|
56
|
+
--bh-textarea-filled-bg: var(--bh-neutral-50);
|
|
57
|
+
--bh-textarea-filled-border: transparent;
|
|
58
|
+
--bh-textarea-filled-bg-hover: var(--bh-neutral-100);
|
|
59
|
+
--bh-textarea-filled-bg-focused: var(--bh-white);
|
|
60
|
+
--bh-textarea-filled-border-focused: var(--bh-brand-500);
|
|
61
|
+
|
|
62
|
+
/* --- TEXTAREA LABEL --- */
|
|
63
|
+
--bh-textarea-label-font-size: var(--bh-font-size-sm);
|
|
64
|
+
--bh-textarea-label-font-weight: var(--bh-font-weight-medium);
|
|
65
|
+
--bh-textarea-label-color: var(--bh-neutral-700);
|
|
66
|
+
--bh-textarea-label-required-color: var(--bh-error-500);
|
|
67
|
+
|
|
68
|
+
/* --- TEXTAREA HINT TEXT --- */
|
|
69
|
+
--bh-textarea-hint-font-size: var(--bh-font-size-sm);
|
|
70
|
+
--bh-textarea-hint-color: var(--bh-neutral-600);
|
|
71
|
+
--bh-textarea-hint-error-color: var(--bh-error-600);
|
|
72
|
+
|
|
73
|
+
/* --- TEXTAREA HELP ICON --- */
|
|
74
|
+
--bh-textarea-help-icon-color: var(--bh-neutral-500);
|
|
75
|
+
--bh-textarea-help-icon-color-hover: var(--bh-neutral-700);
|
|
76
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP TOGGLE COMPONENT TOKENS - Material You Design
|
|
3
|
+
Component-specific tokens that map to semantic layer
|
|
4
|
+
========================================================================== */
|
|
5
|
+
|
|
6
|
+
@use '../_semantic.scss';
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* --- TOGGLE WRAPPER --- */
|
|
10
|
+
--bh-toggle-gap-with-text-sm: var(--bh-spacing-md);
|
|
11
|
+
--bh-toggle-gap-with-text-md: var(--bh-spacing-lg);
|
|
12
|
+
|
|
13
|
+
/* --- TOGGLE SWITCH BASE --- */
|
|
14
|
+
--bh-toggle-border-radius: var(--bh-radius-full);
|
|
15
|
+
--bh-toggle-transition: background-color 0.2s ease;
|
|
16
|
+
--bh-toggle-disabled-opacity: 0.38;
|
|
17
|
+
|
|
18
|
+
/* --- TOGGLE SWITCH SIZES --- */
|
|
19
|
+
--bh-toggle-width-sm: 36px;
|
|
20
|
+
--bh-toggle-height-sm: 20px;
|
|
21
|
+
--bh-toggle-width-md: 40px;
|
|
22
|
+
--bh-toggle-height-md: 24px;
|
|
23
|
+
|
|
24
|
+
/* --- TOGGLE SWITCH STATES - UNPRESSED --- */
|
|
25
|
+
--bh-toggle-unpressed-bg: var(--bh-neutral-300);
|
|
26
|
+
--bh-toggle-unpressed-bg-hover: var(--bh-neutral-400);
|
|
27
|
+
--bh-toggle-unpressed-bg-focus: var(--bh-neutral-200);
|
|
28
|
+
--bh-toggle-unpressed-bg-disabled: var(--bh-neutral-100);
|
|
29
|
+
--bh-toggle-unpressed-focus-ring: var(--bh-neutral-600);
|
|
30
|
+
--bh-toggle-unpressed-focus-ring-opacity: 0.12;
|
|
31
|
+
|
|
32
|
+
/* --- TOGGLE SWITCH STATES - PRESSED --- */
|
|
33
|
+
--bh-toggle-pressed-bg: var(--bh-brand-600);
|
|
34
|
+
--bh-toggle-pressed-bg-hover: var(--bh-brand-700);
|
|
35
|
+
--bh-toggle-pressed-bg-focus: var(--bh-brand-600);
|
|
36
|
+
--bh-toggle-pressed-bg-disabled: var(--bh-neutral-200);
|
|
37
|
+
--bh-toggle-pressed-focus-ring: var(--bh-brand-100);
|
|
38
|
+
--bh-toggle-pressed-focus-ring-opacity: 0.24;
|
|
39
|
+
|
|
40
|
+
/* --- TOGGLE BUTTON (HANDLE) --- */
|
|
41
|
+
--bh-toggle-button-bg: var(--bh-white);
|
|
42
|
+
--bh-toggle-button-bg-disabled: var(--bh-neutral-400);
|
|
43
|
+
--bh-toggle-button-bg-disabled-pressed: var(--bh-neutral-100);
|
|
44
|
+
--bh-toggle-button-shadow-hover: var(--bh-shadow-sm);
|
|
45
|
+
--bh-toggle-button-transition: all 0.2s ease;
|
|
46
|
+
|
|
47
|
+
/* --- TOGGLE BUTTON SIZES --- */
|
|
48
|
+
--bh-toggle-button-size-sm: 16px;
|
|
49
|
+
--bh-toggle-button-size-md: 20px;
|
|
50
|
+
--bh-toggle-button-offset-sm: 1px;
|
|
51
|
+
--bh-toggle-button-offset-md: 1px;
|
|
52
|
+
--bh-toggle-button-disabled-size-md: 16px;
|
|
53
|
+
--bh-toggle-button-disabled-offset-md: 4px;
|
|
54
|
+
|
|
55
|
+
/* --- FOCUS RING --- */
|
|
56
|
+
--bh-toggle-focus-ring-offset: -6px;
|
|
57
|
+
--bh-toggle-focus-ring-size: 12px;
|
|
58
|
+
|
|
59
|
+
/* --- TOGGLE LABEL --- */
|
|
60
|
+
--bh-toggle-label-color: var(--bh-neutral-700);
|
|
61
|
+
--bh-toggle-label-font-weight: var(--bh-font-weight-medium);
|
|
62
|
+
--bh-toggle-label-line-height: 1.5;
|
|
63
|
+
--bh-toggle-label-size-sm: var(--bh-font-body-sm);
|
|
64
|
+
--bh-toggle-label-size-md: var(--bh-font-body-md);
|
|
65
|
+
|
|
66
|
+
/* --- TOGGLE SUPPORTING TEXT --- */
|
|
67
|
+
--bh-toggle-supporting-text-color: var(--bh-neutral-600);
|
|
68
|
+
--bh-toggle-supporting-text-font-weight: var(--bh-font-weight-regular);
|
|
69
|
+
--bh-toggle-supporting-text-size: var(--bh-font-body-sm);
|
|
70
|
+
--bh-toggle-supporting-text-margin-top: var(--bh-spacing-xxs);
|
|
71
|
+
|
|
72
|
+
/* --- HIGH CONTRAST MODE --- */
|
|
73
|
+
--bh-toggle-high-contrast-border-width: 2px;
|
|
74
|
+
}
|