ga-toasts 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.
package/src/demo.css ADDED
@@ -0,0 +1,698 @@
1
+ /* Demo page layout and component styles extracted from index.html */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ body {
9
+ font-family: var(--ga-font-sans);
10
+ background: var(--ga-bg-secondary);
11
+ min-height: 100vh;
12
+ padding: var(--ga-space-6);
13
+ color: var(--ga-text-primary);
14
+ line-height: var(--ga-leading-normal);
15
+ /* Enable font smoothing for cleaner text */
16
+ -webkit-font-smoothing: antialiased;
17
+ -moz-osx-font-smoothing: grayscale;
18
+ text-rendering: optimizeLegibility;
19
+ }
20
+
21
+ .container {
22
+ max-width: var(--ga-container-xl);
23
+ margin: 0 auto;
24
+ /* Layout-only wrapper: avoid card-in-card effect */
25
+ background: transparent;
26
+ border-radius: 0;
27
+ padding: var(--ga-space-10);
28
+ box-shadow: none;
29
+ border: none;
30
+ }
31
+
32
+ h1 {
33
+ text-align: center;
34
+ margin-bottom: var(--ga-space-6);
35
+ color: var(--ga-text-primary);
36
+ font-size: var(--ga-text-5xl);
37
+ font-weight: var(--ga-font-bold);
38
+ letter-spacing: var(--ga-tracking-tight);
39
+ }
40
+
41
+ .subtitle {
42
+ text-align: center;
43
+ color: var(--ga-text-secondary);
44
+ margin-bottom: var(--ga-space-10);
45
+ font-size: var(--ga-text-lg);
46
+ font-weight: var(--ga-font-normal);
47
+ line-height: var(--ga-leading-relaxed);
48
+ max-width: 700px;
49
+ margin-left: auto;
50
+ margin-right: auto;
51
+ }
52
+
53
+ .subtitle-compact {
54
+ margin-bottom: var(--ga-space-4);
55
+ }
56
+
57
+ /* Skip link (was inline style) */
58
+ .skip-link {
59
+ position: absolute;
60
+ left: -9999px;
61
+ width: 1px;
62
+ height: 1px;
63
+ overflow: hidden;
64
+ }
65
+
66
+ /* SEO Content Section */
67
+ .seo-content {
68
+ margin: var(--ga-space-8) 0;
69
+ padding: var(--ga-space-6);
70
+ background: var(--ga-primary-light);
71
+ border-radius: var(--ga-radius-lg);
72
+ border-left: var(--ga-border-2) solid var(--ga-primary);
73
+ }
74
+
75
+ .seo-content h2 {
76
+ margin-top: 0;
77
+ margin-bottom: var(--ga-space-4);
78
+ color: var(--ga-primary);
79
+ font-size: var(--ga-text-2xl);
80
+ font-weight: var(--ga-font-semibold);
81
+ }
82
+
83
+ .seo-content h3 {
84
+ margin: var(--ga-space-5) 0 var(--ga-space-3) 0;
85
+ color: var(--ga-text-primary);
86
+ font-size: var(--ga-text-lg);
87
+ font-weight: var(--ga-font-medium);
88
+ }
89
+
90
+ .seo-content p {
91
+ margin-bottom: var(--ga-space-4);
92
+ color: var(--ga-text-secondary);
93
+ line-height: var(--ga-leading-relaxed);
94
+ }
95
+
96
+ .seo-content ul {
97
+ margin: var(--ga-space-4) 0;
98
+ padding-left: var(--ga-space-6);
99
+ }
100
+
101
+ .seo-content li {
102
+ margin-bottom: var(--ga-space-2);
103
+ color: var(--ga-text-secondary);
104
+ line-height: var(--ga-leading-relaxed);
105
+ }
106
+
107
+ /* Resource Section Styles */
108
+ .resource-section {
109
+ margin: var(--ga-space-8) 0;
110
+ padding: var(--ga-space-6);
111
+ background: var(--ga-bg-surface);
112
+ border-radius: var(--ga-radius-lg);
113
+ border: var(--ga-border-1) solid var(--ga-border-light);
114
+ }
115
+
116
+ .resource-section h2 {
117
+ color: var(--ga-primary);
118
+ margin-bottom: var(--ga-space-4);
119
+ font-size: var(--ga-text-2xl);
120
+ font-weight: var(--ga-font-semibold);
121
+ }
122
+
123
+ .guide-toc {
124
+ margin: var(--ga-space-5) 0;
125
+ padding: var(--ga-space-4);
126
+ background: var(--ga-bg-subtle);
127
+ border-radius: var(--ga-radius-md);
128
+ }
129
+
130
+ .guide-toc h3 {
131
+ margin-bottom: var(--ga-space-3);
132
+ color: var(--ga-text-primary);
133
+ font-size: var(--ga-text-lg);
134
+ }
135
+
136
+ .guide-toc ol {
137
+ margin-left: var(--ga-space-5);
138
+ }
139
+
140
+ .guide-toc li {
141
+ margin-bottom: var(--ga-space-2);
142
+ }
143
+
144
+ .guide-toc a {
145
+ color: var(--ga-primary);
146
+ text-decoration: none;
147
+ }
148
+
149
+ .guide-toc a:hover {
150
+ text-decoration: underline;
151
+ }
152
+
153
+ .download-section {
154
+ margin-top: var(--ga-space-6);
155
+ }
156
+
157
+ .download-section h3 {
158
+ margin-bottom: var(--ga-space-4);
159
+ color: var(--ga-text-primary);
160
+ font-size: var(--ga-text-lg);
161
+ }
162
+
163
+ .download-grid {
164
+ display: grid;
165
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
166
+ gap: var(--ga-space-4);
167
+ }
168
+
169
+ .download-item {
170
+ padding: var(--ga-space-4);
171
+ background: var(--ga-bg-primary);
172
+ border-radius: var(--ga-radius-md);
173
+ border: var(--ga-border-1) solid var(--ga-border-light);
174
+ text-align: center;
175
+ }
176
+
177
+ .download-item h4 {
178
+ margin-bottom: var(--ga-space-2);
179
+ color: var(--ga-primary);
180
+ font-size: var(--ga-text-base);
181
+ }
182
+
183
+ .download-item p {
184
+ margin-bottom: var(--ga-space-3);
185
+ color: var(--ga-text-secondary);
186
+ font-size: var(--ga-text-sm);
187
+ }
188
+
189
+ .download-btn {
190
+ display: inline-block;
191
+ padding: var(--ga-space-2) var(--ga-space-4);
192
+ background: var(--ga-primary);
193
+ color: var(--ga-text-inverse);
194
+ text-decoration: none;
195
+ border-radius: var(--ga-radius-md);
196
+ font-size: var(--ga-text-sm);
197
+ font-weight: var(--ga-font-medium);
198
+ transition: var(--ga-transition-fast);
199
+ }
200
+
201
+ .download-btn:hover {
202
+ background: var(--ga-primary-hover);
203
+ transform: translateY(-1px);
204
+ }
205
+
206
+ /* Comparison Table Styles */
207
+ .comparison-section {
208
+ margin: var(--ga-space-8) 0;
209
+ padding: var(--ga-space-6);
210
+ background: var(--ga-bg-surface);
211
+ border-radius: var(--ga-radius-lg);
212
+ border: var(--ga-border-1) solid var(--ga-border-light);
213
+ }
214
+
215
+ .comparison-section h2 {
216
+ color: var(--ga-primary);
217
+ margin-bottom: var(--ga-space-4);
218
+ font-size: var(--ga-text-2xl);
219
+ font-weight: var(--ga-font-semibold);
220
+ }
221
+
222
+ .comparison-table {
223
+ overflow-x: auto;
224
+ margin-top: var(--ga-space-5);
225
+ }
226
+
227
+ .comparison-table table {
228
+ width: 100%;
229
+ border-collapse: collapse;
230
+ background: var(--ga-bg-primary);
231
+ border-radius: var(--ga-radius-md);
232
+ overflow: hidden;
233
+ }
234
+
235
+ .comparison-table th,
236
+ .comparison-table td {
237
+ padding: var(--ga-space-3);
238
+ text-align: left;
239
+ border-bottom: var(--ga-border-1) solid var(--ga-border-light);
240
+ }
241
+
242
+ .comparison-table th {
243
+ background: var(--ga-primary);
244
+ color: var(--ga-text-inverse);
245
+ font-weight: var(--ga-font-semibold);
246
+ }
247
+
248
+ .comparison-table td {
249
+ color: var(--ga-text-primary);
250
+ }
251
+
252
+ .comparison-table tr:hover {
253
+ background: var(--ga-bg-subtle);
254
+ }
255
+
256
+ /* Social Section Styles */
257
+ .social-section {
258
+ margin: var(--ga-space-8) 0;
259
+ padding: var(--ga-space-6);
260
+ background: var(--ga-bg-surface);
261
+ border-radius: var(--ga-radius-lg);
262
+ border: var(--ga-border-1) solid var(--ga-border-light);
263
+ text-align: center;
264
+ }
265
+
266
+ .social-section h2 {
267
+ color: var(--ga-primary);
268
+ margin-bottom: var(--ga-space-4);
269
+ font-size: var(--ga-text-2xl);
270
+ font-weight: var(--ga-font-semibold);
271
+ }
272
+
273
+ .social-buttons {
274
+ display: flex;
275
+ flex-wrap: wrap;
276
+ justify-content: center;
277
+ gap: var(--ga-space-3);
278
+ margin: var(--ga-space-5) 0;
279
+ }
280
+
281
+ .social-btn {
282
+ display: inline-flex;
283
+ align-items: center;
284
+ gap: var(--ga-space-2);
285
+ padding: var(--ga-space-3) var(--ga-space-5);
286
+ background: var(--ga-bg-primary);
287
+ color: var(--ga-text-primary);
288
+ text-decoration: none;
289
+ border-radius: var(--ga-radius-md);
290
+ border: var(--ga-border-1) solid var(--ga-border-light);
291
+ font-size: var(--ga-text-sm);
292
+ font-weight: var(--ga-font-medium);
293
+ transition: var(--ga-transition-fast);
294
+ }
295
+
296
+ .social-btn:hover {
297
+ transform: translateY(-1px);
298
+ }
299
+
300
+ .social-btn.twitter:hover {
301
+ background: #1da1f2;
302
+ color: white;
303
+ border-color: #1da1f2;
304
+ }
305
+
306
+ .social-btn.linkedin:hover {
307
+ background: #0077b5;
308
+ color: white;
309
+ border-color: #0077b5;
310
+ }
311
+
312
+ .social-btn.github:hover {
313
+ background: #333;
314
+ color: white;
315
+ border-color: #333;
316
+ }
317
+
318
+ .social-btn.npm:hover {
319
+ background: #cb3837;
320
+ color: white;
321
+ border-color: #cb3837;
322
+ }
323
+
324
+ .github-badges {
325
+ margin-top: var(--ga-space-6);
326
+ }
327
+
328
+ .github-badges h3 {
329
+ margin-bottom: var(--ga-space-4);
330
+ color: var(--ga-text-primary);
331
+ font-size: var(--ga-text-lg);
332
+ }
333
+
334
+ .badge-grid {
335
+ display: flex;
336
+ flex-wrap: wrap;
337
+ justify-content: center;
338
+ gap: var(--ga-space-2);
339
+ }
340
+
341
+ .github-badge {
342
+ height: 28px;
343
+ border-radius: var(--ga-radius-sm);
344
+ }
345
+
346
+ .demo-section {
347
+ margin-bottom: var(--ga-space-10);
348
+ padding: var(--ga-space-6);
349
+ background: var(--ga-bg-surface);
350
+ border-radius: var(--ga-radius-lg);
351
+ border: var(--ga-border-1) solid var(--ga-border-light);
352
+ }
353
+
354
+ .advanced-features-section {
355
+ margin-top: var(--ga-space-10) !important;
356
+ }
357
+
358
+ .demo-section h2 {
359
+ color: var(--ga-primary);
360
+ margin-bottom: var(--ga-space-5);
361
+ font-size: var(--ga-text-2xl);
362
+ font-weight: var(--ga-font-semibold);
363
+ letter-spacing: var(--ga-tracking-normal);
364
+ }
365
+
366
+ .button-grid {
367
+ display: grid;
368
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
369
+ gap: var(--ga-space-3);
370
+ margin-bottom: var(--ga-space-6);
371
+ }
372
+
373
+ .demo-btn {
374
+ padding: var(--ga-space-3) var(--ga-space-5);
375
+ border: var(--ga-border-1) solid var(--ga-border-light);
376
+ border-radius: var(--ga-radius-md);
377
+ font-weight: var(--ga-font-medium);
378
+ cursor: pointer;
379
+ transition: var(--ga-transition-fast);
380
+ font-size: var(--ga-text-sm);
381
+ box-shadow: var(--ga-shadow-sm);
382
+ background: var(--ga-bg-primary);
383
+ }
384
+
385
+ .demo-btn:hover {
386
+ transform: translateY(-1px);
387
+ box-shadow: var(--ga-shadow-md);
388
+ border-color: var(--ga-border-medium);
389
+ }
390
+
391
+ .demo-btn:active {
392
+ transform: translateY(0);
393
+ box-shadow: var(--ga-shadow-sm);
394
+ }
395
+
396
+ .btn-primary {
397
+ background: var(--ga-primary);
398
+ color: var(--ga-text-inverse);
399
+ border-color: var(--ga-primary);
400
+ }
401
+
402
+ .btn-primary:hover {
403
+ background: var(--ga-primary-hover);
404
+ border-color: var(--ga-primary-hover);
405
+ }
406
+
407
+ .btn-success {
408
+ background: var(--ga-success);
409
+ color: var(--ga-text-inverse);
410
+ border-color: var(--ga-success);
411
+ }
412
+
413
+ .btn-success:hover {
414
+ background: var(--ga-success-hover);
415
+ border-color: var(--ga-success-hover);
416
+ }
417
+
418
+ .btn-error {
419
+ background: var(--ga-error);
420
+ color: var(--ga-text-inverse);
421
+ border-color: var(--ga-error);
422
+ }
423
+
424
+ .btn-error:hover {
425
+ background: var(--ga-error-hover);
426
+ border-color: var(--ga-error-hover);
427
+ }
428
+
429
+ .btn-warning {
430
+ background: var(--ga-warning);
431
+ color: var(--ga-text-inverse);
432
+ border-color: var(--ga-warning);
433
+ }
434
+
435
+ .btn-warning:hover {
436
+ background: var(--ga-warning-hover);
437
+ border-color: var(--ga-warning-hover);
438
+ }
439
+
440
+ .btn-info {
441
+ background: var(--ga-info);
442
+ color: var(--ga-text-inverse);
443
+ border-color: var(--ga-info);
444
+ }
445
+
446
+ .btn-info:hover {
447
+ background: var(--ga-info-hover);
448
+ border-color: var(--ga-info-hover);
449
+ }
450
+
451
+ .btn-secondary {
452
+ background: var(--ga-secondary);
453
+ color: var(--ga-text-inverse);
454
+ border-color: var(--ga-secondary);
455
+ }
456
+
457
+ .btn-secondary:hover {
458
+ background: var(--ga-secondary-hover);
459
+ border-color: var(--ga-secondary-hover);
460
+ }
461
+
462
+ .code-block {
463
+ position: relative;
464
+ background: var(--ga-gray-800);
465
+ color: var(--ga-text-inverse);
466
+ padding: var(--ga-space-5);
467
+ border-radius: var(--ga-radius-md);
468
+ font-family: var(--ga-font-mono);
469
+ font-size: var(--ga-text-sm);
470
+ overflow-x: auto;
471
+ margin-top: var(--ga-space-5);
472
+ border: var(--ga-border-1) solid var(--ga-border-dark);
473
+ }
474
+
475
+ .code-block pre {
476
+ margin: 0;
477
+ white-space: pre-wrap;
478
+ }
479
+
480
+ .code-copy-btn {
481
+ position: absolute;
482
+ top: var(--ga-space-3);
483
+ right: var(--ga-space-3);
484
+ padding: var(--ga-space-1) var(--ga-space-3);
485
+ font-size: var(--ga-text-xs);
486
+ font-family: var(--ga-font-sans);
487
+ border-radius: var(--ga-radius-full);
488
+ border: var(--ga-border-1) solid var(--ga-border-light);
489
+ background: rgba(255, 255, 255, 0.06);
490
+ color: var(--ga-text-inverse);
491
+ cursor: pointer;
492
+ }
493
+
494
+ .code-copy-btn:hover {
495
+ background: rgba(0, 0, 0, 0.5);
496
+ }
497
+
498
+ .feature-list {
499
+ display: grid;
500
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
501
+ gap: var(--ga-space-4);
502
+ margin-top: var(--ga-space-6);
503
+ }
504
+
505
+ .feature-item {
506
+ padding: var(--ga-space-5);
507
+ background: var(--ga-bg-surface);
508
+ border-radius: var(--ga-radius-lg);
509
+ border-left: var(--ga-border-2) solid var(--ga-primary);
510
+ box-shadow: var(--ga-shadow-sm);
511
+ transition: var(--ga-transition-fast);
512
+ }
513
+
514
+ .feature-item:hover {
515
+ transform: translateY(-1px);
516
+ box-shadow: var(--ga-shadow-md);
517
+ }
518
+
519
+ .feature-item h3 {
520
+ color: var(--ga-primary);
521
+ margin-bottom: var(--ga-space-3);
522
+ font-size: var(--ga-text-lg);
523
+ font-weight: var(--ga-font-semibold);
524
+ }
525
+
526
+ .feature-item p {
527
+ color: var(--ga-text-secondary);
528
+ line-height: var(--ga-leading-relaxed);
529
+ }
530
+
531
+ .position-controls {
532
+ display: flex;
533
+ flex-wrap: wrap;
534
+ gap: var(--ga-space-2-5);
535
+ margin-bottom: var(--ga-space-5);
536
+ }
537
+
538
+ .position-btn {
539
+ padding: var(--ga-space-2) var(--ga-space-4);
540
+ border: var(--ga-border-2) solid var(--ga-primary);
541
+ background: transparent;
542
+ color: var(--ga-primary);
543
+ border-radius: var(--ga-radius-full);
544
+ cursor: pointer;
545
+ transition: var(--ga-transition-all-normal);
546
+ font-weight: var(--ga-font-medium);
547
+ }
548
+
549
+ .position-btn.active,
550
+ .position-btn:hover {
551
+ background: var(--ga-primary);
552
+ color: var(--ga-text-inverse);
553
+ }
554
+
555
+ .theme-controls {
556
+ display: flex;
557
+ gap: var(--ga-space-2-5);
558
+ margin-bottom: var(--ga-space-5);
559
+ align-items: center;
560
+ }
561
+
562
+ .theme-btn {
563
+ padding: var(--ga-space-2) var(--ga-space-4);
564
+ border: var(--ga-border-2) solid var(--ga-border-medium);
565
+ background: var(--ga-bg-primary);
566
+ color: var(--ga-text-primary);
567
+ border-radius: var(--ga-radius-lg);
568
+ cursor: pointer;
569
+ transition: var(--ga-transition-all-normal);
570
+ }
571
+
572
+ .theme-btn.active {
573
+ border-color: var(--ga-primary);
574
+ background: var(--ga-primary);
575
+ color: var(--ga-text-inverse);
576
+ }
577
+
578
+ .theme-btn:focus-visible,
579
+ .demo-btn:focus-visible,
580
+ .position-btn:focus-visible {
581
+ outline: 2px solid var(--ga-primary);
582
+ outline-offset: 2px;
583
+ }
584
+
585
+ .stats {
586
+ display: grid;
587
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
588
+ gap: var(--ga-space-4);
589
+ margin-top: var(--ga-space-8);
590
+ }
591
+
592
+ .stat-item {
593
+ text-align: center;
594
+ padding: var(--ga-space-5);
595
+ background: var(--ga-bg-surface);
596
+ border-radius: var(--ga-radius-lg);
597
+ border: var(--ga-border-1) solid var(--ga-border-light);
598
+ transition: var(--ga-transition-fast);
599
+ }
600
+
601
+ .stat-item:hover {
602
+ transform: translateY(-1px);
603
+ box-shadow: var(--ga-shadow-md);
604
+ }
605
+
606
+ .stat-number {
607
+ font-size: var(--ga-text-3xl);
608
+ font-weight: var(--ga-font-bold);
609
+ color: var(--ga-primary);
610
+ display: block;
611
+ }
612
+
613
+ .stat-label {
614
+ color: var(--ga-text-secondary);
615
+ font-size: var(--ga-text-sm);
616
+ margin-top: var(--ga-space-2);
617
+ font-weight: var(--ga-font-medium);
618
+ }
619
+
620
+ @media (max-width: 768px) {
621
+ .container {
622
+ padding: var(--ga-space-5);
623
+ margin: var(--ga-space-2-5);
624
+ }
625
+
626
+ h1 {
627
+ font-size: var(--ga-text-4xl);
628
+ }
629
+
630
+ .button-grid {
631
+ grid-template-columns: 1fr;
632
+ }
633
+
634
+ .demo-section {
635
+ padding: 20px;
636
+ }
637
+ }
638
+
639
+ .mt-10 {
640
+ margin-top: var(--ga-space-10) !important;
641
+ }
642
+
643
+ .mt-0 {
644
+ margin-top: var(--ga-space-0) !important;
645
+ }
646
+
647
+ /* Dark mode adjustments for demo layout */
648
+ [data-ga-theme="dark"] body {
649
+ background: var(--ga-bg-secondary);
650
+ color: var(--ga-text-primary);
651
+ }
652
+
653
+ [data-ga-theme="dark"] .seo-content,
654
+ [data-ga-theme="dark"] .demo-section,
655
+ [data-ga-theme="dark"] .resource-section,
656
+ [data-ga-theme="dark"] .comparison-section,
657
+ [data-ga-theme="dark"] .social-section {
658
+ background: var(--ga-bg-surface);
659
+ border-color: var(--ga-border-dark);
660
+ }
661
+
662
+ [data-ga-theme="dark"] .download-item,
663
+ [data-ga-theme="dark"] .feature-item,
664
+ [data-ga-theme="dark"] .stat-item {
665
+ background: var(--ga-bg-secondary);
666
+ border-color: var(--ga-border-medium);
667
+ }
668
+
669
+ [data-ga-theme="dark"] .comparison-table table {
670
+ background: var(--ga-bg-primary);
671
+ }
672
+
673
+ [data-ga-theme="dark"] .comparison-table th {
674
+ background: var(--ga-primary-dark);
675
+ }
676
+
677
+ [data-ga-theme="dark"] .code-block {
678
+ background: var(--ga-gray-900);
679
+ border-color: var(--ga-border-dark);
680
+ /* Force light text so instructions stay readable on dark background */
681
+ color: var(--ga-white);
682
+ }
683
+
684
+ [data-ga-theme="dark"] .code-block pre {
685
+ color: inherit;
686
+ }
687
+
688
+ [data-ga-theme="dark"] .code-copy-btn {
689
+ background: rgba(255, 255, 255, 0.1);
690
+ border-color: var(--ga-border-medium);
691
+ color: var(--ga-white);
692
+ }
693
+
694
+ [data-ga-theme="dark"] .code-copy-btn:hover {
695
+ background: rgba(255, 255, 255, 0.18);
696
+ }
697
+
698
+