commons-shared-web-ui 0.0.1

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.
@@ -0,0 +1,184 @@
1
+ @use 'sass:map';
2
+
3
+ // Default configuration for the summary card theme (Theme 1 - Clean & Minimal)
4
+ $default-summary-card-config: (
5
+ // Base
6
+ font-family: ('Inter', sans-serif),
7
+ bg-color: #ffffff,
8
+ border-radius: 8px,
9
+ border: 1px solid #e0e0e0,
10
+ padding: 20px,
11
+ shadow: 0 1px 3px rgba(0, 0, 0, 0.05),
12
+ min-height: auto,
13
+ transition-duration: 0.2s,
14
+
15
+ // Hover States
16
+ hover-transform: translateY(-2px),
17
+ hover-shadow: 0 4px 8px rgba(0, 0, 0, 0.1),
18
+
19
+ // Disabled State
20
+ disabled-opacity: 0.5,
21
+
22
+ // Icon Section
23
+ icon-box-size: 48px,
24
+ icon-size: 24px,
25
+ icon-radius: 8px,
26
+ icon-bg: rgba(0, 0, 0, 0.05),
27
+ icon-color: #666666,
28
+ icon-margin: 1rem,
29
+
30
+ // Content Section
31
+ content-gap: 0.5rem,
32
+
33
+ // Header
34
+ header-size: 0.75rem,
35
+ header-weight: 600,
36
+ header-color: #6c757d,
37
+ header-transform: uppercase,
38
+ header-letter-spacing: 0.05em,
39
+ header-line-height: 1.2,
40
+
41
+ // Value
42
+ value-size: 1.5rem,
43
+ value-weight: 700,
44
+ value-color: #333333,
45
+ value-line-height: 1.2,
46
+
47
+ // Description
48
+ desc-size: 0.75rem,
49
+ desc-weight: 400,
50
+ desc-color: #6c757d,
51
+ desc-line-height: 1.4,
52
+ value-desc-gap: 0.25rem,
53
+
54
+ // Meta Pill
55
+ meta-pill-bg: #f1f5f9,
56
+ meta-pill-color: #475569,
57
+ meta-pill-padding: 4px 12px,
58
+ meta-pill-radius: 20px,
59
+ meta-pill-font-size: 0.75rem,
60
+ meta-pill-font-weight: 600
61
+ );
62
+
63
+ // Theme 2 configuration (Aesthetic & Modern)
64
+ $theme-2-summary-card-config: (
65
+ // Base
66
+ font-family: ('Poppins', 'Segoe UI', sans-serif),
67
+ bg-color: #ffffff,
68
+ border-radius: 16px,
69
+ border: none,
70
+ padding: 28px,
71
+ shadow: 0 8px 24px rgba(0, 0, 0, 0.08),
72
+ min-height: 120px,
73
+ transition-duration: 0.3s,
74
+
75
+ // Hover States
76
+ hover-transform: translateY(-4px),
77
+ hover-shadow: 0 12px 32px rgba(0, 0, 0, 0.15),
78
+
79
+ // Disabled State
80
+ disabled-opacity: 0.4,
81
+
82
+ // Icon Section
83
+ icon-box-size: 56px,
84
+ icon-size: 28px,
85
+ icon-radius: 12px,
86
+ icon-bg: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(168, 85, 247, 0.1) 100%),
87
+ icon-color: #6366f1,
88
+ icon-margin: 1.25rem,
89
+
90
+ // Content Section
91
+ content-gap: 0.75rem,
92
+
93
+ // Header
94
+ header-size: 0.8rem,
95
+ header-weight: 500,
96
+ header-color: #94a3b8,
97
+ header-transform: none,
98
+ header-letter-spacing: 0.02em,
99
+ header-line-height: 1.3,
100
+
101
+ // Value
102
+ value-size: 2rem,
103
+ value-weight: 700,
104
+ value-color: #1e293b,
105
+ value-line-height: 1.1,
106
+
107
+ // Description
108
+ desc-size: 0.85rem,
109
+ desc-weight: 400,
110
+ desc-color: #64748b,
111
+ desc-line-height: 1.5,
112
+ value-desc-gap: 0.5rem,
113
+
114
+ // Meta Pill
115
+ meta-pill-bg: #f1f5f9,
116
+ meta-pill-color: #475569,
117
+ meta-pill-padding: 4px 12px,
118
+ meta-pill-radius: 20px,
119
+ meta-pill-font-size: 0.75rem,
120
+ meta-pill-font-weight: 600
121
+ );
122
+
123
+ // Mixin to generate CSS variables for the summary card component
124
+ @mixin summary-card-theme($user-config: ()) {
125
+ // Merge user config with defaults
126
+ $config: map.merge($default-summary-card-config, $user-config);
127
+
128
+ // Generate CSS Variables
129
+ --cc-sc-font-family: #{map.get($config, font-family)};
130
+ --cc-sc-bg-color: #{map.get($config, bg-color)};
131
+ --cc-sc-border-radius: #{map.get($config, border-radius)};
132
+ --cc-sc-border: #{map.get($config, border)};
133
+ --cc-sc-padding: #{map.get($config, padding)};
134
+ --cc-sc-shadow: #{map.get($config, shadow)};
135
+ --cc-sc-min-height: #{map.get($config, min-height)};
136
+ --cc-sc-transition-duration: #{map.get($config, transition-duration)};
137
+
138
+ --cc-sc-hover-transform: #{map.get($config, hover-transform)};
139
+ --cc-sc-hover-shadow: #{map.get($config, hover-shadow)};
140
+
141
+ --cc-sc-disabled-opacity: #{map.get($config, disabled-opacity)};
142
+
143
+ --cc-sc-icon-box-size: #{map.get($config, icon-box-size)};
144
+ --cc-sc-icon-size: #{map.get($config, icon-size)};
145
+ --cc-sc-icon-radius: #{map.get($config, icon-radius)};
146
+ --cc-sc-icon-bg: #{map.get($config, icon-bg)};
147
+ --cc-sc-icon-color: #{map.get($config, icon-color)};
148
+ --cc-sc-icon-margin: #{map.get($config, icon-margin)};
149
+
150
+ --cc-sc-content-gap: #{map.get($config, content-gap)};
151
+
152
+ --cc-sc-header-size: #{map.get($config, header-size)};
153
+ --cc-sc-header-weight: #{map.get($config, header-weight)};
154
+ --cc-sc-header-color: #{map.get($config, header-color)};
155
+ --cc-sc-header-transform: #{map.get($config, header-transform)};
156
+ --cc-sc-header-letter-spacing: #{map.get($config, header-letter-spacing)};
157
+ --cc-sc-header-line-height: #{map.get($config, header-line-height)};
158
+
159
+ --cc-sc-value-size: #{map.get($config, value-size)};
160
+ --cc-sc-value-weight: #{map.get($config, value-weight)};
161
+ --cc-sc-value-color: #{map.get($config, value-color)};
162
+ --cc-sc-value-line-height: #{map.get($config, value-line-height)};
163
+
164
+ --cc-sc-desc-size: #{map.get($config, desc-size)};
165
+ --cc-sc-desc-weight: #{map.get($config, desc-weight)};
166
+ --cc-sc-desc-color: #{map.get($config, desc-color)};
167
+ --cc-sc-desc-line-height: #{map.get($config, desc-line-height)};
168
+ --cc-sc-value-desc-gap: #{map.get($config, value-desc-gap)};
169
+
170
+ --cc-sc-meta-pill-bg: #{map.get($config, meta-pill-bg)};
171
+ --cc-sc-meta-pill-color: #{map.get($config, meta-pill-color)};
172
+ --cc-sc-meta-pill-padding: #{map.get($config, meta-pill-padding)};
173
+ --cc-sc-meta-pill-radius: #{map.get($config, meta-pill-radius)};
174
+ --cc-sc-meta-pill-font-size: #{map.get($config, meta-pill-font-size)};
175
+ --cc-sc-meta-pill-font-weight: #{map.get($config, meta-pill-font-weight)};
176
+ }
177
+
178
+ .theme-1 .cc-summary-card {
179
+ @include summary-card-theme();
180
+ }
181
+
182
+ .theme-2 .cc-summary-card {
183
+ @include summary-card-theme($theme-2-summary-card-config);
184
+ }
@@ -0,0 +1,115 @@
1
+ :root {
2
+ /* Default Variables (Can be overridden) */
3
+ --cc-card-bg: #ffffff;
4
+ --cc-card-border-color: #e0e0e0;
5
+ --cc-card-border-radius: 8px;
6
+ --cc-card-padding: 16px;
7
+ --cc-card-shadow: none;
8
+
9
+
10
+
11
+ /* Text Colors */
12
+ --text-color: #333333;
13
+ --text-muted: #666666;
14
+ --text-muted-2: #888888;
15
+ --text-light: #6c757d;
16
+ --text-on-primary: #ffffff;
17
+
18
+ /* Borders & Icons */
19
+ --border-color: #dee2e6;
20
+ --icon-bg: rgba(0, 0, 0, 0.05);
21
+
22
+ /* Components */
23
+ --primary-color: #c21e25;
24
+ /* Default Base Primary */
25
+ --btn-primary-bg: var(--primary-color);
26
+ --btn-primary-text: #ffffff;
27
+ --card-bg: #ffffff;
28
+ --input-bg: #fcfcfc;
29
+ --sidenav-bg: #ffffff;
30
+ --sidenav-active-bg: #fff0f0;
31
+ --sidenav-active-text: #ff0000;
32
+
33
+ /* Status & Chips */
34
+ --status-active-bg: #f6ffed;
35
+ --status-active-text: #52c41a;
36
+ --status-inactive-bg: #fffbe6;
37
+ --status-inactive-text: #faad14;
38
+
39
+ --chip-blue-bg: #e6f7ff;
40
+ --chip-blue-text: #1890ff;
41
+ --chip-green-bg: #f6ffed;
42
+ --chip-green-text: #52c41a;
43
+
44
+ /* Form Fields */
45
+ --field-label-color: #202124;
46
+ --field-label-height: 27px;
47
+ --field-input-bg: #fefefe;
48
+ --field-input-border: #bdc1c6;
49
+ --field-input-height: 40px;
50
+ --field-input-radius: 7px;
51
+ --field-hint-color: #5f6368;
52
+ }
53
+
54
+ /* ----------------------------------------------------
55
+ Theme 2 - Aesthetic Midnight (Dark/Neon)
56
+ ---------------------------------------------------- */
57
+ body.theme-2 {
58
+ --primary-color: #00d4ff;
59
+ /* Neon Cyan */
60
+ --secondary-color: #2b52ff;
61
+ /* Bright Blue */
62
+
63
+ /* Layout Backgrounds */
64
+ --header-bg: rgba(15, 28, 63, 0.95);
65
+ /* Deep Indigo */
66
+ --footer-bg-start: #0a1128;
67
+ --footer-bg-end: #0f1c3f;
68
+ --sidebar-bg: #0a1128;
69
+ --content-bg: #0f1c3f;
70
+
71
+ /* Text Colors */
72
+ --text-color: #ffffff;
73
+ --text-muted: rgba(255, 255, 255, 0.7);
74
+ --text-muted-2: rgba(255, 255, 255, 0.6);
75
+ --text-light: #aaaaaa;
76
+ --text-on-primary: #000000;
77
+
78
+ /* Borders & Icons */
79
+ --border-color: rgba(255, 255, 255, 0.1);
80
+ --icon-bg: rgba(255, 255, 255, 0.1);
81
+ /* Typography */
82
+ --cc-font-family: 'Roboto', 'Helvetica Neue', sans-serif;
83
+ --cc-text-color-primary: #000000;
84
+ --cc-text-color-secondary: #757575;
85
+ --cc-text-size-label: 12px;
86
+ --cc-text-size-value: 24px;
87
+ --cc-text-weight-bold: 700;
88
+ --cc-text-weight-medium: 500;
89
+
90
+ /* Theme 1 - Screenshot Match */
91
+ --cc-theme-1-padding: 20px;
92
+ --cc-theme-1-border-radius: 6px;
93
+ --cc-theme-1-border: 1px solid #eeeeee;
94
+ --cc-theme-1-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
95
+
96
+ /* Theme 2 - Aesthetic */
97
+ --cc-theme-2-padding: 32px;
98
+ --cc-theme-2-border-radius: 16px;
99
+ --cc-theme-2-border: none;
100
+ --cc-theme-2-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1);
101
+ --cc-theme-2-bg: #ffffff;
102
+
103
+ }
104
+
105
+ /* Global Reset/Base */
106
+ body {
107
+ margin: 0;
108
+ font-family: 'Inter', sans-serif;
109
+ background-color: var(--content-bg);
110
+ /* Use content-bg, not generic bg-color */
111
+ color: var(--text-color);
112
+ transition:
113
+ background-color 0.3s ease,
114
+ color 0.3s ease;
115
+ }