@clawlabz/clawskin 1.0.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.
@@ -0,0 +1,415 @@
1
+ /* ═══════════════════════════════════════════════════
2
+ ClawSkin — Global Styles
3
+ Cyberpunk pixel aesthetic + modern UI
4
+ ═══════════════════════════════════════════════════ */
5
+
6
+ @import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Space+Mono:wght@400;700&family=Outfit:wght@300;400;600;700;800&display=swap');
7
+
8
+ :root {
9
+ --bg-primary: #0a0a1a;
10
+ --bg-secondary: #12122a;
11
+ --bg-card: #1a1a35;
12
+ --text-primary: #e0e0f0;
13
+ --text-secondary: #8888aa;
14
+ --accent-cyan: #00f0ff;
15
+ --accent-purple: #b44aff;
16
+ --accent-pink: #ff44aa;
17
+ --accent-green: #00ff88;
18
+ --accent-gold: #ffcc00;
19
+ --border: rgba(255,255,255,0.08);
20
+ --glow-cyan: 0 0 20px rgba(0,240,255,0.3);
21
+ --glow-purple: 0 0 20px rgba(180,74,255,0.3);
22
+ }
23
+
24
+ * { margin: 0; padding: 0; box-sizing: border-box; }
25
+
26
+ body {
27
+ background: var(--bg-primary);
28
+ color: var(--text-primary);
29
+ font-family: 'Outfit', sans-serif;
30
+ overflow-x: hidden;
31
+ line-height: 1.6;
32
+ }
33
+
34
+ /* ═══ Hero Section ═══ */
35
+ .hero {
36
+ min-height: 100vh;
37
+ display: flex;
38
+ flex-direction: column;
39
+ align-items: center;
40
+ justify-content: center;
41
+ padding: 2rem;
42
+ position: relative;
43
+ overflow: hidden;
44
+ }
45
+
46
+ .hero::before {
47
+ content: '';
48
+ position: absolute;
49
+ top: -50%;
50
+ left: -50%;
51
+ width: 200%;
52
+ height: 200%;
53
+ background:
54
+ radial-gradient(circle at 30% 20%, rgba(0,240,255,0.06) 0%, transparent 50%),
55
+ radial-gradient(circle at 70% 80%, rgba(180,74,255,0.06) 0%, transparent 50%);
56
+ animation: bgPulse 8s ease-in-out infinite alternate;
57
+ }
58
+
59
+ @keyframes bgPulse {
60
+ 0% { transform: translate(0,0) scale(1); }
61
+ 100% { transform: translate(-2%,1%) scale(1.02); }
62
+ }
63
+
64
+ .hero-badge {
65
+ display: inline-flex;
66
+ align-items: center;
67
+ gap: 0.5rem;
68
+ padding: 0.4rem 1rem;
69
+ background: rgba(0,240,255,0.08);
70
+ border: 1px solid rgba(0,240,255,0.2);
71
+ border-radius: 100px;
72
+ font-size: 0.8rem;
73
+ color: var(--accent-cyan);
74
+ margin-bottom: 1.5rem;
75
+ font-family: 'Space Mono', monospace;
76
+ position: relative;
77
+ z-index: 1;
78
+ }
79
+
80
+ .hero-title {
81
+ font-family: 'Press Start 2P', monospace;
82
+ font-size: clamp(1.8rem, 5vw, 3.5rem);
83
+ text-align: center;
84
+ margin-bottom: 0.5rem;
85
+ position: relative;
86
+ z-index: 1;
87
+ background: linear-gradient(135deg, var(--accent-cyan), var(--accent-purple), var(--accent-pink));
88
+ -webkit-background-clip: text;
89
+ -webkit-text-fill-color: transparent;
90
+ background-clip: text;
91
+ text-shadow: none;
92
+ filter: drop-shadow(0 0 30px rgba(0,240,255,0.2));
93
+ }
94
+
95
+ .hero-subtitle {
96
+ font-size: 1.2rem;
97
+ color: var(--text-secondary);
98
+ text-align: center;
99
+ max-width: 600px;
100
+ margin-bottom: 2rem;
101
+ position: relative;
102
+ z-index: 1;
103
+ }
104
+
105
+ /* ═══ Game Canvas ═══ */
106
+ .game-container {
107
+ position: relative;
108
+ border-radius: 16px;
109
+ overflow: hidden;
110
+ border: 2px solid var(--border);
111
+ box-shadow: var(--glow-cyan), inset 0 0 60px rgba(0,0,0,0.5);
112
+ background: var(--bg-secondary);
113
+ z-index: 1;
114
+ max-width: 720px;
115
+ width: 100%;
116
+ }
117
+
118
+ .game-canvas {
119
+ display: block;
120
+ width: 100%;
121
+ height: auto;
122
+ image-rendering: pixelated;
123
+ image-rendering: crisp-edges;
124
+ }
125
+
126
+ .game-status {
127
+ position: absolute;
128
+ bottom: 8px;
129
+ left: 12px;
130
+ font-family: 'Press Start 2P', monospace;
131
+ font-size: 8px;
132
+ color: var(--accent-green);
133
+ background: rgba(0,0,0,0.6);
134
+ padding: 4px 8px;
135
+ border-radius: 4px;
136
+ }
137
+
138
+ /* ═══ Controls Bar ═══ */
139
+ .controls-bar {
140
+ display: flex;
141
+ gap: 0.75rem;
142
+ margin-top: 1.5rem;
143
+ flex-wrap: wrap;
144
+ justify-content: center;
145
+ position: relative;
146
+ z-index: 1;
147
+ }
148
+
149
+ .ctrl-btn {
150
+ padding: 0.6rem 1.2rem;
151
+ border: 1px solid var(--border);
152
+ border-radius: 8px;
153
+ background: var(--bg-card);
154
+ color: var(--text-primary);
155
+ font-family: 'Space Mono', monospace;
156
+ font-size: 0.85rem;
157
+ cursor: pointer;
158
+ transition: all 0.2s;
159
+ }
160
+
161
+ .ctrl-btn:hover {
162
+ border-color: var(--accent-cyan);
163
+ box-shadow: var(--glow-cyan);
164
+ transform: translateY(-1px);
165
+ }
166
+
167
+ .ctrl-btn.active {
168
+ border-color: var(--accent-cyan);
169
+ background: rgba(0,240,255,0.1);
170
+ color: var(--accent-cyan);
171
+ }
172
+
173
+ /* ═══ Scene Picker Buttons ═══ */
174
+ .scene-btn {
175
+ padding: 0.5rem 1rem;
176
+ border: 1px solid var(--border);
177
+ border-radius: 8px;
178
+ background: var(--bg-card);
179
+ color: var(--text-primary);
180
+ font-family: 'Space Mono', monospace;
181
+ font-size: 0.8rem;
182
+ cursor: pointer;
183
+ transition: all 0.2s;
184
+ }
185
+
186
+ .scene-btn:hover { border-color: var(--accent-purple); box-shadow: var(--glow-purple); }
187
+ .scene-btn.active { border-color: var(--accent-purple); background: rgba(180,74,255,0.1); color: var(--accent-purple); }
188
+
189
+ /* ═══ Sections ═══ */
190
+ .section {
191
+ max-width: 900px;
192
+ margin: 0 auto;
193
+ padding: 4rem 2rem;
194
+ }
195
+
196
+ .section-title {
197
+ font-family: 'Press Start 2P', monospace;
198
+ font-size: 1.2rem;
199
+ color: var(--accent-cyan);
200
+ margin-bottom: 1rem;
201
+ }
202
+
203
+ .section-desc {
204
+ color: var(--text-secondary);
205
+ margin-bottom: 2rem;
206
+ font-size: 1rem;
207
+ }
208
+
209
+ /* ═══ Feature Grid ═══ */
210
+ .feature-grid {
211
+ display: grid;
212
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
213
+ gap: 1.5rem;
214
+ margin: 2rem 0;
215
+ }
216
+
217
+ .feature-card {
218
+ background: var(--bg-card);
219
+ border: 1px solid var(--border);
220
+ border-radius: 12px;
221
+ padding: 1.5rem;
222
+ transition: all 0.3s;
223
+ }
224
+
225
+ .feature-card:hover {
226
+ border-color: var(--accent-cyan);
227
+ transform: translateY(-3px);
228
+ box-shadow: var(--glow-cyan);
229
+ }
230
+
231
+ .feature-icon {
232
+ font-size: 2rem;
233
+ margin-bottom: 0.75rem;
234
+ }
235
+
236
+ .feature-title {
237
+ font-family: 'Space Mono', monospace;
238
+ font-size: 0.95rem;
239
+ margin-bottom: 0.5rem;
240
+ color: var(--text-primary);
241
+ }
242
+
243
+ .feature-desc {
244
+ font-size: 0.85rem;
245
+ color: var(--text-secondary);
246
+ line-height: 1.5;
247
+ }
248
+
249
+ /* ═══ Character Editor Panel ═══ */
250
+ .editor-panel {
251
+ background: var(--bg-card);
252
+ border: 1px solid var(--border);
253
+ border-radius: 12px;
254
+ overflow: hidden;
255
+ max-height: 70vh;
256
+ overflow-y: auto;
257
+ }
258
+
259
+ .editor-header {
260
+ display: flex;
261
+ justify-content: space-between;
262
+ align-items: center;
263
+ padding: 0.75rem 1rem;
264
+ background: rgba(0,240,255,0.05);
265
+ border-bottom: 1px solid var(--border);
266
+ font-family: 'Press Start 2P', monospace;
267
+ font-size: 0.7rem;
268
+ color: var(--accent-cyan);
269
+ }
270
+
271
+ .editor-close {
272
+ background: none;
273
+ border: none;
274
+ color: var(--text-secondary);
275
+ font-size: 1.2rem;
276
+ cursor: pointer;
277
+ }
278
+ .editor-close:hover { color: var(--accent-pink); }
279
+
280
+ .editor-body {
281
+ padding: 1rem;
282
+ }
283
+
284
+ .editor-row {
285
+ margin-bottom: 1rem;
286
+ }
287
+
288
+ .editor-row label {
289
+ display: block;
290
+ font-family: 'Space Mono', monospace;
291
+ font-size: 0.75rem;
292
+ color: var(--text-secondary);
293
+ margin-bottom: 0.4rem;
294
+ }
295
+
296
+ .color-swatches {
297
+ display: flex;
298
+ gap: 6px;
299
+ flex-wrap: wrap;
300
+ }
301
+
302
+ .swatch {
303
+ width: 28px;
304
+ height: 28px;
305
+ border-radius: 6px;
306
+ border: 2px solid transparent;
307
+ cursor: pointer;
308
+ transition: all 0.15s;
309
+ }
310
+ .swatch:hover { transform: scale(1.15); }
311
+ .swatch.active { border-color: var(--accent-cyan); box-shadow: var(--glow-cyan); }
312
+
313
+ .btn-group {
314
+ display: flex;
315
+ gap: 4px;
316
+ flex-wrap: wrap;
317
+ }
318
+
319
+ .ed-btn {
320
+ padding: 4px 8px;
321
+ border: 1px solid var(--border);
322
+ border-radius: 4px;
323
+ background: var(--bg-secondary);
324
+ color: var(--text-secondary);
325
+ font-size: 0.7rem;
326
+ font-family: 'Space Mono', monospace;
327
+ cursor: pointer;
328
+ transition: all 0.15s;
329
+ }
330
+ .ed-btn:hover { border-color: var(--accent-purple); color: var(--text-primary); }
331
+ .ed-btn.active { border-color: var(--accent-cyan); background: rgba(0,240,255,0.1); color: var(--accent-cyan); }
332
+
333
+ .editor-actions {
334
+ display: flex;
335
+ gap: 8px;
336
+ margin-top: 1rem;
337
+ padding-top: 1rem;
338
+ border-top: 1px solid var(--border);
339
+ }
340
+
341
+ .ed-action-btn {
342
+ flex: 1;
343
+ padding: 0.5rem;
344
+ border: 1px solid var(--border);
345
+ border-radius: 6px;
346
+ background: var(--bg-secondary);
347
+ color: var(--text-primary);
348
+ font-size: 0.75rem;
349
+ cursor: pointer;
350
+ transition: all 0.2s;
351
+ }
352
+ .ed-action-btn:hover { border-color: var(--accent-green); background: rgba(0,255,136,0.1); }
353
+
354
+ .editor-toast {
355
+ position: fixed;
356
+ bottom: -50px;
357
+ left: 50%;
358
+ transform: translateX(-50%);
359
+ padding: 0.6rem 1.2rem;
360
+ background: var(--bg-card);
361
+ border: 1px solid var(--accent-green);
362
+ border-radius: 8px;
363
+ color: var(--accent-green);
364
+ font-family: 'Space Mono', monospace;
365
+ font-size: 0.8rem;
366
+ transition: bottom 0.3s ease;
367
+ z-index: 1000;
368
+ }
369
+ .editor-toast.show { bottom: 30px; }
370
+
371
+ /* ═══ Footer ═══ */
372
+ .footer {
373
+ text-align: center;
374
+ padding: 3rem 2rem;
375
+ border-top: 1px solid var(--border);
376
+ color: var(--text-secondary);
377
+ font-size: 0.8rem;
378
+ }
379
+
380
+ .footer a {
381
+ color: var(--accent-cyan);
382
+ text-decoration: none;
383
+ }
384
+ .footer a:hover { text-decoration: underline; }
385
+
386
+ /* ═══ Customizer Layout ═══ */
387
+ .two-col {
388
+ display: grid;
389
+ grid-template-columns: 1fr 1fr;
390
+ gap: 2rem;
391
+ align-items: start;
392
+ }
393
+
394
+ @media (max-width: 768px) {
395
+ .two-col { grid-template-columns: 1fr; }
396
+ .hero-title { font-size: 1.5rem; }
397
+ }
398
+
399
+ /* ═══ Scrollbar ═══ */
400
+ ::-webkit-scrollbar { width: 6px; }
401
+ ::-webkit-scrollbar-track { background: var(--bg-primary); }
402
+ ::-webkit-scrollbar-thumb { background: var(--bg-card); border-radius: 3px; }
403
+ ::-webkit-scrollbar-thumb:hover { background: var(--accent-cyan); }
404
+
405
+ /* ═══ Pixel grid overlay (subtle) ═══ */
406
+ .pixel-grid-overlay {
407
+ position: fixed;
408
+ top: 0; left: 0; right: 0; bottom: 0;
409
+ pointer-events: none;
410
+ background-image:
411
+ linear-gradient(rgba(255,255,255,0.01) 1px, transparent 1px),
412
+ linear-gradient(90deg, rgba(255,255,255,0.01) 1px, transparent 1px);
413
+ background-size: 4px 4px;
414
+ z-index: 0;
415
+ }