kimu-core 0.4.1 → 0.4.2
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/.editorconfig +116 -30
- package/.gitattributes +81 -11
- package/.github/FUNDING.yml +8 -8
- package/.github/kimu-copilot-instructions.md +3779 -3779
- package/.github/workflows/deploy-demo.yml +39 -39
- package/.nvmrc +1 -0
- package/.prettierignore +44 -0
- package/.prettierrc +16 -0
- package/FUNDING.md +31 -31
- package/icon.svg +10 -10
- package/package.json +9 -2
- package/scripts/minify-css-assets.js +82 -82
- package/src/core/index.ts +47 -47
- package/src/core/kimu-global-styles.ts +136 -136
- package/src/core/kimu-reactive.ts +196 -196
- package/src/modules-repository/api-axios/CHANGELOG.md +48 -48
- package/src/modules-repository/api-axios/QUICK-REFERENCE.md +178 -178
- package/src/modules-repository/api-axios/README.md +304 -304
- package/src/modules-repository/api-axios/api-axios-service.ts +355 -355
- package/src/modules-repository/api-axios/examples.ts +293 -293
- package/src/modules-repository/api-axios/index.ts +19 -19
- package/src/modules-repository/api-axios/interfaces.ts +71 -71
- package/src/modules-repository/api-axios/module.ts +41 -41
- package/src/modules-repository/api-core/CHANGELOG.md +42 -42
- package/src/modules-repository/api-core/QUICK-REFERENCE.md +192 -192
- package/src/modules-repository/api-core/README.md +435 -435
- package/src/modules-repository/api-core/api-core-service.ts +289 -289
- package/src/modules-repository/api-core/examples.ts +432 -432
- package/src/modules-repository/api-core/index.ts +8 -8
- package/src/modules-repository/api-core/interfaces.ts +83 -83
- package/src/modules-repository/api-core/module.ts +30 -30
- package/src/modules-repository/event-bus/README.md +273 -273
- package/src/modules-repository/event-bus/event-bus-service.ts +176 -176
- package/src/modules-repository/event-bus/module.ts +30 -30
- package/src/modules-repository/notification/README.md +423 -423
- package/src/modules-repository/notification/module.ts +30 -30
- package/src/modules-repository/notification/notification-service.ts +436 -436
- package/src/modules-repository/router/README.it.md +61 -10
- package/src/modules-repository/router/README.md +61 -10
- package/src/modules-repository/router/router-config.ts.example +61 -0
- package/src/modules-repository/router/router.ts +18 -0
- package/src/modules-repository/state/README.md +409 -409
- package/src/modules-repository/state/module.ts +30 -30
- package/src/modules-repository/state/state-service.ts +296 -296
- package/src/modules-repository/theme/README.md +311 -267
- package/src/modules-repository/theme/module.ts +30 -30
- package/src/modules-repository/theme/pre-build.js +40 -40
- package/src/modules-repository/theme/theme-service.ts +411 -389
- package/src/modules-repository/theme/themes/theme-cherry-blossom.css +78 -78
- package/src/modules-repository/theme/themes/theme-cozy.css +111 -111
- package/src/modules-repository/theme/themes/theme-cyberpunk.css +150 -150
- package/src/modules-repository/theme/themes/theme-dark.css +79 -79
- package/src/modules-repository/theme/themes/theme-forest.css +171 -171
- package/src/modules-repository/theme/themes/theme-gold.css +100 -100
- package/src/modules-repository/theme/themes/theme-high-contrast.css +126 -126
- package/src/modules-repository/theme/themes/theme-lava.css +101 -101
- package/src/modules-repository/theme/themes/theme-lavender.css +90 -90
- package/src/modules-repository/theme/themes/theme-light.css +79 -79
- package/src/modules-repository/theme/themes/theme-matrix.css +103 -103
- package/src/modules-repository/theme/themes/theme-midnight.css +81 -81
- package/src/modules-repository/theme/themes/theme-nord.css +94 -94
- package/src/modules-repository/theme/themes/theme-ocean.css +84 -84
- package/src/modules-repository/theme/themes/theme-retro80s.css +343 -343
- package/src/modules-repository/theme/themes/theme-sunset.css +62 -62
- package/src/modules-repository/theme/themes-config-default.json +19 -0
- package/src/modules-repository/theme/themes-config.d.ts +27 -27
- package/src/modules-repository/theme/{themes-config.json → themes-config.json.example} +223 -213
|
@@ -1,343 +1,343 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retro 80s Theme - Nostalgic 1980s aesthetic
|
|
3
|
-
*
|
|
4
|
-
* Inspired by 80s aesthetics with neon grids, LED displays,
|
|
5
|
-
* laser effects, and retro-futuristic vibes
|
|
6
|
-
*
|
|
7
|
-
* Color Palette inspired by:
|
|
8
|
-
* - VHS tapes and CRT monitors
|
|
9
|
-
* - Neon signs and arcade machines
|
|
10
|
-
* - Synthwave and outrun aesthetics
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
:root {
|
|
14
|
-
/* Primary Colors - Hot Pink/Magenta */
|
|
15
|
-
--kimu-primary: #FF10F0;
|
|
16
|
-
--kimu-primary-hover: #FF44F4;
|
|
17
|
-
--kimu-primary-active: #DD00CC;
|
|
18
|
-
--kimu-primary-light: rgba(255, 16, 240, 0.15);
|
|
19
|
-
|
|
20
|
-
/* Secondary Colors - Electric Cyan */
|
|
21
|
-
--kimu-secondary: #00FFFF;
|
|
22
|
-
--kimu-secondary-hover: #33FFFF;
|
|
23
|
-
--kimu-secondary-active: #00DDDD;
|
|
24
|
-
|
|
25
|
-
/* Accent Colors - Laser Orange */
|
|
26
|
-
--kimu-accent: #FF6600;
|
|
27
|
-
--kimu-accent-hover: #FF8833;
|
|
28
|
-
--kimu-accent-active: #DD5500;
|
|
29
|
-
|
|
30
|
-
/* Background Colors - Dark with Grid */
|
|
31
|
-
--kimu-bg-primary: #0D0221;
|
|
32
|
-
--kimu-bg-secondary: #190F33;
|
|
33
|
-
--kimu-bg-tertiary: #240F3F;
|
|
34
|
-
--kimu-bg-hover: #2F1456;
|
|
35
|
-
|
|
36
|
-
/* Text Colors - Bright LED style */
|
|
37
|
-
--kimu-text-primary: #FFFFFF;
|
|
38
|
-
--kimu-text-secondary: #FFE5FF;
|
|
39
|
-
--kimu-text-tertiary: #CCAAFF;
|
|
40
|
-
--kimu-text-disabled: #7744AA;
|
|
41
|
-
|
|
42
|
-
/* Border Colors - Glowing neon */
|
|
43
|
-
--kimu-border: #FF10F0;
|
|
44
|
-
--kimu-border-light: rgba(255, 16, 240, 0.4);
|
|
45
|
-
--kimu-border-strong: #00FFFF;
|
|
46
|
-
|
|
47
|
-
/* Status Colors - 80s Palette */
|
|
48
|
-
--kimu-success: #00FF00;
|
|
49
|
-
--kimu-warning: #FFFF00;
|
|
50
|
-
--kimu-error: #FF0055;
|
|
51
|
-
--kimu-info: #00DDFF;
|
|
52
|
-
|
|
53
|
-
/* Shadows - Neon glow effects */
|
|
54
|
-
--kimu-shadow-sm: 0 0 10px rgba(255, 16, 240, 0.5), 0 0 20px rgba(0, 255, 255, 0.3);
|
|
55
|
-
--kimu-shadow-md: 0 0 15px rgba(255, 16, 240, 0.6), 0 0 30px rgba(0, 255, 255, 0.4);
|
|
56
|
-
--kimu-shadow-lg: 0 0 25px rgba(255, 16, 240, 0.7), 0 0 50px rgba(0, 255, 255, 0.5);
|
|
57
|
-
|
|
58
|
-
/* Additional Component Colors */
|
|
59
|
-
--kimu-card-bg: var(--kimu-bg-secondary);
|
|
60
|
-
--kimu-input-bg: var(--kimu-bg-tertiary);
|
|
61
|
-
--kimu-input-border: var(--kimu-border-light);
|
|
62
|
-
--kimu-input-focus: var(--kimu-primary);
|
|
63
|
-
|
|
64
|
-
/* Links - Neon glow */
|
|
65
|
-
--kimu-link: var(--kimu-secondary);
|
|
66
|
-
--kimu-link-hover: var(--kimu-primary);
|
|
67
|
-
|
|
68
|
-
/* Overlays */
|
|
69
|
-
--kimu-overlay: rgba(13, 2, 33, 0.9);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/* 80s Retro Styling */
|
|
73
|
-
body {
|
|
74
|
-
color: var(--kimu-text-primary);
|
|
75
|
-
background: var(--kimu-bg-primary);
|
|
76
|
-
font-family: 'Orbitron', 'Share Tech Mono', 'Courier New', monospace;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/* Classic 80s Grid Background */
|
|
80
|
-
body::before {
|
|
81
|
-
content: '';
|
|
82
|
-
position: fixed;
|
|
83
|
-
top: 0;
|
|
84
|
-
left: 0;
|
|
85
|
-
width: 100%;
|
|
86
|
-
height: 100%;
|
|
87
|
-
background:
|
|
88
|
-
/* Horizontal lines */
|
|
89
|
-
repeating-linear-gradient(
|
|
90
|
-
0deg,
|
|
91
|
-
transparent,
|
|
92
|
-
transparent 39px,
|
|
93
|
-
rgba(255, 16, 240, 0.15) 39px,
|
|
94
|
-
rgba(255, 16, 240, 0.15) 40px
|
|
95
|
-
),
|
|
96
|
-
/* Vertical lines */
|
|
97
|
-
repeating-linear-gradient(
|
|
98
|
-
90deg,
|
|
99
|
-
transparent,
|
|
100
|
-
transparent 39px,
|
|
101
|
-
rgba(0, 255, 255, 0.1) 39px,
|
|
102
|
-
rgba(0, 255, 255, 0.1) 40px
|
|
103
|
-
),
|
|
104
|
-
/* Gradient horizon */
|
|
105
|
-
linear-gradient(
|
|
106
|
-
180deg,
|
|
107
|
-
rgba(13, 2, 33, 0) 0%,
|
|
108
|
-
rgba(13, 2, 33, 0) 50%,
|
|
109
|
-
rgba(255, 16, 240, 0.05) 70%,
|
|
110
|
-
rgba(0, 255, 255, 0.05) 100%
|
|
111
|
-
);
|
|
112
|
-
pointer-events: none;
|
|
113
|
-
z-index: -1;
|
|
114
|
-
animation: gridScroll 20s linear infinite;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
@keyframes gridScroll {
|
|
118
|
-
0% {
|
|
119
|
-
background-position: 0 0, 0 0, 0 0;
|
|
120
|
-
}
|
|
121
|
-
100% {
|
|
122
|
-
background-position: 0 40px, 0 0, 0 100px;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/* LED-style text with scan lines effect */
|
|
127
|
-
body::after {
|
|
128
|
-
content: '';
|
|
129
|
-
position: fixed;
|
|
130
|
-
top: 0;
|
|
131
|
-
left: 0;
|
|
132
|
-
width: 100%;
|
|
133
|
-
height: 100%;
|
|
134
|
-
background: repeating-linear-gradient(
|
|
135
|
-
0deg,
|
|
136
|
-
rgba(0, 0, 0, 0.1) 0px,
|
|
137
|
-
transparent 1px,
|
|
138
|
-
transparent 2px,
|
|
139
|
-
rgba(0, 0, 0, 0.1) 3px
|
|
140
|
-
);
|
|
141
|
-
pointer-events: none;
|
|
142
|
-
z-index: 9999;
|
|
143
|
-
opacity: 0.3;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/* Headers with neon glow */
|
|
147
|
-
h1, h2, h3, h4, h5, h6 {
|
|
148
|
-
color: var(--kimu-primary);
|
|
149
|
-
text-shadow:
|
|
150
|
-
0 0 10px rgba(255, 16, 240, 0.8),
|
|
151
|
-
0 0 20px rgba(255, 16, 240, 0.6),
|
|
152
|
-
0 0 30px rgba(255, 16, 240, 0.4);
|
|
153
|
-
font-weight: bold;
|
|
154
|
-
text-transform: uppercase;
|
|
155
|
-
letter-spacing: 0.1em;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/* Buttons with laser effect */
|
|
159
|
-
button {
|
|
160
|
-
background: linear-gradient(135deg, var(--kimu-primary), var(--kimu-secondary));
|
|
161
|
-
border: 2px solid var(--kimu-primary);
|
|
162
|
-
box-shadow:
|
|
163
|
-
0 0 10px rgba(255, 16, 240, 0.5),
|
|
164
|
-
inset 0 0 10px rgba(255, 255, 255, 0.2);
|
|
165
|
-
text-shadow: 0 0 5px rgba(255, 255, 255, 0.8);
|
|
166
|
-
text-transform: uppercase;
|
|
167
|
-
letter-spacing: 0.05em;
|
|
168
|
-
font-weight: bold;
|
|
169
|
-
transition: all 0.3s ease;
|
|
170
|
-
position: relative;
|
|
171
|
-
overflow: hidden;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/* Laser sweep animation on hover */
|
|
175
|
-
button::before {
|
|
176
|
-
content: '';
|
|
177
|
-
position: absolute;
|
|
178
|
-
top: -50%;
|
|
179
|
-
left: -50%;
|
|
180
|
-
width: 200%;
|
|
181
|
-
height: 200%;
|
|
182
|
-
background: linear-gradient(
|
|
183
|
-
45deg,
|
|
184
|
-
transparent 30%,
|
|
185
|
-
rgba(255, 255, 255, 0.3) 50%,
|
|
186
|
-
transparent 70%
|
|
187
|
-
);
|
|
188
|
-
transform: translateX(-100%) translateY(-100%) rotate(45deg);
|
|
189
|
-
transition: transform 0.6s ease;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
button:hover::before {
|
|
193
|
-
transform: translateX(100%) translateY(100%) rotate(45deg);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
button:hover {
|
|
197
|
-
box-shadow:
|
|
198
|
-
0 0 20px rgba(255, 16, 240, 0.8),
|
|
199
|
-
0 0 40px rgba(0, 255, 255, 0.6),
|
|
200
|
-
inset 0 0 15px rgba(255, 255, 255, 0.3);
|
|
201
|
-
transform: translateY(-2px);
|
|
202
|
-
border-color: var(--kimu-secondary);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
button:active {
|
|
206
|
-
transform: translateY(0);
|
|
207
|
-
box-shadow:
|
|
208
|
-
0 0 15px rgba(255, 16, 240, 0.6),
|
|
209
|
-
inset 0 0 10px rgba(0, 0, 0, 0.3);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/* Input fields with LED display style */
|
|
213
|
-
input,
|
|
214
|
-
textarea,
|
|
215
|
-
select {
|
|
216
|
-
background: var(--kimu-input-bg);
|
|
217
|
-
border: 2px solid var(--kimu-border-light);
|
|
218
|
-
color: var(--kimu-secondary);
|
|
219
|
-
box-shadow: inset 0 0 10px rgba(255, 16, 240, 0.2);
|
|
220
|
-
font-family: 'Share Tech Mono', 'Courier New', monospace;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
input:focus,
|
|
224
|
-
textarea:focus,
|
|
225
|
-
select:focus {
|
|
226
|
-
border-color: var(--kimu-primary);
|
|
227
|
-
box-shadow:
|
|
228
|
-
0 0 10px rgba(255, 16, 240, 0.5),
|
|
229
|
-
inset 0 0 15px rgba(255, 16, 240, 0.3);
|
|
230
|
-
color: var(--kimu-primary);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/* Cards with retro frame */
|
|
234
|
-
.card,
|
|
235
|
-
[class*="card"] {
|
|
236
|
-
background: var(--kimu-bg-secondary);
|
|
237
|
-
border: 2px solid var(--kimu-primary);
|
|
238
|
-
box-shadow:
|
|
239
|
-
0 0 15px rgba(255, 16, 240, 0.4),
|
|
240
|
-
inset 0 0 20px rgba(255, 16, 240, 0.1);
|
|
241
|
-
position: relative;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
/* Corner decorations for cards */
|
|
245
|
-
.card::before,
|
|
246
|
-
.card::after,
|
|
247
|
-
[class*="card"]::before,
|
|
248
|
-
[class*="card"]::after {
|
|
249
|
-
content: '';
|
|
250
|
-
position: absolute;
|
|
251
|
-
width: 15px;
|
|
252
|
-
height: 15px;
|
|
253
|
-
border: 2px solid var(--kimu-secondary);
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
.card::before,
|
|
257
|
-
[class*="card"]::before {
|
|
258
|
-
top: -2px;
|
|
259
|
-
left: -2px;
|
|
260
|
-
border-right: none;
|
|
261
|
-
border-bottom: none;
|
|
262
|
-
box-shadow: -5px -5px 10px rgba(0, 255, 255, 0.3);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
.card::after,
|
|
266
|
-
[class*="card"]::after {
|
|
267
|
-
bottom: -2px;
|
|
268
|
-
right: -2px;
|
|
269
|
-
border-left: none;
|
|
270
|
-
border-top: none;
|
|
271
|
-
box-shadow: 5px 5px 10px rgba(0, 255, 255, 0.3);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/* Links with neon underline */
|
|
275
|
-
a {
|
|
276
|
-
color: var(--kimu-link);
|
|
277
|
-
text-decoration: none;
|
|
278
|
-
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
|
|
279
|
-
border-bottom: 1px solid transparent;
|
|
280
|
-
transition: all 0.3s ease;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
a:hover {
|
|
284
|
-
color: var(--kimu-primary);
|
|
285
|
-
text-shadow: 0 0 10px rgba(255, 16, 240, 0.8);
|
|
286
|
-
border-bottom: 1px solid var(--kimu-primary);
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/* Scrollbar - Retro LED style */
|
|
290
|
-
::-webkit-scrollbar {
|
|
291
|
-
width: 14px;
|
|
292
|
-
height: 14px;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
::-webkit-scrollbar-track {
|
|
296
|
-
background: var(--kimu-bg-secondary);
|
|
297
|
-
border: 1px solid var(--kimu-border-light);
|
|
298
|
-
box-shadow: inset 0 0 10px rgba(255, 16, 240, 0.2);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
::-webkit-scrollbar-thumb {
|
|
302
|
-
background: linear-gradient(180deg, var(--kimu-primary), var(--kimu-secondary));
|
|
303
|
-
border: 2px solid var(--kimu-bg-secondary);
|
|
304
|
-
box-shadow:
|
|
305
|
-
0 0 10px rgba(255, 16, 240, 0.6),
|
|
306
|
-
inset 0 0 5px rgba(255, 255, 255, 0.3);
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
::-webkit-scrollbar-thumb:hover {
|
|
310
|
-
background: linear-gradient(180deg, var(--kimu-secondary), var(--kimu-accent));
|
|
311
|
-
box-shadow:
|
|
312
|
-
0 0 15px rgba(0, 255, 255, 0.8),
|
|
313
|
-
inset 0 0 10px rgba(255, 255, 255, 0.5);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/* Selection with laser highlight */
|
|
317
|
-
::selection {
|
|
318
|
-
background: rgba(255, 16, 240, 0.4);
|
|
319
|
-
color: var(--kimu-text-primary);
|
|
320
|
-
text-shadow: 0 0 10px rgba(255, 16, 240, 0.8);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
/* Pulse animation for interactive elements */
|
|
324
|
-
@keyframes neonPulse {
|
|
325
|
-
0%, 100% {
|
|
326
|
-
box-shadow:
|
|
327
|
-
0 0 10px rgba(255, 16, 240, 0.5),
|
|
328
|
-
0 0 20px rgba(0, 255, 255, 0.3);
|
|
329
|
-
}
|
|
330
|
-
50% {
|
|
331
|
-
box-shadow:
|
|
332
|
-
0 0 20px rgba(255, 16, 240, 0.8),
|
|
333
|
-
0 0 40px rgba(0, 255, 255, 0.6);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
/* Apply pulse to focused/active elements */
|
|
338
|
-
button:focus,
|
|
339
|
-
input:focus,
|
|
340
|
-
textarea:focus,
|
|
341
|
-
select:focus {
|
|
342
|
-
animation: neonPulse 2s ease-in-out infinite;
|
|
343
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Retro 80s Theme - Nostalgic 1980s aesthetic
|
|
3
|
+
*
|
|
4
|
+
* Inspired by 80s aesthetics with neon grids, LED displays,
|
|
5
|
+
* laser effects, and retro-futuristic vibes
|
|
6
|
+
*
|
|
7
|
+
* Color Palette inspired by:
|
|
8
|
+
* - VHS tapes and CRT monitors
|
|
9
|
+
* - Neon signs and arcade machines
|
|
10
|
+
* - Synthwave and outrun aesthetics
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
:root {
|
|
14
|
+
/* Primary Colors - Hot Pink/Magenta */
|
|
15
|
+
--kimu-primary: #FF10F0;
|
|
16
|
+
--kimu-primary-hover: #FF44F4;
|
|
17
|
+
--kimu-primary-active: #DD00CC;
|
|
18
|
+
--kimu-primary-light: rgba(255, 16, 240, 0.15);
|
|
19
|
+
|
|
20
|
+
/* Secondary Colors - Electric Cyan */
|
|
21
|
+
--kimu-secondary: #00FFFF;
|
|
22
|
+
--kimu-secondary-hover: #33FFFF;
|
|
23
|
+
--kimu-secondary-active: #00DDDD;
|
|
24
|
+
|
|
25
|
+
/* Accent Colors - Laser Orange */
|
|
26
|
+
--kimu-accent: #FF6600;
|
|
27
|
+
--kimu-accent-hover: #FF8833;
|
|
28
|
+
--kimu-accent-active: #DD5500;
|
|
29
|
+
|
|
30
|
+
/* Background Colors - Dark with Grid */
|
|
31
|
+
--kimu-bg-primary: #0D0221;
|
|
32
|
+
--kimu-bg-secondary: #190F33;
|
|
33
|
+
--kimu-bg-tertiary: #240F3F;
|
|
34
|
+
--kimu-bg-hover: #2F1456;
|
|
35
|
+
|
|
36
|
+
/* Text Colors - Bright LED style */
|
|
37
|
+
--kimu-text-primary: #FFFFFF;
|
|
38
|
+
--kimu-text-secondary: #FFE5FF;
|
|
39
|
+
--kimu-text-tertiary: #CCAAFF;
|
|
40
|
+
--kimu-text-disabled: #7744AA;
|
|
41
|
+
|
|
42
|
+
/* Border Colors - Glowing neon */
|
|
43
|
+
--kimu-border: #FF10F0;
|
|
44
|
+
--kimu-border-light: rgba(255, 16, 240, 0.4);
|
|
45
|
+
--kimu-border-strong: #00FFFF;
|
|
46
|
+
|
|
47
|
+
/* Status Colors - 80s Palette */
|
|
48
|
+
--kimu-success: #00FF00;
|
|
49
|
+
--kimu-warning: #FFFF00;
|
|
50
|
+
--kimu-error: #FF0055;
|
|
51
|
+
--kimu-info: #00DDFF;
|
|
52
|
+
|
|
53
|
+
/* Shadows - Neon glow effects */
|
|
54
|
+
--kimu-shadow-sm: 0 0 10px rgba(255, 16, 240, 0.5), 0 0 20px rgba(0, 255, 255, 0.3);
|
|
55
|
+
--kimu-shadow-md: 0 0 15px rgba(255, 16, 240, 0.6), 0 0 30px rgba(0, 255, 255, 0.4);
|
|
56
|
+
--kimu-shadow-lg: 0 0 25px rgba(255, 16, 240, 0.7), 0 0 50px rgba(0, 255, 255, 0.5);
|
|
57
|
+
|
|
58
|
+
/* Additional Component Colors */
|
|
59
|
+
--kimu-card-bg: var(--kimu-bg-secondary);
|
|
60
|
+
--kimu-input-bg: var(--kimu-bg-tertiary);
|
|
61
|
+
--kimu-input-border: var(--kimu-border-light);
|
|
62
|
+
--kimu-input-focus: var(--kimu-primary);
|
|
63
|
+
|
|
64
|
+
/* Links - Neon glow */
|
|
65
|
+
--kimu-link: var(--kimu-secondary);
|
|
66
|
+
--kimu-link-hover: var(--kimu-primary);
|
|
67
|
+
|
|
68
|
+
/* Overlays */
|
|
69
|
+
--kimu-overlay: rgba(13, 2, 33, 0.9);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* 80s Retro Styling */
|
|
73
|
+
body {
|
|
74
|
+
color: var(--kimu-text-primary);
|
|
75
|
+
background: var(--kimu-bg-primary);
|
|
76
|
+
font-family: 'Orbitron', 'Share Tech Mono', 'Courier New', monospace;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Classic 80s Grid Background */
|
|
80
|
+
body::before {
|
|
81
|
+
content: '';
|
|
82
|
+
position: fixed;
|
|
83
|
+
top: 0;
|
|
84
|
+
left: 0;
|
|
85
|
+
width: 100%;
|
|
86
|
+
height: 100%;
|
|
87
|
+
background:
|
|
88
|
+
/* Horizontal lines */
|
|
89
|
+
repeating-linear-gradient(
|
|
90
|
+
0deg,
|
|
91
|
+
transparent,
|
|
92
|
+
transparent 39px,
|
|
93
|
+
rgba(255, 16, 240, 0.15) 39px,
|
|
94
|
+
rgba(255, 16, 240, 0.15) 40px
|
|
95
|
+
),
|
|
96
|
+
/* Vertical lines */
|
|
97
|
+
repeating-linear-gradient(
|
|
98
|
+
90deg,
|
|
99
|
+
transparent,
|
|
100
|
+
transparent 39px,
|
|
101
|
+
rgba(0, 255, 255, 0.1) 39px,
|
|
102
|
+
rgba(0, 255, 255, 0.1) 40px
|
|
103
|
+
),
|
|
104
|
+
/* Gradient horizon */
|
|
105
|
+
linear-gradient(
|
|
106
|
+
180deg,
|
|
107
|
+
rgba(13, 2, 33, 0) 0%,
|
|
108
|
+
rgba(13, 2, 33, 0) 50%,
|
|
109
|
+
rgba(255, 16, 240, 0.05) 70%,
|
|
110
|
+
rgba(0, 255, 255, 0.05) 100%
|
|
111
|
+
);
|
|
112
|
+
pointer-events: none;
|
|
113
|
+
z-index: -1;
|
|
114
|
+
animation: gridScroll 20s linear infinite;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@keyframes gridScroll {
|
|
118
|
+
0% {
|
|
119
|
+
background-position: 0 0, 0 0, 0 0;
|
|
120
|
+
}
|
|
121
|
+
100% {
|
|
122
|
+
background-position: 0 40px, 0 0, 0 100px;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* LED-style text with scan lines effect */
|
|
127
|
+
body::after {
|
|
128
|
+
content: '';
|
|
129
|
+
position: fixed;
|
|
130
|
+
top: 0;
|
|
131
|
+
left: 0;
|
|
132
|
+
width: 100%;
|
|
133
|
+
height: 100%;
|
|
134
|
+
background: repeating-linear-gradient(
|
|
135
|
+
0deg,
|
|
136
|
+
rgba(0, 0, 0, 0.1) 0px,
|
|
137
|
+
transparent 1px,
|
|
138
|
+
transparent 2px,
|
|
139
|
+
rgba(0, 0, 0, 0.1) 3px
|
|
140
|
+
);
|
|
141
|
+
pointer-events: none;
|
|
142
|
+
z-index: 9999;
|
|
143
|
+
opacity: 0.3;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Headers with neon glow */
|
|
147
|
+
h1, h2, h3, h4, h5, h6 {
|
|
148
|
+
color: var(--kimu-primary);
|
|
149
|
+
text-shadow:
|
|
150
|
+
0 0 10px rgba(255, 16, 240, 0.8),
|
|
151
|
+
0 0 20px rgba(255, 16, 240, 0.6),
|
|
152
|
+
0 0 30px rgba(255, 16, 240, 0.4);
|
|
153
|
+
font-weight: bold;
|
|
154
|
+
text-transform: uppercase;
|
|
155
|
+
letter-spacing: 0.1em;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Buttons with laser effect */
|
|
159
|
+
button {
|
|
160
|
+
background: linear-gradient(135deg, var(--kimu-primary), var(--kimu-secondary));
|
|
161
|
+
border: 2px solid var(--kimu-primary);
|
|
162
|
+
box-shadow:
|
|
163
|
+
0 0 10px rgba(255, 16, 240, 0.5),
|
|
164
|
+
inset 0 0 10px rgba(255, 255, 255, 0.2);
|
|
165
|
+
text-shadow: 0 0 5px rgba(255, 255, 255, 0.8);
|
|
166
|
+
text-transform: uppercase;
|
|
167
|
+
letter-spacing: 0.05em;
|
|
168
|
+
font-weight: bold;
|
|
169
|
+
transition: all 0.3s ease;
|
|
170
|
+
position: relative;
|
|
171
|
+
overflow: hidden;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* Laser sweep animation on hover */
|
|
175
|
+
button::before {
|
|
176
|
+
content: '';
|
|
177
|
+
position: absolute;
|
|
178
|
+
top: -50%;
|
|
179
|
+
left: -50%;
|
|
180
|
+
width: 200%;
|
|
181
|
+
height: 200%;
|
|
182
|
+
background: linear-gradient(
|
|
183
|
+
45deg,
|
|
184
|
+
transparent 30%,
|
|
185
|
+
rgba(255, 255, 255, 0.3) 50%,
|
|
186
|
+
transparent 70%
|
|
187
|
+
);
|
|
188
|
+
transform: translateX(-100%) translateY(-100%) rotate(45deg);
|
|
189
|
+
transition: transform 0.6s ease;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
button:hover::before {
|
|
193
|
+
transform: translateX(100%) translateY(100%) rotate(45deg);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
button:hover {
|
|
197
|
+
box-shadow:
|
|
198
|
+
0 0 20px rgba(255, 16, 240, 0.8),
|
|
199
|
+
0 0 40px rgba(0, 255, 255, 0.6),
|
|
200
|
+
inset 0 0 15px rgba(255, 255, 255, 0.3);
|
|
201
|
+
transform: translateY(-2px);
|
|
202
|
+
border-color: var(--kimu-secondary);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
button:active {
|
|
206
|
+
transform: translateY(0);
|
|
207
|
+
box-shadow:
|
|
208
|
+
0 0 15px rgba(255, 16, 240, 0.6),
|
|
209
|
+
inset 0 0 10px rgba(0, 0, 0, 0.3);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/* Input fields with LED display style */
|
|
213
|
+
input,
|
|
214
|
+
textarea,
|
|
215
|
+
select {
|
|
216
|
+
background: var(--kimu-input-bg);
|
|
217
|
+
border: 2px solid var(--kimu-border-light);
|
|
218
|
+
color: var(--kimu-secondary);
|
|
219
|
+
box-shadow: inset 0 0 10px rgba(255, 16, 240, 0.2);
|
|
220
|
+
font-family: 'Share Tech Mono', 'Courier New', monospace;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
input:focus,
|
|
224
|
+
textarea:focus,
|
|
225
|
+
select:focus {
|
|
226
|
+
border-color: var(--kimu-primary);
|
|
227
|
+
box-shadow:
|
|
228
|
+
0 0 10px rgba(255, 16, 240, 0.5),
|
|
229
|
+
inset 0 0 15px rgba(255, 16, 240, 0.3);
|
|
230
|
+
color: var(--kimu-primary);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/* Cards with retro frame */
|
|
234
|
+
.card,
|
|
235
|
+
[class*="card"] {
|
|
236
|
+
background: var(--kimu-bg-secondary);
|
|
237
|
+
border: 2px solid var(--kimu-primary);
|
|
238
|
+
box-shadow:
|
|
239
|
+
0 0 15px rgba(255, 16, 240, 0.4),
|
|
240
|
+
inset 0 0 20px rgba(255, 16, 240, 0.1);
|
|
241
|
+
position: relative;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/* Corner decorations for cards */
|
|
245
|
+
.card::before,
|
|
246
|
+
.card::after,
|
|
247
|
+
[class*="card"]::before,
|
|
248
|
+
[class*="card"]::after {
|
|
249
|
+
content: '';
|
|
250
|
+
position: absolute;
|
|
251
|
+
width: 15px;
|
|
252
|
+
height: 15px;
|
|
253
|
+
border: 2px solid var(--kimu-secondary);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.card::before,
|
|
257
|
+
[class*="card"]::before {
|
|
258
|
+
top: -2px;
|
|
259
|
+
left: -2px;
|
|
260
|
+
border-right: none;
|
|
261
|
+
border-bottom: none;
|
|
262
|
+
box-shadow: -5px -5px 10px rgba(0, 255, 255, 0.3);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.card::after,
|
|
266
|
+
[class*="card"]::after {
|
|
267
|
+
bottom: -2px;
|
|
268
|
+
right: -2px;
|
|
269
|
+
border-left: none;
|
|
270
|
+
border-top: none;
|
|
271
|
+
box-shadow: 5px 5px 10px rgba(0, 255, 255, 0.3);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/* Links with neon underline */
|
|
275
|
+
a {
|
|
276
|
+
color: var(--kimu-link);
|
|
277
|
+
text-decoration: none;
|
|
278
|
+
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
|
|
279
|
+
border-bottom: 1px solid transparent;
|
|
280
|
+
transition: all 0.3s ease;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
a:hover {
|
|
284
|
+
color: var(--kimu-primary);
|
|
285
|
+
text-shadow: 0 0 10px rgba(255, 16, 240, 0.8);
|
|
286
|
+
border-bottom: 1px solid var(--kimu-primary);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* Scrollbar - Retro LED style */
|
|
290
|
+
::-webkit-scrollbar {
|
|
291
|
+
width: 14px;
|
|
292
|
+
height: 14px;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
::-webkit-scrollbar-track {
|
|
296
|
+
background: var(--kimu-bg-secondary);
|
|
297
|
+
border: 1px solid var(--kimu-border-light);
|
|
298
|
+
box-shadow: inset 0 0 10px rgba(255, 16, 240, 0.2);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
::-webkit-scrollbar-thumb {
|
|
302
|
+
background: linear-gradient(180deg, var(--kimu-primary), var(--kimu-secondary));
|
|
303
|
+
border: 2px solid var(--kimu-bg-secondary);
|
|
304
|
+
box-shadow:
|
|
305
|
+
0 0 10px rgba(255, 16, 240, 0.6),
|
|
306
|
+
inset 0 0 5px rgba(255, 255, 255, 0.3);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
::-webkit-scrollbar-thumb:hover {
|
|
310
|
+
background: linear-gradient(180deg, var(--kimu-secondary), var(--kimu-accent));
|
|
311
|
+
box-shadow:
|
|
312
|
+
0 0 15px rgba(0, 255, 255, 0.8),
|
|
313
|
+
inset 0 0 10px rgba(255, 255, 255, 0.5);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/* Selection with laser highlight */
|
|
317
|
+
::selection {
|
|
318
|
+
background: rgba(255, 16, 240, 0.4);
|
|
319
|
+
color: var(--kimu-text-primary);
|
|
320
|
+
text-shadow: 0 0 10px rgba(255, 16, 240, 0.8);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/* Pulse animation for interactive elements */
|
|
324
|
+
@keyframes neonPulse {
|
|
325
|
+
0%, 100% {
|
|
326
|
+
box-shadow:
|
|
327
|
+
0 0 10px rgba(255, 16, 240, 0.5),
|
|
328
|
+
0 0 20px rgba(0, 255, 255, 0.3);
|
|
329
|
+
}
|
|
330
|
+
50% {
|
|
331
|
+
box-shadow:
|
|
332
|
+
0 0 20px rgba(255, 16, 240, 0.8),
|
|
333
|
+
0 0 40px rgba(0, 255, 255, 0.6);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/* Apply pulse to focused/active elements */
|
|
338
|
+
button:focus,
|
|
339
|
+
input:focus,
|
|
340
|
+
textarea:focus,
|
|
341
|
+
select:focus {
|
|
342
|
+
animation: neonPulse 2s ease-in-out infinite;
|
|
343
|
+
}
|