@med-o/ui 0.0.0-stage → 0.3.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.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -2
  3. package/dist/index.d.ts +2237 -0
  4. package/dist/index.js +5119 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/styles.css +1 -0
  7. package/package.json +77 -4
  8. package/src/accordion/accordion.css +184 -0
  9. package/src/alert/alert.css +147 -0
  10. package/src/avatar/avatar.css +221 -0
  11. package/src/badge/badge.css +153 -0
  12. package/src/bottom-sheet/bottom-sheet.css +202 -0
  13. package/src/breadcrumbs/breadcrumbs.css +147 -0
  14. package/src/bulk-action-bar/bulk-action-bar.css +98 -0
  15. package/src/button/button.css +319 -0
  16. package/src/card/card.css +217 -0
  17. package/src/checkbox/choice.css +196 -0
  18. package/src/combobox/combobox.css +125 -0
  19. package/src/date-time/date-time.css +474 -0
  20. package/src/dialog/dialog.css +319 -0
  21. package/src/drawer/drawer.css +156 -0
  22. package/src/empty-state/empty-state.css +161 -0
  23. package/src/field/field.css +115 -0
  24. package/src/link/link.css +103 -0
  25. package/src/list/list.css +172 -0
  26. package/src/list-view/list-view.css +473 -0
  27. package/src/listbox/listbox.css +203 -0
  28. package/src/media/media.css +298 -0
  29. package/src/menu/menu.css +183 -0
  30. package/src/navigation/navigation.css +625 -0
  31. package/src/pagination/pagination.css +132 -0
  32. package/src/popover/popover.css +166 -0
  33. package/src/progress/progress.css +225 -0
  34. package/src/search/search.css +309 -0
  35. package/src/select/select.css +229 -0
  36. package/src/slider/slider.css +212 -0
  37. package/src/styles.css +48 -0
  38. package/src/switch/switch.css +160 -0
  39. package/src/table/table.css +286 -0
  40. package/src/tabs/tabs.css +211 -0
  41. package/src/tag/tag.css +225 -0
  42. package/src/text-field/input.css +206 -0
  43. package/src/toast/toast.css +184 -0
  44. package/src/toggle-button/toggle-button.css +143 -0
  45. package/src/tooltip/tooltip.css +66 -0
  46. package/src/upload/upload.css +380 -0
  47. package/src/utils/utilities.css +14 -0
