@keenmate/pure-admin-core 1.0.0-rc01 → 1.0.0-rc02
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 +59 -22
- package/dist/css/main.css +178 -88
- package/package.json +1 -1
- package/snippets/profile.html +169 -7
- package/src/scss/_base-css-variables.scss +63 -3
- package/src/scss/_core.scss +3 -0
- package/src/scss/core-components/_cards.scss +2 -2
- package/src/scss/core-components/_profile.scss +112 -40
- package/src/scss/core-components/_scrollbars.scss +41 -0
- package/src/scss/core-components/_statistics.scss +3 -3
- package/src/scss/core-components/_tabs.scss +2 -2
- package/src/scss/variables/_base.scss +185 -61
- package/src/scss/variables/_colors.scss +162 -108
- package/src/scss/variables/_components.scss +7 -6
- package/src/scss/variables/_index.scss +9 -3
- package/src/scss/variables/_layout.scss +2 -2
|
@@ -1,81 +1,205 @@
|
|
|
1
1
|
// ============================================================================
|
|
2
|
-
// BASE
|
|
2
|
+
// BASE VARIABLES - Single Source of Truth for Theming
|
|
3
3
|
// ============================================================================
|
|
4
|
-
// These $base-* SCSS variables are
|
|
5
|
-
//
|
|
6
|
-
//
|
|
4
|
+
// These $base-* SCSS variables are the PRIMARY source for all theme colors.
|
|
5
|
+
// Framework variables in _colors.scss, _typography.scss, etc. DERIVE from these.
|
|
6
|
+
// Web components consume these via --base-* CSS custom properties.
|
|
7
|
+
//
|
|
8
|
+
// To create a theme: Override these variables, everything else auto-derives.
|
|
7
9
|
// ============================================================================
|
|
8
10
|
|
|
9
11
|
@use 'sass:color';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
// --- Colors ---
|
|
18
|
-
$base-accent-color: $accent-color !default;
|
|
12
|
+
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// ACCENT COLORS
|
|
15
|
+
// Primary brand/interactive color and its variants
|
|
16
|
+
// =============================================================================
|
|
17
|
+
|
|
18
|
+
$base-accent-color: #007bff !default;
|
|
19
19
|
$base-accent-color-hover: color.adjust($base-accent-color, $lightness: 10%) !default;
|
|
20
20
|
$base-accent-color-active: color.adjust($base-accent-color, $lightness: 20%) !default;
|
|
21
|
-
$base-accent-color-light: $accent-
|
|
22
|
-
$base-accent-color-light-hover: rgba($base-accent-color, 0.12) !default;
|
|
23
|
-
|
|
21
|
+
$base-accent-color-light: rgba($base-accent-color, 0.05) !default;
|
|
22
|
+
$base-accent-color-light-hover: rgba($base-accent-color, 0.12) !default;
|
|
23
|
+
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// TEXT COLORS
|
|
26
|
+
// Hierarchical text colors for different emphasis levels
|
|
27
|
+
// =============================================================================
|
|
28
|
+
|
|
29
|
+
$base-text-color-1: #2c3e50 !default; // Primary text (strongest)
|
|
30
|
+
$base-text-color-2: #6c757d !default; // Secondary text (muted)
|
|
31
|
+
$base-text-color-3: #7a8a99 !default; // Tertiary text (lighter)
|
|
32
|
+
$base-text-color-4: #a3b1bf !default; // Quaternary text (lightest)
|
|
33
|
+
$base-text-color-on-accent: #ffffff !default; // Text on accent backgrounds
|
|
34
|
+
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// SURFACE COLORS
|
|
37
|
+
// Background colors for different surface levels
|
|
38
|
+
// =============================================================================
|
|
39
|
+
|
|
40
|
+
$base-surface-1: #ffffff !default; // Primary surface (cards, modals)
|
|
41
|
+
$base-surface-2: #f8f9fa !default; // Secondary surface (subtle backgrounds)
|
|
42
|
+
$base-surface-3: #e9ecef !default; // Tertiary surface (dividers, borders)
|
|
43
|
+
$base-surface-inverse: #2c3e50 !default; // Inverse surface (tooltips, dark elements)
|
|
44
|
+
$base-overlay-bg: rgba(0, 0, 0, 0.5) !default; // Modal/overlay background
|
|
45
|
+
$base-shadow-color: rgba(0, 0, 0, 0.15) !default; // Shadow color for elevation
|
|
46
|
+
|
|
47
|
+
// Backward compatibility mappings
|
|
48
|
+
$base-primary-bg: $base-surface-1 !default;
|
|
24
49
|
$base-primary-bg-hover: color.adjust($base-primary-bg, $lightness: -5%) !default;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
50
|
+
|
|
51
|
+
// =============================================================================
|
|
52
|
+
// BORDER COLORS
|
|
53
|
+
// Border colors and shorthand
|
|
54
|
+
// =============================================================================
|
|
55
|
+
|
|
56
|
+
$base-border-color: #e1e5e9 !default;
|
|
32
57
|
$base-border: 1px solid $base-border-color !default;
|
|
33
58
|
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
59
|
+
// =============================================================================
|
|
60
|
+
// INPUT FIELDS
|
|
61
|
+
// Input field styling and states
|
|
62
|
+
// =============================================================================
|
|
63
|
+
|
|
64
|
+
$base-input-bg: $base-surface-1 !default;
|
|
65
|
+
$base-input-color: #495057 !default;
|
|
66
|
+
$base-input-border: 1px solid #ced4da !default;
|
|
67
|
+
$base-input-border-hover: 1px solid #b8bfc6 !default;
|
|
39
68
|
$base-input-border-focus: 1px solid $base-accent-color !default;
|
|
40
69
|
$base-input-placeholder-color: $base-text-color-4 !default;
|
|
41
|
-
$base-input-bg-disabled: rgba($input-bg, 0.5) !default;
|
|
70
|
+
$base-input-bg-disabled: rgba($base-input-bg, 0.5) !default;
|
|
42
71
|
|
|
43
|
-
//
|
|
72
|
+
// Input size heights (unitless multipliers for x10px base)
|
|
44
73
|
$base-input-size-xs-height: 3.1 !default; // 31px
|
|
45
74
|
$base-input-size-sm-height: 3.3 !default; // 33px
|
|
46
75
|
$base-input-size-md-height: 3.5 !default; // 35px
|
|
47
76
|
$base-input-size-lg-height: 3.8 !default; // 38px
|
|
48
77
|
$base-input-size-xl-height: 4.1 !default; // 41px
|
|
49
78
|
|
|
79
|
+
// =============================================================================
|
|
80
|
+
// DROPDOWN / POPOVER
|
|
81
|
+
// Floating element styling
|
|
82
|
+
// =============================================================================
|
|
83
|
+
|
|
84
|
+
$base-dropdown-bg: $base-surface-1 !default;
|
|
85
|
+
$base-dropdown-border: 1px solid $base-border-color !default;
|
|
86
|
+
$base-dropdown-box-shadow: 0 8px 16px $base-shadow-color !default;
|
|
87
|
+
|
|
88
|
+
// =============================================================================
|
|
89
|
+
// TOOLTIP
|
|
90
|
+
// Tooltip styling
|
|
91
|
+
// =============================================================================
|
|
92
|
+
|
|
93
|
+
$base-tooltip-bg: $base-surface-inverse !default;
|
|
94
|
+
$base-tooltip-text-color: #ffffff !default;
|
|
95
|
+
|
|
96
|
+
// =============================================================================
|
|
97
|
+
// CONTEXTUAL COLORS - SUCCESS
|
|
98
|
+
// Success/positive semantic colors
|
|
99
|
+
// =============================================================================
|
|
100
|
+
|
|
101
|
+
$base-success-color: #28a745 !default;
|
|
102
|
+
$base-success-color-hover: color.adjust($base-success-color, $lightness: -10%) !default;
|
|
103
|
+
$base-success-bg-light: rgba($base-success-color, 0.1) !default;
|
|
104
|
+
$base-success-bg-subtle: rgba($base-success-color, 0.08) !default;
|
|
105
|
+
$base-success-border: rgba($base-success-color, 0.2) !default;
|
|
106
|
+
$base-success-text: #155724 !default;
|
|
107
|
+
$base-success-text-light: #d4edda !default;
|
|
108
|
+
$base-text-on-success: #ffffff !default;
|
|
109
|
+
|
|
110
|
+
// =============================================================================
|
|
111
|
+
// CONTEXTUAL COLORS - DANGER
|
|
112
|
+
// Danger/error semantic colors
|
|
113
|
+
// =============================================================================
|
|
114
|
+
|
|
115
|
+
$base-danger-color: #dc3545 !default;
|
|
116
|
+
$base-danger-color-hover: color.adjust($base-danger-color, $lightness: -10%) !default;
|
|
117
|
+
$base-danger-bg-light: rgba($base-danger-color, 0.1) !default;
|
|
118
|
+
$base-danger-bg-subtle: rgba($base-danger-color, 0.08) !default;
|
|
119
|
+
$base-danger-border: rgba($base-danger-color, 0.2) !default;
|
|
120
|
+
$base-danger-text: #721c24 !default;
|
|
121
|
+
$base-danger-text-light: #f8d7da !default;
|
|
122
|
+
$base-text-on-danger: #ffffff !default;
|
|
123
|
+
|
|
124
|
+
// =============================================================================
|
|
125
|
+
// CONTEXTUAL COLORS - WARNING
|
|
126
|
+
// Warning semantic colors
|
|
127
|
+
// =============================================================================
|
|
128
|
+
|
|
129
|
+
$base-warning-color: #ffc107 !default;
|
|
130
|
+
$base-warning-color-hover: color.adjust($base-warning-color, $lightness: -10%) !default;
|
|
131
|
+
$base-warning-bg-light: rgba($base-warning-color, 0.1) !default;
|
|
132
|
+
$base-warning-bg-subtle: rgba($base-warning-color, 0.08) !default;
|
|
133
|
+
$base-warning-border: rgba($base-warning-color, 0.2) !default;
|
|
134
|
+
$base-warning-text: #856404 !default;
|
|
135
|
+
$base-warning-text-light: #fff3cd !default;
|
|
136
|
+
$base-text-on-warning: #212529 !default; // Dark text for yellow backgrounds
|
|
137
|
+
|
|
138
|
+
// =============================================================================
|
|
139
|
+
// CONTEXTUAL COLORS - INFO
|
|
140
|
+
// Info semantic colors
|
|
141
|
+
// =============================================================================
|
|
142
|
+
|
|
143
|
+
$base-info-color: #17a2b8 !default;
|
|
144
|
+
$base-info-color-hover: color.adjust($base-info-color, $lightness: -10%) !default;
|
|
145
|
+
$base-info-bg-light: rgba($base-info-color, 0.1) !default;
|
|
146
|
+
$base-info-bg-subtle: rgba($base-info-color, 0.08) !default;
|
|
147
|
+
$base-info-border: rgba($base-info-color, 0.2) !default;
|
|
148
|
+
$base-info-text: #0c5460 !default;
|
|
149
|
+
$base-info-text-light: #d1ecf1 !default;
|
|
150
|
+
$base-text-on-info: #ffffff !default;
|
|
151
|
+
|
|
152
|
+
// =============================================================================
|
|
153
|
+
// INTERACTIVE STATES
|
|
154
|
+
// Generic interaction feedback colors
|
|
155
|
+
// =============================================================================
|
|
156
|
+
|
|
157
|
+
$base-hover-overlay: rgba(0, 0, 0, 0.04) !default;
|
|
158
|
+
$base-active-overlay: rgba(0, 0, 0, 0.08) !default;
|
|
159
|
+
$base-focus-ring-color: $base-accent-color !default;
|
|
160
|
+
$base-focus-ring-width: 3px !default;
|
|
161
|
+
|
|
162
|
+
// =============================================================================
|
|
163
|
+
// TYPOGRAPHY
|
|
164
|
+
// Font families, sizes, weights, and line heights
|
|
165
|
+
// =============================================================================
|
|
166
|
+
|
|
167
|
+
$base-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !default;
|
|
168
|
+
$base-font-family-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace !default;
|
|
169
|
+
|
|
170
|
+
// Font sizes (unitless multipliers for x10px base)
|
|
171
|
+
$base-font-size-2xs: 1.0 !default; // 10px
|
|
172
|
+
$base-font-size-xs: 1.2 !default; // 12px
|
|
173
|
+
$base-font-size-sm: 1.4 !default; // 14px
|
|
174
|
+
$base-font-size-base: 1.6 !default; // 16px
|
|
175
|
+
$base-font-size-lg: 1.8 !default; // 18px
|
|
176
|
+
$base-font-size-xl: 2.0 !default; // 20px
|
|
177
|
+
$base-font-size-2xl: 2.4 !default; // 24px
|
|
178
|
+
|
|
179
|
+
// Font weights
|
|
180
|
+
$base-font-weight-normal: 400 !default;
|
|
181
|
+
$base-font-weight-medium: 500 !default;
|
|
182
|
+
$base-font-weight-semibold: 600 !default;
|
|
183
|
+
$base-font-weight-bold: 700 !default;
|
|
184
|
+
|
|
185
|
+
// Line heights
|
|
186
|
+
$base-line-height-tight: 1.25 !default;
|
|
187
|
+
$base-line-height-normal: 1.5 !default;
|
|
188
|
+
$base-line-height-relaxed: 1.75 !default;
|
|
189
|
+
|
|
190
|
+
// =============================================================================
|
|
191
|
+
// BORDER RADIUS
|
|
192
|
+
// Border radius sizes (unitless multipliers for x10px base)
|
|
193
|
+
// =============================================================================
|
|
194
|
+
|
|
195
|
+
$base-border-radius-sm: 0.4 !default; // 4px
|
|
196
|
+
$base-border-radius-md: 0.6 !default; // 6px
|
|
197
|
+
$base-border-radius-lg: 0.8 !default; // 8px
|
|
198
|
+
|
|
199
|
+
// =============================================================================
|
|
200
|
+
// COMPONENT-SPECIFIC DERIVED VALUES
|
|
201
|
+
// Variables that components need, derived from base
|
|
202
|
+
// =============================================================================
|
|
203
|
+
|
|
50
204
|
// Command palette input height (must be after $base-input-size-* variables)
|
|
51
|
-
$command-palette-input-height: #{$base-input-size-lg-height}rem !default;
|
|
52
|
-
|
|
53
|
-
// --- Dropdown/Popover ---
|
|
54
|
-
$base-dropdown-bg: $card-bg !default;
|
|
55
|
-
$base-dropdown-border: 1px solid $border-color !default;
|
|
56
|
-
$base-dropdown-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15) !default;
|
|
57
|
-
|
|
58
|
-
// --- Tooltip ---
|
|
59
|
-
$base-tooltip-bg: $tooltip-bg !default;
|
|
60
|
-
$base-tooltip-text-color: $tooltip-text !default;
|
|
61
|
-
|
|
62
|
-
// --- Typography (unitless multipliers for × 10px base) ---
|
|
63
|
-
$base-font-family: $body-font-family !default;
|
|
64
|
-
$base-font-size-2xs: 1.0 !default; // × 10px = 10px
|
|
65
|
-
$base-font-size-xs: 1.2 !default; // × 10px = 12px
|
|
66
|
-
$base-font-size-sm: 1.4 !default; // × 10px = 14px
|
|
67
|
-
$base-font-size-base: 1.6 !default; // × 10px = 16px
|
|
68
|
-
$base-font-size-lg: 1.8 !default; // × 10px = 18px
|
|
69
|
-
$base-font-size-xl: 2.0 !default; // × 10px = 20px
|
|
70
|
-
$base-font-size-2xl: 2.4 !default; // × 10px = 24px
|
|
71
|
-
$base-font-weight-normal: $font-weight-normal !default;
|
|
72
|
-
$base-font-weight-medium: $font-weight-medium !default;
|
|
73
|
-
$base-font-weight-semibold: $font-weight-semibold !default;
|
|
74
|
-
$base-line-height-tight: $line-height-tight !default;
|
|
75
|
-
$base-line-height-normal: $line-height-base !default;
|
|
76
|
-
$base-line-height-relaxed: $line-height-relaxed !default;
|
|
77
|
-
|
|
78
|
-
// --- Border Radius (unitless multipliers for × 10px base) ---
|
|
79
|
-
$base-border-radius-sm: 0.4 !default; // × 10px = 4px
|
|
80
|
-
$base-border-radius-md: 0.6 !default; // × 10px = 6px
|
|
81
|
-
$base-border-radius-lg: 0.8 !default; // × 10px = 8px
|
|
205
|
+
$command-palette-input-height: #{$base-input-size-lg-height}rem !default;
|
|
@@ -1,135 +1,186 @@
|
|
|
1
1
|
// ============================================================================
|
|
2
2
|
// COLOR VARIABLES
|
|
3
3
|
// Theme colors, button colors, contextual colors, component colors
|
|
4
|
+
// These variables DERIVE from base variables for unified theming
|
|
4
5
|
// ============================================================================
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
$
|
|
14
|
-
$
|
|
15
|
-
$
|
|
16
|
-
$
|
|
17
|
-
$
|
|
18
|
-
$
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
$
|
|
22
|
-
$
|
|
23
|
-
$
|
|
24
|
-
$
|
|
25
|
-
$
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
$
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
$
|
|
32
|
-
$
|
|
33
|
-
$
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
$
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
$
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
7
|
+
@use 'sass:color';
|
|
8
|
+
@use 'base' as *;
|
|
9
|
+
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// LAYOUT COLORS (derived from base)
|
|
12
|
+
// =============================================================================
|
|
13
|
+
|
|
14
|
+
$primary-bg: $base-surface-2 !default;
|
|
15
|
+
$bg-secondary: $base-surface-2 !default;
|
|
16
|
+
$text-primary: $base-text-color-1 !default;
|
|
17
|
+
$text-secondary: $base-text-color-2 !default;
|
|
18
|
+
$border-color: $base-border-color !default;
|
|
19
|
+
$content-background-color: $base-surface-1 !default;
|
|
20
|
+
|
|
21
|
+
// Header colors
|
|
22
|
+
$header-bg: $base-surface-1 !default;
|
|
23
|
+
$header-border-color: $base-border-color !default;
|
|
24
|
+
$header-text: $base-text-color-1 !default;
|
|
25
|
+
$header-text-secondary: $base-text-color-2 !default;
|
|
26
|
+
$header-profile-name-color: $base-text-color-1 !default;
|
|
27
|
+
|
|
28
|
+
// Sidebar colors
|
|
29
|
+
$sidebar-bg: $base-surface-2 !default;
|
|
30
|
+
$sidebar-text: $base-text-color-1 !default;
|
|
31
|
+
$sidebar-text-secondary: $base-text-color-2 !default;
|
|
32
|
+
$sidebar-submenu-bg: $base-surface-3 !default;
|
|
33
|
+
$sidebar-submenu-hover-bg: color.adjust($base-surface-3, $lightness: -5%) !default;
|
|
34
|
+
$sidebar-submenu-active-bg: color.adjust($base-surface-3, $lightness: -10%) !default;
|
|
35
|
+
|
|
36
|
+
// Footer colors
|
|
37
|
+
$footer-bg: $base-surface-1 !default;
|
|
38
|
+
$footer-border-color: $base-border-color !default;
|
|
39
|
+
|
|
40
|
+
// Accent colors (derived from base)
|
|
41
|
+
$accent-color: $base-accent-color !default;
|
|
42
|
+
$accent-hover: $base-accent-color-light-hover !default;
|
|
43
|
+
$accent-light: $base-accent-color-light !default;
|
|
44
|
+
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// CARD COLORS (derived from base surfaces)
|
|
47
|
+
// =============================================================================
|
|
48
|
+
|
|
49
|
+
$card-bg: $base-surface-1 !default;
|
|
50
|
+
$card-header-bg: $base-surface-2 !default;
|
|
51
|
+
$card-footer-bg: $base-surface-1 !default;
|
|
52
|
+
$card-tabs-bg: $base-surface-2 !default;
|
|
53
|
+
|
|
54
|
+
// =============================================================================
|
|
55
|
+
// INPUT COLORS (derived from base input vars)
|
|
56
|
+
// =============================================================================
|
|
57
|
+
|
|
58
|
+
$input-bg: $base-input-bg !default;
|
|
59
|
+
$input-border: #ced4da !default; // Extracted from base-input-border
|
|
60
|
+
$input-text: $base-input-color !default;
|
|
61
|
+
|
|
62
|
+
// =============================================================================
|
|
63
|
+
// TABLE COLORS (derived from base surfaces)
|
|
64
|
+
// =============================================================================
|
|
65
|
+
|
|
66
|
+
$table-stripe: $base-surface-2 !default;
|
|
67
|
+
$table-bg: $base-surface-1 !default;
|
|
68
|
+
$table-header-bg: $base-surface-2 !default;
|
|
69
|
+
$table-hover-bg: $base-surface-2 !default;
|
|
46
70
|
|
|
47
71
|
// Table row hover accent (border)
|
|
48
72
|
$table-hover-accent-width: 0 !default;
|
|
49
|
-
$table-hover-accent-color: $accent-color !default;
|
|
73
|
+
$table-hover-accent-color: $base-accent-color !default;
|
|
50
74
|
$table-hover-accent-position: left !default;
|
|
51
75
|
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
76
|
+
// =============================================================================
|
|
77
|
+
// BUTTON COLORS (derived from base contextual colors)
|
|
78
|
+
// =============================================================================
|
|
79
|
+
|
|
80
|
+
// Primary button (uses accent)
|
|
81
|
+
$btn-primary-bg: $base-accent-color !default;
|
|
82
|
+
$btn-primary-bg-hover: $base-accent-color-hover !default;
|
|
83
|
+
$btn-primary-text: $base-text-color-on-accent !default;
|
|
84
|
+
|
|
85
|
+
// Secondary button
|
|
56
86
|
$btn-secondary-bg: #6c757d !default;
|
|
57
87
|
$btn-secondary-bg-hover: #545b62 !default;
|
|
58
88
|
$btn-secondary-text: #ffffff !default;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
$btn-success-
|
|
62
|
-
$btn-
|
|
63
|
-
$btn-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
$btn-
|
|
67
|
-
$btn-
|
|
68
|
-
$btn-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
$btn-
|
|
72
|
-
$btn-
|
|
73
|
-
$btn-
|
|
74
|
-
$btn-
|
|
89
|
+
|
|
90
|
+
// Success button (derived from base success)
|
|
91
|
+
$btn-success-bg: $base-success-color !default;
|
|
92
|
+
$btn-success-bg-hover: $base-success-color-hover !default;
|
|
93
|
+
$btn-success-text: $base-text-on-success !default;
|
|
94
|
+
|
|
95
|
+
// Danger button (derived from base danger)
|
|
96
|
+
$btn-danger-bg: $base-danger-color !default;
|
|
97
|
+
$btn-danger-bg-hover: $base-danger-color-hover !default;
|
|
98
|
+
$btn-danger-text: $base-text-on-danger !default;
|
|
99
|
+
|
|
100
|
+
// Warning button (derived from base warning)
|
|
101
|
+
$btn-warning-bg: $base-warning-color !default;
|
|
102
|
+
$btn-warning-bg-hover: $base-warning-color-hover !default;
|
|
103
|
+
$btn-warning-text: $base-text-on-warning !default;
|
|
104
|
+
$btn-warning-color: $base-text-on-warning !default;
|
|
105
|
+
|
|
106
|
+
// Info button (derived from base info)
|
|
107
|
+
$btn-info-bg: $base-info-color !default;
|
|
108
|
+
$btn-info-bg-hover: $base-info-color-hover !default;
|
|
109
|
+
$btn-info-text: $base-text-on-info !default;
|
|
110
|
+
|
|
111
|
+
// Light button
|
|
112
|
+
$btn-light-bg: $base-surface-2 !default;
|
|
113
|
+
$btn-light-bg-hover: $base-surface-3 !default;
|
|
114
|
+
$btn-light-text: $base-text-color-1 !default;
|
|
115
|
+
|
|
116
|
+
// Dark button
|
|
75
117
|
$btn-dark-bg: #343a40 !default;
|
|
76
118
|
$btn-dark-bg-hover: #1d2124 !default;
|
|
77
119
|
$btn-dark-text: #ffffff !default;
|
|
78
120
|
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
$success-
|
|
85
|
-
$success-
|
|
86
|
-
$success-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
$
|
|
90
|
-
$
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
$danger-
|
|
94
|
-
$danger-
|
|
95
|
-
$danger-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
$
|
|
99
|
-
$
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
$warning-
|
|
103
|
-
$warning-
|
|
104
|
-
$warning-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
$
|
|
108
|
-
$
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
$info-
|
|
112
|
-
$info-
|
|
113
|
-
$info-
|
|
114
|
-
|
|
115
|
-
|
|
121
|
+
// =============================================================================
|
|
122
|
+
// CONTEXTUAL COLORS (derived from base contextual)
|
|
123
|
+
// =============================================================================
|
|
124
|
+
|
|
125
|
+
// Success colors
|
|
126
|
+
$success-bg: $base-success-color !default;
|
|
127
|
+
$success-bg-hover: $base-success-color-hover !default;
|
|
128
|
+
$success-bg-light: $base-success-bg-light !default;
|
|
129
|
+
$success-bg-subtle: $base-success-bg-subtle !default;
|
|
130
|
+
$success-border: $base-success-border !default;
|
|
131
|
+
$success-text: $base-success-text !default;
|
|
132
|
+
$success-text-light: $base-success-text-light !default;
|
|
133
|
+
|
|
134
|
+
// Danger colors
|
|
135
|
+
$danger-bg: $base-danger-color !default;
|
|
136
|
+
$danger-bg-hover: $base-danger-color-hover !default;
|
|
137
|
+
$danger-bg-light: $base-danger-bg-light !default;
|
|
138
|
+
$danger-bg-subtle: $base-danger-bg-subtle !default;
|
|
139
|
+
$danger-border: $base-danger-border !default;
|
|
140
|
+
$danger-text: $base-danger-text !default;
|
|
141
|
+
$danger-text-light: $base-danger-text-light !default;
|
|
142
|
+
|
|
143
|
+
// Warning colors
|
|
144
|
+
$warning-bg: $base-warning-color !default;
|
|
145
|
+
$warning-bg-hover: $base-warning-color-hover !default;
|
|
146
|
+
$warning-bg-light: $base-warning-bg-light !default;
|
|
147
|
+
$warning-bg-subtle: $base-warning-bg-subtle !default;
|
|
148
|
+
$warning-border: $base-warning-border !default;
|
|
149
|
+
$warning-text: $base-warning-text !default;
|
|
150
|
+
$warning-text-light: $base-warning-text-light !default;
|
|
151
|
+
|
|
152
|
+
// Info colors
|
|
153
|
+
$info-bg: $base-info-color !default;
|
|
154
|
+
$info-bg-hover: $base-info-color-hover !default;
|
|
155
|
+
$info-bg-light: $base-info-bg-light !default;
|
|
156
|
+
$info-bg-subtle: $base-info-bg-subtle !default;
|
|
157
|
+
$info-border: $base-info-border !default;
|
|
158
|
+
$info-text: $base-info-text !default;
|
|
159
|
+
$info-text-light: $base-info-text-light !default;
|
|
160
|
+
|
|
161
|
+
// Secondary colors
|
|
116
162
|
$secondary-bg: $btn-secondary-bg !default;
|
|
117
163
|
$secondary-bg-hover: $btn-secondary-bg-hover !default;
|
|
118
164
|
$secondary-text: #383d41 !default;
|
|
119
|
-
$secondary-light-bg:
|
|
120
|
-
$secondary-light-text:
|
|
121
|
-
$secondary-lighter-bg:
|
|
165
|
+
$secondary-light-bg: $base-surface-3 !default;
|
|
166
|
+
$secondary-light-text: $base-text-color-1 !default;
|
|
167
|
+
$secondary-lighter-bg: $base-surface-3 !default;
|
|
122
168
|
|
|
123
|
-
//
|
|
124
|
-
|
|
125
|
-
|
|
169
|
+
// =============================================================================
|
|
170
|
+
// TOOLTIP & POPOVER COLORS (derived from base)
|
|
171
|
+
// =============================================================================
|
|
172
|
+
|
|
173
|
+
$tooltip-bg: $base-tooltip-bg !default;
|
|
174
|
+
$tooltip-text: $base-tooltip-text-color !default;
|
|
126
175
|
|
|
127
|
-
// Popover colors
|
|
128
176
|
$popover-text-light: #ffffff !default;
|
|
129
177
|
$popover-text-dark: #000000 !default;
|
|
130
|
-
$popover-content-bg:
|
|
178
|
+
$popover-content-bg: $base-surface-1 !default;
|
|
179
|
+
|
|
180
|
+
// =============================================================================
|
|
181
|
+
// CODE LANGUAGE COLORS (standalone - not themed)
|
|
182
|
+
// =============================================================================
|
|
131
183
|
|
|
132
|
-
// Code language colors
|
|
133
184
|
$code-language-json: #f59e0b !default;
|
|
134
185
|
$code-language-javascript: #f0db4f !default;
|
|
135
186
|
$code-language-html: #e34c26 !default;
|
|
@@ -143,6 +194,9 @@ $code-syntax-number: #ff6600 !default;
|
|
|
143
194
|
$code-syntax-function: #9933cc !default;
|
|
144
195
|
$code-syntax-property: #dd4a68 !default;
|
|
145
196
|
|
|
146
|
-
//
|
|
197
|
+
// =============================================================================
|
|
198
|
+
// COMPARISON TABLE COLORS
|
|
199
|
+
// =============================================================================
|
|
200
|
+
|
|
147
201
|
$comparison-accent-pink: #ec4899 !default;
|
|
148
202
|
$comparison-accent-orange: #f97316 !default;
|
|
@@ -143,12 +143,13 @@ $profile-panel-mobile-max-width: 40rem !default; // 400px (was 25rem)
|
|
|
143
143
|
// ============================================================================
|
|
144
144
|
// CARD SYSTEM
|
|
145
145
|
// ============================================================================
|
|
146
|
-
$card-body-padding: 1.6rem !default;
|
|
147
|
-
$card-
|
|
148
|
-
$card-header-padding-
|
|
149
|
-
$card-header-
|
|
150
|
-
$card-
|
|
151
|
-
$card-footer-padding-
|
|
146
|
+
$card-body-padding-v: 1.6rem !default; // 16px vertical
|
|
147
|
+
$card-body-padding-h: 1rem !default; // 10px horizontal
|
|
148
|
+
$card-header-padding-v: 0.8rem !default; // 8px vertical
|
|
149
|
+
$card-header-padding-h: 1rem !default; // 10px horizontal - matches body
|
|
150
|
+
$card-header-min-height: 4rem !default; // 40px - fits xs buttons (32px) with padding
|
|
151
|
+
$card-footer-padding-v: 1.2rem !default; // 12px vertical
|
|
152
|
+
$card-footer-padding-h: 1rem !default; // 10px horizontal - matches body
|
|
152
153
|
$card-grid-min-width: 280px !default;
|
|
153
154
|
$card-stat-padding-v: $spacing-lg !default;
|
|
154
155
|
$card-stat-padding-h: $spacing-base !default;
|
|
@@ -3,11 +3,17 @@
|
|
|
3
3
|
// Central import point for all variable modules
|
|
4
4
|
// ============================================================================
|
|
5
5
|
|
|
6
|
-
//
|
|
7
|
-
|
|
6
|
+
// IMPORTANT: Order matters for dependencies!
|
|
7
|
+
// 1. Base variables are the SOURCE OF TRUTH (standalone, no imports)
|
|
8
|
+
// 2. All other modules can import from base and derive their values
|
|
9
|
+
|
|
10
|
+
// Base variables FIRST - single source of truth for theming
|
|
11
|
+
@forward 'base';
|
|
12
|
+
|
|
13
|
+
// Derived framework variables (can use base values)
|
|
8
14
|
@forward 'typography';
|
|
9
15
|
@forward 'spacing';
|
|
10
16
|
@forward 'colors';
|
|
17
|
+
@forward 'layout';
|
|
11
18
|
@forward 'system';
|
|
12
19
|
@forward 'components';
|
|
13
|
-
@forward 'base';
|
|
@@ -43,8 +43,8 @@ $tablet-breakpoint-min: 769px !default;
|
|
|
43
43
|
$sidebar-width-tablet: 16rem !default; // 160px (was 10rem)
|
|
44
44
|
|
|
45
45
|
// Scrollbar
|
|
46
|
-
$scrollbar-width:
|
|
47
|
-
$scrollbar-border-radius:
|
|
46
|
+
$scrollbar-width: 6px !default;
|
|
47
|
+
$scrollbar-border-radius: 3px !default;
|
|
48
48
|
|
|
49
49
|
// Border radius
|
|
50
50
|
$border-radius-sm: 2px !default;
|