@knitli/docs-components 1.1.2 → 1.1.4

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.
Files changed (73) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +6 -6
  3. package/dist/assets/logos/Thread_vector_mono_aubergine.svg +41 -0
  4. package/dist/assets/logos/Thread_vector_mono_copper.svg +41 -0
  5. package/dist/assets/logos/Thread_vector_mono_parchment.svg +41 -0
  6. package/dist/assets/logos/codeweaver-primary.svg +103 -0
  7. package/dist/assets/logos/codeweaver-reverse.svg +103 -0
  8. package/dist/assets/logos/headline_logo.webp +0 -0
  9. package/dist/assets/logos/headline_logo_dark.png +0 -0
  10. package/dist/assets/logos/headline_logo_dark.webp +0 -0
  11. package/dist/assets/logos/index.d.ts +36 -0
  12. package/dist/assets/logos/index.d.ts.map +1 -0
  13. package/dist/assets/logos/index.js +27 -0
  14. package/dist/assets/logos/knitli_logo.svg +143 -0
  15. package/dist/assets/logos/knitli_wordmark.svg +118 -0
  16. package/dist/assets/logos/recoco-med.webp +0 -0
  17. package/dist/assets/logos/recoco-sm.webp +0 -0
  18. package/dist/assets/logos/recoco-xl.webp +0 -0
  19. package/dist/assets/styles/codeweaver-theme.css +570 -0
  20. package/dist/assets/styles/global.css +166 -0
  21. package/dist/assets/styles/index.d.ts +15 -0
  22. package/dist/assets/styles/index.d.ts.map +1 -0
  23. package/dist/assets/styles/index.js +14 -0
  24. package/dist/assets/styles/knitli-theme.css +215 -0
  25. package/dist/assets/styles/textures.css +668 -0
  26. package/dist/assets/styles/typography.css +262 -0
  27. package/dist/assets/styles/variables.css +238 -0
  28. package/dist/index.d.ts +40 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +36 -0
  31. package/dist/styles/index.d.ts +2 -0
  32. package/dist/styles/index.d.ts.map +1 -0
  33. package/dist/styles/index.js +2 -0
  34. package/dist/types/index.d.ts +35 -0
  35. package/dist/types/index.d.ts.map +1 -0
  36. package/dist/types/index.js +7 -0
  37. package/package.json +49 -48
  38. package/scripts/copy-assets.mjs +37 -0
  39. package/scripts/copy-dist-assets.mjs +30 -0
  40. package/src/assets/asset-types.d.ts +29 -0
  41. package/src/assets/logos/Thread_vector_mono_aubergine.svg +41 -0
  42. package/src/assets/logos/Thread_vector_mono_copper.svg +41 -0
  43. package/src/assets/logos/Thread_vector_mono_parchment.svg +41 -0
  44. package/src/assets/logos/codeweaver-primary.svg +103 -0
  45. package/src/assets/logos/codeweaver-reverse.svg +103 -0
  46. package/src/assets/logos/headline_logo.webp +0 -0
  47. package/src/assets/logos/headline_logo_dark.png +0 -0
  48. package/src/assets/logos/headline_logo_dark.webp +0 -0
  49. package/src/assets/logos/index.ts +43 -0
  50. package/src/assets/logos/knitli_logo.svg +143 -0
  51. package/src/assets/logos/knitli_wordmark.svg +118 -0
  52. package/src/assets/logos/recoco-med.webp +0 -0
  53. package/src/assets/logos/recoco-sm.webp +0 -0
  54. package/src/assets/logos/recoco-xl.webp +0 -0
  55. package/src/assets/styles/codeweaver-theme.css +570 -0
  56. package/src/assets/styles/global.css +166 -0
  57. package/src/assets/styles/index.ts +26 -0
  58. package/src/assets/styles/knitli-theme.css +215 -0
  59. package/src/assets/styles/textures.css +668 -0
  60. package/src/assets/styles/typography.css +262 -0
  61. package/src/assets/styles/variables.css +238 -0
  62. package/src/components/DocsBreadcrumb.astro +74 -74
  63. package/src/components/Footer.astro +252 -216
  64. package/src/components/PageFrame.astro +118 -111
  65. package/src/index.d.ts +32 -0
  66. package/src/index.ts +46 -6
  67. package/src/styles/custom.css +73 -0
  68. package/src/styles/custom.d.css.ts +8 -0
  69. package/src/styles/index.ts +3 -0
  70. package/src/types/index.ts +2 -45
  71. package/src/assets/logos/README.md +0 -180
  72. package/src/styles/docs-theme.css +0 -682
  73. package/src/styles/variables.css +0 -200
