peek-carousel 1.0.2 → 1.0.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.
@@ -0,0 +1,979 @@
1
+ // ==============================================
2
+ // Example Page Styles
3
+ // ==============================================
4
+
5
+ // ---------------------------------------------
6
+ // CSS Variables (Theme)
7
+ // ---------------------------------------------
8
+ :root {
9
+ // Colors
10
+ --color-primary: #667eea;
11
+ --color-secondary: #764ba2;
12
+ --color-bg-dark: #1a1a2e;
13
+ --color-bg-black: #000;
14
+ --color-white: #fff;
15
+ --color-overlay: rgba(0, 0, 0, 0.7);
16
+ --color-overlay-hover: rgba(0, 0, 0, 0.8);
17
+ --color-border: hsla(0, 0%, 100%, 0.2);
18
+ --color-border-hover: hsla(0, 0%, 100%, 0.35);
19
+ --color-bg-item: hsla(0, 0%, 100%, 0.05);
20
+ --color-bg-item-hover: hsla(0, 0%, 100%, 0.1);
21
+ --color-bg-item-light: hsla(0, 0%, 100%, 0.08);
22
+
23
+ // Spacing
24
+ --spacing-xs: 8px;
25
+ --spacing-sm: 10px;
26
+ --spacing-md: 12px;
27
+ --spacing-lg: 20px;
28
+
29
+ // Border Radius
30
+ --border-radius: 8px;
31
+ --border-radius-lg: 12px;
32
+
33
+ // Button
34
+ --button-size: 48px;
35
+ --button-size-mobile: 40px;
36
+
37
+ // Transitions
38
+ --transition: all 0.3s ease;
39
+ --transition-fast: all 0.2s ease;
40
+ }
41
+
42
+ // ---------------------------------------------
43
+ // Reset
44
+ // ---------------------------------------------
45
+ * {
46
+ box-sizing: border-box;
47
+ margin: 0;
48
+ padding: 0;
49
+ }
50
+
51
+ html,
52
+ body {
53
+ height: 100%;
54
+ overflow: hidden;
55
+ }
56
+
57
+ body {
58
+ background: radial-gradient(
59
+ ellipse at center,
60
+ var(--color-bg-dark) 0%,
61
+ var(--color-bg-black) 100%
62
+ );
63
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
64
+ min-height: 100vh;
65
+ position: relative;
66
+ width: 100%;
67
+
68
+ // Grid background animation
69
+ &::before {
70
+ content: '';
71
+ position: absolute;
72
+ inset: 0;
73
+ z-index: -1;
74
+ background-image:
75
+ linear-gradient(rgba(102, 126, 234, 0.03) 1px, transparent 0),
76
+ linear-gradient(90deg, rgba(102, 126, 234, 0.03) 1px, transparent 0),
77
+ linear-gradient(rgba(102, 126, 234, 0.05) 1px, transparent 0),
78
+ linear-gradient(90deg, rgba(102, 126, 234, 0.05) 1px, transparent 0);
79
+ background-size: 20px 20px, 20px 20px, 100px 100px, 100px 100px;
80
+ background-position: 0 0, 0 0, 0 0, 0 0;
81
+ animation: gridMove 20s linear infinite;
82
+ }
83
+ }
84
+
85
+ @keyframes gridMove {
86
+ 0% {
87
+ background-position: 0 0, 0 0, 0 0, 0 0;
88
+ }
89
+ 100% {
90
+ background-position: 20px 20px, 20px 20px, 100px 100px, 100px 100px;
91
+ }
92
+ }
93
+
94
+ // ---------------------------------------------
95
+ // Layout
96
+ // ---------------------------------------------
97
+ .wrapper {
98
+ display: grid;
99
+ place-items: center;
100
+ width: 100vw;
101
+ height: 100vh;
102
+ position: relative;
103
+ }
104
+
105
+ // ---------------------------------------------
106
+ // Circle Button (Base)
107
+ // ---------------------------------------------
108
+ .circle__button {
109
+ display: flex;
110
+ align-items: center;
111
+ justify-content: center;
112
+ width: var(--button-size);
113
+ height: var(--button-size);
114
+ border-radius: 50%;
115
+ background: var(--color-overlay);
116
+ border: 1px solid var(--color-border);
117
+ color: var(--color-white);
118
+ backdrop-filter: blur(12px);
119
+ transition: var(--transition);
120
+
121
+ &:hover {
122
+ background: var(--color-overlay-hover);
123
+ border-color: var(--color-border-hover);
124
+ }
125
+ }
126
+
127
+ // ---------------------------------------------
128
+ // GitHub Link
129
+ // ---------------------------------------------
130
+ .github__link {
131
+ position: absolute;
132
+ top: var(--spacing-lg);
133
+ left: var(--spacing-lg);
134
+ text-decoration: none;
135
+ z-index: 200;
136
+
137
+ svg {
138
+ transition: transform 0.3s ease;
139
+ }
140
+
141
+ &:hover svg {
142
+ animation: octocat-wave 0.6s ease-in-out;
143
+ }
144
+ }
145
+
146
+ @keyframes octocat-wave {
147
+ 0%, 100% { transform: rotate(0deg); }
148
+ 20% { transform: rotate(-15deg); }
149
+ 40% { transform: rotate(10deg); }
150
+ 60% { transform: rotate(-10deg); }
151
+ 80% { transform: rotate(5deg); }
152
+ }
153
+
154
+ // ---------------------------------------------
155
+ // Tooltip
156
+ // ---------------------------------------------
157
+ .tooltip {
158
+ position: absolute;
159
+ top: 50%;
160
+ left: 100%;
161
+ margin-left: var(--spacing-md);
162
+ transform: translateY(-50%);
163
+ padding: 0.5rem 0.75rem;
164
+ background: var(--color-overlay-hover);
165
+ border: 1px solid var(--color-border);
166
+ border-radius: 6px;
167
+ backdrop-filter: blur(12px);
168
+ color: var(--color-white);
169
+ font-size: 0.875rem;
170
+ white-space: nowrap;
171
+ opacity: 0;
172
+ pointer-events: none;
173
+ transition: var(--transition-fast);
174
+
175
+ &::before,
176
+ &::after {
177
+ content: '';
178
+ position: absolute;
179
+ top: 50%;
180
+ right: 100%;
181
+ transform: translateY(-50%);
182
+ }
183
+
184
+ &::before {
185
+ border: 6px solid transparent;
186
+ border-right: 6px solid var(--color-border);
187
+ }
188
+
189
+ &::after {
190
+ border: 5px solid transparent;
191
+ border-right: 5px solid var(--color-overlay-hover);
192
+ margin-right: -1px;
193
+ }
194
+ }
195
+
196
+ .github__link:hover .tooltip {
197
+ opacity: 1;
198
+ transform: translateY(-50%) translateX(4px);
199
+ }
200
+
201
+ // ---------------------------------------------
202
+ // Intro Text
203
+ // ---------------------------------------------
204
+ .intro__text {
205
+ position: absolute;
206
+ top: 10%;
207
+ left: 50%;
208
+ transform: translateX(-50%);
209
+ text-align: center;
210
+ color: #fff;
211
+ pointer-events: none;
212
+ z-index: 10;
213
+
214
+ h1 {
215
+ font-size: 2.5rem;
216
+ font-weight: 700;
217
+ margin-bottom: 1rem;
218
+ background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
219
+ -webkit-background-clip: text;
220
+ background-clip: text;
221
+ -webkit-text-fill-color: transparent;
222
+ }
223
+
224
+ p {
225
+ font-size: 1.2rem;
226
+ opacity: 0.8;
227
+ }
228
+ }
229
+
230
+ // ---------------------------------------------
231
+ // Top Controls
232
+ // ---------------------------------------------
233
+ .top__controls {
234
+ position: absolute;
235
+ top: var(--spacing-lg);
236
+ right: var(--spacing-lg);
237
+ display: flex;
238
+ gap: var(--spacing-sm);
239
+ z-index: 250;
240
+ }
241
+
242
+ .keyboard__toggle,
243
+ .mouse__toggle,
244
+ .controls__toggle,
245
+ .share__toggle {
246
+ cursor: pointer;
247
+
248
+ &:hover {
249
+ background: var(--color-overlay-hover);
250
+ border-color: var(--color-border-hover);
251
+
252
+ .tooltip {
253
+ opacity: 1;
254
+ transform: translateY(-50%) translateX(-4px);
255
+ }
256
+ }
257
+
258
+ &[aria-expanded='true'] {
259
+ background: var(--color-overlay-hover);
260
+ border-color: var(--color-primary);
261
+ }
262
+
263
+ .tooltip {
264
+ left: auto;
265
+ right: 100%;
266
+ margin-left: 0;
267
+ margin-right: var(--spacing-md);
268
+ transform: translateY(-50%);
269
+
270
+ &::before {
271
+ left: 100%;
272
+ right: auto;
273
+ border-right-color: transparent;
274
+ border-left-color: var(--color-border);
275
+ }
276
+
277
+ &::after {
278
+ left: 100%;
279
+ right: auto;
280
+ margin-right: 0;
281
+ margin-left: -1px;
282
+ border-right-color: transparent;
283
+ border-left-color: var(--color-overlay-hover);
284
+ }
285
+ }
286
+ }
287
+
288
+ .controls__toggle {
289
+ svg {
290
+ transition: transform 0.3s ease;
291
+ }
292
+
293
+ &[aria-expanded='true'] svg {
294
+ transform: rotate(90deg);
295
+ }
296
+ }
297
+
298
+ // ---------------------------------------------
299
+ // Panel Base Styles
300
+ // ---------------------------------------------
301
+ %panel-base {
302
+ position: absolute;
303
+ top: calc(var(--spacing-lg) + var(--button-size) + var(--spacing-sm));
304
+ right: var(--spacing-lg);
305
+ width: 300px;
306
+ max-height: calc(100vh - var(--spacing-lg) - var(--button-size) - var(--spacing-sm) - var(--spacing-lg));
307
+ padding: 1.25rem;
308
+ background: var(--color-overlay);
309
+ border: 1px solid var(--color-border);
310
+ border-radius: var(--border-radius-lg);
311
+ backdrop-filter: blur(16px);
312
+ overflow-y: auto;
313
+ opacity: 0;
314
+ visibility: hidden;
315
+ pointer-events: none;
316
+ transform: translateY(-10px);
317
+ transition: transform 0.25s ease, opacity 0.25s ease, visibility 0.25s;
318
+ z-index: 200;
319
+
320
+ &::before {
321
+ content: '';
322
+ position: absolute;
323
+ top: -8px;
324
+ right: 14px;
325
+ width: 0;
326
+ height: 0;
327
+ border-left: 8px solid transparent;
328
+ border-right: 8px solid transparent;
329
+ border-bottom: 8px solid var(--color-border);
330
+ }
331
+
332
+ &::after {
333
+ content: '';
334
+ position: absolute;
335
+ top: -6px;
336
+ right: 15px;
337
+ width: 0;
338
+ height: 0;
339
+ border-left: 7px solid transparent;
340
+ border-right: 7px solid transparent;
341
+ border-bottom: 7px solid var(--color-overlay);
342
+ }
343
+ }
344
+
345
+ %panel-active {
346
+ opacity: 1;
347
+ visibility: visible;
348
+ pointer-events: auto;
349
+ transform: translateY(0);
350
+ }
351
+
352
+ %panel-header {
353
+ margin-bottom: 1.25rem;
354
+ padding-bottom: 1rem;
355
+ border-bottom: 1px solid hsla(0, 0%, 100%, 0.1);
356
+
357
+ h3 {
358
+ margin: 0;
359
+ font-size: 1.125rem;
360
+ font-weight: 600;
361
+ color: var(--color-white);
362
+ }
363
+ }
364
+
365
+ // ---------------------------------------------
366
+ // Keyboard Panel
367
+ // ---------------------------------------------
368
+ .keyboard__panel {
369
+ @extend %panel-base;
370
+ right: calc(var(--spacing-lg) + (var(--button-size) + var(--spacing-sm)) * 2);
371
+
372
+ &--open {
373
+ @extend %panel-active;
374
+ }
375
+ }
376
+
377
+ .keyboard__header {
378
+ @extend %panel-header;
379
+ }
380
+
381
+ .keyboard__shortcuts {
382
+ display: flex;
383
+ flex-direction: column;
384
+ gap: 0.75rem;
385
+ }
386
+
387
+ .shortcut__item {
388
+ display: flex;
389
+ align-items: center;
390
+ justify-content: space-between;
391
+ padding: 0.75rem;
392
+ background: var(--color-bg-item);
393
+ border: 1px solid var(--color-border);
394
+ border-radius: var(--border-radius);
395
+ transition: var(--transition);
396
+
397
+ &:hover {
398
+ background: var(--color-bg-item-light);
399
+ border-color: var(--color-border-hover);
400
+ }
401
+ }
402
+
403
+ .shortcut__key {
404
+ display: inline-flex;
405
+ align-items: center;
406
+ justify-content: center;
407
+ min-width: 2.5rem;
408
+ padding: 0.375rem 0.625rem;
409
+ background: var(--color-bg-item-light);
410
+ border: 1px solid var(--color-border);
411
+ border-radius: 4px;
412
+ box-shadow: 0 2px 0 rgba(0, 0, 0, 0.2);
413
+ color: var(--color-white);
414
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, monospace;
415
+ font-size: 0.8125rem;
416
+ font-weight: 600;
417
+
418
+ &--range {
419
+ min-width: 3.5rem;
420
+ letter-spacing: 0.05em;
421
+ }
422
+ }
423
+
424
+ .shortcut__description {
425
+ color: var(--color-white);
426
+ font-size: 0.875rem;
427
+ font-weight: 500;
428
+ }
429
+
430
+ // ---------------------------------------------
431
+ // Mouse Panel
432
+ // ---------------------------------------------
433
+ .mouse__panel {
434
+ @extend %panel-base;
435
+ right: calc(var(--spacing-lg) + var(--button-size) + var(--spacing-sm));
436
+
437
+ &--open {
438
+ @extend %panel-active;
439
+ }
440
+ }
441
+
442
+ .mouse__header {
443
+ @extend %panel-header;
444
+ }
445
+
446
+ .mouse__controls {
447
+ display: flex;
448
+ flex-direction: column;
449
+ gap: 0.75rem;
450
+ }
451
+
452
+ .control__item {
453
+ display: flex;
454
+ align-items: flex-start;
455
+ gap: 0.875rem;
456
+ padding: 0.875rem;
457
+ background: var(--color-bg-item);
458
+ border: 1px solid var(--color-border);
459
+ border-radius: var(--border-radius);
460
+ transition: var(--transition);
461
+
462
+ &:hover {
463
+ background: var(--color-bg-item-light);
464
+ border-color: var(--color-border-hover);
465
+ }
466
+ }
467
+
468
+ .control__icon {
469
+ display: flex;
470
+ align-items: center;
471
+ justify-content: center;
472
+ flex-shrink: 0;
473
+ width: 2.5rem;
474
+ height: 2.5rem;
475
+ background: var(--color-bg-item-light);
476
+ border: 1px solid var(--color-border);
477
+ border-radius: 6px;
478
+ color: var(--color-primary);
479
+ }
480
+
481
+ .control__content {
482
+ display: flex;
483
+ flex-direction: column;
484
+ flex: 1;
485
+ min-width: 0;
486
+ gap: 0.25rem;
487
+ }
488
+
489
+ .control__title {
490
+ color: var(--color-white);
491
+ font-size: 0.875rem;
492
+ font-weight: 600;
493
+ line-height: 1.3;
494
+ }
495
+
496
+ .control__description {
497
+ color: hsla(0, 0%, 100%, 0.65);
498
+ font-size: 0.75rem;
499
+ font-weight: 400;
500
+ line-height: 1.4;
501
+ }
502
+
503
+ // ---------------------------------------------
504
+ // Controls Panel
505
+ // ---------------------------------------------
506
+ .controls__panel {
507
+ @extend %panel-base;
508
+
509
+ &--open {
510
+ @extend %panel-active;
511
+ }
512
+ }
513
+
514
+ .controls__header {
515
+ @extend %panel-header;
516
+ }
517
+
518
+ .control__section {
519
+ margin-bottom: 1.25rem;
520
+
521
+ &:last-child {
522
+ margin-bottom: 0;
523
+ }
524
+ }
525
+
526
+ .section__label {
527
+ display: block;
528
+ margin-bottom: 0.75rem;
529
+ color: var(--color-white);
530
+ font-size: 0.8125rem;
531
+ font-weight: 600;
532
+ text-transform: uppercase;
533
+ letter-spacing: 0.05em;
534
+ opacity: 0.7;
535
+ }
536
+
537
+ // Button Group
538
+ .button__group {
539
+ display: grid;
540
+ grid-template-columns: repeat(3, 1fr);
541
+ gap: 0.5rem;
542
+ }
543
+
544
+ .button__group-item {
545
+ display: flex;
546
+ flex-direction: column;
547
+ align-items: center;
548
+ gap: 0.375rem;
549
+ padding: 0.75rem 0.5rem;
550
+ background: var(--color-bg-item);
551
+ border: 1px solid var(--color-border);
552
+ border-radius: var(--border-radius);
553
+ color: var(--color-white);
554
+ font-size: 0.75rem;
555
+ font-weight: 500;
556
+ cursor: pointer;
557
+ transition: var(--transition);
558
+
559
+ &:hover {
560
+ background: var(--color-bg-item-hover);
561
+ border-color: var(--color-border-hover);
562
+ }
563
+
564
+ &--active {
565
+ background: var(--color-primary);
566
+ border-color: var(--color-primary);
567
+
568
+ svg {
569
+ opacity: 1;
570
+ }
571
+ }
572
+
573
+ svg {
574
+ opacity: 0.8;
575
+ }
576
+ }
577
+
578
+ // Switch Group
579
+ .switch__group {
580
+ display: flex;
581
+ flex-direction: column;
582
+ gap: 0.75rem;
583
+ }
584
+
585
+ .switch__item {
586
+ position: relative;
587
+ display: flex;
588
+ align-items: center;
589
+ justify-content: space-between;
590
+ padding: 0.75rem;
591
+ background: var(--color-bg-item);
592
+ border: 1px solid var(--color-border);
593
+ border-radius: var(--border-radius);
594
+ cursor: pointer;
595
+ transition: var(--transition);
596
+
597
+ &:hover {
598
+ background: var(--color-bg-item-light);
599
+ border-color: var(--color-border-hover);
600
+ }
601
+
602
+ input[type='checkbox'] {
603
+ position: absolute;
604
+ width: 0;
605
+ height: 0;
606
+ opacity: 0;
607
+
608
+ &:checked ~ .switch__slider {
609
+ background: var(--color-primary);
610
+
611
+ &::before {
612
+ transform: translateX(20px);
613
+ }
614
+ }
615
+ }
616
+ }
617
+
618
+ .switch__label {
619
+ display: flex;
620
+ align-items: center;
621
+ gap: 0.5rem;
622
+ color: var(--color-white);
623
+ font-size: 0.875rem;
624
+ font-weight: 500;
625
+ user-select: none;
626
+
627
+ svg {
628
+ opacity: 0.8;
629
+ }
630
+ }
631
+
632
+ .switch__slider {
633
+ position: relative;
634
+ width: 44px;
635
+ height: 24px;
636
+ background: hsla(0, 0%, 100%, 0.2);
637
+ border-radius: 12px;
638
+ transition: var(--transition);
639
+
640
+ &::before {
641
+ content: '';
642
+ position: absolute;
643
+ top: 2px;
644
+ left: 2px;
645
+ width: 20px;
646
+ height: 20px;
647
+ background: var(--color-white);
648
+ border-radius: 50%;
649
+ transition: var(--transition);
650
+ }
651
+ }
652
+
653
+ // ---------------------------------------------
654
+ // Share Panel
655
+ // ---------------------------------------------
656
+ .share__panel {
657
+ @extend %panel-base;
658
+
659
+ &::before {
660
+ right: calc(14px + (var(--button-size) + var(--spacing-sm)) * 0);
661
+ }
662
+
663
+ &::after {
664
+ right: calc(15px + (var(--button-size) + var(--spacing-sm)) * 0);
665
+ }
666
+
667
+ &--open {
668
+ @extend %panel-active;
669
+ }
670
+ }
671
+
672
+ .share__header {
673
+ @extend %panel-header;
674
+ }
675
+
676
+ .share__buttons {
677
+ display: flex;
678
+ flex-direction: column;
679
+ gap: 0.75rem;
680
+ }
681
+
682
+ .share__item {
683
+ display: flex;
684
+ align-items: flex-start;
685
+ gap: 0.875rem;
686
+ padding: 0.875rem;
687
+ background: var(--color-bg-item);
688
+ border: 1px solid var(--color-border);
689
+ border-radius: var(--border-radius);
690
+ text-decoration: none;
691
+ transition: var(--transition);
692
+
693
+ &:hover {
694
+ background: var(--color-bg-item-light);
695
+ border-color: var(--color-border-hover);
696
+ }
697
+
698
+ &--twitter:hover .share__icon {
699
+ background: #000;
700
+ border-color: #000;
701
+ color: var(--color-white);
702
+ }
703
+
704
+ &--facebook:hover .share__icon {
705
+ background: #1877f2;
706
+ border-color: #1877f2;
707
+ color: var(--color-white);
708
+ }
709
+
710
+ &--linkedin:hover .share__icon {
711
+ background: #0a66c2;
712
+ border-color: #0a66c2;
713
+ color: var(--color-white);
714
+ }
715
+
716
+ &--reddit:hover .share__icon {
717
+ background: #ff4500;
718
+ border-color: #ff4500;
719
+ color: var(--color-white);
720
+ }
721
+ }
722
+
723
+ .share__icon {
724
+ display: flex;
725
+ align-items: center;
726
+ justify-content: center;
727
+ flex-shrink: 0;
728
+ width: 2.5rem;
729
+ height: 2.5rem;
730
+ background: var(--color-bg-item-light);
731
+ border: 1px solid var(--color-border);
732
+ border-radius: 6px;
733
+ color: var(--color-primary);
734
+ transition: var(--transition);
735
+ }
736
+
737
+ .share__content {
738
+ display: flex;
739
+ flex-direction: column;
740
+ flex: 1;
741
+ min-width: 0;
742
+ gap: 0.25rem;
743
+ }
744
+
745
+ .share__title {
746
+ color: var(--color-white);
747
+ font-size: 0.875rem;
748
+ font-weight: 600;
749
+ line-height: 1.3;
750
+ }
751
+
752
+ .share__description {
753
+ color: hsla(0, 0%, 100%, 0.65);
754
+ font-size: 0.75rem;
755
+ font-weight: 400;
756
+ line-height: 1.4;
757
+ }
758
+
759
+ // ---------------------------------------------
760
+ // Carousel Overrides
761
+ // ---------------------------------------------
762
+ .peek-carousel__caption-title {
763
+ display: block;
764
+ font-size: 1.8rem;
765
+ font-weight: 700;
766
+ margin-bottom: 0.5rem;
767
+ }
768
+
769
+ .peek-carousel__caption-subtitle {
770
+ font-size: 1.1rem;
771
+ color: hsla(0, 0%, 100%, 0.8);
772
+ }
773
+
774
+ .peek-carousel__nav {
775
+ position: absolute;
776
+ bottom: 7rem;
777
+ left: 50%;
778
+ transform: translateX(-50%);
779
+ display: flex;
780
+ align-items: center;
781
+ gap: 1rem;
782
+ }
783
+
784
+ .peek-carousel__counter {
785
+ position: static !important;
786
+ transform: none !important;
787
+ margin: 0;
788
+ }
789
+
790
+ .peek-carousel > .peek-carousel__counter {
791
+ position: absolute !important;
792
+ bottom: 7rem;
793
+ left: 50%;
794
+ transform: translateX(-50%) !important;
795
+ display: flex;
796
+ align-items: center;
797
+ justify-content: center;
798
+ height: max-content;
799
+ padding: 0.5rem 1rem;
800
+ background: var(--color-overlay);
801
+ border: 1px solid var(--color-border);
802
+ border-radius: var(--border-radius);
803
+ backdrop-filter: blur(12px);
804
+ color: var(--color-white);
805
+ font-size: 0.875rem;
806
+ font-weight: 500;
807
+ line-height: 1;
808
+ }
809
+
810
+ .peek-carousel__controls {
811
+ bottom: 3rem;
812
+ }
813
+
814
+ // ---------------------------------------------
815
+ // Mobile Styles
816
+ // ---------------------------------------------
817
+ @media (max-width: 768px) {
818
+ .circle__button {
819
+ width: var(--button-size-mobile);
820
+ height: var(--button-size-mobile);
821
+ }
822
+
823
+ .github__link {
824
+ top: var(--spacing-sm);
825
+ left: var(--spacing-sm);
826
+
827
+ svg {
828
+ width: 24px;
829
+ height: 24px;
830
+ }
831
+ }
832
+
833
+ .tooltip {
834
+ display: none;
835
+ }
836
+
837
+ .intro__text {
838
+ top: 18%;
839
+ max-width: calc(100vw - 2rem);
840
+ padding: 0 1rem;
841
+
842
+ h1 {
843
+ font-size: 1.8rem;
844
+ margin-bottom: 0.5rem;
845
+ }
846
+
847
+ p {
848
+ font-size: 0.8rem;
849
+ }
850
+ }
851
+
852
+ .top__controls,
853
+ .controls__toggle {
854
+ top: var(--spacing-sm);
855
+ right: var(--spacing-sm);
856
+ }
857
+
858
+ .keyboard__toggle,
859
+ .mouse__toggle,
860
+ .controls__toggle {
861
+ svg {
862
+ width: 20px;
863
+ height: 20px;
864
+ }
865
+ }
866
+
867
+ .keyboard__panel,
868
+ .mouse__panel,
869
+ .controls__panel,
870
+ .share__panel {
871
+ top: calc(var(--spacing-sm) + var(--button-size-mobile) + var(--spacing-xs));
872
+ left: var(--spacing-sm);
873
+ right: var(--spacing-sm);
874
+ width: auto;
875
+ max-width: none;
876
+ max-height: calc(100vh - var(--spacing-sm) - var(--button-size-mobile) - var(--spacing-xs) - var(--spacing-sm) - 2rem);
877
+ padding: 1rem;
878
+
879
+ &::before,
880
+ &::after {
881
+ left: 50%;
882
+ right: auto;
883
+ transform: translateX(-50%);
884
+ }
885
+ }
886
+
887
+ .keyboard__header,
888
+ .mouse__header,
889
+ .controls__header,
890
+ .share__header {
891
+ margin-bottom: 1rem;
892
+ padding-bottom: 0.75rem;
893
+
894
+ h3 {
895
+ font-size: 1rem;
896
+ }
897
+ }
898
+
899
+ .control__section {
900
+ margin-bottom: 1rem;
901
+ }
902
+
903
+ .section__label {
904
+ font-size: 0.8125rem;
905
+ }
906
+
907
+ .button__group-item {
908
+ padding: 0.625rem 0.375rem;
909
+ font-size: 0.6875rem;
910
+
911
+ svg {
912
+ width: 14px;
913
+ height: 14px;
914
+ }
915
+ }
916
+
917
+ .switch__item {
918
+ padding: 0.625rem;
919
+ }
920
+
921
+ .switch__label {
922
+ font-size: 0.8125rem;
923
+
924
+ svg {
925
+ width: 14px;
926
+ height: 14px;
927
+ }
928
+ }
929
+
930
+ .switch__slider {
931
+ width: 40px;
932
+ height: 22px;
933
+
934
+ &::before {
935
+ width: 18px;
936
+ height: 18px;
937
+ }
938
+ }
939
+
940
+ .switch__item input[type='checkbox']:checked ~ .switch__slider::before {
941
+ transform: translateX(18px);
942
+ }
943
+
944
+ .peek-carousel__caption-title {
945
+ font-size: 1.5rem;
946
+ }
947
+
948
+ .peek-carousel__caption-subtitle {
949
+ font-size: 0.95rem;
950
+ }
951
+
952
+ .peek-carousel__nav {
953
+ bottom: 10rem;
954
+ }
955
+
956
+ .peek-carousel > .peek-carousel__counter {
957
+ bottom: 10rem;
958
+ padding: 0.375rem 0.75rem;
959
+ font-size: 0.8125rem;
960
+ }
961
+
962
+ .peek-carousel__controls {
963
+ bottom: 7rem;
964
+ }
965
+
966
+ .share__item {
967
+ padding: 0.75rem;
968
+ }
969
+
970
+ .share__icon {
971
+ width: 2.25rem;
972
+ height: 2.25rem;
973
+
974
+ svg {
975
+ width: 18px;
976
+ height: 18px;
977
+ }
978
+ }
979
+ }