@pigmilcom/a11y 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.

Potentially problematic release.


This version of @pigmilcom/a11y might be problematic. Click here for more details.

package/dist/index.css ADDED
@@ -0,0 +1,626 @@
1
+ /* ────────────────────────────────────────
2
+
3
+ @pigmilcom/a11y — Global Accessibility Stylesheet
4
+
5
+ Tailwind utilities are generated first (panel UI), followed by the
6
+ accessibility class rules that get toggled on <html> by the widget.
7
+
8
+ ──────────────────────────────────────── */
9
+
10
+ .visible {
11
+ visibility: visible;
12
+ }
13
+
14
+ .fixed {
15
+ position: fixed;
16
+ }
17
+
18
+ .absolute {
19
+ position: absolute;
20
+ }
21
+
22
+ .relative {
23
+ position: relative;
24
+ }
25
+
26
+ .inset-0 {
27
+ inset: 0px;
28
+ }
29
+
30
+ .left-0\.5 {
31
+ left: 0.125rem;
32
+ }
33
+
34
+ .left-1\/2 {
35
+ left: 50%;
36
+ }
37
+
38
+ .left-3\.5 {
39
+ left: 0.875rem;
40
+ }
41
+
42
+ .right-1\.5 {
43
+ right: 0.375rem;
44
+ }
45
+
46
+ .top-0\.5 {
47
+ top: 0.125rem;
48
+ }
49
+
50
+ .top-1\.5 {
51
+ top: 0.375rem;
52
+ }
53
+
54
+ .top-1\/2 {
55
+ top: 50%;
56
+ }
57
+
58
+ .z-9998 {
59
+ z-index: 9998;
60
+ }
61
+
62
+ .z-9999 {
63
+ z-index: 9999;
64
+ }
65
+
66
+ .mb-2 {
67
+ margin-bottom: 0.5rem;
68
+ }
69
+
70
+ .mt-0\.5 {
71
+ margin-top: 0.125rem;
72
+ }
73
+
74
+ .block {
75
+ display: block;
76
+ }
77
+
78
+ .flex {
79
+ display: flex;
80
+ }
81
+
82
+ .h-1\.5 {
83
+ height: 0.375rem;
84
+ }
85
+
86
+ .h-10 {
87
+ height: 2.5rem;
88
+ }
89
+
90
+ .h-3 {
91
+ height: 0.75rem;
92
+ }
93
+
94
+ .h-3\.5 {
95
+ height: 0.875rem;
96
+ }
97
+
98
+ .h-4 {
99
+ height: 1rem;
100
+ }
101
+
102
+ .h-5 {
103
+ height: 1.25rem;
104
+ }
105
+
106
+ .h-6 {
107
+ height: 1.5rem;
108
+ }
109
+
110
+ .max-h-\[min\(50vh\2c 340px\)\] {
111
+ max-height: min(50vh, 340px);
112
+ }
113
+
114
+ .w-1\.5 {
115
+ width: 0.375rem;
116
+ }
117
+
118
+ .w-10 {
119
+ width: 2.5rem;
120
+ }
121
+
122
+ .w-3 {
123
+ width: 0.75rem;
124
+ }
125
+
126
+ .w-3\.5 {
127
+ width: 0.875rem;
128
+ }
129
+
130
+ .w-4 {
131
+ width: 1rem;
132
+ }
133
+
134
+ .w-5 {
135
+ width: 1.25rem;
136
+ }
137
+
138
+ .w-6 {
139
+ width: 1.5rem;
140
+ }
141
+
142
+ .w-7 {
143
+ width: 1.75rem;
144
+ }
145
+
146
+ .w-\[clamp\(280px\2c 90vw\2c 360px\)\] {
147
+ width: clamp(280px, 90vw, 360px);
148
+ }
149
+
150
+ .w-full {
151
+ width: 100%;
152
+ }
153
+
154
+ .min-w-0 {
155
+ min-width: 0px;
156
+ }
157
+
158
+ .flex-1 {
159
+ flex: 1 1 0%;
160
+ }
161
+
162
+ .shrink-0 {
163
+ flex-shrink: 0;
164
+ }
165
+
166
+ .-translate-x-1\/2 {
167
+ --tw-translate-x: -50%;
168
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
169
+ }
170
+
171
+ .-translate-y-1\/2 {
172
+ --tw-translate-y: -50%;
173
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
174
+ }
175
+
176
+ .items-center {
177
+ align-items: center;
178
+ }
179
+
180
+ .justify-center {
181
+ justify-content: center;
182
+ }
183
+
184
+ .justify-between {
185
+ justify-content: space-between;
186
+ }
187
+
188
+ .gap-1\.5 {
189
+ gap: 0.375rem;
190
+ }
191
+
192
+ .gap-3 {
193
+ gap: 0.75rem;
194
+ }
195
+
196
+ .overflow-y-auto {
197
+ overflow-y: auto;
198
+ }
199
+
200
+ .rounded-full {
201
+ border-radius: 9999px;
202
+ }
203
+
204
+ .border {
205
+ border-width: 1px;
206
+ }
207
+
208
+ .border-b {
209
+ border-bottom-width: 1px;
210
+ }
211
+
212
+ .border-t {
213
+ border-top-width: 1px;
214
+ }
215
+
216
+ .border-\[\#00e5a0\] {
217
+ --tw-border-opacity: 1;
218
+ border-color: rgb(0 229 160 / var(--tw-border-opacity, 1));
219
+ }
220
+
221
+ .border-white\/10 {
222
+ border-color: rgb(255 255 255 / 0.1);
223
+ }
224
+
225
+ .border-white\/15 {
226
+ border-color: rgb(255 255 255 / 0.15);
227
+ }
228
+
229
+ .border-white\/\[0\.07\] {
230
+ border-color: rgb(255 255 255 / 0.07);
231
+ }
232
+
233
+ .bg-\[\#00e5a0\] {
234
+ --tw-bg-opacity: 1;
235
+ background-color: rgb(0 229 160 / var(--tw-bg-opacity, 1));
236
+ }
237
+
238
+ .bg-\[rgba\(0\2c 229\2c 160\2c 0\.04\)\] {
239
+ background-color: rgba(0,229,160,0.04);
240
+ }
241
+
242
+ .bg-\[rgba\(0\2c 229\2c 160\2c 0\.1\)\] {
243
+ background-color: rgba(0,229,160,0.1);
244
+ }
245
+
246
+ .bg-\[rgba\(0\2c 229\2c 160\2c 0\.2\)\] {
247
+ background-color: rgba(0,229,160,0.2);
248
+ }
249
+
250
+ .bg-\[rgba\(4\2c 6\2c 10\2c 0\.85\)\] {
251
+ background-color: rgba(4,6,10,0.85);
252
+ }
253
+
254
+ .bg-\[rgba\(4\2c 6\2c 10\2c 0\.98\)\] {
255
+ background-color: rgba(4,6,10,0.98);
256
+ }
257
+
258
+ .bg-black\/60 {
259
+ background-color: rgb(0 0 0 / 0.6);
260
+ }
261
+
262
+ .bg-transparent {
263
+ background-color: transparent;
264
+ }
265
+
266
+ .bg-white\/25 {
267
+ background-color: rgb(255 255 255 / 0.25);
268
+ }
269
+
270
+ .px-4 {
271
+ padding-left: 1rem;
272
+ padding-right: 1rem;
273
+ }
274
+
275
+ .py-1\.5 {
276
+ padding-top: 0.375rem;
277
+ padding-bottom: 0.375rem;
278
+ }
279
+
280
+ .py-2\.5 {
281
+ padding-top: 0.625rem;
282
+ padding-bottom: 0.625rem;
283
+ }
284
+
285
+ .py-3 {
286
+ padding-top: 0.75rem;
287
+ padding-bottom: 0.75rem;
288
+ }
289
+
290
+ .text-left {
291
+ text-align: left;
292
+ }
293
+
294
+ .text-center {
295
+ text-align: center;
296
+ }
297
+
298
+ .text-\[0\.52rem\] {
299
+ font-size: 0.52rem;
300
+ }
301
+
302
+ .text-\[0\.56rem\] {
303
+ font-size: 0.56rem;
304
+ }
305
+
306
+ .text-\[0\.58rem\] {
307
+ font-size: 0.58rem;
308
+ }
309
+
310
+ .text-\[0\.5rem\] {
311
+ font-size: 0.5rem;
312
+ }
313
+
314
+ .text-\[0\.68rem\] {
315
+ font-size: 0.68rem;
316
+ }
317
+
318
+ .text-\[0\.6rem\] {
319
+ font-size: 0.6rem;
320
+ }
321
+
322
+ .text-\[0\.72rem\] {
323
+ font-size: 0.72rem;
324
+ }
325
+
326
+ .font-medium {
327
+ font-weight: 500;
328
+ }
329
+
330
+ .font-semibold {
331
+ font-weight: 600;
332
+ }
333
+
334
+ .uppercase {
335
+ text-transform: uppercase;
336
+ }
337
+
338
+ .leading-none {
339
+ line-height: 1;
340
+ }
341
+
342
+ .leading-snug {
343
+ line-height: 1.375;
344
+ }
345
+
346
+ .tracking-\[0\.04em\] {
347
+ letter-spacing: 0.04em;
348
+ }
349
+
350
+ .tracking-\[0\.06em\] {
351
+ letter-spacing: 0.06em;
352
+ }
353
+
354
+ .tracking-\[0\.12em\] {
355
+ letter-spacing: 0.12em;
356
+ }
357
+
358
+ .tracking-\[0\.16em\] {
359
+ letter-spacing: 0.16em;
360
+ }
361
+
362
+ .tracking-widest {
363
+ letter-spacing: 0.1em;
364
+ }
365
+
366
+ .text-\[\#00e5a0\] {
367
+ --tw-text-opacity: 1;
368
+ color: rgb(0 229 160 / var(--tw-text-opacity, 1));
369
+ }
370
+
371
+ .text-\[\#eef1f8\] {
372
+ --tw-text-opacity: 1;
373
+ color: rgb(238 241 248 / var(--tw-text-opacity, 1));
374
+ }
375
+
376
+ .text-white\/20 {
377
+ color: rgb(255 255 255 / 0.2);
378
+ }
379
+
380
+ .text-white\/25 {
381
+ color: rgb(255 255 255 / 0.25);
382
+ }
383
+
384
+ .text-white\/30 {
385
+ color: rgb(255 255 255 / 0.3);
386
+ }
387
+
388
+ .text-white\/35 {
389
+ color: rgb(255 255 255 / 0.35);
390
+ }
391
+
392
+ .text-white\/50 {
393
+ color: rgb(255 255 255 / 0.5);
394
+ }
395
+
396
+ .text-white\/55 {
397
+ color: rgb(255 255 255 / 0.55);
398
+ }
399
+
400
+ .text-white\/60 {
401
+ color: rgb(255 255 255 / 0.6);
402
+ }
403
+
404
+ .underline-offset-2 {
405
+ text-underline-offset: 2px;
406
+ }
407
+
408
+ .shadow-2xl {
409
+ --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
410
+ --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
411
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
412
+ }
413
+
414
+ .shadow-lg {
415
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
416
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
417
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
418
+ }
419
+
420
+ .ring {
421
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
422
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
423
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
424
+ }
425
+
426
+ .grayscale {
427
+ --tw-grayscale: grayscale(100%);
428
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
429
+ }
430
+
431
+ .invert {
432
+ --tw-invert: invert(100%);
433
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
434
+ }
435
+
436
+ .filter {
437
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
438
+ }
439
+
440
+ .backdrop-blur-sm {
441
+ --tw-backdrop-blur: blur(4px);
442
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
443
+ }
444
+
445
+ .transition-\[background\2c border-color\2c color\] {
446
+ transition-property: background,border-color,color;
447
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
448
+ transition-duration: 150ms;
449
+ }
450
+
451
+ .transition-\[background\2c border-color\] {
452
+ transition-property: background,border-color;
453
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
454
+ transition-duration: 150ms;
455
+ }
456
+
457
+ .transition-\[background\] {
458
+ transition-property: background;
459
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
460
+ transition-duration: 150ms;
461
+ }
462
+
463
+ .transition-\[border-color\2c color\2c background\] {
464
+ transition-property: border-color,color,background;
465
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
466
+ transition-duration: 150ms;
467
+ }
468
+
469
+ .transition-\[left\2c background\] {
470
+ transition-property: left,background;
471
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
472
+ transition-duration: 150ms;
473
+ }
474
+
475
+ .transition-colors {
476
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
477
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
478
+ transition-duration: 150ms;
479
+ }
480
+
481
+ .duration-150 {
482
+ transition-duration: 150ms;
483
+ }
484
+
485
+ .duration-200 {
486
+ transition-duration: 200ms;
487
+ }
488
+
489
+ /* ── Text size ──────────────────────────────────────────────────────────────── */
490
+
491
+ html.a11y-text-lg {
492
+ font-size: 118% !important;
493
+ }
494
+
495
+ html.a11y-text-xl {
496
+ font-size: 145% !important;
497
+ }
498
+
499
+ /* ── High contrast — boosts text/bg separation (filter set inline by JS) ───── */
500
+
501
+ html.a11y-high-contrast body {
502
+ --foreground: #ffffff;
503
+ --background: #000000;
504
+ }
505
+
506
+ /* ── Invert — re-invert media so images/video stay natural ─────────────────── */
507
+
508
+ html.a11y-invert img,
509
+ html.a11y-invert video,
510
+ html.a11y-invert canvas,
511
+ html.a11y-invert svg:not([data-a11y-skip]) {
512
+ filter: invert(1) hue-rotate(180deg);
513
+ }
514
+
515
+ /* ── Reduce motion ──────────────────────────────────────────────────────────── */
516
+
517
+ html.a11y-reduce-motion *,
518
+ html.a11y-reduce-motion *::before,
519
+ html.a11y-reduce-motion *::after {
520
+ animation-duration: 0.01ms !important;
521
+ animation-iteration-count: 1 !important;
522
+ transition-duration: 0.01ms !important;
523
+ scroll-behavior: auto !important;
524
+ }
525
+
526
+ /* ── Highlight links ────────────────────────────────────────────────────────── */
527
+
528
+ html.a11y-highlight-links a,
529
+ html.a11y-highlight-links [role="link"] {
530
+ text-decoration: underline !important;
531
+ text-underline-offset: 3px !important;
532
+ outline: 2px solid !important;
533
+ outline-offset: 2px !important;
534
+ }
535
+
536
+ /* ── Text spacing (WCAG 1.4.12) ─────────────────────────────────────────────── */
537
+
538
+ html.a11y-text-spacing *:not(input):not(textarea) {
539
+ letter-spacing: 0.12em !important;
540
+ word-spacing: 0.18em !important;
541
+ line-height: 1.85 !important;
542
+ }
543
+
544
+ /* ── ADHD friendly — kill all animation, add strong focus ring ──────────────── */
545
+
546
+ html.a11y-adhd *,
547
+ html.a11y-adhd *::before,
548
+ html.a11y-adhd *::after {
549
+ animation: none !important;
550
+ transition: none !important;
551
+ }
552
+
553
+ html.a11y-adhd :focus-visible {
554
+ outline: 3px solid #facc15 !important;
555
+ outline-offset: 3px !important;
556
+ border-radius: 2px !important;
557
+ }
558
+
559
+ /* ── Dyslexia-friendly — readable system font, generous spacing ─────────────── */
560
+
561
+ html.a11y-dyslexia,
562
+ html.a11y-dyslexia * {
563
+ font-family: 'Arial', 'Verdana', 'Helvetica', sans-serif !important;
564
+ word-spacing: 0.22em !important;
565
+ line-height: 1.95 !important;
566
+ letter-spacing: 0.04em !important;
567
+ }
568
+
569
+ .hover\:border-\[rgba\(0\2c 229\2c 160\2c 0\.4\)\]:hover {
570
+ border-color: rgba(0,229,160,0.4);
571
+ }
572
+
573
+ .hover\:border-white\/25:hover {
574
+ border-color: rgb(255 255 255 / 0.25);
575
+ }
576
+
577
+ .hover\:bg-\[rgba\(0\2c 229\2c 160\2c 0\.08\)\]:hover {
578
+ background-color: rgba(0,229,160,0.08);
579
+ }
580
+
581
+ .hover\:text-\[\#00e5a0\]:hover {
582
+ --tw-text-opacity: 1;
583
+ color: rgb(0 229 160 / var(--tw-text-opacity, 1));
584
+ }
585
+
586
+ .hover\:text-\[\#ff6b6b\]:hover {
587
+ --tw-text-opacity: 1;
588
+ color: rgb(255 107 107 / var(--tw-text-opacity, 1));
589
+ }
590
+
591
+ .hover\:text-white\/60:hover {
592
+ color: rgb(255 255 255 / 0.6);
593
+ }
594
+
595
+ .hover\:text-white\/80:hover {
596
+ color: rgb(255 255 255 / 0.8);
597
+ }
598
+
599
+ .focus-visible\:ring-2:focus-visible {
600
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
601
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
602
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
603
+ }
604
+
605
+ .focus-visible\:ring-\[\#00e5a0\]:focus-visible {
606
+ --tw-ring-opacity: 1;
607
+ --tw-ring-color: rgb(0 229 160 / var(--tw-ring-opacity, 1));
608
+ }
609
+
610
+ .disabled\:cursor-not-allowed:disabled {
611
+ cursor: not-allowed;
612
+ }
613
+
614
+ .disabled\:opacity-30:disabled {
615
+ opacity: 0.3;
616
+ }
617
+
618
+ .group:hover .group-hover\:text-white\/50 {
619
+ color: rgb(255 255 255 / 0.5);
620
+ }
621
+
622
+ @media (max-width: 480px) {
623
+ .max-\[480px\]\:w-\[calc\(100vw-2rem\)\] {
624
+ width: calc(100vw - 2rem);
625
+ }
626
+ }