@@ -1,682 +0,0 @@
1
- /**
2
- * @file docs-theme.css
3
- * @description Complete Copper Archive theme for Knitli documentation
4
- * @usage Import this file for full theme styling with all components
5
- */
6
-
7
- /* Import color palette and variables */
8
- @import "@knitli/layouts/styles/variables.css";
9
- @import "@knitli/layouts/styles/textures.css";
10
-
11
- /* ========================================
12
- GOOGLE FONTS
13
- ======================================== */
14
-
15
- @import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=IBM+Plex+Serif:wght@400;500;600&family=JetBrains+Mono:wght@400;500&family=Inter:wght@400;500;600;700&display=swap");
16
-
17
- /* ========================================
18
- GLOBAL STYLES
19
- ======================================== */
20
-
21
- *,
22
- *::before,
23
- *::after {
24
- box-sizing: border-box;
25
- }
26
-
27
- html {
28
- font-size: var(--font-sm);
29
- -webkit-font-smoothing: antialiased;
30
- -moz-osx-font-smoothing: grayscale;
31
- }
32
-
33
- body {
34
- margin: 0;
35
- padding: 0;
36
- font-family: var(--font-cw-body);
37
- font-size: var(--font-base);
38
- line-height: var(--leading-normal);
39
- color: var(--docs-text-primary);
40
- background: var(--docs-parchment);
41
- position: relative;
42
- }
43
-
44
- /* Subtle paper grain texture */
45
- body::before {
46
- content: "";
47
- position: fixed;
48
- top: 0;
49
- left: 0;
50
- width: 100%;
51
- height: 100%;
52
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Crect width='4' height='4' fill='%23000'/%3E%3Cpath d='M0 0h1v1H0zM2 2h1v1H2z' fill='%23fff' fill-opacity='0.03'/%3E%3C/svg%3E");
53
- opacity: 0.5;
54
- pointer-events: none;
55
- z-index: -1;
56
- }
57
-
58
- /* ========================================
59
- TYPOGRAPHY
60
- ======================================== */
61
-
62
- h1,
63
- h2,
64
- h3,
65
- h4,
66
- h5,
67
- h6 {
68
- font-family: var(--font-docs-display);
69
- font-weight: var(--font-medium);
70
- line-height: var(--leading-tight);
71
- color: var(--docs-slate);
72
- margin-top: 0;
73
- margin-bottom: var(--space-4);
74
- letter-spacing: var(--tracking-tight);
75
- }
76
-
77
- h1 {
78
- font-size: var(--text-5xl);
79
- margin-bottom: var(--space-6);
80
- }
81
-
82
- h2 {
83
- font-size: var(--text-3xl);
84
- margin-bottom: var(--space-5);
85
- }
86
-
87
- h3 {
88
- font-size: var(--text-2xl);
89
- }
90
-
91
- h4 {
92
- font-size: var(--text-xl);
93
- }
94
-
95
- h5,
96
- h6 {
97
- font-size: var(--text-lg);
98
- }
99
-
100
- p {
101
- margin-top: 0;
102
- margin-bottom: var(--space-4);
103
- line-height: var(--leading-relaxed);
104
- }
105
-
106
- a {
107
- color: var(--docs-copper);
108
- text-decoration: none;
109
- transition: color var(--timing-fast) var(--ease-out);
110
- }
111
-
112
- a:hover {
113
- color: var(--docs-copper-hover);
114
- }
115
-
116
- code {
117
- font-family: var(--font-docs-code);
118
- font-size: 0.9em;
119
- background: var(--docs-code-bg);
120
- color: var(--docs-code-text);
121
- padding: 0.125rem 0.375rem;
122
- border-radius: var(--radius-sm);
123
- }
124
-
125
- pre {
126
- font-family: var(--font-docs-code);
127
- font-size: var(--text-sm);
128
- background: var(--docs-code-bg);
129
- color: var(--docs-code-text);
130
- padding: var(--code-padding);
131
- border-radius: var(--code-radius);
132
- overflow-x: auto;
133
- margin: var(--space-4) 0;
134
- }
135
-
136
- pre code {
137
- background: transparent;
138
- padding: 0;
139
- }
140
-
141
- /* ========================================
142
- DOCUMENT CARD COMPONENT
143
- ======================================== */
144
-
145
- .doc-card {
146
- /* Base styling */
147
- background: linear-gradient(
148
- 135deg,
149
- var(--docs-parchment) 0%,
150
- var(--docs-cream) 100%
151
- );
152
- border: var(--card-border-width) solid var(--docs-border-light);
153
- border-radius: var(--card-radius);
154
- padding: var(--card-padding);
155
- position: relative;
156
-
157
- /* Embossed shadow effect */
158
- box-shadow: var(--shadow-emboss);
159
-
160
- /* Smooth transitions */
161
- transition: all var(--timing-base) var(--ease-in-out);
162
- }
163
-
164
- /* Copper corner brackets */
165
- .doc-card::before,
166
- .doc-card::after {
167
- content: "";
168
- position: absolute;
169
- width: var(--bracket-size);
170
- height: var(--bracket-size);
171
- border: var(--bracket-width) solid var(--bracket-color);
172
- transition: border-color var(--timing-base) var(--ease-out);
173
- }
174
-
175
- .doc-card::before {
176
- top: -1px;
177
- left: -1px;
178
- border-right: none;
179
- border-bottom: none;
180
- border-top-left-radius: var(--card-radius);
181
- }
182
-
183
- .doc-card::after {
184
- bottom: -1px;
185
- right: -1px;
186
- border-left: none;
187
- border-top: none;
188
- border-bottom-right-radius: var(--card-radius);
189
- }
190
-
191
- /* Brass polish glow effect */
192
- .doc-card > .card-glow {
193
- content: "";
194
- position: absolute;
195
- top: -50%;
196
- left: -50%;
197
- width: 200%;
198
- height: 200%;
199
- background: radial-gradient(
200
- circle at center,
201
- rgba(184, 108, 48, 0.08) 0%,
202
- transparent 70%
203
- );
204
- opacity: 0;
205
- transition: opacity var(--timing-slow) var(--ease-out);
206
- pointer-events: none;
207
- z-index: 0;
208
- }
209
-
210
- /* Hover state - brass polish effect */
211
- .doc-card:hover {
212
- transform: translateY(-4px);
213
- box-shadow: var(--shadow-emboss-hover);
214
- }
215
-
216
- .doc-card:hover::before,
217
- .doc-card:hover::after {
218
- border-color: var(--docs-copper-hover);
219
- }
220
-
221
- .doc-card:hover > .card-glow {
222
- opacity: 1;
223
- }
224
-
225
- /* Active/pressed state */
226
- .doc-card:active {
227
- transform: translateY(-2px);
228
- }
229
-
230
- /* Mobile adjustments */
231
- @media (max-width: 768px) {
232
- .doc-card {
233
- padding: var(--card-padding-mobile);
234
- }
235
- }
236
-
237
- /* ========================================
238
- CARD CONTENT ELEMENTS
239
- ======================================== */
240
-
241
- .card-status {
242
- position: absolute;
243
- top: var(--space-4);
244
- right: var(--space-4);
245
- font-family: var(--font-docs-ui);
246
- font-size: var(--text-xs);
247
- font-weight: var(--font-semibold);
248
- text-transform: uppercase;
249
- letter-spacing: var(--tracking-wider);
250
- color: var(--docs-copper);
251
- background: var(--docs-white);
252
- padding: var(--space-1) var(--space-3);
253
- border-radius: var(--radius-full);
254
- border: 1px solid var(--docs-copper);
255
- }
256
-
257
- .card-icon {
258
- font-size: var(--text-4xl);
259
- margin-bottom: var(--space-4);
260
- display: block;
261
- }
262
-
263
- .card-title {
264
- font-family: var(--font-docs-display);
265
- font-size: var(--text-3xl);
266
- font-weight: var(--font-medium);
267
- color: var(--docs-slate);
268
- margin-bottom: var(--space-3);
269
- letter-spacing: var(--tracking-tight);
270
- position: relative;
271
- z-index: 1;
272
- }
273
-
274
- .card-description {
275
- font-family: var(--font-docs-body);
276
- font-size: var(--text-base);
277
- line-height: var(--leading-relaxed);
278
- color: var(--docs-ink);
279
- opacity: 0.85;
280
- margin-bottom: var(--space-6);
281
- position: relative;
282
- z-index: 1;
283
- }
284
-
285
- .card-meta {
286
- font-family: var(--font-docs-ui);
287
- font-size: var(--text-sm);
288
- color: var(--docs-slate);
289
- opacity: 0.6;
290
- text-transform: uppercase;
291
- letter-spacing: var(--tracking-wide);
292
- margin-bottom: var(--space-6);
293
- display: flex;
294
- align-items: center;
295
- gap: var(--space-2);
296
- position: relative;
297
- z-index: 1;
298
- }
299
-
300
- .card-action {
301
- font-family: var(--font-docs-ui);
302
- font-size: var(--text-base);
303
- font-weight: var(--font-semibold);
304
- color: var(--docs-copper);
305
- text-decoration: none;
306
- display: inline-flex;
307
- align-items: center;
308
- gap: var(--space-2);
309
- position: relative;
310
- z-index: 1;
311
- }
312
-
313
- /* Animated underline */
314
- .card-action::after {
315
- content: "";
316
- position: absolute;
317
- bottom: -2px;
318
- left: 0;
319
- width: 0;
320
- height: 2px;
321
- background: var(--docs-copper);
322
- transition: width var(--timing-base) var(--ease-out);
323
- }
324
-
325
- .card-action:hover::after {
326
- width: calc(100% - 1.5rem);
327
- }
328
-
329
- /* Arrow animation */
330
- .card-action .arrow {
331
- transition: transform var(--timing-base) var(--ease-out);
332
- }
333
-
334
- .card-action:hover .arrow {
335
- transform: translateX(4px);
336
- }
337
-
338
- .revision-stamp {
339
- position: absolute;
340
- bottom: var(--space-3);
341
- right: var(--space-3);
342
- font-family: var(--font-docs-display);
343
- font-size: var(--text-xs);
344
- color: var(--docs-copper);
345
- opacity: 0.5;
346
- transform: rotate(-5deg);
347
- letter-spacing: var(--tracking-wider);
348
- z-index: 0;
349
- }
350
-
351
- /* ========================================
352
- BRANDED HEADER
353
- ======================================== */
354
-
355
- .docs-header {
356
- background: var(--docs-parchment);
357
- border-bottom: 1px solid var(--docs-border-light);
358
- padding: var(--space-4) var(--space-8);
359
- position: sticky;
360
- top: 0;
361
- z-index: var(--z-sticky);
362
-
363
- /* Copper accent line */
364
- box-shadow:
365
- inset 0 -2px 0 var(--docs-copper),
366
- 0 1px 3px rgba(0, 0, 0, 0.05);
367
- }
368
-
369
- .docs-header-content {
370
- max-width: var(--container-2xl);
371
- margin: 0 auto;
372
- display: flex;
373
- justify-content: space-between;
374
- align-items: center;
375
- }
376
-
377
- .docs-logo {
378
- display: flex;
379
- align-items: center;
380
- gap: var(--space-3);
381
- text-decoration: none;
382
- font-family: var(--font-docs-display);
383
- font-size: var(--text-lg);
384
- color: var(--docs-slate);
385
- font-weight: var(--font-semibold);
386
- }
387
-
388
- .docs-logo img {
389
- height: 32px;
390
- width: auto;
391
- }
392
-
393
- .logo-separator {
394
- color: var(--docs-copper);
395
- opacity: 0.5;
396
- }
397
-
398
- .logo-section {
399
- color: var(--docs-copper);
400
- }
401
-
402
- .docs-nav {
403
- display: flex;
404
- gap: var(--space-8);
405
- }
406
-
407
- .docs-nav a {
408
- font-family: var(--font-docs-ui);
409
- font-size: var(--text-base);
410
- color: var(--docs-slate);
411
- text-decoration: none;
412
- position: relative;
413
- padding: var(--space-1) 0;
414
- }
415
-
416
- .docs-nav a::after {
417
- content: "";
418
- position: absolute;
419
- bottom: 0;
420
- left: 0;
421
- width: 0;
422
- height: 1px;
423
- background: var(--docs-copper);
424
- transition: width var(--timing-fast) var(--ease-out);
425
- }
426
-
427
- .docs-nav a:hover::after {
428
- width: 100%;
429
- }
430
-
431
- .docs-nav a.external::before {
432
- content: "↗";
433
- margin-right: var(--space-1);
434
- opacity: 0.6;
435
- }
436
-
437
- /* Mobile header adjustments */
438
- @media (max-width: 768px) {
439
- .docs-header {
440
- padding: var(--space-4);
441
- }
442
-
443
- .docs-header-content {
444
- flex-direction: column;
445
- gap: var(--space-4);
446
- }
447
-
448
- .docs-nav {
449
- width: 100%;
450
- justify-content: space-between;
451
- gap: var(--space-4);
452
- }
453
- }
454
-
455
- /* ========================================
456
- HERO SECTION
457
- ======================================== */
458
-
459
- .docs-hero {
460
- text-align: center;
461
- padding: var(--space-20) var(--space-8);
462
- background: radial-gradient(
463
- ellipse at center,
464
- var(--docs-parchment) 0%,
465
- var(--docs-cream) 100%
466
- );
467
- position: relative;
468
- }
469
-
470
- .docs-hero-title {
471
- font-family: var(--font-docs-display);
472
- font-size: var(--text-6xl);
473
- font-weight: var(--font-medium);
474
- letter-spacing: var(--tracking-tight);
475
- color: var(--docs-slate);
476
- margin-bottom: var(--space-4);
477
- }
478
-
479
- .docs-hero-tagline {
480
- font-family: var(--font-docs-body);
481
- font-size: var(--text-2xl);
482
- color: var(--docs-ink);
483
- opacity: 0.7;
484
- margin-bottom: var(--space-6);
485
- }
486
-
487
- .docs-hero-separator {
488
- width: 120px;
489
- height: 2px;
490
- background: var(--docs-copper);
491
- margin: var(--space-8) auto;
492
- }
493
-
494
- .docs-hero-revision {
495
- position: absolute;
496
- top: var(--space-4);
497
- right: var(--space-8);
498
- font-family: var(--font-docs-display);
499
- font-size: var(--text-xs);
500
- color: var(--docs-copper);
501
- opacity: 0.5;
502
- letter-spacing: var(--tracking-wide);
503
- }
504
-
505
- /* Mobile hero adjustments */
506
- @media (max-width: 768px) {
507
- .docs-hero {
508
- padding: var(--space-12) var(--space-4);
509
- }
510
-
511
- .docs-hero-title {
512
- font-size: var(--text-4xl);
513
- }
514
-
515
- .docs-hero-tagline {
516
- font-size: var(--text-lg);
517
- }
518
- }
519
-
520
- /* ========================================
521
- CARD GRID LAYOUT
522
- ======================================== */
523
-
524
- .doc-cards {
525
- display: grid;
526
- gap: var(--space-8);
527
- padding: var(--space-8);
528
- max-width: var(--container-2xl);
529
- margin: 0 auto;
530
- }
531
-
532
- /* Desktop: 3 columns */
533
- @media (min-width: 1024px) {
534
- .doc-cards {
535
- grid-template-columns: repeat(3, 1fr);
536
- }
537
- }
538
-
539
- /* Tablet: 2 columns */
540
- @media (min-width: 768px) and (max-width: 1023px) {
541
- .doc-cards {
542
- grid-template-columns: repeat(2, 1fr);
543
- gap: var(--space-6);
544
- }
545
- }
546
-
547
- /* Mobile: 1 column */
548
- @media (max-width: 767px) {
549
- .doc-cards {
550
- grid-template-columns: 1fr;
551
- gap: var(--space-6);
552
- padding: var(--space-4);
553
- }
554
- }
555
-
556
- /* ========================================
557
- ANIMATIONS
558
- ======================================== */
559
-
560
- @keyframes fadeInUp {
561
- from {
562
- opacity: 0;
563
- transform: translateY(20px);
564
- }
565
- to {
566
- opacity: 1;
567
- transform: translateY(0);
568
- }
569
- }
570
-
571
- /* Staggered card reveals */
572
- .doc-card:nth-child(1) {
573
- animation: fadeInUp 0.6s var(--ease-in-out) 0.1s both;
574
- }
575
-
576
- .doc-card:nth-child(2) {
577
- animation: fadeInUp 0.6s var(--ease-in-out) 0.2s both;
578
- }
579
-
580
- .doc-card:nth-child(3) {
581
- animation: fadeInUp 0.6s var(--ease-in-out) 0.3s both;
582
- }
583
-
584
- .doc-card:nth-child(4) {
585
- animation: fadeInUp 0.6s var(--ease-in-out) 0.4s both;
586
- }
587
-
588
- .doc-card:nth-child(5) {
589
- animation: fadeInUp 0.6s var(--ease-in-out) 0.5s both;
590
- }
591
-
592
- .doc-card:nth-child(6) {
593
- animation: fadeInUp 0.6s var(--ease-in-out) 0.6s both;
594
- }
595
-
596
- /* ========================================
597
- ACCESSIBILITY
598
- ======================================== */
599
-
600
- /* Focus states */
601
- *:focus-visible {
602
- outline: var(--focus-ring-width) solid var(--focus-ring-color);
603
- outline-offset: var(--focus-ring-offset);
604
- border-radius: var(--radius-sm);
605
- }
606
-
607
- .doc-card:focus-visible {
608
- outline-offset: 8px;
609
- }
610
-
611
- a:focus-visible {
612
- outline-offset: 2px;
613
- }
614
-
615
- /* Screen reader only */
616
- .sr-only {
617
- position: absolute;
618
- width: 1px;
619
- height: 1px;
620
- padding: 0;
621
- margin: -1px;
622
- overflow: hidden;
623
- clip: rect(0, 0, 0, 0);
624
- white-space: nowrap;
625
- border-width: 0;
626
- }
627
-
628
- .sr-only-focusable:focus {
629
- position: static;
630
- width: auto;
631
- height: auto;
632
- padding: inherit;
633
- margin: inherit;
634
- overflow: visible;
635
- clip: auto;
636
- white-space: normal;
637
- }
638
-
639
- /* Reduced motion */
640
- @media (prefers-reduced-motion: reduce) {
641
- *,
642
- *::before,
643
- *::after {
644
- animation-duration: 0.01ms !important;
645
- animation-iteration-count: 1 !important;
646
- transition-duration: 0.01ms !important;
647
- }
648
-
649
- .doc-card {
650
- transform: none !important;
651
- }
652
-
653
- .card-action .arrow {
654
- transform: none !important;
655
- }
656
- }
657
-
658
- /* ========================================
659
- PRINT STYLES
660
- ======================================== */
661
-
662
- @media print {
663
- body::before {
664
- display: none;
665
- }
666
-
667
- .docs-header,
668
- .docs-nav {
669
- display: none;
670
- }
671
-
672
- .doc-card {
673
- box-shadow: none;
674
- border: 1px solid #000;
675
- page-break-inside: avoid;
676
- }
677
-
678
- .doc-card::before,
679
- .doc-card::after {
680
- display: none;
681
- }
682
- }