@keenmate/pure-admin-core 1.0.0 → 1.1.0
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 +77 -7
- package/dist/css/main.css +792 -431
- package/package.json +1 -1
- package/snippets/customization.html +1 -1
- package/snippets/layout.html +4 -4
- package/snippets/manifest.json +0 -50
- package/snippets/profile.html +51 -3
- package/src/scss/_base-css-variables.scss +432 -422
- package/src/scss/_core.scss +105 -105
- package/src/scss/_fonts.scss +0 -14
- package/src/scss/_variables.scss +12 -14
- package/src/scss/core-components/_alerts.scss +7 -7
- package/src/scss/core-components/_base.scss +3 -3
- package/src/scss/core-components/_buttons.scss +425 -425
- package/src/scss/core-components/_callouts.scss +139 -139
- package/src/scss/core-components/_cards.scss +321 -321
- package/src/scss/core-components/_checkbox-lists.scss +2 -2
- package/src/scss/core-components/_code.scss +4 -4
- package/src/scss/core-components/_command-palette.scss +518 -518
- package/src/scss/core-components/_comparison.scss +3 -3
- package/src/scss/core-components/_file-selector.scss +780 -780
- package/src/scss/core-components/_forms.scss +16 -16
- package/src/scss/core-components/_layout.scss +15 -15
- package/src/scss/core-components/_lists.scss +7 -7
- package/src/scss/core-components/_logic-tree.scss +280 -280
- package/src/scss/core-components/_modals.scss +2 -2
- package/src/scss/core-components/_notifications.scss +7 -7
- package/src/scss/core-components/_pagers.scss +3 -3
- package/src/scss/core-components/_popconfirm.scss +1 -1
- package/src/scss/core-components/_profile.scss +400 -389
- package/src/scss/core-components/_scrollbars.scss +40 -40
- package/src/scss/core-components/_settings-panel.scss +5 -5
- package/src/scss/core-components/_statistics.scss +6 -6
- package/src/scss/core-components/_tables.scss +566 -566
- package/src/scss/core-components/_tabs.scss +493 -493
- package/src/scss/core-components/_timeline.scss +15 -15
- package/src/scss/core-components/_toasts.scss +4 -4
- package/src/scss/core-components/_tooltips.scss +8 -8
- package/src/scss/core-components/_utilities.scss +11 -30
- package/src/scss/core-components/_web-components-theme.scss +294 -294
- package/src/scss/core-components/badges/_composite-badge-variants.scss +3 -3
- package/src/scss/core-components/badges/_labels.scss +1 -1
- package/src/scss/core-components/forms/_checkboxes-radios.scss +2 -2
- package/src/scss/core-components/forms/_form-inputs.scss +4 -4
- package/src/scss/core-components/forms/_form-layout.scss +2 -2
- package/src/scss/core-components/forms/_form-states.scss +1 -1
- package/src/scss/core-components/forms/_input-wrapper.scss +1 -1
- package/src/scss/core-components/forms/_query-editor.scss +17 -17
- package/src/scss/core-components/layout/_layout-container.scss +1 -1
- package/src/scss/core-components/layout/_navbar-elements.scss +1 -1
- package/src/scss/core-components/layout/_sidebar.scss +5 -5
- package/src/scss/utilities.scss +24 -0
- package/src/scss/variables/_base.scss +20 -10
- package/src/scss/variables/_colors.scss +7 -6
- package/src/scss/variables/_components.scss +8 -11
- package/src/scss/variables/_index.scss +11 -7
- package/src/scss/variables/_spacing.scss +12 -0
- package/src/scss/variables/_typography.scss +2 -2
- package/dist/fonts/Delivery/Delivery_W_Bd.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_BdIt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_CdBlk.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_CdLt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_It.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_Lt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_LtIt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_Rg.woff2 +0 -0
- package/src/scss/themes/_dark-base.scss +0 -207
- package/src/scss/themes/audi-light.scss +0 -341
- package/src/scss/themes/audi.scss +0 -303
- package/src/scss/themes/corporate.scss +0 -229
- package/src/scss/themes/dark-blue.scss +0 -165
- package/src/scss/themes/dark-green.scss +0 -169
- package/src/scss/themes/dark-red.scss +0 -173
- package/src/scss/themes/dark.scss +0 -158
- package/src/scss/themes/express.scss +0 -294
- package/src/scss/themes/minimal.scss +0 -134
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
flex-shrink: 0;
|
|
32
32
|
padding-top: $input-padding-v;
|
|
33
33
|
margin-bottom: 0;
|
|
34
|
-
color: var(--pa-text-
|
|
34
|
+
color: var(--pa-text-color-1);
|
|
35
35
|
font-weight: $font-weight-medium;
|
|
36
36
|
font-size: $font-size-sm;
|
|
37
37
|
}
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
align-items: center;
|
|
52
52
|
gap: $form-scale;
|
|
53
53
|
margin-bottom: $form-label-margin-bottom;
|
|
54
|
-
color: var(--pa-text-
|
|
54
|
+
color: var(--pa-text-color-1);
|
|
55
55
|
font-weight: $font-weight-medium;
|
|
56
56
|
font-size: $font-size-sm;
|
|
57
57
|
}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
position: relative;
|
|
32
32
|
z-index: 1;
|
|
33
33
|
background: transparent;
|
|
34
|
-
color: var(--pa-text-
|
|
34
|
+
color: var(--pa-text-color-1);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
&__field {
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
&-type {
|
|
88
88
|
margin-left: auto;
|
|
89
89
|
font-size: $font-size-xs;
|
|
90
|
-
color: var(--pa-text-
|
|
90
|
+
color: var(--pa-text-color-2);
|
|
91
91
|
opacity: 0.7;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
padding: $spacing-xs $spacing-md;
|
|
97
97
|
font-size: $font-size-xs;
|
|
98
98
|
font-weight: $font-weight-medium;
|
|
99
|
-
color: var(--pa-text-
|
|
99
|
+
color: var(--pa-text-color-2);
|
|
100
100
|
text-transform: uppercase;
|
|
101
101
|
letter-spacing: 0.05em;
|
|
102
102
|
background-color: var(--pa-card-header-bg);
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
&__empty {
|
|
107
107
|
padding: $spacing-md;
|
|
108
108
|
text-align: center;
|
|
109
|
-
color: var(--pa-text-
|
|
109
|
+
color: var(--pa-text-color-2);
|
|
110
110
|
font-size: $font-size-sm;
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
border-radius: $border-radius;
|
|
121
121
|
font-size: $font-size-sm;
|
|
122
122
|
background-color: var(--pa-input-bg);
|
|
123
|
-
color: var(--pa-text-
|
|
123
|
+
color: var(--pa-text-color-1);
|
|
124
124
|
cursor: text;
|
|
125
125
|
overflow-wrap: break-word;
|
|
126
126
|
word-wrap: break-word;
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
|
|
136
136
|
&:empty::before {
|
|
137
137
|
content: attr(data-placeholder);
|
|
138
|
-
color: var(--pa-text-
|
|
138
|
+
color: var(--pa-text-color-2);
|
|
139
139
|
opacity: 0.7;
|
|
140
140
|
pointer-events: none;
|
|
141
141
|
}
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
font-family: $body-font-family;
|
|
196
196
|
background: transparent;
|
|
197
197
|
color: transparent;
|
|
198
|
-
caret-color: var(--pa-text-
|
|
198
|
+
caret-color: var(--pa-text-color-1);
|
|
199
199
|
resize: none;
|
|
200
200
|
overflow: hidden;
|
|
201
201
|
line-height: 1.5;
|
|
@@ -209,7 +209,7 @@
|
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
&::placeholder {
|
|
212
|
-
color: var(--pa-text-
|
|
212
|
+
color: var(--pa-text-color-2);
|
|
213
213
|
opacity: 0.7;
|
|
214
214
|
}
|
|
215
215
|
}
|
|
@@ -222,28 +222,28 @@
|
|
|
222
222
|
|
|
223
223
|
&--field {
|
|
224
224
|
background-color: rgba($accent-color, 0.15);
|
|
225
|
-
color: var(--pa-text-
|
|
225
|
+
color: var(--pa-text-color-1);
|
|
226
226
|
|
|
227
227
|
&.pa-inline-query-token--invalid {
|
|
228
228
|
background-color: rgba($danger-bg, 0.15);
|
|
229
|
-
color: var(--pa-text-
|
|
229
|
+
color: var(--pa-text-color-1);
|
|
230
230
|
text-decoration: wavy underline;
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
&--operator {
|
|
235
|
-
background-color: rgba(var(--pa-text-
|
|
236
|
-
color: var(--pa-text-
|
|
235
|
+
background-color: rgba(var(--pa-text-color-2), 0.15);
|
|
236
|
+
color: var(--pa-text-color-1);
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
&--value {
|
|
240
240
|
background-color: rgba($success-bg, 0.15);
|
|
241
|
-
color: var(--pa-text-
|
|
241
|
+
color: var(--pa-text-color-1);
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
&--keyword {
|
|
245
245
|
background-color: rgba($warning-bg, 0.15);
|
|
246
|
-
color: var(--pa-text-
|
|
246
|
+
color: var(--pa-text-color-1);
|
|
247
247
|
font-style: italic;
|
|
248
248
|
}
|
|
249
249
|
}
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
&-type {
|
|
296
296
|
display: block;
|
|
297
297
|
font-size: $font-size-xs;
|
|
298
|
-
color: var(--pa-text-
|
|
298
|
+
color: var(--pa-text-color-2);
|
|
299
299
|
opacity: 0.7;
|
|
300
300
|
line-height: 1.3;
|
|
301
301
|
}
|
|
@@ -304,8 +304,8 @@
|
|
|
304
304
|
flex-shrink: 0;
|
|
305
305
|
font-size: $font-size-xs;
|
|
306
306
|
padding: 0.2rem 0.6rem;
|
|
307
|
-
background-color: rgba(var(--pa-text-
|
|
308
|
-
color: var(--pa-text-
|
|
307
|
+
background-color: rgba(var(--pa-text-color-2), 0.1);
|
|
308
|
+
color: var(--pa-text-color-2);
|
|
309
309
|
border-radius: 0.4rem;
|
|
310
310
|
font-family: $body-font-family;
|
|
311
311
|
}
|
|
@@ -14,7 +14,7 @@ body.pa-layout--sticky {
|
|
|
14
14
|
.pa-layout {
|
|
15
15
|
max-width: 100%;
|
|
16
16
|
margin: $header-height auto 0;
|
|
17
|
-
background-color: var(--pa-
|
|
17
|
+
background-color: var(--pa-main-bg);
|
|
18
18
|
overflow: visible; // Allow tooltips to escape
|
|
19
19
|
display: flex;
|
|
20
20
|
flex-direction: column;
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
======================================== */
|
|
5
5
|
@use '../../variables' as *;
|
|
6
6
|
|
|
7
|
-
// CSS
|
|
7
|
+
// Local CSS variables for sidebar (runtime state, modified by JS for resize)
|
|
8
8
|
:root {
|
|
9
|
-
--pa-sidebar-width: #{$sidebar-width};
|
|
10
|
-
--pa-sidebar-min-width: 18rem;
|
|
11
|
-
--pa-sidebar-max-width: 50rem;
|
|
9
|
+
--pa-local-sidebar-width: #{$sidebar-width};
|
|
10
|
+
--pa-local-sidebar-min-width: 18rem;
|
|
11
|
+
--pa-local-sidebar-max-width: 50rem;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
// Sidebar layout element - width in :where() for low specificity (utility classes can override)
|
|
15
15
|
:where(.pa-layout__sidebar) {
|
|
16
|
-
width: var(--pa-sidebar-width);
|
|
16
|
+
width: var(--pa-local-sidebar-width);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.pa-layout__sidebar {
|
package/src/scss/utilities.scss
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Spacing utilities similar to Bootstrap/Tailwind
|
|
3
3
|
// Based on rem units: 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 4, 5
|
|
4
4
|
|
|
5
|
+
@use './variables' as *;
|
|
6
|
+
|
|
5
7
|
// Spacing scale
|
|
6
8
|
$spacers: (
|
|
7
9
|
0: 0,
|
|
@@ -129,6 +131,28 @@ $spacers: (
|
|
|
129
131
|
margin-bottom: auto !important;
|
|
130
132
|
}
|
|
131
133
|
|
|
134
|
+
// Semantic margin utilities (using spacing variables)
|
|
135
|
+
@each $name, $value in $semantic-spacers {
|
|
136
|
+
.m-#{$name} { margin: #{$value} !important; }
|
|
137
|
+
.mt-#{$name} { margin-top: #{$value} !important; }
|
|
138
|
+
.mr-#{$name} { margin-right: #{$value} !important; }
|
|
139
|
+
.mb-#{$name} { margin-bottom: #{$value} !important; }
|
|
140
|
+
.ml-#{$name} { margin-left: #{$value} !important; }
|
|
141
|
+
.mx-#{$name} { margin-left: #{$value} !important; margin-right: #{$value} !important; }
|
|
142
|
+
.my-#{$name} { margin-top: #{$value} !important; margin-bottom: #{$value} !important; }
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Semantic padding utilities (using spacing variables)
|
|
146
|
+
@each $name, $value in $semantic-spacers {
|
|
147
|
+
.p-#{$name} { padding: #{$value} !important; }
|
|
148
|
+
.pt-#{$name} { padding-top: #{$value} !important; }
|
|
149
|
+
.pr-#{$name} { padding-right: #{$value} !important; }
|
|
150
|
+
.pb-#{$name} { padding-bottom: #{$value} !important; }
|
|
151
|
+
.pl-#{$name} { padding-left: #{$value} !important; }
|
|
152
|
+
.px-#{$name} { padding-left: #{$value} !important; padding-right: #{$value} !important; }
|
|
153
|
+
.py-#{$name} { padding-top: #{$value} !important; padding-bottom: #{$value} !important; }
|
|
154
|
+
}
|
|
155
|
+
|
|
132
156
|
// Display utilities
|
|
133
157
|
.d-none {
|
|
134
158
|
display: none !important;
|
|
@@ -33,20 +33,30 @@ $base-text-color-4: #a3b1bf !default; // Quaternary text (lightest)
|
|
|
33
33
|
$base-text-color-on-accent: #ffffff !default; // Text on accent backgrounds
|
|
34
34
|
|
|
35
35
|
// =============================================================================
|
|
36
|
-
//
|
|
37
|
-
//
|
|
36
|
+
// BACKGROUND COLORS
|
|
37
|
+
// Semantic background colors for different purposes
|
|
38
38
|
// =============================================================================
|
|
39
39
|
|
|
40
|
-
$base-
|
|
41
|
-
$base-
|
|
42
|
-
$base-
|
|
43
|
-
$base-
|
|
40
|
+
$base-main-bg: #ffffff !default; // Primary background (cards, modals, content)
|
|
41
|
+
$base-page-bg: #f8f9fa !default; // Page background, subtle sections
|
|
42
|
+
$base-subtle-bg: #e9ecef !default; // Muted areas, dividers
|
|
43
|
+
$base-inverse-bg: #2c3e50 !default; // Inverse background (tooltips, dark elements)
|
|
44
44
|
$base-overlay-bg: rgba(0, 0, 0, 0.5) !default; // Modal/overlay background
|
|
45
45
|
$base-shadow-color: rgba(0, 0, 0, 0.15) !default; // Shadow color for elevation
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
$base-
|
|
46
|
+
$base-elevated-bg: #f5f5f5 !default; // Header row, striped rows, elevated surfaces
|
|
47
|
+
|
|
48
|
+
// Interactive state backgrounds
|
|
49
|
+
$base-hover-bg: $base-subtle-bg !default; // Hover state background
|
|
50
|
+
$base-active-bg: color.adjust($base-subtle-bg, $lightness: -5%) !default; // Active/pressed state
|
|
51
|
+
$base-disabled-bg: $base-subtle-bg !default; // Disabled element background
|
|
52
|
+
|
|
53
|
+
// Legacy aliases (backward compatibility)
|
|
54
|
+
$base-surface-1: $base-main-bg !default;
|
|
55
|
+
$base-surface-2: $base-page-bg !default;
|
|
56
|
+
$base-surface-3: $base-subtle-bg !default;
|
|
57
|
+
$base-surface-inverse: $base-inverse-bg !default;
|
|
58
|
+
$base-primary-bg: $base-main-bg !default;
|
|
59
|
+
$base-primary-bg-hover: color.adjust($base-main-bg, $lightness: -5%) !default;
|
|
50
60
|
|
|
51
61
|
// =============================================================================
|
|
52
62
|
// BORDER COLORS
|
|
@@ -5,18 +5,19 @@
|
|
|
5
5
|
// ============================================================================
|
|
6
6
|
|
|
7
7
|
@use 'sass:color';
|
|
8
|
-
@
|
|
8
|
+
// NOTE: Base variables are available in global scope via @import in _index.scss
|
|
9
|
+
// No @use 'base' needed since we use @import for proper !default cascading
|
|
9
10
|
|
|
10
11
|
// =============================================================================
|
|
11
12
|
// LAYOUT COLORS (derived from base)
|
|
12
13
|
// =============================================================================
|
|
13
14
|
|
|
14
|
-
$
|
|
15
|
-
$bg
|
|
16
|
-
$
|
|
17
|
-
$text-
|
|
15
|
+
$main-bg: $base-page-bg !default;
|
|
16
|
+
$page-bg: $base-page-bg !default;
|
|
17
|
+
$subtle-bg: $base-main-bg !default;
|
|
18
|
+
$text-color-1: $base-text-color-1 !default;
|
|
19
|
+
$text-color-2: $base-text-color-2 !default;
|
|
18
20
|
$border-color: $base-border-color !default;
|
|
19
|
-
$content-background-color: $base-surface-1 !default;
|
|
20
21
|
|
|
21
22
|
// Header colors
|
|
22
23
|
$header-bg: $base-surface-1 !default;
|
|
@@ -3,12 +3,9 @@
|
|
|
3
3
|
// Component-specific dimensions, paddings, and settings
|
|
4
4
|
// ============================================================================
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
@
|
|
8
|
-
@use
|
|
9
|
-
@use 'spacing' as *;
|
|
10
|
-
@use 'colors' as *;
|
|
11
|
-
@use 'system' as *;
|
|
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
|
|
12
9
|
|
|
13
10
|
// NOTE: 10px rem base - all rem values are now in 10px units (1rem = 10px)
|
|
14
11
|
|
|
@@ -229,9 +226,9 @@ $input-focus-border-color: $accent-color !default;
|
|
|
229
226
|
$select-focus-border-color: $accent-color !default;
|
|
230
227
|
$textarea-focus-border-color: $accent-color !default;
|
|
231
228
|
$input-group-prepend-bg: $secondary-bg !default;
|
|
232
|
-
$input-group-prepend-text: $text-
|
|
229
|
+
$input-group-prepend-text: $text-color-2 !default;
|
|
233
230
|
$input-group-append-bg: $secondary-bg !default;
|
|
234
|
-
$input-group-append-text: $text-
|
|
231
|
+
$input-group-append-text: $text-color-2 !default;
|
|
235
232
|
$checkbox-margin-top: 0.2rem !default; // 2px (was 0.125rem)
|
|
236
233
|
$checkbox-size-xs: 1.2rem !default; // 12px (was 0.75rem)
|
|
237
234
|
$checkbox-size-sm: 1.4rem !default; // 14px (was 0.875rem)
|
|
@@ -260,15 +257,15 @@ $multiselect-input-padding-v: $input-padding-v !default;
|
|
|
260
257
|
$multiselect-input-padding-h: $input-padding-h !default;
|
|
261
258
|
$multiselect-dropdown-bg: $card-bg !default;
|
|
262
259
|
$multiselect-dropdown-border: $border-color !default;
|
|
263
|
-
$multiselect-dropdown-text: $text-
|
|
260
|
+
$multiselect-dropdown-text: $text-color-1 !default;
|
|
264
261
|
$multiselect-dropdown-shadow: $shadow-lg !default;
|
|
265
262
|
$multiselect-dropdown-max-height: 32rem !default; // 320px (was 20rem)
|
|
266
|
-
$multiselect-hint-bg: $
|
|
263
|
+
$multiselect-hint-bg: $main-bg !default;
|
|
267
264
|
$multiselect-hint-border: $border-color !default;
|
|
268
265
|
$multiselect-hint-padding: $spacing-sm !default;
|
|
269
266
|
$multiselect-option-padding-v: $spacing-sm !default;
|
|
270
267
|
$multiselect-option-padding-h: $spacing-md !default;
|
|
271
|
-
$multiselect-option-hover-bg: $
|
|
268
|
+
$multiselect-option-hover-bg: $main-bg !default;
|
|
272
269
|
$multiselect-pill-bg: $accent-light !default;
|
|
273
270
|
$multiselect-pill-border: $accent-color !default;
|
|
274
271
|
$multiselect-pill-padding: $spacing-xs $spacing-sm !default;
|
|
@@ -6,14 +6,18 @@
|
|
|
6
6
|
// IMPORTANT: Order matters for dependencies!
|
|
7
7
|
// 1. Base variables are the SOURCE OF TRUTH (standalone, no imports)
|
|
8
8
|
// 2. All other modules can import from base and derive their values
|
|
9
|
+
//
|
|
10
|
+
// NOTE: We use @import (not @forward) to ensure variables share the global
|
|
11
|
+
// scope. This allows themes to set variables BEFORE importing, and the
|
|
12
|
+
// !default flags will skip already-defined variables.
|
|
9
13
|
|
|
10
14
|
// Base variables FIRST - single source of truth for theming
|
|
11
|
-
@
|
|
15
|
+
@import 'base';
|
|
12
16
|
|
|
13
17
|
// Derived framework variables (can use base values)
|
|
14
|
-
@
|
|
15
|
-
@
|
|
16
|
-
@
|
|
17
|
-
@
|
|
18
|
-
@
|
|
19
|
-
@
|
|
18
|
+
@import 'typography';
|
|
19
|
+
@import 'spacing';
|
|
20
|
+
@import 'colors';
|
|
21
|
+
@import 'layout';
|
|
22
|
+
@import 'system';
|
|
23
|
+
@import 'components';
|
|
@@ -14,6 +14,18 @@ $spacing-lg: 2.4rem !default; // 24px (was 1.5rem)
|
|
|
14
14
|
$spacing-xl: 3.2rem !default; // 32px (was 2rem)
|
|
15
15
|
$spacing-2xl: 4.8rem !default; // 48px (was 3rem)
|
|
16
16
|
|
|
17
|
+
// Semantic spacers map (for utility class generation)
|
|
18
|
+
$semantic-spacers: (
|
|
19
|
+
'0': 0,
|
|
20
|
+
'xs': $spacing-xs,
|
|
21
|
+
'sm': $spacing-sm,
|
|
22
|
+
'md': $spacing-md,
|
|
23
|
+
'base': $spacing-base,
|
|
24
|
+
'lg': $spacing-lg,
|
|
25
|
+
'xl': $spacing-xl,
|
|
26
|
+
'2xl': $spacing-2xl
|
|
27
|
+
) !default;
|
|
28
|
+
|
|
17
29
|
// Border widths
|
|
18
30
|
$border-width-thin: 1px !default;
|
|
19
31
|
$border-width-base: 1px !default;
|
|
@@ -10,8 +10,8 @@ $font-stack-system: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxyge
|
|
|
10
10
|
$font-stack-serif: Georgia, "Times New Roman", Times, serif !default;
|
|
11
11
|
$font-stack-mono: "Courier New", Courier, monospace !default;
|
|
12
12
|
|
|
13
|
-
// Body font (
|
|
14
|
-
$body-font-family: $font-
|
|
13
|
+
// Body font (derived from $base-font-family, themes override that)
|
|
14
|
+
$body-font-family: $base-font-family !default;
|
|
15
15
|
|
|
16
16
|
// Font sizes (all in rem for consistency) - 10px base
|
|
17
17
|
$font-size-2xs: 1rem !default; // 10px (was 0.625rem)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
/* Dark Theme Base Template - Reusable mixin for dark theme variants */
|
|
2
|
-
|
|
3
|
-
@mixin dark-theme-base(
|
|
4
|
-
$theme-name,
|
|
5
|
-
$primary-bg,
|
|
6
|
-
$content-bg,
|
|
7
|
-
$header-bg,
|
|
8
|
-
$sidebar-bg,
|
|
9
|
-
$footer-bg,
|
|
10
|
-
$border-color,
|
|
11
|
-
$text-primary,
|
|
12
|
-
$text-secondary,
|
|
13
|
-
$accent-color,
|
|
14
|
-
$accent-hover,
|
|
15
|
-
$accent-light,
|
|
16
|
-
$card-bg,
|
|
17
|
-
$card-header-bg,
|
|
18
|
-
$card-footer-bg,
|
|
19
|
-
$card-tabs-bg,
|
|
20
|
-
$input-bg,
|
|
21
|
-
$table-bg,
|
|
22
|
-
$table-header-bg,
|
|
23
|
-
$table-hover-bg,
|
|
24
|
-
$table-stripe,
|
|
25
|
-
$btn-colors,
|
|
26
|
-
$modal-overlay-bg,
|
|
27
|
-
$modal-content-bg
|
|
28
|
-
) {
|
|
29
|
-
[data-theme="#{$theme-name}"] {
|
|
30
|
-
// Layout dimensions (same across themes)
|
|
31
|
-
--header-height: 2.5rem;
|
|
32
|
-
--footer-height: 2rem;
|
|
33
|
-
--sidebar-width: 12rem;
|
|
34
|
-
|
|
35
|
-
// Theme colors
|
|
36
|
-
--primary-bg: #{$primary-bg};
|
|
37
|
-
--content-background-color: #{$content-bg};
|
|
38
|
-
--header-bg: #{$header-bg};
|
|
39
|
-
--sidebar-bg: #{$sidebar-bg};
|
|
40
|
-
--footer-bg: #{$footer-bg};
|
|
41
|
-
--border-color: #{$border-color};
|
|
42
|
-
--text-primary: #{$text-primary};
|
|
43
|
-
--text-secondary: #{$text-secondary};
|
|
44
|
-
--accent-color: #{$accent-color};
|
|
45
|
-
--accent-hover: #{$accent-hover};
|
|
46
|
-
--accent-light: #{$accent-light};
|
|
47
|
-
|
|
48
|
-
// Card colors
|
|
49
|
-
--card-bg: #{$card-bg};
|
|
50
|
-
--card-header-bg: #{$card-header-bg};
|
|
51
|
-
--card-footer-bg: #{$card-footer-bg};
|
|
52
|
-
--card-tabs-bg: #{$card-tabs-bg};
|
|
53
|
-
|
|
54
|
-
// Input colors
|
|
55
|
-
--input-bg: #{$input-bg};
|
|
56
|
-
--input-border: var(--border-color);
|
|
57
|
-
--input-text: var(--text-primary);
|
|
58
|
-
|
|
59
|
-
// Table colors
|
|
60
|
-
--table-bg: #{$table-bg};
|
|
61
|
-
--table-header-bg: #{$table-header-bg};
|
|
62
|
-
--table-hover-bg: #{$table-hover-bg};
|
|
63
|
-
--table-stripe: #{$table-stripe};
|
|
64
|
-
|
|
65
|
-
// Button colors
|
|
66
|
-
--btn-primary-bg: #{map-get($btn-colors, primary)};
|
|
67
|
-
--btn-primary-bg-hover: #{map-get($btn-colors, primary-hover)};
|
|
68
|
-
--btn-secondary-bg: #{map-get($btn-colors, secondary)};
|
|
69
|
-
--btn-secondary-bg-hover: #{map-get($btn-colors, secondary-hover)};
|
|
70
|
-
--btn-success-bg: #{map-get($btn-colors, success)};
|
|
71
|
-
--btn-success-bg-hover: #{map-get($btn-colors, success-hover)};
|
|
72
|
-
--btn-warning-bg: #{map-get($btn-colors, warning)};
|
|
73
|
-
--btn-warning-text: #ffffff;
|
|
74
|
-
--btn-danger-bg: #{map-get($btn-colors, danger)};
|
|
75
|
-
--btn-danger-bg-hover: #{map-get($btn-colors, danger-hover)};
|
|
76
|
-
--btn-info-bg: #{map-get($btn-colors, info)};
|
|
77
|
-
--btn-info-bg-hover: #{map-get($btn-colors, info-hover)};
|
|
78
|
-
--btn-light-bg: #{map-get($btn-colors, light)};
|
|
79
|
-
--btn-light-text: #{map-get($btn-colors, light-text)};
|
|
80
|
-
--btn-light-bg-hover: #{map-get($btn-colors, light-hover)};
|
|
81
|
-
--btn-dark-bg: #{map-get($btn-colors, dark)};
|
|
82
|
-
--btn-dark-bg-hover: #{map-get($btn-colors, dark-hover)};
|
|
83
|
-
|
|
84
|
-
// Modal colors
|
|
85
|
-
--modal-overlay-bg: #{$modal-overlay-bg};
|
|
86
|
-
--modal-content-bg: #{$modal-content-bg};
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
[data-theme="#{$theme-name}"] {
|
|
90
|
-
body {
|
|
91
|
-
background-color: var(--content-background-color);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.admin-content {
|
|
95
|
-
background-color: var(--content-background-color);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.content-section {
|
|
99
|
-
background: #{$card-bg};
|
|
100
|
-
border: 1px solid var(--border-color);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.long-content .content-block {
|
|
104
|
-
background: #{$card-bg};
|
|
105
|
-
border: 1px solid var(--border-color);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.pa-card {
|
|
109
|
-
background: var(--card-bg);
|
|
110
|
-
border-color: var(--border-color);
|
|
111
|
-
|
|
112
|
-
&__header {
|
|
113
|
-
background: var(--card-header-bg);
|
|
114
|
-
border-color: var(--border-color);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
&__footer {
|
|
118
|
-
background: var(--card-footer-bg);
|
|
119
|
-
border-color: var(--border-color);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.pa-input,
|
|
124
|
-
.pa-select,
|
|
125
|
-
.pa-textarea {
|
|
126
|
-
background-color: var(--input-bg);
|
|
127
|
-
border-color: var(--border-color);
|
|
128
|
-
color: var(--text-primary);
|
|
129
|
-
|
|
130
|
-
&:focus {
|
|
131
|
-
border-color: var(--accent-color);
|
|
132
|
-
box-shadow: 0 0 0 3px var(--accent-light);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/* Table styling - comprehensive overrides */
|
|
137
|
-
.pa-table {
|
|
138
|
-
background-color: var(--table-bg);
|
|
139
|
-
color: var(--text-primary);
|
|
140
|
-
|
|
141
|
-
th {
|
|
142
|
-
background-color: var(--table-header-bg);
|
|
143
|
-
color: var(--text-primary);
|
|
144
|
-
border-color: var(--border-color);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
td {
|
|
148
|
-
background-color: var(--table-bg);
|
|
149
|
-
color: var(--text-primary);
|
|
150
|
-
border-color: var(--border-color);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
tr {
|
|
154
|
-
background-color: var(--table-bg);
|
|
155
|
-
|
|
156
|
-
&:hover {
|
|
157
|
-
background-color: var(--table-hover-bg);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
tbody {
|
|
162
|
-
tr {
|
|
163
|
-
background-color: var(--table-bg) !important;
|
|
164
|
-
|
|
165
|
-
&:hover {
|
|
166
|
-
background-color: var(--table-hover-bg) !important;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
td {
|
|
171
|
-
background-color: transparent !important;
|
|
172
|
-
color: var(--text-primary);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/* Pure CSS table overrides */
|
|
178
|
-
.pure-table {
|
|
179
|
-
background-color: var(--table-bg);
|
|
180
|
-
color: var(--text-primary);
|
|
181
|
-
|
|
182
|
-
td,
|
|
183
|
-
th {
|
|
184
|
-
background-color: var(--table-bg);
|
|
185
|
-
color: var(--text-primary);
|
|
186
|
-
border-color: var(--border-color);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
thead th {
|
|
190
|
-
background-color: var(--table-header-bg);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
&-striped tr:nth-child(2n-1) td {
|
|
194
|
-
background-color: var(--table-stripe);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
tr:hover td {
|
|
198
|
-
background-color: var(--table-hover-bg);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
.component-card {
|
|
203
|
-
background: var(--card-bg);
|
|
204
|
-
border-color: var(--border-color);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|