@@ -0,0 +1,625 @@
1
+ /**
2
+ * Navigation – med.o Design System
3
+ *
4
+ * Always links in a named <nav>; the current page has aria-current="page".
5
+ * .medo-nav-item.medo-nav-item--{header|sidebar|rail|sheet} one item, four forms (36 · 36 · 40×40 · 48)
6
+ * .medo-nav-group (disclosure button + list) · .medo-nav-section (overline + list)
7
+ * .medo-site-header · .medo-nav-fullscreen · .medo-app-header · .medo-sidenav · .medo-tab-bar · .medo-skip-link
8
+ * Current: action/selected + label strong in text/primary. Default: text/secondary; hover and pressed use the state layers.
9
+ * State contract: [aria-current="page"] / [data-current] · [data-hovered] [data-pressed] [data-focus-visible] (React Aria),
10
+ * [aria-expanded] on group buttons, [data-scrolled] on headers.
11
+ */
12
+
13
+ .medo-nav__list {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: var(--medo-space-0-5);
17
+ margin: 0;
18
+ padding: 0;
19
+ list-style: none;
20
+ }
21
+
22
+ .medo-nav__list--row {
23
+ flex-direction: row;
24
+ align-items: center;
25
+ gap: var(--medo-space-1);
26
+ }
27
+
28
+ .medo-nav__list--rail {
29
+ align-items: center;
30
+ }
31
+
32
+ .medo-nav__entry {
33
+ display: block;
34
+ }
35
+
36
+ /* ---------- Nav item ---------- */
37
+
38
+ .medo-nav-item {
39
+ --_h: 2.25rem; /* 36 */
40
+ --_label: var(--medo-typography-label-md);
41
+ --_label-current: var(--medo-typography-label-md-strong);
42
+ --_icon: var(--medo-size-icon-sm);
43
+
44
+ position: relative;
45
+ box-sizing: border-box;
46
+ display: flex;
47
+ align-items: center;
48
+ gap: var(--medo-space-3);
49
+ inline-size: 100%;
50
+ min-block-size: var(--_h);
51
+ padding-inline: var(--medo-space-3);
52
+ border: 0;
53
+ border-radius: var(--medo-radius-sm);
54
+ background: none;
55
+ font: var(--_label);
56
+ color: var(--medo-color-text-secondary);
57
+ text-align: start;
58
+ text-decoration: none;
59
+ cursor: pointer;
60
+ outline: none;
61
+ -webkit-tap-highlight-color: transparent;
62
+ }
63
+
64
+ .medo-nav-item--header {
65
+ inline-size: auto;
66
+ white-space: nowrap;
67
+ }
68
+
69
+ .medo-nav-item--sheet {
70
+ --_h: var(--medo-size-control-lg); /* 48 */
71
+ --_label: var(--medo-typography-label-lg);
72
+ --_label-current: var(--medo-typography-label-lg-strong);
73
+ --_icon: var(--medo-size-icon-md);
74
+ }
75
+
76
+ .medo-nav-item--rail {
77
+ --_icon: var(--medo-size-icon-md);
78
+ justify-content: center;
79
+ inline-size: var(--medo-size-control-md); /* 40 */
80
+ block-size: var(--medo-size-control-md);
81
+ padding: 0;
82
+ }
83
+
84
+ .medo-nav-item[data-hovered] {
85
+ background-color: var(--medo-color-state-hover);
86
+ color: var(--medo-color-text-primary);
87
+ }
88
+
89
+ .medo-nav-item[data-pressed] {
90
+ background-color: var(--medo-color-state-pressed);
91
+ color: var(--medo-color-text-primary);
92
+ }
93
+
94
+ .medo-nav-item:is([aria-current='page'], [data-current]) {
95
+ background-color: var(--medo-color-action-selected);
96
+ font: var(--_label-current);
97
+ color: var(--medo-color-text-primary);
98
+ }
99
+
100
+ .medo-nav-item:is([aria-current='page'], [data-current])[data-hovered] {
101
+ background-color: var(--medo-color-action-selected-hover);
102
+ }
103
+
104
+ .medo-nav-item[data-focus-visible] {
105
+ box-shadow: var(--medo-shadow-focus-ring-inset);
106
+ }
107
+
108
+ .medo-nav-item__icon {
109
+ display: inline-flex;
110
+ flex: none;
111
+ inline-size: var(--_icon);
112
+ block-size: var(--_icon);
113
+ }
114
+
115
+ .medo-nav-item__icon > svg {
116
+ inline-size: 100%;
117
+ block-size: 100%;
118
+ }
119
+
120
+ .medo-nav-item__label {
121
+ flex: 1;
122
+ min-inline-size: 0;
123
+ overflow: hidden;
124
+ text-overflow: ellipsis;
125
+ white-space: nowrap;
126
+ }
127
+
128
+ .medo-nav-item--header .medo-nav-item__label {
129
+ flex: none;
130
+ }
131
+
132
+ .medo-nav-item__dot {
133
+ position: absolute;
134
+ inset-block-start: var(--medo-space-2);
135
+ inset-inline-end: var(--medo-space-2);
136
+ }
137
+
138
+ /* ---------- Group ---------- */
139
+
140
+ .medo-nav-group {
141
+ position: relative;
142
+ }
143
+
144
+ .medo-nav-group__chevron {
145
+ flex: none;
146
+ inline-size: var(--medo-size-icon-sm);
147
+ block-size: var(--medo-size-icon-sm);
148
+ transition: rotate var(--medo-motion-spring-snappy-duration) var(--medo-motion-spring-snappy);
149
+ }
150
+
151
+ .medo-nav-group__button[aria-expanded='true'] .medo-nav-group__chevron {
152
+ rotate: 180deg;
153
+ }
154
+
155
+ /* Header: the open group button looks pressed. */
156
+ .medo-nav-group--floating > .medo-nav-group__button[aria-expanded='true'] {
157
+ background-color: var(--medo-color-state-hover);
158
+ color: var(--medo-color-text-primary);
159
+ }
160
+
161
+ /* Sidebar and sheet: children indented, one level. */
162
+ .medo-nav-group__list {
163
+ margin-block-start: var(--medo-space-0-5);
164
+ padding-inline-start: var(--medo-space-4);
165
+ }
166
+
167
+ .medo-nav-item--sidebar + .medo-nav-group__list {
168
+ /* Child labels line up with the parent label (icon + gap). */
169
+ padding-inline-start: calc(var(--medo-size-icon-sm) + var(--medo-space-3));
170
+ }
171
+
172
+ /* Header: dropdown panel on the popover surface, 280 wide, 8 below the item. */
173
+ .medo-nav-group__panel {
174
+ position: absolute;
175
+ inset-block-start: calc(100% + var(--medo-space-2));
176
+ inset-inline-start: 0;
177
+ z-index: var(--medo-layer-dropdown);
178
+ box-sizing: border-box;
179
+ inline-size: 17.5rem; /* 280 */
180
+ padding: var(--medo-space-2);
181
+ border: var(--medo-border-width-thin) solid var(--medo-color-border-default);
182
+ border-radius: var(--medo-radius-md);
183
+ background-color: var(--medo-color-surface-raised);
184
+ box-shadow: var(--medo-shadow-elevation-2);
185
+ }
186
+
187
+ .medo-nav-group__panel[hidden],
188
+ .medo-nav-group__list[hidden] {
189
+ display: none;
190
+ }
191
+
192
+ /* ---------- Section (sidebar) ---------- */
193
+
194
+ .medo-nav-section__title {
195
+ display: block;
196
+ padding: var(--medo-space-2) var(--medo-space-2) var(--medo-space-1);
197
+ font: var(--medo-typography-overline);
198
+ color: var(--medo-color-text-secondary);
199
+ }
200
+
201
+ .medo-nav-section__divider {
202
+ display: block;
203
+ margin: var(--medo-space-1) var(--medo-space-1);
204
+ border-block-start: var(--medo-border-width-thin) solid var(--medo-color-border-default);
205
+ }
206
+
207
+ /* ---------- Skip link ---------- */
208
+
209
+ .medo-skip-link {
210
+ position: fixed;
211
+ inset-block-start: var(--medo-space-2);
212
+ inset-inline-start: var(--medo-space-2);
213
+ z-index: var(--medo-layer-tooltip);
214
+ padding: var(--medo-space-2) var(--medo-space-4);
215
+ border-radius: var(--medo-radius-md);
216
+ background-color: var(--medo-color-surface-raised);
217
+ box-shadow: var(--medo-shadow-elevation-2);
218
+ font: var(--medo-typography-label-md);
219
+ color: var(--medo-color-text-primary);
220
+ text-decoration: none;
221
+ translate: 0 calc(-100% - var(--medo-space-4));
222
+ }
223
+
224
+ .medo-skip-link:focus-visible {
225
+ translate: 0 0;
226
+ outline: none;
227
+ box-shadow: var(--medo-shadow-focus-ring), var(--medo-shadow-elevation-2);
228
+ }
229
+
230
+ /* ---------- Headers ---------- */
231
+
232
+ .medo-site-header,
233
+ .medo-app-header {
234
+ position: sticky;
235
+ inset-block-start: 0;
236
+ z-index: var(--medo-layer-sticky);
237
+ box-sizing: border-box;
238
+ display: flex;
239
+ align-items: center;
240
+ gap: var(--medo-space-8);
241
+ block-size: var(--medo-space-16); /* 64 */
242
+ padding-inline: var(--medo-space-8);
243
+ border-block-end: var(--medo-border-width-thin) solid transparent;
244
+ background-color: var(--medo-color-surface-default);
245
+ }
246
+
247
+ .medo-app-header {
248
+ padding-inline: var(--medo-space-6);
249
+ }
250
+
251
+ /* Divider once the page scrolls. */
252
+ .medo-site-header[data-scrolled],
253
+ .medo-app-header[data-scrolled] {
254
+ border-block-end-color: var(--medo-color-border-default);
255
+ }
256
+
257
+ .medo-site-header__logo,
258
+ .medo-app-header__logo {
259
+ display: flex;
260
+ flex: none;
261
+ align-items: center;
262
+ }
263
+
264
+ .medo-site-header__nav {
265
+ flex: 1;
266
+ min-inline-size: 0;
267
+ }
268
+
269
+ .medo-site-header__actions,
270
+ .medo-app-header__actions {
271
+ display: flex;
272
+ flex: none;
273
+ align-items: center;
274
+ gap: var(--medo-space-2);
275
+ margin-inline-start: auto;
276
+ }
277
+
278
+ .medo-app-header__actions {
279
+ margin-inline-start: 0;
280
+ }
281
+
282
+ .medo-app-header__title {
283
+ flex: 1;
284
+ min-inline-size: 0;
285
+ margin: 0;
286
+ overflow: hidden;
287
+ font: var(--medo-typography-heading-md);
288
+ color: var(--medo-color-text-primary);
289
+ text-overflow: ellipsis;
290
+ white-space: nowrap;
291
+ }
292
+
293
+ .medo-app-header__search {
294
+ flex: 0 1 17.5rem; /* 280 */
295
+ min-inline-size: 0;
296
+ }
297
+
298
+ /* ---------- Fullscreen menu (website, mobile) ---------- */
299
+
300
+ .medo-nav-fullscreen-overlay {
301
+ position: fixed;
302
+ inset: 0;
303
+ z-index: var(--medo-layer-modal);
304
+ }
305
+
306
+ .medo-nav-fullscreen {
307
+ box-sizing: border-box;
308
+ display: flex;
309
+ block-size: 100dvh;
310
+ padding-block: env(safe-area-inset-top) env(safe-area-inset-bottom);
311
+ background-color: var(--medo-color-surface-default);
312
+ color: var(--medo-color-text-primary);
313
+ outline: none;
314
+ }
315
+
316
+ /* Full-screen menu: fades in while its content settles 8 px with a smooth spring; out: a quick fade. */
317
+ .medo-nav-fullscreen-overlay {
318
+ transition: opacity var(--medo-motion-duration-normal) var(--medo-motion-easing-enter);
319
+ }
320
+ .medo-nav-fullscreen-overlay[data-entering] {
321
+ opacity: 0;
322
+ }
323
+ .medo-nav-fullscreen-overlay[data-exiting] {
324
+ opacity: 0;
325
+ transition: opacity var(--medo-motion-duration-fast) var(--medo-motion-easing-exit);
326
+ }
327
+ .medo-nav-fullscreen {
328
+ transition: translate var(--medo-motion-spring-smooth-duration) var(--medo-motion-spring-smooth);
329
+ }
330
+ .medo-nav-fullscreen-overlay[data-entering] .medo-nav-fullscreen {
331
+ translate: 0 calc(-1 * var(--medo-space-2));
332
+ }
333
+
334
+ .medo-nav-fullscreen__dialog {
335
+ display: flex;
336
+ flex: 1;
337
+ flex-direction: column;
338
+ min-block-size: 0;
339
+ outline: none;
340
+ }
341
+
342
+ .medo-nav-fullscreen__header {
343
+ display: flex;
344
+ flex: none;
345
+ align-items: center;
346
+ justify-content: space-between;
347
+ block-size: calc(var(--medo-size-control-md) + 2 * var(--medo-space-2)); /* 56 */
348
+ padding-inline: var(--medo-space-4) var(--medo-space-2);
349
+ }
350
+
351
+ .medo-nav-fullscreen__nav {
352
+ flex: 1;
353
+ min-block-size: 0;
354
+ overflow: auto;
355
+ padding: var(--medo-space-4);
356
+ }
357
+
358
+ .medo-nav-fullscreen__nav .medo-nav__list {
359
+ gap: var(--medo-space-1);
360
+ }
361
+
362
+ /* Actions pinned at the bottom – primary on top, in thumb reach. */
363
+ .medo-nav-fullscreen__actions {
364
+ display: grid;
365
+ flex: none;
366
+ gap: var(--medo-space-2);
367
+ padding: var(--medo-space-4);
368
+ border-block-start: var(--medo-border-width-thin) solid var(--medo-color-border-default);
369
+ }
370
+
371
+ .medo-nav-fullscreen__actions .medo-button {
372
+ inline-size: 100%;
373
+ }
374
+
375
+ /* ---------- Side navigation ---------- */
376
+
377
+ .medo-sidenav {
378
+ position: relative;
379
+ flex: none;
380
+ box-sizing: border-box;
381
+ inline-size: 16rem; /* 256 */
382
+ block-size: 100%;
383
+ transition: inline-size var(--medo-motion-spring-smooth-duration) var(--medo-motion-spring-smooth);
384
+ }
385
+
386
+ .medo-sidenav--collapsed {
387
+ inline-size: var(--medo-space-16); /* 64 */
388
+ }
389
+
390
+ .medo-sidenav__panel {
391
+ box-sizing: border-box;
392
+ display: flex;
393
+ flex-direction: column;
394
+ inline-size: 100%;
395
+ block-size: 100%;
396
+ border-inline-end: var(--medo-border-width-thin) solid var(--medo-color-border-default);
397
+ background-color: var(--medo-color-surface-default);
398
+ }
399
+
400
+ .medo-sidenav__top {
401
+ display: flex;
402
+ flex: none;
403
+ align-items: center;
404
+ justify-content: space-between;
405
+ gap: var(--medo-space-2);
406
+ block-size: var(--medo-space-16); /* 64 */
407
+ padding-inline: var(--medo-space-4) var(--medo-space-3);
408
+ }
409
+
410
+ .medo-sidenav--collapsed .medo-sidenav__top {
411
+ justify-content: center;
412
+ padding-inline: 0;
413
+ }
414
+
415
+ .medo-sidenav__nav {
416
+ flex: 1;
417
+ min-block-size: 0;
418
+ overflow-y: auto;
419
+ overflow-x: hidden;
420
+ padding: var(--medo-space-2) var(--medo-space-3);
421
+ }
422
+
423
+ .medo-sidenav--collapsed .medo-nav__list {
424
+ align-items: center;
425
+ }
426
+
427
+ .medo-sidenav__bottom {
428
+ display: flex;
429
+ flex: none;
430
+ flex-direction: column;
431
+ align-items: center;
432
+ gap: var(--medo-space-2);
433
+ padding: var(--medo-space-3) var(--medo-space-4) var(--medo-space-4);
434
+ border-block-start: var(--medo-border-width-thin) solid var(--medo-color-border-default);
435
+ }
436
+
437
+ .medo-sidenav__bottom:empty {
438
+ display: none;
439
+ }
440
+
441
+ .medo-sidenav__user {
442
+ display: flex;
443
+ align-items: center;
444
+ gap: var(--medo-space-3);
445
+ align-self: stretch;
446
+ min-inline-size: 0;
447
+ }
448
+
449
+ .medo-sidenav--collapsed .medo-sidenav__user {
450
+ justify-content: center;
451
+ }
452
+
453
+ .medo-sidenav__user-text {
454
+ display: grid;
455
+ min-inline-size: 0;
456
+ }
457
+
458
+ .medo-sidenav__user-name,
459
+ .medo-sidenav__user-email {
460
+ overflow: hidden;
461
+ text-overflow: ellipsis;
462
+ white-space: nowrap;
463
+ }
464
+
465
+ .medo-sidenav__user-name {
466
+ font: var(--medo-typography-label-md);
467
+ color: var(--medo-color-text-primary);
468
+ }
469
+
470
+ .medo-sidenav__user-email {
471
+ font: var(--medo-typography-caption);
472
+ color: var(--medo-color-text-secondary);
473
+ }
474
+
475
+ /* ---------- Bottom tab bar ---------- */
476
+
477
+ .medo-tab-bar {
478
+ position: fixed;
479
+ inset-inline: 0;
480
+ inset-block-end: 0;
481
+ z-index: var(--medo-layer-sticky);
482
+ padding-block-end: env(safe-area-inset-bottom);
483
+ border-block-start: var(--medo-border-width-thin) solid var(--medo-color-border-default);
484
+ background-color: var(--medo-color-surface-default);
485
+ }
486
+
487
+ .medo-tab-bar__list {
488
+ display: flex;
489
+ margin: 0;
490
+ padding: var(--medo-space-1) var(--medo-space-2);
491
+ list-style: none;
492
+ }
493
+
494
+ .medo-tab-bar__entry {
495
+ display: flex;
496
+ flex: 1;
497
+ }
498
+
499
+ .medo-tab-bar-item {
500
+ display: flex;
501
+ flex: 1;
502
+ flex-direction: column;
503
+ align-items: center;
504
+ gap: var(--medo-space-1);
505
+ min-block-size: 3.5rem; /* 56 */
506
+ padding: var(--medo-space-1) 0;
507
+ border: 0;
508
+ border-radius: var(--medo-radius-sm);
509
+ background: none;
510
+ font: var(--medo-typography-caption);
511
+ color: var(--medo-color-text-secondary);
512
+ text-decoration: none;
513
+ cursor: pointer;
514
+ outline: none;
515
+ -webkit-tap-highlight-color: transparent;
516
+ }
517
+
518
+ .medo-tab-bar-item__indicator {
519
+ position: relative;
520
+ display: grid;
521
+ place-items: center;
522
+ inline-size: 3.5rem; /* 56 */
523
+ block-size: 1.75rem; /* 28 */
524
+ border-radius: var(--medo-radius-full);
525
+ }
526
+
527
+ .medo-tab-bar-item__icon {
528
+ display: inline-flex;
529
+ inline-size: var(--medo-size-icon-md);
530
+ block-size: var(--medo-size-icon-md);
531
+ }
532
+
533
+ .medo-tab-bar-item__icon > svg {
534
+ inline-size: 100%;
535
+ block-size: 100%;
536
+ }
537
+
538
+ .medo-tab-bar-item__dot {
539
+ position: absolute;
540
+ inset-block-start: var(--medo-space-0-5);
541
+ inset-inline-start: calc(50% + var(--medo-space-1));
542
+ }
543
+
544
+ .medo-tab-bar-item[data-pressed] .medo-tab-bar-item__indicator {
545
+ background-color: var(--medo-color-state-pressed);
546
+ }
547
+
548
+ .medo-tab-bar-item:is([aria-current='page'], [data-current]) {
549
+ font: var(--medo-typography-label-sm-strong);
550
+ color: var(--medo-color-text-primary);
551
+ }
552
+
553
+ .medo-tab-bar-item:is([aria-current='page'], [data-current]) .medo-tab-bar-item__indicator {
554
+ background-color: var(--medo-color-action-selected);
555
+ }
556
+
557
+ .medo-tab-bar-item[data-focus-visible] {
558
+ box-shadow: var(--medo-shadow-focus-ring-inset);
559
+ }
560
+
561
+ /* Only on phones by default – the side navigation takes over from 640 px. */
562
+ @media (min-width: 640px) {
563
+ .medo-tab-bar:not(.medo-tab-bar--always) {
564
+ display: none;
565
+ }
566
+ }
567
+
568
+ /* Compact website header (menu button) and phones: 56 high. */
569
+ .medo-site-header--compact {
570
+ gap: var(--medo-space-2);
571
+ block-size: calc(var(--medo-size-control-md) + 2 * var(--medo-space-2)); /* 56 */
572
+ padding-inline: var(--medo-space-4) var(--medo-space-2);
573
+ }
574
+
575
+ @media (max-width: 639.98px) {
576
+ .medo-sidenav {
577
+ display: none;
578
+ }
579
+ .medo-app-header {
580
+ gap: var(--medo-space-2);
581
+ block-size: calc(var(--medo-size-control-md) + 2 * var(--medo-space-2)); /* 56 */
582
+ padding-inline: var(--medo-space-4) var(--medo-space-2);
583
+ }
584
+ .medo-app-header__title {
585
+ font: var(--medo-typography-label-lg);
586
+ }
587
+ .medo-app-header__search {
588
+ display: none;
589
+ }
590
+ }
591
+
592
+ /* Nav sheet (apps): items inside the Bottom Sheet. */
593
+ .medo-nav-sheet {
594
+ padding: 0 var(--medo-space-2) var(--medo-space-4);
595
+ }
596
+
597
+ @media (min-width: 640px) {
598
+ .medo-app-header__logo {
599
+ display: none;
600
+ }
601
+ }
602
+
603
+ @media (forced-colors: active) {
604
+ .medo-nav-item:is([aria-current='page'], [data-current]),
605
+ .medo-tab-bar-item:is([aria-current='page'], [data-current]) .medo-tab-bar-item__indicator {
606
+ outline: 2px solid Highlight;
607
+ outline-offset: -2px;
608
+ }
609
+ .medo-nav-group__panel {
610
+ border-color: CanvasText;
611
+ }
612
+ }
613
+
614
+ @media (prefers-reduced-motion: reduce) {
615
+ .medo-sidenav {
616
+ transition: none;
617
+ }
618
+ .medo-nav-group__chevron {
619
+ transition: rotate var(--medo-motion-duration-fast) var(--medo-motion-easing-standard);
620
+ }
621
+ .medo-nav-fullscreen {
622
+ transition: none;
623
+ translate: none !important;
624
+ }
625
+ }