neiki-gallery 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,675 @@
1
+ /* ==========================================================================
2
+ Neiki Gallery — CSS
3
+ A vanilla JS image gallery/lightbox library.
4
+ https://github.com/neiki-gallery
5
+
6
+ All styles use the .neiki- prefix and CSS custom properties (--neiki-*)
7
+ for easy theming. No external dependencies.
8
+ ========================================================================== */
9
+
10
+ /* --------------------------------------------------------------------------
11
+ 1. CSS Custom Properties (Theming)
12
+ -------------------------------------------------------------------------- */
13
+
14
+ :root {
15
+ /* Grid */
16
+ --neiki-columns: 4;
17
+ --neiki-gap: 12px;
18
+ --neiki-border-radius: 6px;
19
+
20
+ /* Overlay / Lightbox */
21
+ --neiki-overlay-bg: rgba(0, 0, 0, 0.92);
22
+ --neiki-lightbox-max-width: 90vw;
23
+ --neiki-lightbox-max-height: 85vh;
24
+
25
+ /* Controls */
26
+ --neiki-btn-size: 48px;
27
+ --neiki-btn-bg: rgba(255, 255, 255, 0.12);
28
+ --neiki-btn-bg-hover: rgba(255, 255, 255, 0.25);
29
+ --neiki-btn-color: #fff;
30
+ --neiki-btn-border-radius: 50%;
31
+
32
+ /* Text */
33
+ --neiki-caption-color: #fff;
34
+ --neiki-caption-font-size: 15px;
35
+ --neiki-counter-color: rgba(255, 255, 255, 0.7);
36
+ --neiki-counter-font-size: 13px;
37
+
38
+ /* Thumbnails */
39
+ --neiki-thumb-size: 56px;
40
+ --neiki-thumb-gap: 6px;
41
+ --neiki-thumb-border-radius: 4px;
42
+ --neiki-thumb-active-border: 2px solid #fff;
43
+ --neiki-thumb-opacity: 0.5;
44
+ --neiki-thumb-active-opacity: 1;
45
+
46
+ /* Spinner */
47
+ --neiki-spinner-size: 40px;
48
+ --neiki-spinner-color: #fff;
49
+ --neiki-spinner-width: 3px;
50
+
51
+ /* Transitions */
52
+ --neiki-transition-duration: 0.3s;
53
+ --neiki-transition-easing: cubic-bezier(0.4, 0, 0.2, 1);
54
+
55
+ /* Zoom */
56
+ --neiki-zoom-scale: 2;
57
+ }
58
+
59
+ /* --------------------------------------------------------------------------
60
+ 2. Dark / Light Theme Overrides
61
+ -------------------------------------------------------------------------- */
62
+
63
+ /* Dark theme (default) */
64
+ [data-theme="dark"],
65
+ .neiki-gallery[data-theme="dark"] {
66
+ --neiki-overlay-bg: rgba(0, 0, 0, 0.92);
67
+ --neiki-btn-bg: rgba(255, 255, 255, 0.12);
68
+ --neiki-btn-bg-hover: rgba(255, 255, 255, 0.25);
69
+ --neiki-btn-color: #fff;
70
+ --neiki-caption-color: #fff;
71
+ --neiki-counter-color: rgba(255, 255, 255, 0.7);
72
+ --neiki-spinner-color: #fff;
73
+ --neiki-thumb-active-border: 2px solid #fff;
74
+ }
75
+
76
+ /* Light theme */
77
+ [data-theme="light"],
78
+ .neiki-gallery[data-theme="light"] {
79
+ --neiki-overlay-bg: rgba(255, 255, 255, 0.96);
80
+ --neiki-btn-bg: rgba(0, 0, 0, 0.08);
81
+ --neiki-btn-bg-hover: rgba(0, 0, 0, 0.16);
82
+ --neiki-btn-color: #222;
83
+ --neiki-caption-color: #222;
84
+ --neiki-counter-color: rgba(0, 0, 0, 0.55);
85
+ --neiki-spinner-color: #222;
86
+ --neiki-thumb-active-border: 2px solid #222;
87
+ }
88
+
89
+ /* --------------------------------------------------------------------------
90
+ 3. Gallery Grid — Masonry Layout (CSS Columns)
91
+ -------------------------------------------------------------------------- */
92
+
93
+ .neiki-gallery {
94
+ box-sizing: border-box;
95
+ }
96
+
97
+ .neiki-gallery *,
98
+ .neiki-gallery *::before,
99
+ .neiki-gallery *::after {
100
+ box-sizing: inherit;
101
+ }
102
+
103
+ .neiki-gallery--masonry {
104
+ column-count: var(--neiki-columns, 4);
105
+ column-gap: var(--neiki-gap, 10px);
106
+ }
107
+
108
+ .neiki-gallery--masonry > a,
109
+ .neiki-gallery--masonry > .neiki-item {
110
+ display: inline-block;
111
+ width: 100%;
112
+ margin-bottom: var(--neiki-gap, 10px);
113
+ break-inside: avoid;
114
+ border-radius: var(--neiki-border-radius, 6px);
115
+ overflow: hidden;
116
+ cursor: pointer;
117
+ position: relative;
118
+ text-decoration: none;
119
+ }
120
+
121
+ .neiki-gallery--masonry > a > img,
122
+ .neiki-gallery--masonry > .neiki-item > img {
123
+ display: block;
124
+ width: 100%;
125
+ height: auto;
126
+ border-radius: var(--neiki-border-radius, 6px);
127
+ transition: transform var(--neiki-transition-duration) var(--neiki-transition-easing),
128
+ opacity var(--neiki-transition-duration) var(--neiki-transition-easing);
129
+ opacity: 0;
130
+ }
131
+
132
+ .neiki-gallery--masonry > a > img.neiki-loaded,
133
+ .neiki-gallery--masonry > .neiki-item > img.neiki-loaded {
134
+ opacity: 1;
135
+ }
136
+
137
+ .neiki-gallery--masonry > a:hover > img,
138
+ .neiki-gallery--masonry > .neiki-item:hover > img {
139
+ transform: scale(1.03);
140
+ }
141
+
142
+ /* --------------------------------------------------------------------------
143
+ 4. Gallery Grid — Uniform Grid Layout (CSS Grid)
144
+ -------------------------------------------------------------------------- */
145
+
146
+ .neiki-gallery--grid {
147
+ display: grid;
148
+ grid-template-columns: repeat(var(--neiki-columns, 4), 1fr);
149
+ gap: var(--neiki-gap, 10px);
150
+ }
151
+
152
+ .neiki-gallery--grid > a,
153
+ .neiki-gallery--grid > .neiki-item {
154
+ display: block;
155
+ position: relative;
156
+ overflow: hidden;
157
+ border-radius: var(--neiki-border-radius, 6px);
158
+ cursor: pointer;
159
+ text-decoration: none;
160
+ aspect-ratio: 1 / 1;
161
+ }
162
+
163
+ .neiki-gallery--grid > a > img,
164
+ .neiki-gallery--grid > .neiki-item > img {
165
+ display: block;
166
+ width: 100%;
167
+ height: 100%;
168
+ object-fit: cover;
169
+ border-radius: var(--neiki-border-radius, 6px);
170
+ transition: transform var(--neiki-transition-duration) var(--neiki-transition-easing),
171
+ opacity var(--neiki-transition-duration) var(--neiki-transition-easing);
172
+ opacity: 0;
173
+ }
174
+
175
+ .neiki-gallery--grid > a > img.neiki-loaded,
176
+ .neiki-gallery--grid > .neiki-item > img.neiki-loaded {
177
+ opacity: 1;
178
+ }
179
+
180
+ .neiki-gallery--grid > a:hover > img,
181
+ .neiki-gallery--grid > .neiki-item:hover > img {
182
+ transform: scale(1.05);
183
+ }
184
+
185
+ /* --------------------------------------------------------------------------
186
+ 5. Responsive Columns
187
+ -------------------------------------------------------------------------- */
188
+
189
+ @media (max-width: 1200px) {
190
+ .neiki-gallery--masonry { column-count: 3; }
191
+ .neiki-gallery--grid { grid-template-columns: repeat(3, 1fr); }
192
+ }
193
+
194
+ @media (max-width: 900px) {
195
+ .neiki-gallery--masonry { column-count: 2; }
196
+ .neiki-gallery--grid { grid-template-columns: repeat(2, 1fr); }
197
+ .neiki-gallery { --neiki-gap: 10px; }
198
+ }
199
+
200
+ @media (max-width: 600px) {
201
+ .neiki-gallery--masonry { column-count: 2; }
202
+ .neiki-gallery--grid { grid-template-columns: repeat(2, 1fr); }
203
+ .neiki-gallery { --neiki-gap: 8px; }
204
+ }
205
+
206
+ @media (max-width: 400px) {
207
+ .neiki-gallery--masonry { column-count: 1; }
208
+ .neiki-gallery--grid { grid-template-columns: 1fr; }
209
+ .neiki-gallery { --neiki-gap: 8px; }
210
+ }
211
+
212
+ /* --------------------------------------------------------------------------
213
+ 6. Lightbox Overlay
214
+ -------------------------------------------------------------------------- */
215
+
216
+ .neiki-lightbox {
217
+ position: fixed;
218
+ inset: 0;
219
+ z-index: 999999;
220
+ display: flex;
221
+ flex-direction: column;
222
+ align-items: center;
223
+ justify-content: center;
224
+ background: var(--neiki-overlay-bg);
225
+ opacity: 0;
226
+ visibility: hidden;
227
+ transition: opacity var(--neiki-transition-duration) var(--neiki-transition-easing),
228
+ visibility 0s linear var(--neiki-transition-duration);
229
+ -webkit-user-select: none;
230
+ user-select: none;
231
+ outline: none;
232
+ }
233
+
234
+ .neiki-lightbox.neiki-lightbox--visible {
235
+ opacity: 1;
236
+ visibility: visible;
237
+ transition: opacity var(--neiki-transition-duration) var(--neiki-transition-easing),
238
+ visibility 0s linear 0s;
239
+ }
240
+
241
+ /* --------------------------------------------------------------------------
242
+ 7. Lightbox Image Container
243
+ -------------------------------------------------------------------------- */
244
+
245
+ .neiki-lightbox__stage {
246
+ position: relative;
247
+ display: flex;
248
+ align-items: center;
249
+ justify-content: center;
250
+ flex: 1 1 auto;
251
+ width: 100%;
252
+ min-height: 0;
253
+ overflow: hidden;
254
+ }
255
+
256
+ .neiki-lightbox__slide-wrapper {
257
+ position: relative;
258
+ display: flex;
259
+ align-items: center;
260
+ justify-content: center;
261
+ width: 100%;
262
+ height: 100%;
263
+ }
264
+
265
+ /* Fade transition */
266
+ .neiki-lightbox--fade .neiki-lightbox__image {
267
+ transition: opacity var(--neiki-transition-duration) var(--neiki-transition-easing);
268
+ }
269
+
270
+ .neiki-lightbox--fade .neiki-lightbox__image.neiki-entering {
271
+ opacity: 0;
272
+ }
273
+
274
+ .neiki-lightbox--fade .neiki-lightbox__image.neiki-active {
275
+ opacity: 1;
276
+ }
277
+
278
+ /* Slide transition */
279
+ .neiki-lightbox--slide .neiki-lightbox__slide-wrapper {
280
+ transition: transform var(--neiki-transition-duration) var(--neiki-transition-easing);
281
+ }
282
+
283
+ .neiki-lightbox__image {
284
+ max-width: var(--neiki-lightbox-max-width, 90vw);
285
+ max-height: var(--neiki-lightbox-max-height, 85vh);
286
+ width: auto;
287
+ height: auto;
288
+ object-fit: contain;
289
+ border-radius: var(--neiki-border-radius, 6px);
290
+ cursor: zoom-in;
291
+ transition: transform 0.35s var(--neiki-transition-easing),
292
+ opacity var(--neiki-transition-duration) var(--neiki-transition-easing);
293
+ -webkit-user-drag: none;
294
+ pointer-events: auto;
295
+ }
296
+
297
+ .neiki-lightbox__image.neiki-zoomed {
298
+ transform: scale(var(--neiki-zoom-scale, 2));
299
+ cursor: zoom-out;
300
+ }
301
+
302
+ /* --------------------------------------------------------------------------
303
+ 8. Lightbox Controls (Nav, Close, Fullscreen)
304
+ -------------------------------------------------------------------------- */
305
+
306
+ .neiki-lightbox__btn {
307
+ position: absolute;
308
+ z-index: 10;
309
+ display: flex;
310
+ align-items: center;
311
+ justify-content: center;
312
+ width: var(--neiki-btn-size);
313
+ height: var(--neiki-btn-size);
314
+ border: none;
315
+ border-radius: var(--neiki-btn-border-radius);
316
+ background: var(--neiki-btn-bg);
317
+ color: var(--neiki-btn-color);
318
+ cursor: pointer;
319
+ transition: background var(--neiki-transition-duration) var(--neiki-transition-easing),
320
+ transform 0.15s ease;
321
+ padding: 0;
322
+ line-height: 1;
323
+ font-family: inherit;
324
+ -webkit-appearance: none;
325
+ appearance: none;
326
+ outline: none;
327
+ }
328
+
329
+ .neiki-lightbox__btn:hover {
330
+ background: var(--neiki-btn-bg-hover);
331
+ }
332
+
333
+ .neiki-lightbox__btn:active {
334
+ transform: scale(0.92);
335
+ }
336
+
337
+ .neiki-lightbox__btn:focus-visible {
338
+ box-shadow: 0 0 0 3px rgba(66, 133, 244, 0.6);
339
+ }
340
+
341
+ /* Close */
342
+ .neiki-lightbox__close {
343
+ top: 16px;
344
+ right: 16px;
345
+ }
346
+
347
+ /* Fullscreen */
348
+ .neiki-lightbox__fullscreen {
349
+ top: 16px;
350
+ right: 76px;
351
+ }
352
+
353
+ /* Prev / Next */
354
+ .neiki-lightbox__prev {
355
+ left: 16px;
356
+ top: 50%;
357
+ transform: translateY(-50%);
358
+ }
359
+
360
+ .neiki-lightbox__prev:active {
361
+ transform: translateY(-50%) scale(0.92);
362
+ }
363
+
364
+ .neiki-lightbox__next {
365
+ right: 16px;
366
+ top: 50%;
367
+ transform: translateY(-50%);
368
+ }
369
+
370
+ .neiki-lightbox__next:active {
371
+ transform: translateY(-50%) scale(0.92);
372
+ }
373
+
374
+ /* SVG icons inside buttons */
375
+ .neiki-lightbox__btn svg {
376
+ width: 22px;
377
+ height: 22px;
378
+ fill: none;
379
+ stroke: currentColor;
380
+ stroke-width: 2;
381
+ stroke-linecap: round;
382
+ stroke-linejoin: round;
383
+ }
384
+
385
+ /* --------------------------------------------------------------------------
386
+ 9. Lightbox Top Bar (Counter)
387
+ -------------------------------------------------------------------------- */
388
+
389
+ .neiki-lightbox__topbar {
390
+ position: absolute;
391
+ top: 16px;
392
+ left: 16px;
393
+ z-index: 10;
394
+ display: flex;
395
+ align-items: center;
396
+ gap: 12px;
397
+ }
398
+
399
+ .neiki-lightbox__counter {
400
+ color: var(--neiki-counter-color);
401
+ font-size: var(--neiki-counter-font-size);
402
+ font-family: system-ui, -apple-system, sans-serif;
403
+ font-variant-numeric: tabular-nums;
404
+ white-space: nowrap;
405
+ }
406
+
407
+ /* --------------------------------------------------------------------------
408
+ 10. Lightbox Caption
409
+ -------------------------------------------------------------------------- */
410
+
411
+ .neiki-lightbox__caption {
412
+ flex: 0 0 auto;
413
+ width: 100%;
414
+ text-align: center;
415
+ padding: 10px 60px;
416
+ color: var(--neiki-caption-color);
417
+ font-size: var(--neiki-caption-font-size);
418
+ font-family: system-ui, -apple-system, sans-serif;
419
+ line-height: 1.5;
420
+ min-height: 1.5em;
421
+ transition: opacity var(--neiki-transition-duration) var(--neiki-transition-easing);
422
+ }
423
+
424
+ /* --------------------------------------------------------------------------
425
+ 11. Thumbnail Strip
426
+ -------------------------------------------------------------------------- */
427
+
428
+ .neiki-lightbox__thumbs {
429
+ flex: 0 0 auto;
430
+ width: 100%;
431
+ display: flex;
432
+ align-items: center;
433
+ justify-content: center;
434
+ gap: var(--neiki-thumb-gap);
435
+ padding: 8px 16px 12px;
436
+ overflow-x: auto;
437
+ -webkit-overflow-scrolling: touch;
438
+ scrollbar-width: thin;
439
+ }
440
+
441
+ .neiki-lightbox__thumbs::-webkit-scrollbar {
442
+ height: 4px;
443
+ }
444
+
445
+ .neiki-lightbox__thumbs::-webkit-scrollbar-thumb {
446
+ background: rgba(255, 255, 255, 0.2);
447
+ border-radius: 2px;
448
+ }
449
+
450
+ .neiki-lightbox__thumb {
451
+ flex: 0 0 auto;
452
+ width: var(--neiki-thumb-size);
453
+ height: var(--neiki-thumb-size);
454
+ border-radius: var(--neiki-thumb-border-radius);
455
+ overflow: hidden;
456
+ cursor: pointer;
457
+ opacity: var(--neiki-thumb-opacity);
458
+ border: 2px solid transparent;
459
+ transition: opacity var(--neiki-transition-duration) var(--neiki-transition-easing),
460
+ border-color var(--neiki-transition-duration) var(--neiki-transition-easing);
461
+ background: rgba(128, 128, 128, 0.15);
462
+ padding: 0;
463
+ -webkit-appearance: none;
464
+ appearance: none;
465
+ outline: none;
466
+ }
467
+
468
+ .neiki-lightbox__thumb:hover {
469
+ opacity: 0.8;
470
+ }
471
+
472
+ .neiki-lightbox__thumb.neiki-thumb--active {
473
+ opacity: var(--neiki-thumb-active-opacity);
474
+ border: var(--neiki-thumb-active-border);
475
+ }
476
+
477
+ .neiki-lightbox__thumb:focus-visible {
478
+ box-shadow: 0 0 0 3px rgba(66, 133, 244, 0.6);
479
+ }
480
+
481
+ .neiki-lightbox__thumb img {
482
+ display: block;
483
+ width: 100%;
484
+ height: 100%;
485
+ object-fit: cover;
486
+ }
487
+
488
+ /* --------------------------------------------------------------------------
489
+ 12. Loading Spinner
490
+ -------------------------------------------------------------------------- */
491
+
492
+ .neiki-lightbox__spinner {
493
+ position: absolute;
494
+ top: 50%;
495
+ left: 50%;
496
+ transform: translate(-50%, -50%);
497
+ width: var(--neiki-spinner-size);
498
+ height: var(--neiki-spinner-size);
499
+ border: var(--neiki-spinner-width) solid rgba(128, 128, 128, 0.25);
500
+ border-top-color: var(--neiki-spinner-color);
501
+ border-radius: 50%;
502
+ animation: neiki-spin 0.7s linear infinite;
503
+ pointer-events: none;
504
+ z-index: 5;
505
+ }
506
+
507
+ @keyframes neiki-spin {
508
+ to { transform: translate(-50%, -50%) rotate(360deg); }
509
+ }
510
+
511
+ /* Hide spinner when image loaded */
512
+ .neiki-lightbox__spinner.neiki-hidden {
513
+ display: none;
514
+ }
515
+
516
+ /* --------------------------------------------------------------------------
517
+ 13. Lazy-load placeholder (shimmer)
518
+ -------------------------------------------------------------------------- */
519
+
520
+ .neiki-gallery > a,
521
+ .neiki-gallery > .neiki-item {
522
+ background: linear-gradient(110deg, #e0e0e0 8%, #f0f0f0 18%, #e0e0e0 33%);
523
+ background-size: 200% 100%;
524
+ animation: neiki-shimmer 1.4s linear infinite;
525
+ }
526
+
527
+ [data-theme="dark"] .neiki-gallery > a,
528
+ [data-theme="dark"] .neiki-gallery > .neiki-item,
529
+ .neiki-gallery[data-theme="dark"] > a,
530
+ .neiki-gallery[data-theme="dark"] > .neiki-item {
531
+ background: linear-gradient(110deg, #2a2a2a 8%, #333 18%, #2a2a2a 33%);
532
+ background-size: 200% 100%;
533
+ }
534
+
535
+ @keyframes neiki-shimmer {
536
+ to { background-position: -200% 0; }
537
+ }
538
+
539
+ /* --------------------------------------------------------------------------
540
+ 14. Accessibility — Focus & Reduced Motion
541
+ -------------------------------------------------------------------------- */
542
+
543
+ @media (prefers-reduced-motion: reduce) {
544
+ .neiki-lightbox,
545
+ .neiki-lightbox__image,
546
+ .neiki-lightbox__slide-wrapper,
547
+ .neiki-gallery--masonry > a > img,
548
+ .neiki-gallery--grid > a > img {
549
+ transition-duration: 0.01ms !important;
550
+ animation-duration: 0.01ms !important;
551
+ }
552
+ }
553
+
554
+ /* --------------------------------------------------------------------------
555
+ 15. Mobile adjustments
556
+ -------------------------------------------------------------------------- */
557
+
558
+ @media (max-width: 768px) {
559
+ .neiki-lightbox {
560
+ --neiki-lightbox-max-width: 94vw;
561
+ --neiki-lightbox-max-height: 75vh;
562
+ --neiki-btn-size: 42px;
563
+ --neiki-zoom-scale: 1.8;
564
+ }
565
+
566
+ .neiki-lightbox__prev,
567
+ .neiki-lightbox__next {
568
+ width: 42px;
569
+ height: 42px;
570
+ }
571
+
572
+ .neiki-lightbox__btn svg {
573
+ width: 20px;
574
+ height: 20px;
575
+ }
576
+
577
+ .neiki-lightbox__caption {
578
+ padding: 8px 20px;
579
+ font-size: 14px;
580
+ }
581
+
582
+ .neiki-lightbox__thumbs {
583
+ padding: 6px 10px 10px;
584
+ }
585
+
586
+ .neiki-lightbox__thumb {
587
+ width: 48px;
588
+ height: 48px;
589
+ }
590
+ }
591
+
592
+ @media (max-width: 600px) {
593
+ .neiki-lightbox {
594
+ --neiki-lightbox-max-width: 96vw;
595
+ --neiki-lightbox-max-height: 70vh;
596
+ --neiki-btn-size: 38px;
597
+ --neiki-zoom-scale: 1.6;
598
+ }
599
+
600
+ .neiki-lightbox__prev,
601
+ .neiki-lightbox__next {
602
+ width: 38px;
603
+ height: 38px;
604
+ }
605
+
606
+ .neiki-lightbox__prev {
607
+ left: 6px;
608
+ }
609
+
610
+ .neiki-lightbox__next {
611
+ right: 6px;
612
+ }
613
+
614
+ .neiki-lightbox__close {
615
+ top: 10px;
616
+ right: 10px;
617
+ }
618
+
619
+ .neiki-lightbox__fullscreen {
620
+ top: 10px;
621
+ right: 56px;
622
+ }
623
+
624
+ .neiki-lightbox__topbar {
625
+ top: 10px;
626
+ left: 10px;
627
+ }
628
+
629
+ .neiki-lightbox__caption {
630
+ padding: 6px 14px;
631
+ font-size: 13px;
632
+ }
633
+
634
+ .neiki-lightbox__thumbs {
635
+ padding: 4px 6px 8px;
636
+ }
637
+
638
+ .neiki-lightbox__thumb {
639
+ width: 40px;
640
+ height: 40px;
641
+ }
642
+ }
643
+
644
+ @media (max-width: 400px) {
645
+ .neiki-lightbox {
646
+ --neiki-lightbox-max-width: 98vw;
647
+ --neiki-lightbox-max-height: 65vh;
648
+ --neiki-btn-size: 34px;
649
+ }
650
+
651
+ .neiki-lightbox__prev,
652
+ .neiki-lightbox__next {
653
+ width: 34px;
654
+ height: 34px;
655
+ }
656
+
657
+ .neiki-lightbox__btn svg {
658
+ width: 18px;
659
+ height: 18px;
660
+ }
661
+
662
+ .neiki-lightbox__caption {
663
+ padding: 4px 10px;
664
+ font-size: 12px;
665
+ }
666
+
667
+ .neiki-lightbox__thumb {
668
+ width: 34px;
669
+ height: 34px;
670
+ }
671
+
672
+ .neiki-lightbox__counter {
673
+ font-size: 11px;
674
+ }
675
+ }