@keenmate/pure-css 1.0.0-rc01
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/CHANGELOG.md +49 -0
- package/LICENSE +21 -0
- package/README.md +138 -0
- package/dist/css/base.css +304 -0
- package/dist/css/grid.css +1761 -0
- package/dist/css/pure-css.css +4839 -0
- package/dist/css/utilities.css +2773 -0
- package/package.json +62 -0
- package/src/scss/_base-css-variables.scss +648 -0
- package/src/scss/_fonts.scss +37 -0
- package/src/scss/_pa-grid.scss +292 -0
- package/src/scss/base.scss +15 -0
- package/src/scss/grid.scss +7 -0
- package/src/scss/pure-css.scss +28 -0
- package/src/scss/utilities.scss +759 -0
- package/src/scss/variables/_base.scss +232 -0
- package/src/scss/variables/_colors.scss +231 -0
- package/src/scss/variables/_components.scss +835 -0
- package/src/scss/variables/_index.scss +23 -0
- package/src/scss/variables/_layout.scss +65 -0
- package/src/scss/variables/_spacing.scss +78 -0
- package/src/scss/variables/_system.scss +89 -0
- package/src/scss/variables/_typography.scss +37 -0
|
@@ -0,0 +1,835 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// COMPONENT VARIABLES
|
|
3
|
+
// Component-specific dimensions, paddings, and settings
|
|
4
|
+
// ============================================================================
|
|
5
|
+
|
|
6
|
+
// NOTE: All base, layout, typography, spacing, colors, and system variables
|
|
7
|
+
// are available in global scope via @import in _index.scss
|
|
8
|
+
// No @use needed since we use @import for proper !default cascading
|
|
9
|
+
|
|
10
|
+
// NOTE: 10px rem base - all rem values are now in 10px units (1rem = 10px)
|
|
11
|
+
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// BADGE SYSTEM
|
|
14
|
+
// ============================================================================
|
|
15
|
+
$badge-padding-v: 0.2rem !default; // 2px (was 0.125rem)
|
|
16
|
+
$badge-padding-h: 0.8rem !default; // 8px (was 0.5rem)
|
|
17
|
+
|
|
18
|
+
// Composite badge dimensions
|
|
19
|
+
$composite-badge-icon-width: 3.2rem !default; // 32px (was 2rem)
|
|
20
|
+
$composite-badge-height: 2.8rem !default; // 28px (was 1.75rem)
|
|
21
|
+
$composite-badge-label-padding: 0.8rem !default; // 8px (was 0.5rem)
|
|
22
|
+
$composite-badge-button-width: 2.4rem !default; // 24px (was 1.5rem)
|
|
23
|
+
$composite-badge-min-label-width: 4.8rem !default; // 48px (was 3rem)
|
|
24
|
+
|
|
25
|
+
// Badge group
|
|
26
|
+
$badge-group-gap: 0.8rem !default; // 8px (was 0.5rem)
|
|
27
|
+
$badge-group-visible-limit: 5 !default;
|
|
28
|
+
|
|
29
|
+
// Badge colors
|
|
30
|
+
$badge-success-bg: $success-text-light !default;
|
|
31
|
+
$badge-success-text: $success-text !default;
|
|
32
|
+
$badge-warning-bg: $warning-text-light !default;
|
|
33
|
+
$badge-warning-text: $warning-text !default;
|
|
34
|
+
$badge-info-bg: $info-text-light !default;
|
|
35
|
+
$badge-info-text: $info-text !default;
|
|
36
|
+
$badge-danger-bg: $danger-text-light !default;
|
|
37
|
+
$badge-danger-text: $danger-text !default;
|
|
38
|
+
$badge-pill-radius: 50rem !default;
|
|
39
|
+
|
|
40
|
+
// Composite badge colors
|
|
41
|
+
$composite-badge-icon-bg: $btn-secondary-bg !default;
|
|
42
|
+
$composite-badge-label-bg: $secondary-light-bg !default;
|
|
43
|
+
$composite-badge-label-text: $secondary-light-text !default;
|
|
44
|
+
$composite-badge-label-hover-bg: $secondary-lighter-bg !default;
|
|
45
|
+
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// BUTTON SYSTEM
|
|
48
|
+
// ============================================================================
|
|
49
|
+
$btn-group-gap: 0.3rem !default; // 3px - default gap (use gap-* utilities for other sizes)
|
|
50
|
+
|
|
51
|
+
// Button specific - vertical padding matches input padding for height alignment
|
|
52
|
+
$btn-padding-v: 0.8rem !default; // 8px - matches input default
|
|
53
|
+
$btn-padding-h: 1.2rem !default; // 12px
|
|
54
|
+
$btn-padding-xs-v: 0.6rem !default; // 6px - matches input-xs
|
|
55
|
+
$btn-padding-xs-h: 0.8rem !default; // 8px
|
|
56
|
+
$btn-padding-sm-v: 0.8rem !default; // 8px - matches input default
|
|
57
|
+
$btn-padding-sm-h: 1rem !default; // 10px
|
|
58
|
+
$btn-padding-lg-v: 0.8rem !default; // 8px - matches input default
|
|
59
|
+
$btn-padding-lg-h: 1.4rem !default; // 14px
|
|
60
|
+
$btn-padding-xl-v: 0.8rem !default; // 8px - matches input default
|
|
61
|
+
$btn-padding-xl-h: 1.6rem !default; // 16px
|
|
62
|
+
$btn-border-width: 1px !default;
|
|
63
|
+
$btn-icon-margin: 0.8rem !default; // 8px (was 0.5rem)
|
|
64
|
+
$btn-min-width: 9.6rem !default; // 96px (was 6rem)
|
|
65
|
+
|
|
66
|
+
// Button fixed-width utilities (10px base)
|
|
67
|
+
$btn-width-1x: 1.6rem !default; // 16px (was 1rem)
|
|
68
|
+
$btn-width-2x: 3.2rem !default; // 32px (was 2rem)
|
|
69
|
+
$btn-width-3x: 4.8rem !default; // 48px (was 3rem)
|
|
70
|
+
$btn-width-4x: 6.4rem !default; // 64px (was 4rem)
|
|
71
|
+
$btn-width-5x: 8rem !default; // 80px (was 5rem)
|
|
72
|
+
$btn-width-6x: 9.6rem !default; // 96px (was 6rem)
|
|
73
|
+
$btn-width-7x: 11.2rem !default; // 112px (was 7rem)
|
|
74
|
+
$btn-width-8x: 12.8rem !default; // 128px (was 8rem)
|
|
75
|
+
$btn-width-9x: 14.4rem !default; // 144px (was 9rem)
|
|
76
|
+
$btn-width-10x: 16rem !default; // 160px (was 10rem)
|
|
77
|
+
|
|
78
|
+
// Button interaction
|
|
79
|
+
$btn-hover-lift: -1px !default;
|
|
80
|
+
$btn-hover-brightness: 0.9 !default;
|
|
81
|
+
$btn-disabled-opacity: $opacity-disabled !default;
|
|
82
|
+
$btn-focus-ring-opacity: 0.25 !default;
|
|
83
|
+
|
|
84
|
+
// Button heights - aligned with input heights (source of truth from _base.scss)
|
|
85
|
+
// These are used for icon-only buttons and table cell heights
|
|
86
|
+
$btn-height-xs: #{$base-input-size-xs-height}rem !default; // 31px
|
|
87
|
+
$btn-height-sm: #{$base-input-size-sm-height}rem !default; // 33px
|
|
88
|
+
$btn-height-base: #{$base-input-size-md-height}rem !default; // 35px
|
|
89
|
+
$btn-height-lg: #{$base-input-size-lg-height}rem !default; // 38px
|
|
90
|
+
$btn-height-xl: #{$base-input-size-xl-height}rem !default; // 41px
|
|
91
|
+
|
|
92
|
+
// Icon-only button sizes - match button heights (aligned with inputs)
|
|
93
|
+
$btn-icon-only-size-xs: $btn-height-xs !default;
|
|
94
|
+
$btn-icon-only-size-sm: $btn-height-sm !default;
|
|
95
|
+
$btn-icon-only-size: $btn-height-base !default;
|
|
96
|
+
$btn-icon-only-size-lg: $btn-height-lg !default;
|
|
97
|
+
$btn-icon-only-size-xl: $btn-height-xl !default;
|
|
98
|
+
|
|
99
|
+
// ============================================================================
|
|
100
|
+
// MODAL SYSTEM
|
|
101
|
+
// ============================================================================
|
|
102
|
+
$modal-overlay-bg: rgba(0, 0, 0, 0.5) !default;
|
|
103
|
+
$modal-content-bg: #ffffff !default;
|
|
104
|
+
$modal-header-padding-v: 1.2rem !default; // 12px (was 0.75rem)
|
|
105
|
+
$modal-header-padding-h: 1.6rem !default; // 16px (was 1rem)
|
|
106
|
+
$modal-header-padding: $modal-header-padding-v $modal-header-padding-h !default;
|
|
107
|
+
$modal-body-padding-v: 1.2rem !default; // 12px (was 0.75rem)
|
|
108
|
+
$modal-body-padding-h: 1.6rem !default; // 16px (was 1rem)
|
|
109
|
+
$modal-body-padding: $modal-body-padding-v $modal-body-padding-h !default;
|
|
110
|
+
$modal-footer-padding-v: 1.2rem !default; // 12px (was 0.75rem)
|
|
111
|
+
$modal-footer-padding-h: 1.6rem !default; // 16px (was 1rem)
|
|
112
|
+
$modal-footer-padding: $modal-footer-padding-v $modal-footer-padding-h !default;
|
|
113
|
+
$modal-sm-width: 32rem !default; // 320px (was 20rem)
|
|
114
|
+
$modal-md-width: 48rem !default; // 480px (was 30rem)
|
|
115
|
+
$modal-lg-width: 80rem !default; // 800px (was 50rem)
|
|
116
|
+
$modal-xl-width: 112rem !default; // 1120px (was 70rem)
|
|
117
|
+
$modal-xxl-width: 144rem !default; // 1440px (was 90rem)
|
|
118
|
+
$modal-fw-margin: 1.6rem !default; // 16px (was 1rem)
|
|
119
|
+
$modal-border-radius: 4px !default;
|
|
120
|
+
$modal-close-font-size: $font-size-lg !default;
|
|
121
|
+
$modal-title-font-size: $font-size-lg !default;
|
|
122
|
+
$modal-box-shadow: 0 0.4rem $spacing-sm rgba(0, 0, 0, 0.1) !default;
|
|
123
|
+
$modal-close-size: 4rem !default; // 40px (was 2.5rem)
|
|
124
|
+
$modal-body-scrollable-max-height: 60vh !default;
|
|
125
|
+
$modal-mobile-margin: $spacing-sm !default;
|
|
126
|
+
$modal-mobile-max-height: 95vh !default;
|
|
127
|
+
$modal-header-hover-overlay: rgba(255, 255, 255, 0.1) !default;
|
|
128
|
+
$modal-close-hover-opacity: $opacity-hover !default;
|
|
129
|
+
$modal-close-border-width: $border-width-base !default;
|
|
130
|
+
|
|
131
|
+
// ============================================================================
|
|
132
|
+
// PROFILE PANEL SYSTEM
|
|
133
|
+
// ============================================================================
|
|
134
|
+
$profile-panel-width: 20vw !default;
|
|
135
|
+
$profile-panel-max-width: 48rem !default; // 480px (was 30rem)
|
|
136
|
+
$profile-panel-width-fixed: 320px !default;
|
|
137
|
+
$profile-panel-toggle-size: 40px !default;
|
|
138
|
+
$profile-panel-toggle-size-open: 45px !default;
|
|
139
|
+
$profile-avatar-size: 6.4rem !default; // 64px (was 4rem)
|
|
140
|
+
$profile-close-size: 3.2rem !default; // 32px (was 2rem)
|
|
141
|
+
$profile-nav-icon-width: $sidebar-icon-size !default;
|
|
142
|
+
$profile-section-gap: $spacing-xl !default;
|
|
143
|
+
$profile-overlay-bg: rgba(0, 0, 0, 0.3) !default;
|
|
144
|
+
$profile-button-padding-v: $spacing-sm !default;
|
|
145
|
+
$profile-button-padding-h: $spacing-md !default;
|
|
146
|
+
$profile-panel-mobile-max-width: 40rem !default; // 400px (was 25rem)
|
|
147
|
+
$profile-panel-content-padding: 1.6rem !default; // Matches sidebar-padding horizontal (16px)
|
|
148
|
+
|
|
149
|
+
// ============================================================================
|
|
150
|
+
// DETAIL PANEL SYSTEM
|
|
151
|
+
// ============================================================================
|
|
152
|
+
$detail-panel-width: 40rem !default;
|
|
153
|
+
$detail-panel-min-width: 28rem !default;
|
|
154
|
+
$detail-panel-max-width: 64rem !default;
|
|
155
|
+
$detail-panel-mobile-width: 90vw !default;
|
|
156
|
+
$detail-panel-header-padding-v: 1.2rem !default;
|
|
157
|
+
$detail-panel-header-padding-h: 1.6rem !default;
|
|
158
|
+
$detail-panel-body-padding-v: 1.2rem !default;
|
|
159
|
+
$detail-panel-body-padding-h: 1.6rem !default;
|
|
160
|
+
$detail-panel-footer-padding-v: 1.2rem !default;
|
|
161
|
+
$detail-panel-footer-padding-h: 1.6rem !default;
|
|
162
|
+
$detail-panel-overlay-bg: rgba(0, 0, 0, 0.3) !default;
|
|
163
|
+
$detail-panel-z-index: 4500 !default;
|
|
164
|
+
$detail-panel-shadow: $shadow-profile-panel !default;
|
|
165
|
+
$detail-panel-close-size: 3.2rem !default;
|
|
166
|
+
$detail-panel-resize-handle-width: 6px !default;
|
|
167
|
+
$detail-panel-selected-bg: rgba($accent-color, 0.08) !default;
|
|
168
|
+
|
|
169
|
+
// ============================================================================
|
|
170
|
+
// CARD SYSTEM
|
|
171
|
+
// ============================================================================
|
|
172
|
+
$card-border-width: $border-width-base !default; // Card outer border (themes can override)
|
|
173
|
+
$card-border-radius: $border-radius-lg !default; // Controls card + header corners
|
|
174
|
+
$card-body-padding-v: 1.6rem !default; // 16px vertical
|
|
175
|
+
$card-body-padding-h: 1rem !default; // 10px horizontal
|
|
176
|
+
$card-header-padding-v: 0.5rem !default; // 5px vertical
|
|
177
|
+
$card-header-padding-h: 1rem !default; // 10px horizontal - matches body
|
|
178
|
+
$card-header-min-height: 4rem !default; // 40px - fits xs buttons (32px) with padding
|
|
179
|
+
// Vertical nudge that drops the (smaller) header description onto the title's
|
|
180
|
+
// baseline. Under the header's center alignment a 16px title and 14px
|
|
181
|
+
// description don't share a baseline, leaving the description ~1px high. The
|
|
182
|
+
// exact correction is font-metric dependent, so it's exposed as a variable
|
|
183
|
+
// (SCSS default here + `--pa-card-description-offset-y` at runtime) that themes
|
|
184
|
+
// with a different font can retune. Set to 0 to disable the nudge entirely.
|
|
185
|
+
$card-description-offset-y: 1px !default;
|
|
186
|
+
$card-footer-padding-v: 1.2rem !default; // 12px vertical
|
|
187
|
+
$card-footer-padding-h: 1rem !default; // 10px horizontal - matches body
|
|
188
|
+
$card-grid-min-width: 280px !default;
|
|
189
|
+
$card-stat-padding-v: $spacing-lg !default;
|
|
190
|
+
$card-stat-padding-h: $spacing-base !default;
|
|
191
|
+
|
|
192
|
+
// Card inline tabs (tabs inside header)
|
|
193
|
+
$card-tab-inline-padding-v: 0.3rem !default; // 3px - compact for header
|
|
194
|
+
$card-tab-inline-padding-h: 0.8rem !default; // 8px
|
|
195
|
+
$card-tab-hover-opacity: 0.1 !default;
|
|
196
|
+
|
|
197
|
+
// Responsive actions — header width below which the spread button list
|
|
198
|
+
// hides and the collapsed (split-button) form takes over. Default 28rem
|
|
199
|
+
// = 280px, which fits a 3-button action set comfortably.
|
|
200
|
+
$card-actions-collapse-at: 28rem !default;
|
|
201
|
+
|
|
202
|
+
// ============================================================================
|
|
203
|
+
// TABLE SYSTEM
|
|
204
|
+
// ============================================================================
|
|
205
|
+
// Table base padding (matches button/input default)
|
|
206
|
+
$table-padding-base-v: 0.8rem !default; // 8px - matches button SM/default
|
|
207
|
+
$table-padding-base-h: 0.8rem !default; // 8px
|
|
208
|
+
|
|
209
|
+
// Table size variants - synchronized with button/input sizes
|
|
210
|
+
$table-padding-xs-v: $btn-padding-xs-v !default; // 0.6rem
|
|
211
|
+
$table-padding-xs-h: $btn-padding-xs-h !default; // 0.8rem
|
|
212
|
+
$table-padding-sm-v: $btn-padding-sm-v !default; // 0.8rem
|
|
213
|
+
$table-padding-sm-h: $btn-padding-sm-h !default; // 1rem
|
|
214
|
+
$table-padding-lg-v: $btn-padding-lg-v !default; // 0.8rem
|
|
215
|
+
$table-padding-lg-h: $btn-padding-lg-h !default; // 1.4rem
|
|
216
|
+
$table-padding-xl-v: $btn-padding-xl-v !default; // 0.8rem
|
|
217
|
+
$table-padding-xl-h: $btn-padding-xl-h !default; // 1.6rem
|
|
218
|
+
|
|
219
|
+
// Table cell heights - button height + size-specific buffer
|
|
220
|
+
$table-cell-height-buffer-xs: 0.7rem !default;
|
|
221
|
+
$table-cell-height-buffer-sm: 0.8rem !default;
|
|
222
|
+
$table-cell-height-buffer-lg: 0.8rem !default;
|
|
223
|
+
$table-cell-height-buffer-xl: 0.8rem !default;
|
|
224
|
+
|
|
225
|
+
$table-cell-height-xs: $btn-height-xs + $table-cell-height-buffer-xs !default;
|
|
226
|
+
$table-cell-height: $btn-height-base + $table-cell-height-buffer-sm !default;
|
|
227
|
+
$table-cell-height-sm: $btn-height-sm + $table-cell-height-buffer-sm !default;
|
|
228
|
+
$table-cell-height-lg: $btn-height-lg + $table-cell-height-buffer-lg !default;
|
|
229
|
+
$table-cell-height-xl: $btn-height-xl + $table-cell-height-buffer-xl !default;
|
|
230
|
+
|
|
231
|
+
// Virtual table (for large datasets)
|
|
232
|
+
$virtual-table-cell-padding-v: 0.5rem !default; // 5px (was 0.3rem)
|
|
233
|
+
$virtual-table-cell-padding-h: 0.8rem !default; // 8px (was 0.5rem)
|
|
234
|
+
|
|
235
|
+
// Responsive table system
|
|
236
|
+
$table-responsive-breakpoint: $mobile-breakpoint !default;
|
|
237
|
+
$table-responsive-card-margin: $spacing-base !default;
|
|
238
|
+
$table-responsive-card-padding: $spacing-md !default;
|
|
239
|
+
$table-responsive-label-width: 40% !default;
|
|
240
|
+
$table-responsive-label-font-weight: $font-weight-semibold !default;
|
|
241
|
+
|
|
242
|
+
// ============================================================================
|
|
243
|
+
// FORM SYSTEM
|
|
244
|
+
// ============================================================================
|
|
245
|
+
$form-scale: 0.8rem !default; // 8px (was 0.5rem)
|
|
246
|
+
$form-group-margin-bottom: $spacing-sm !default;
|
|
247
|
+
$form-label-margin-bottom: 0.3rem !default; // ~3px (was 0.2rem)
|
|
248
|
+
$form-help-margin-top: $spacing-xs !default;
|
|
249
|
+
$input-padding-v: $spacing-sm !default; // 0.8rem = 8px
|
|
250
|
+
$input-padding-xs-v: 0.6rem !default; // 6px
|
|
251
|
+
$input-padding-h: $spacing-sm !default; // 0.8rem = 8px
|
|
252
|
+
$select-padding-v: 0.7rem !default; // 7px
|
|
253
|
+
$select-padding-h: 0.5rem !default; // 5px - aligns options with inputs
|
|
254
|
+
$textarea-min-height: 9.6rem !default; // 96px (was 6rem)
|
|
255
|
+
$input-focus-ring-opacity: 0.1 !default;
|
|
256
|
+
$input-focus-border-color: $accent-color !default;
|
|
257
|
+
$select-focus-border-color: $accent-color !default;
|
|
258
|
+
$textarea-focus-border-color: $accent-color !default;
|
|
259
|
+
$input-group-prepend-bg: $secondary-bg !default;
|
|
260
|
+
$input-group-prepend-text: $text-color-2 !default;
|
|
261
|
+
$input-group-append-bg: $secondary-bg !default;
|
|
262
|
+
$input-group-append-text: $text-color-2 !default;
|
|
263
|
+
$checkbox-margin-top: 0.2rem !default; // 2px (was 0.125rem)
|
|
264
|
+
$checkbox-size-xs: 1.2rem !default; // 12px (was 0.75rem)
|
|
265
|
+
$checkbox-size-sm: 1.4rem !default; // 14px (was 0.875rem)
|
|
266
|
+
$checkbox-size: 1.6rem !default; // 16px (was 1rem)
|
|
267
|
+
$checkbox-size-lg: 2rem !default; // 20px (was 1.25rem)
|
|
268
|
+
$checkbox-size-xl: 2.4rem !default; // 24px (was 1.5rem)
|
|
269
|
+
$form-group-margin-compact: 1.2rem !default; // 12px (was 0.75rem)
|
|
270
|
+
|
|
271
|
+
// Custom checkbox appearance (tri-state support)
|
|
272
|
+
$checkbox-border-radius: $border-radius !default; // Match input border-radius
|
|
273
|
+
$checkbox-border-width: $border-width-base !default; // 1px
|
|
274
|
+
$checkbox-border-color: $border-color !default; // Default border
|
|
275
|
+
$checkbox-border-color-hover: $accent-color !default; // Hover border
|
|
276
|
+
$checkbox-border-color-checked: $accent-color !default; // Checked border
|
|
277
|
+
$checkbox-bg: $card-bg !default; // Unchecked background
|
|
278
|
+
$checkbox-bg-checked: $accent-color !default; // Checked background
|
|
279
|
+
$checkbox-bg-indeterminate: $accent-color !default; // Indeterminate background
|
|
280
|
+
$checkbox-checkmark-color: white !default; // Checkmark/dash color
|
|
281
|
+
$checkbox-focus-shadow: 0 0 0 2px rgba($accent-color, 0.25) !default;
|
|
282
|
+
$checkbox-transition: $transition-fast !default;
|
|
283
|
+
|
|
284
|
+
// ============================================================================
|
|
285
|
+
// MULTISELECT SYSTEM
|
|
286
|
+
// ============================================================================
|
|
287
|
+
$multiselect-input-padding-v: $input-padding-v !default;
|
|
288
|
+
$multiselect-input-padding-h: $input-padding-h !default;
|
|
289
|
+
$multiselect-dropdown-bg: $card-bg !default;
|
|
290
|
+
$multiselect-dropdown-border: $border-color !default;
|
|
291
|
+
$multiselect-dropdown-text: $text-color-1 !default;
|
|
292
|
+
$multiselect-dropdown-shadow: $shadow-lg !default;
|
|
293
|
+
$multiselect-dropdown-max-height: 32rem !default; // 320px (was 20rem)
|
|
294
|
+
$multiselect-hint-bg: $main-bg !default;
|
|
295
|
+
$multiselect-hint-border: $border-color !default;
|
|
296
|
+
$multiselect-hint-padding: $spacing-sm !default;
|
|
297
|
+
$multiselect-option-padding-v: $spacing-sm !default;
|
|
298
|
+
$multiselect-option-padding-h: $spacing-md !default;
|
|
299
|
+
$multiselect-option-hover-bg: $main-bg !default;
|
|
300
|
+
$multiselect-pill-bg: $accent-light !default;
|
|
301
|
+
$multiselect-pill-border: $accent-color !default;
|
|
302
|
+
$multiselect-pill-padding: $spacing-xs $spacing-sm !default;
|
|
303
|
+
$multiselect-pill-gap: $spacing-xs !default;
|
|
304
|
+
$multiselect-selected-popover-width: 32rem !default; // 320px (was 20rem)
|
|
305
|
+
|
|
306
|
+
// ============================================================================
|
|
307
|
+
// ALERT SYSTEM
|
|
308
|
+
// ============================================================================
|
|
309
|
+
// Default alert padding — decoupled from $card-footer-padding so alerts
|
|
310
|
+
// can have their own scale. The previous coupling left default with V
|
|
311
|
+
// padding (1.2rem) bigger than --lg's (1rem) and H padding (1rem) equal
|
|
312
|
+
// to --sm's, so default sat visually outside the size scale instead of
|
|
313
|
+
// in the middle.
|
|
314
|
+
$alert-padding-v: $spacing-md !default; // 0.75rem
|
|
315
|
+
$alert-padding-h: 1.25rem !default; // sits between --sm (1rem) and --lg (1.5rem)
|
|
316
|
+
|
|
317
|
+
// Size-modifier scales — themes can override to tighten/loosen each size
|
|
318
|
+
// independently. V steps 0.5 → 0.75 → 1, H steps 1 → 1.25 → 1.5.
|
|
319
|
+
$alert-padding-sm-v: $spacing-sm !default; // 0.5rem
|
|
320
|
+
$alert-padding-sm-h: $spacing-base !default; // 1rem
|
|
321
|
+
$alert-font-size-sm: $font-size-xs !default; // 1.2rem (12px)
|
|
322
|
+
$alert-padding-lg-v: $spacing-base !default; // 1rem
|
|
323
|
+
$alert-padding-lg-h: $spacing-lg !default; // 1.5rem
|
|
324
|
+
$alert-font-size-lg: $font-size-base !default; // 1.6rem (16px)
|
|
325
|
+
|
|
326
|
+
$alert-dismissible-padding-right: 4.8rem !default; // 48px (was 3rem)
|
|
327
|
+
$alert-close-opacity: $opacity-muted !default;
|
|
328
|
+
$alert-icon-margin: $spacing-sm !default;
|
|
329
|
+
$alert-list-padding-left: $spacing-lg !default;
|
|
330
|
+
$alert-list-item-margin-top: $card-footer-padding-v !default;
|
|
331
|
+
|
|
332
|
+
// Alert colors - Now derived via color-mix() mixins in _base-css-variables.scss
|
|
333
|
+
// Themes call output-pa-alert-variables-light/dark instead of hardcoding values
|
|
334
|
+
// Keep only the text transform variable as it's not color-related
|
|
335
|
+
$alert-danger-text-transform: none !default;
|
|
336
|
+
|
|
337
|
+
// ============================================================================
|
|
338
|
+
// CALLOUT SYSTEM
|
|
339
|
+
// ============================================================================
|
|
340
|
+
$callout-border-width: 0.4rem !default; // 4px left border accent
|
|
341
|
+
|
|
342
|
+
// ============================================================================
|
|
343
|
+
// STATS SYSTEM
|
|
344
|
+
// ============================================================================
|
|
345
|
+
$stat-icon-size: 4.8rem !default; // 48px (was 3rem)
|
|
346
|
+
$stat-square-min-size: 12.8rem !default; // 128px (was 8rem)
|
|
347
|
+
$stat-label-letter-spacing: 0.05em !default;
|
|
348
|
+
$stat-change-margin-bottom: 0.4rem !default; // 4px (was 0.25rem)
|
|
349
|
+
$stat-number-margin-bottom: $spacing-xs !default;
|
|
350
|
+
$stat-symbol-opacity: 0.85 !default;
|
|
351
|
+
$stat-square-symbol-gap: 0.15em !default; // tight gap between number and symbol on the same row
|
|
352
|
+
|
|
353
|
+
// Stat square clamp values (10px base).
|
|
354
|
+
// Scale uses `cqi` (container query inline-size, requires `container-type: inline-size`
|
|
355
|
+
// on .pa-stat--square) so font tracks the tile width, not the viewport. Without this,
|
|
356
|
+
// a wide-viewport / narrow-tile combination (e.g. 6 KPIs in a 33% column on 1920px)
|
|
357
|
+
// hits the max font size and overflows multi-character values like "$847K" or "¥12.4M".
|
|
358
|
+
//
|
|
359
|
+
// Sizing budget: a 5-char number ("12.4M") at $stat-square-number-scale plus a 1-char
|
|
360
|
+
// symbol at $stat-square-symbol-scale plus the inter-element gap should fit inside the
|
|
361
|
+
// tile's content area (tile width minus 2× $spacing-lg padding) at typical tile widths
|
|
362
|
+
// (~250–400px). Numbers are sized aggressively so the KPI reads as the dominant element.
|
|
363
|
+
$stat-square-number-min: 3.2rem !default; // 32px floor
|
|
364
|
+
$stat-square-number-scale: 25cqi !default; // 25% of tile width
|
|
365
|
+
$stat-square-number-max: 7.2rem !default; // 72px ceiling (was 9.6 — full-width tiles hit the ceiling and read as oversized banners; 72px keeps a wide tile readable without dominating the page)
|
|
366
|
+
// Symbol is intentionally smaller than the number (visual hierarchy: number primary, unit secondary).
|
|
367
|
+
$stat-square-symbol-min: 1.6rem !default; // 16px floor (~50% of number-min)
|
|
368
|
+
$stat-square-symbol-scale: 12cqi !default; // 12% of tile width (~48% of number)
|
|
369
|
+
$stat-square-symbol-max: 3.6rem !default; // 36px ceiling (~50% of number-max, was 4.8)
|
|
370
|
+
|
|
371
|
+
// Guard so a very wide tile (e.g. one square per full-width row instead of in a
|
|
372
|
+
// 1/3 KPI column) can't grow into a page-dominating block. Caps how tall the
|
|
373
|
+
// flex layout gets before the label is pushed to the bottom edge.
|
|
374
|
+
$stat-square-max-height: 16rem !default; // 160px
|
|
375
|
+
|
|
376
|
+
// Stat square FIT mode (opt-in via [data-pa-stat-fit]) — progressive disclosure.
|
|
377
|
+
// The number is sized to fill the box by pa-stat-fit.js (ResizeObserver); the
|
|
378
|
+
// lower-priority rows reveal as the tile earns BOTH enough width and height.
|
|
379
|
+
// NB: @container does NOT auto-interpolate Sass vars (unlike @media) — these
|
|
380
|
+
// must be emitted with #{} in the rules. Gated on width AND height so a
|
|
381
|
+
// wide-but-short banner doesn't reveal the tall-only tiers.
|
|
382
|
+
$stat-square-fit-container-name: pa-stat !default;
|
|
383
|
+
$stat-square-fit-meta-size: $font-size-xs !default; // no-JS fallback for the metadata
|
|
384
|
+
// column; pa-stat-fit.js overrides it
|
|
385
|
+
// inline with META_RATIO × number size
|
|
386
|
+
$stat-square-fit-symbol-ratio: 0.5 !default; // symbol = 0.5em of the number
|
|
387
|
+
$stat-square-fit-symbol-min-w: 8rem !default; // P1 symbol reveals at…
|
|
388
|
+
$stat-square-fit-symbol-min-h: 4.5rem !default;
|
|
389
|
+
$stat-square-fit-label-min-w: 13rem !default; // P2 label
|
|
390
|
+
$stat-square-fit-label-min-h: 6.5rem !default;
|
|
391
|
+
$stat-square-fit-change-min-w: 18rem !default; // P3 trend
|
|
392
|
+
$stat-square-fit-change-min-h: 9.5rem !default;
|
|
393
|
+
$stat-square-fit-context-min-w: 24rem !default; // P4 context
|
|
394
|
+
$stat-square-fit-context-min-h: 13rem !default;
|
|
395
|
+
|
|
396
|
+
// Horizontal "banner" arrangement: on wide tiles the number moves to the left
|
|
397
|
+
// (filling the height) and the metadata stacks in a column to its right, so the
|
|
398
|
+
// number stays dominant and the width isn't wasted. Auto-switches once the tile
|
|
399
|
+
// is at least this wide (plain width query — broadest engine support).
|
|
400
|
+
$stat-square-fit-horizontal-min-w: 32rem !default; // ≥ this wide → horizontal banner
|
|
401
|
+
$stat-square-fit-number-width: 44% !default; // number column share in horizontal
|
|
402
|
+
|
|
403
|
+
// Stat shadow values
|
|
404
|
+
$stat-text-shadow-1-y: 4px !default;
|
|
405
|
+
$stat-text-shadow-1-blur: 8px !default;
|
|
406
|
+
$stat-text-shadow-2-y: 2px !default;
|
|
407
|
+
$stat-text-shadow-2-blur: 4px !default;
|
|
408
|
+
$stat-drop-shadow-y: 2px !default;
|
|
409
|
+
$stat-drop-shadow-blur: 4px !default;
|
|
410
|
+
|
|
411
|
+
// ============================================================================
|
|
412
|
+
// DASHBOARD & CHARTS
|
|
413
|
+
// ============================================================================
|
|
414
|
+
$chart-height: 400px !default;
|
|
415
|
+
$dashboard-grid-col-sm: 80px !default;
|
|
416
|
+
$dashboard-grid-col-md: 100px !default;
|
|
417
|
+
$dashboard-grid-col-lg: 120px !default;
|
|
418
|
+
|
|
419
|
+
// ============================================================================
|
|
420
|
+
// SPINNER/LOADER SYSTEM
|
|
421
|
+
// ============================================================================
|
|
422
|
+
$spinner-size: 1.6rem !default; // 16px (was 1rem)
|
|
423
|
+
$spinner-border-width: 2px !default;
|
|
424
|
+
$loader-border-width: 3px !default;
|
|
425
|
+
$loader-dot-size: 1.2rem !default; // 12px (was 0.75rem)
|
|
426
|
+
$loader-bar-width: $spacing-xs !default;
|
|
427
|
+
$loader-bar-height: $spacing-lg !default;
|
|
428
|
+
$loader-animation-opacity-min: $opacity-muted !default;
|
|
429
|
+
$loader-overlay-bg: rgba(255, 255, 255, 0.8) !default;
|
|
430
|
+
|
|
431
|
+
// Loader animation delays
|
|
432
|
+
$loader-dots-delay-1: -0.32s !default;
|
|
433
|
+
$loader-dots-delay-2: -0.16s !default;
|
|
434
|
+
$loader-bars-delay-1: -1.2s !default;
|
|
435
|
+
$loader-bars-delay-2: -1.1s !default;
|
|
436
|
+
$loader-bars-delay-3: -1.0s !default;
|
|
437
|
+
$loader-bars-delay-4: -0.9s !default;
|
|
438
|
+
$loader-bars-delay-5: -0.8s !default;
|
|
439
|
+
|
|
440
|
+
// Loader animation properties
|
|
441
|
+
$loader-pulse-duration: 1.2s !default;
|
|
442
|
+
$loader-pulse-easing: cubic-bezier(0.5, 0, 0.5, 1) !default;
|
|
443
|
+
|
|
444
|
+
// ============================================================================
|
|
445
|
+
// TABS SYSTEM
|
|
446
|
+
// ============================================================================
|
|
447
|
+
$tabs-margin-bottom: $spacing-sm !default;
|
|
448
|
+
$tabs-panel-padding-top: $spacing-sm !default;
|
|
449
|
+
$tabs-vertical-icon-size: $sidebar-icon-size !default;
|
|
450
|
+
$tabs-vertical-item-gap: $sidebar-item-gap !default;
|
|
451
|
+
$tabs-pill-hover-opacity: 0.1 !default;
|
|
452
|
+
$tabs-pill-border-opacity: 0.3 !default;
|
|
453
|
+
$tabs-boxed-hover-opacity: 0.1 !default;
|
|
454
|
+
$tabs-vertical-hover-opacity: 0.05 !default;
|
|
455
|
+
$tabs-vertical-active-opacity: 0.1 !default;
|
|
456
|
+
$tabs-scroll-btn-width: 3.2rem !default; // 32px (was 2rem)
|
|
457
|
+
$tabs-scroll-gradient-opacity: 0.95 !default;
|
|
458
|
+
$tabs-scroll-hover-gradient-opacity: 0.8 !default;
|
|
459
|
+
|
|
460
|
+
// ============================================================================
|
|
461
|
+
// TOAST SYSTEM
|
|
462
|
+
// ============================================================================
|
|
463
|
+
$toast-min-width: 32rem !default; // 320px (was 20rem)
|
|
464
|
+
$toast-max-width: 40rem !default; // 400px (was 25rem)
|
|
465
|
+
$toast-padding-v: $spacing-md !default;
|
|
466
|
+
$toast-padding-h: $spacing-md !default;
|
|
467
|
+
$toast-icon-size: 3.2rem !default; // 32px (was 2rem)
|
|
468
|
+
$toast-close-size: 2.4rem !default; // 24px (was 1.5rem)
|
|
469
|
+
$toast-progress-height: 5px !default;
|
|
470
|
+
|
|
471
|
+
// ============================================================================
|
|
472
|
+
// TOOLTIP SYSTEM
|
|
473
|
+
// ============================================================================
|
|
474
|
+
$tooltip-arrow-size: 5px !default;
|
|
475
|
+
$tooltip-distance: 8px !default;
|
|
476
|
+
$tooltip-offset: 4px !default;
|
|
477
|
+
$tooltip-max-width: 24rem !default; // 240px (was 15rem)
|
|
478
|
+
$tooltip-multiline-max-width: 32rem !default; // 320px (was 20rem)
|
|
479
|
+
$tooltip-multiline-width: 32rem !default; // 320px (was 20rem)
|
|
480
|
+
$tooltip-arrow-offset: 2px !default;
|
|
481
|
+
$tooltip-z-index: $z-index-tooltip !default;
|
|
482
|
+
|
|
483
|
+
// ============================================================================
|
|
484
|
+
// POPOVER SYSTEM
|
|
485
|
+
// ============================================================================
|
|
486
|
+
$popover-min-width: 25.6rem !default; // 256px (was 16rem)
|
|
487
|
+
$popover-max-width: 32rem !default; // 320px (was 20rem)
|
|
488
|
+
$popover-arrow-size: 6px !default;
|
|
489
|
+
$popover-distance: 8px !default;
|
|
490
|
+
$popover-trigger-size: 2rem !default; // 20px (was 1.25rem)
|
|
491
|
+
$popover-close-size: $spacing-lg !default;
|
|
492
|
+
$popover-header-padding-v: $spacing-sm !default;
|
|
493
|
+
$popover-header-padding-h: $spacing-sm !default;
|
|
494
|
+
$popover-header-padding-right: 0.3rem !default; // ~3px (was 0.2rem)
|
|
495
|
+
$popover-header-padding: $popover-header-padding-v $popover-header-padding-right $popover-header-padding-v $popover-header-padding-h !default;
|
|
496
|
+
$popover-header-border: $border-width-base solid $border-color !default;
|
|
497
|
+
$popover-header-border-radius: $border-radius $border-radius 0 0 !default;
|
|
498
|
+
$popover-title-font-size: $font-size-lg !default;
|
|
499
|
+
$popover-sm-min-width: 19.2rem !default; // 192px (was 12rem)
|
|
500
|
+
$popover-sm-max-width: 25.6rem !default; // 256px (was 16rem)
|
|
501
|
+
$popover-lg-min-width: 32rem !default; // 320px (was 20rem)
|
|
502
|
+
$popover-lg-max-width: 44.8rem !default; // 448px (was 28rem)
|
|
503
|
+
$popover-shift-offset: 3.2rem !default; // 32px (was 2rem)
|
|
504
|
+
$popover-z-index: $z-index-popover !default;
|
|
505
|
+
|
|
506
|
+
// Popover code element styling (10px base)
|
|
507
|
+
$popover-code-padding-v: 0.2rem !default; // 2px (was 0.125rem)
|
|
508
|
+
$popover-code-padding-h: 0.4rem !default; // 4px (was 0.25rem)
|
|
509
|
+
$popover-code-font-scale: 0.9em !default;
|
|
510
|
+
|
|
511
|
+
// ============================================================================
|
|
512
|
+
// COMMAND PALETTE SYSTEM
|
|
513
|
+
// ============================================================================
|
|
514
|
+
$command-palette-width: 60.8rem !default; // 608px (was 38rem)
|
|
515
|
+
$command-palette-offset-top: 12.8rem !default; // 128px (was 8rem)
|
|
516
|
+
$command-palette-border-radius: $border-radius !default;
|
|
517
|
+
$command-palette-backdrop-bg: rgba(0, 0, 0, 0.5) !default;
|
|
518
|
+
$command-palette-backdrop-blur: 4px !default;
|
|
519
|
+
$command-palette-shadow: 0 1.6rem 4.8rem rgba(0, 0, 0, 0.3) !default; // 16px 48px (was 1rem 3rem)
|
|
520
|
+
$command-palette-input-padding-v: $input-padding-v !default;
|
|
521
|
+
$command-palette-input-padding-h: $input-padding-h !default;
|
|
522
|
+
$command-palette-input-font-size: $font-size-base !default;
|
|
523
|
+
$command-palette-results-max-height: 38.4rem !default; // 384px (was 24rem)
|
|
524
|
+
$command-palette-empty-padding-v: $spacing-2xl !default;
|
|
525
|
+
$command-palette-item-padding-v: $spacing-sm !default;
|
|
526
|
+
$command-palette-item-hover-bg: rgba($accent-color, 0.05) !default;
|
|
527
|
+
$command-palette-item-active-bg: rgba($accent-color, 0.1) !default;
|
|
528
|
+
$command-palette-item-icon-size: 3.2rem !default; // 32px (was 2rem)
|
|
529
|
+
$command-palette-highlight-bg: rgba($accent-color, 0.2) !default;
|
|
530
|
+
$command-palette-highlight-text: $accent-color !default;
|
|
531
|
+
|
|
532
|
+
// ============================================================================
|
|
533
|
+
// SETTINGS PANEL SYSTEM
|
|
534
|
+
// ============================================================================
|
|
535
|
+
$settings-panel-top: 15vh !default;
|
|
536
|
+
$settings-panel-height: 70vh !default;
|
|
537
|
+
$settings-panel-min-height: 400px !default;
|
|
538
|
+
$settings-panel-vertical-clearance: 100px !default;
|
|
539
|
+
$settings-panel-hover-offset: 5px !default;
|
|
540
|
+
$settings-panel-transition-duration: 0.3s !default;
|
|
541
|
+
$settings-panel-transition-easing: ease !default;
|
|
542
|
+
|
|
543
|
+
// ============================================================================
|
|
544
|
+
// PAGER SYSTEM
|
|
545
|
+
// ============================================================================
|
|
546
|
+
$pager-input-width: 6.4rem !default; // 64px (was 4rem)
|
|
547
|
+
$pager-controls-gap: $spacing-xs !default;
|
|
548
|
+
$pager-button-margin: $spacing-base !default;
|
|
549
|
+
|
|
550
|
+
// ============================================================================
|
|
551
|
+
// TIMELINE SYSTEM
|
|
552
|
+
// ============================================================================
|
|
553
|
+
|
|
554
|
+
// Timeline - Simple variant (10px base)
|
|
555
|
+
$timeline-simple-line-width: 1px !default;
|
|
556
|
+
$timeline-simple-margin-left: 10px !default;
|
|
557
|
+
$timeline-simple-padding-left: 20px !default;
|
|
558
|
+
$timeline-simple-dot-size: 15px !default;
|
|
559
|
+
$timeline-simple-dot-border: 1px !default;
|
|
560
|
+
$timeline-simple-dot-offset: -30px !default;
|
|
561
|
+
$timeline-simple-dot-shadow-offset-x: 3px !default;
|
|
562
|
+
$timeline-simple-dot-shadow-offset-y: 3px !default;
|
|
563
|
+
$timeline-simple-dot-shadow-blur: 0 !default;
|
|
564
|
+
$timeline-simple-dot-shadow-opacity: 0.5 !default;
|
|
565
|
+
$timeline-simple-dot-border-radius: 30% !default;
|
|
566
|
+
$timeline-simple-content-margin-top: 0.6rem !default; // 6px (was 0.4rem)
|
|
567
|
+
$timeline-simple-scroll-container-max-height: 400px !default;
|
|
568
|
+
$timeline-simple-scroll-loader-min-height: 60px !default;
|
|
569
|
+
$timeline-simple-load-more-margin-top: 2.4rem !default; // 24px (was 1.5rem)
|
|
570
|
+
|
|
571
|
+
// Timeline Block - Alternating variant
|
|
572
|
+
$timeline-block-max-width: 1140px !default;
|
|
573
|
+
$timeline-block-padding: $spacing-base 0 !default;
|
|
574
|
+
$timeline-block-line-width: $border-width-medium !default;
|
|
575
|
+
$timeline-block-item-width: 50% !default;
|
|
576
|
+
$timeline-block-item-padding: $spacing-base $spacing-xl !default;
|
|
577
|
+
$timeline-block-item-padding-left-odd: 0rem !default;
|
|
578
|
+
$timeline-block-item-padding-right-even: 0rem !default;
|
|
579
|
+
$timeline-block-content-padding-v: $spacing-xl !default;
|
|
580
|
+
$timeline-block-content-padding-h: $spacing-xl !default;
|
|
581
|
+
$timeline-block-content-padding-extended: calc($spacing-xl * 2 + 40px) !default;
|
|
582
|
+
$timeline-block-content-border-radius: 500px !default;
|
|
583
|
+
$timeline-block-dot-size: 16px !default;
|
|
584
|
+
$timeline-block-dot-border: 2px !default;
|
|
585
|
+
$timeline-block-dot-top-offset: calc(50% - 8px) !default;
|
|
586
|
+
$timeline-block-dot-horizontal-offset: -8px !default;
|
|
587
|
+
$timeline-block-connector-width: 50px !default;
|
|
588
|
+
$timeline-block-connector-height: 2px !default;
|
|
589
|
+
$timeline-block-connector-top-offset: calc(50% - 1px) !default;
|
|
590
|
+
$timeline-block-connector-horizontal-offset: 8px !default;
|
|
591
|
+
$timeline-block-icon-size: 40px !default;
|
|
592
|
+
$timeline-block-icon-border: 2px !default;
|
|
593
|
+
$timeline-block-icon-top-offset: calc(50% - 20px) !default;
|
|
594
|
+
$timeline-block-date-top-offset: calc(50% - 8px) !default;
|
|
595
|
+
$timeline-block-date-offset: -75px !default;
|
|
596
|
+
$timeline-block-date-letter-spacing: 1px !default;
|
|
597
|
+
$timeline-block-icon-offset-odd: 56px !default;
|
|
598
|
+
$timeline-block-icon-offset-even: 56px !default;
|
|
599
|
+
$timeline-block-responsive-breakpoint: 767px !default;
|
|
600
|
+
$timeline-block-responsive-line-left: 90px !default;
|
|
601
|
+
$timeline-block-responsive-padding-left: 120px !default;
|
|
602
|
+
$timeline-block-responsive-padding-right: $spacing-xl !default;
|
|
603
|
+
$timeline-block-responsive-dot-left: 82px !default;
|
|
604
|
+
$timeline-block-responsive-connector-left: 100px !default;
|
|
605
|
+
$timeline-block-responsive-date-left: 15px !default;
|
|
606
|
+
$timeline-block-responsive-icon-left: 146px !default;
|
|
607
|
+
|
|
608
|
+
// Timeline - Feed variant (10px base)
|
|
609
|
+
$timeline-feed-gap: $spacing-base !default;
|
|
610
|
+
$timeline-feed-item-padding-bottom: $spacing-sm !default;
|
|
611
|
+
$timeline-feed-border-left: 3px !default;
|
|
612
|
+
$timeline-feed-padding-left: 40px !default;
|
|
613
|
+
$timeline-feed-icon-size: 40px !default;
|
|
614
|
+
$timeline-feed-icon-margin-left: -52px !default;
|
|
615
|
+
$timeline-feed-icon-box-shadow-width: 6px !default;
|
|
616
|
+
$timeline-feed-avatar-size: 28px !default;
|
|
617
|
+
$timeline-feed-avatar-margin-right: $spacing-xs !default;
|
|
618
|
+
$timeline-feed-comment-margin-top: $spacing-sm !default;
|
|
619
|
+
$timeline-feed-comment-padding: $spacing-base !default;
|
|
620
|
+
$timeline-feed-date-icon-size: $spacing-base !default;
|
|
621
|
+
$timeline-feed-date-label-font-size: $font-size-sm !default;
|
|
622
|
+
$timeline-feed-date-label-letter-spacing: 0.5px !default;
|
|
623
|
+
$timeline-feed-date-margin-bottom: $spacing-sm !default;
|
|
624
|
+
$timeline-feed-time-width: 50px !default;
|
|
625
|
+
$timeline-feed-time-font-size: $font-size-xs !default;
|
|
626
|
+
$timeline-feed-time-padding-top: 6px !default;
|
|
627
|
+
$timeline-feed-scroll-container-max-height: 400px !default;
|
|
628
|
+
|
|
629
|
+
// ============================================================================
|
|
630
|
+
// DATA DISPLAY (READ-ONLY FIELDS)
|
|
631
|
+
// ============================================================================
|
|
632
|
+
$field-label-font-size: $font-size-xs !default;
|
|
633
|
+
$field-label-font-weight: $font-weight-semibold !default;
|
|
634
|
+
$field-label-opacity: 0.55 !default;
|
|
635
|
+
$field-label-letter-spacing: 0.05em !default;
|
|
636
|
+
$field-value-font-size: $font-size-sm !default;
|
|
637
|
+
$field-gap: $spacing-xs !default;
|
|
638
|
+
$field-horizontal-label-min-width: 8rem !default;
|
|
639
|
+
$field-horizontal-label-max-width: 40% !default;
|
|
640
|
+
|
|
641
|
+
// Copyable field interactions
|
|
642
|
+
$field-copy-padding: 0.4rem !default;
|
|
643
|
+
$field-copy-opacity: 0.5 !default;
|
|
644
|
+
$field-copy-hover-opacity: 1 !default;
|
|
645
|
+
$field-copy-hover-bg: rgba(128, 128, 128, 0.1) !default;
|
|
646
|
+
$field-copy-transition: 0.15s !default;
|
|
647
|
+
$field-copy-click-hover-opacity: 0.7 !default;
|
|
648
|
+
$field-copy-hint-opacity: 0.6 !default;
|
|
649
|
+
|
|
650
|
+
$fields-gap: $spacing-base !default;
|
|
651
|
+
$fields-relaxed-gap: $spacing-lg !default;
|
|
652
|
+
$fields-bordered-padding: $spacing-sm !default;
|
|
653
|
+
$fields-bordered-border-color: $border-color !default;
|
|
654
|
+
$fields-striped-bg: $table-stripe !default;
|
|
655
|
+
$fields-cols-gap: $spacing-base !default;
|
|
656
|
+
$fields-border-left: 3px solid $accent-color !default;
|
|
657
|
+
$fields-padding-left: $spacing-base !default;
|
|
658
|
+
$fields-filled-bg: rgba(128, 128, 128, 0.06) !default;
|
|
659
|
+
$fields-filled-padding: $spacing-base !default;
|
|
660
|
+
|
|
661
|
+
// Field group (labeled section of fields)
|
|
662
|
+
$field-group-gap: $spacing-sm !default;
|
|
663
|
+
$field-group-title-font-size: $font-size-sm !default;
|
|
664
|
+
$field-group-title-font-weight: $font-weight-semibold !default;
|
|
665
|
+
$field-group-title-border-color: $border-color !default;
|
|
666
|
+
$field-group-spacing: $spacing-lg !default;
|
|
667
|
+
|
|
668
|
+
// Descriptions Table (pa-desc-table)
|
|
669
|
+
$desc-table-cols: 3 !default;
|
|
670
|
+
$desc-table-cell-padding-v: 1.2rem !default;
|
|
671
|
+
$desc-table-cell-padding-h: 1.6rem !default;
|
|
672
|
+
$desc-table-font-size: $font-size-sm !default;
|
|
673
|
+
$desc-table-label-bg: $fields-filled-bg !default;
|
|
674
|
+
$desc-table-label-colon-spacing: 2px !default;
|
|
675
|
+
$desc-table-value-font-weight: $font-weight-medium !default;
|
|
676
|
+
$desc-table-label-fixed-width: 14rem !default;
|
|
677
|
+
|
|
678
|
+
// Dot Leaders (pa-dot-leaders)
|
|
679
|
+
$dot-leaders-item-padding-v: 0.6rem !default;
|
|
680
|
+
$dot-leaders-font-size: $font-size-sm !default;
|
|
681
|
+
$dot-leaders-label-font-weight: $font-weight-medium !default;
|
|
682
|
+
$dot-leaders-value-font-weight: $font-weight-semibold !default;
|
|
683
|
+
$dot-leaders-leader-width: 2px !default;
|
|
684
|
+
$dot-leaders-leader-margin: 0.8rem !default;
|
|
685
|
+
$dot-leaders-leader-min-width: 2rem !default;
|
|
686
|
+
$dot-leaders-total-margin-top: 0.4rem !default;
|
|
687
|
+
$dot-leaders-total-padding-top: 0.8rem !default;
|
|
688
|
+
$dot-leaders-total-border-width: 2px !default;
|
|
689
|
+
$dot-leaders-total-font-size: $font-size-base !default;
|
|
690
|
+
$dot-leaders-total-font-weight: $font-weight-bold !default;
|
|
691
|
+
|
|
692
|
+
// Property Card (pa-prop-card)
|
|
693
|
+
$prop-card-border-radius: 6px !default;
|
|
694
|
+
$prop-card-header-padding-v: 1rem !default;
|
|
695
|
+
$prop-card-header-padding-h: 1.6rem !default;
|
|
696
|
+
$prop-card-header-font-size: 1.3rem !default;
|
|
697
|
+
$prop-card-header-font-weight: $font-weight-semibold !default;
|
|
698
|
+
$prop-card-header-letter-spacing: 0.04em !default;
|
|
699
|
+
$prop-card-header-bg: rgba(128, 128, 128, 0.04) !default;
|
|
700
|
+
$prop-card-row-padding-v: 1rem !default;
|
|
701
|
+
$prop-card-row-padding-h: 1.6rem !default;
|
|
702
|
+
$prop-card-row-font-size: $font-size-sm !default;
|
|
703
|
+
$prop-card-row-gap: 1.6rem !default;
|
|
704
|
+
$prop-card-row-divider-color: rgba(128, 128, 128, 0.08) !default;
|
|
705
|
+
|
|
706
|
+
// Fields Linear modifier (pa-fields--linear)
|
|
707
|
+
$fields-linear-gap: $spacing-sm !default;
|
|
708
|
+
$fields-linear-font-size: $font-size-sm !default;
|
|
709
|
+
$fields-linear-min-height: 2.8rem !default;
|
|
710
|
+
$fields-linear-label-width: 10rem !default;
|
|
711
|
+
$fields-linear-field-gap: 1.2rem !default;
|
|
712
|
+
|
|
713
|
+
// Fields Chips modifier (pa-fields--chips)
|
|
714
|
+
$fields-chips-gap-v: 0.6rem !default;
|
|
715
|
+
$fields-chips-gap-h: 1.4rem !default;
|
|
716
|
+
$fields-chips-padding-v: 0.4rem !default;
|
|
717
|
+
$fields-chips-font-size: $font-size-sm !default;
|
|
718
|
+
$fields-chips-field-gap: 0.5rem !default;
|
|
719
|
+
$fields-chips-value-padding-v: 0.2rem !default;
|
|
720
|
+
$fields-chips-value-padding-h: 0.8rem !default;
|
|
721
|
+
$fields-chips-value-font-size: 1.3rem !default;
|
|
722
|
+
$fields-chips-value-font-weight: $font-weight-medium !default;
|
|
723
|
+
$fields-chips-value-bg: rgba(128, 128, 128, 0.1) !default;
|
|
724
|
+
$fields-chips-value-border-radius: 4px !default;
|
|
725
|
+
|
|
726
|
+
// Banded Rows (pa-banded)
|
|
727
|
+
$banded-font-size: $font-size-sm !default;
|
|
728
|
+
$banded-label-width: 14rem !default;
|
|
729
|
+
$banded-label-width-narrow: 10rem !default;
|
|
730
|
+
$banded-label-width-wide: 20rem !default;
|
|
731
|
+
$banded-label-padding-v: 0.8rem !default;
|
|
732
|
+
$banded-label-padding-h: 1.2rem !default;
|
|
733
|
+
$banded-label-bg: $fields-filled-bg !default;
|
|
734
|
+
$banded-label-font-weight: $font-weight-medium !default;
|
|
735
|
+
$banded-value-padding-v: 0.8rem !default;
|
|
736
|
+
$banded-value-padding-h: 1.2rem !default;
|
|
737
|
+
|
|
738
|
+
// Accent Grid (pa-accent-grid)
|
|
739
|
+
$accent-grid-min-col: 20rem !default;
|
|
740
|
+
$accent-grid-gap: 0.8rem !default;
|
|
741
|
+
$accent-grid-item-padding-v: 0.8rem !default;
|
|
742
|
+
$accent-grid-item-padding-h: 1.2rem !default;
|
|
743
|
+
$accent-grid-item-padding-start: 1.4rem !default;
|
|
744
|
+
$accent-grid-border-width: 3px !default;
|
|
745
|
+
$accent-grid-label-font-size: 1.1rem !default;
|
|
746
|
+
$accent-grid-label-font-weight: $font-weight-medium !default;
|
|
747
|
+
$accent-grid-label-letter-spacing: 0.03em !default;
|
|
748
|
+
$accent-grid-label-margin-bottom: 0.2rem !default;
|
|
749
|
+
$accent-grid-value-font-size: $font-size-md !default;
|
|
750
|
+
$accent-grid-value-font-weight: $font-weight-semibold !default;
|
|
751
|
+
$accent-grid-value-line-height: $line-height-tight !default;
|
|
752
|
+
|
|
753
|
+
// ============================================================================
|
|
754
|
+
// DATA VISUALIZATION COMPONENTS
|
|
755
|
+
// ============================================================================
|
|
756
|
+
|
|
757
|
+
// Progress bar (pa-progress)
|
|
758
|
+
$progress-height: 0.8rem !default; // 8px
|
|
759
|
+
$progress-height-xs: 0.3rem !default; // 3px
|
|
760
|
+
$progress-height-sm: 0.5rem !default; // 5px
|
|
761
|
+
$progress-height-lg: 1.2rem !default; // 12px
|
|
762
|
+
$progress-bg: color-mix(in srgb, var(--pa-text-color-1) 12%, transparent) !default;
|
|
763
|
+
$progress-border-radius: $border-radius !default;
|
|
764
|
+
$progress-stripe-angle: 45deg !default;
|
|
765
|
+
$progress-stripe-size: 1.6rem !default; // 16px
|
|
766
|
+
$progress-animation-duration: 1s !default;
|
|
767
|
+
$progress-label-font-size: $font-size-xs !default;
|
|
768
|
+
$progress-label-font-weight: $font-weight-medium !default;
|
|
769
|
+
|
|
770
|
+
// Stacked bar (pa-stacked-bar)
|
|
771
|
+
$stacked-bar-height: 1.2rem !default; // 12px
|
|
772
|
+
$stacked-bar-border-radius: $border-radius !default;
|
|
773
|
+
$stacked-bar-legend-gap: $spacing-base !default;
|
|
774
|
+
$stacked-bar-legend-swatch-size: 1rem !default; // 10px
|
|
775
|
+
$stacked-bar-legend-font-size: $font-size-xs !default;
|
|
776
|
+
|
|
777
|
+
// Progress ring (pa-progress-ring)
|
|
778
|
+
$progress-ring-size: 8rem !default; // 80px
|
|
779
|
+
$progress-ring-size-sm: 5rem !default; // 50px
|
|
780
|
+
$progress-ring-size-lg: 11rem !default; // 110px
|
|
781
|
+
$progress-ring-track-color: color-mix(in srgb, var(--pa-text-color-1) 12%, transparent) !default;
|
|
782
|
+
$progress-ring-value-font-size: $font-size-lg !default;
|
|
783
|
+
$progress-ring-value-font-weight: $font-weight-bold !default;
|
|
784
|
+
$progress-ring-label-font-size: $font-size-2xs !default;
|
|
785
|
+
|
|
786
|
+
// Gauge (pa-gauge)
|
|
787
|
+
$gauge-size: 12rem !default; // 120px
|
|
788
|
+
$gauge-track-color: color-mix(in srgb, var(--pa-text-color-1) 12%, transparent) !default;
|
|
789
|
+
$gauge-label-font-size: $font-size-xs !default;
|
|
790
|
+
$gauge-value-font-size: $font-size-3xl !default; // 2.8rem — value gets the whole donut hole (label is now below the gauge)
|
|
791
|
+
$gauge-value-font-weight: $font-weight-bold !default;
|
|
792
|
+
|
|
793
|
+
// Data bar (pa-data-bar)
|
|
794
|
+
$data-bar-height: 0.4rem !default; // 4px
|
|
795
|
+
$data-bar-border-radius: $border-radius-sm !default;
|
|
796
|
+
$data-bar-bg: rgba(0, 0, 0, 0.06) !default;
|
|
797
|
+
|
|
798
|
+
// Heatmap (pa-heatmap)
|
|
799
|
+
$heatmap-cell-size: 1.2rem !default; // 12px
|
|
800
|
+
$heatmap-gap: 0.2rem !default; // 2px
|
|
801
|
+
$heatmap-border-radius: $border-radius-sm !default;
|
|
802
|
+
$heatmap-legend-gap: $spacing-xs !default;
|
|
803
|
+
$heatmap-legend-font-size: $font-size-xs !default;
|
|
804
|
+
|
|
805
|
+
// Sparkline (pa-sparkline)
|
|
806
|
+
$sparkline-bar-width: 0.3rem !default; // 3px
|
|
807
|
+
$sparkline-height: 3rem !default; // 30px
|
|
808
|
+
$sparkline-gap: 0.2rem !default; // 2px
|
|
809
|
+
$sparkline-border-radius: $border-radius-sm !default;
|
|
810
|
+
|
|
811
|
+
// Bar list (pa-bar-list)
|
|
812
|
+
$bar-list-gap: $spacing-base !default;
|
|
813
|
+
$bar-list-bar-height: 0.4rem !default;
|
|
814
|
+
$bar-list-bar-border-radius: $border-radius-sm !default;
|
|
815
|
+
$bar-list-bar-bg: rgba(0, 0, 0, 0.06) !default;
|
|
816
|
+
$bar-list-label-font-size: $font-size-sm !default;
|
|
817
|
+
$bar-list-value-font-size: $font-size-sm !default;
|
|
818
|
+
$bar-list-value-font-weight: $font-weight-semibold !default;
|
|
819
|
+
|
|
820
|
+
// ============================================================================
|
|
821
|
+
// SPLITTER SYSTEM
|
|
822
|
+
// ============================================================================
|
|
823
|
+
$splitter-gutter-size: 0.6rem !default; // 6px gutter thickness
|
|
824
|
+
$splitter-gutter-bg: rgba(128, 128, 128, 0.08) !default;
|
|
825
|
+
$splitter-gutter-hover-bg: rgba(128, 128, 128, 0.18) !default;
|
|
826
|
+
$splitter-gutter-active-bg: rgba($accent-color, 0.35) !default; // mid-drag
|
|
827
|
+
$splitter-gutter-grip-length: 2.4rem !default; // 24px grip indicator
|
|
828
|
+
$splitter-gutter-grip-thickness: 2px !default;
|
|
829
|
+
$splitter-gutter-grip-color: rgba(128, 128, 128, 0.45) !default;
|
|
830
|
+
$splitter-gutter-grip-hover-color: $accent-color !default;
|
|
831
|
+
$splitter-focus-ring-color: rgba($accent-color, 0.4) !default;
|
|
832
|
+
$splitter-focus-ring-width: 2px !default;
|
|
833
|
+
$splitter-transition: background-color 0.15s ease !default;
|
|
834
|
+
$splitter-pane-min-size: 0 !default; // absolute floor regardless of constraints
|
|
835
|
+
$splitter-rail-size: 4rem !default; // 40px — start pane width when minimized to rail
|