@revikornmann/muka-ui 0.27.2 → 0.28.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 (84) hide show
  1. package/dist/cjs/components/Avatar/Avatar.css +30 -7
  2. package/dist/cjs/components/Avatar/Avatar.js +4 -1
  3. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  4. package/dist/cjs/components/DataPieChart/DataPieChart.css +4 -1
  5. package/dist/cjs/components/DataPieChart/DataPieChart.js +1 -1
  6. package/dist/cjs/components/DataPieChart/DataPieChart.js.map +1 -1
  7. package/dist/cjs/components/Dialog/Dialog.css +3 -0
  8. package/dist/cjs/components/Dialog/Dialog.js +66 -3
  9. package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
  10. package/dist/cjs/components/Input/Input.css +21 -0
  11. package/dist/cjs/components/MediaViewer/MediaViewer.css +180 -0
  12. package/dist/cjs/components/MediaViewer/MediaViewer.js +271 -0
  13. package/dist/cjs/components/MediaViewer/MediaViewer.js.map +1 -0
  14. package/dist/cjs/components/MediaViewer/index.js +6 -0
  15. package/dist/cjs/components/MediaViewer/index.js.map +1 -0
  16. package/dist/cjs/components/MediaViewer/mediaViewerGestures.js +65 -0
  17. package/dist/cjs/components/MediaViewer/mediaViewerGestures.js.map +1 -0
  18. package/dist/cjs/components/Thumbnail/Thumbnail.css +11 -0
  19. package/dist/cjs/components/Thumbnail/Thumbnail.js +6 -2
  20. package/dist/cjs/components/Thumbnail/Thumbnail.js.map +1 -1
  21. package/dist/cjs/components/index.js +3 -1
  22. package/dist/cjs/components/index.js.map +1 -1
  23. package/dist/esm/components/Avatar/Avatar.css +30 -7
  24. package/dist/esm/components/Avatar/Avatar.js +4 -1
  25. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  26. package/dist/esm/components/DataPieChart/DataPieChart.css +4 -1
  27. package/dist/esm/components/DataPieChart/DataPieChart.js +1 -1
  28. package/dist/esm/components/DataPieChart/DataPieChart.js.map +1 -1
  29. package/dist/esm/components/Dialog/Dialog.css +3 -0
  30. package/dist/esm/components/Dialog/Dialog.js +66 -3
  31. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  32. package/dist/esm/components/Input/Input.css +21 -0
  33. package/dist/esm/components/MediaViewer/MediaViewer.css +180 -0
  34. package/dist/esm/components/MediaViewer/MediaViewer.js +267 -0
  35. package/dist/esm/components/MediaViewer/MediaViewer.js.map +1 -0
  36. package/dist/esm/components/MediaViewer/index.js +2 -0
  37. package/dist/esm/components/MediaViewer/index.js.map +1 -0
  38. package/dist/esm/components/MediaViewer/mediaViewerGestures.js +58 -0
  39. package/dist/esm/components/MediaViewer/mediaViewerGestures.js.map +1 -0
  40. package/dist/esm/components/Thumbnail/Thumbnail.css +11 -0
  41. package/dist/esm/components/Thumbnail/Thumbnail.js +6 -2
  42. package/dist/esm/components/Thumbnail/Thumbnail.js.map +1 -1
  43. package/dist/esm/components/index.js +1 -0
  44. package/dist/esm/components/index.js.map +1 -1
  45. package/dist/styles/base.css +2 -0
  46. package/dist/styles/components/Avatar.css +30 -7
  47. package/dist/styles/components/DataPieChart.css +4 -1
  48. package/dist/styles/components/Dialog.css +3 -0
  49. package/dist/styles/components/Input.css +21 -0
  50. package/dist/styles/components/MediaViewer.css +180 -0
  51. package/dist/styles/components/Thumbnail.css +11 -0
  52. package/dist/styles/index.css +554 -301
  53. package/dist/styles/muka-dark.css +554 -301
  54. package/dist/styles/muka-light.css +554 -301
  55. package/dist/styles/tokens-bouwplan-dark.css +8 -1
  56. package/dist/styles/tokens-bouwplan-light.css +8 -1
  57. package/dist/styles/tokens-fscl-dark.css +8 -1
  58. package/dist/styles/tokens-fscl-light.css +8 -1
  59. package/dist/styles/tokens-grip-dark.css +8 -1
  60. package/dist/styles/tokens-grip-light.css +8 -1
  61. package/dist/styles/tokens-muka-dark.css +8 -1
  62. package/dist/styles/tokens-muka-light.css +8 -1
  63. package/dist/styles/tokens-wireframe-dark.css +8 -1
  64. package/dist/styles/tokens-wireframe-light.css +8 -1
  65. package/dist/styles/wireframe-dark.css +554 -301
  66. package/dist/styles/wireframe-light.css +554 -301
  67. package/dist/types/components/Avatar/Avatar.d.ts +4 -1
  68. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  69. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
  70. package/dist/types/components/MediaViewer/MediaViewer.d.ts +86 -0
  71. package/dist/types/components/MediaViewer/MediaViewer.d.ts.map +1 -0
  72. package/dist/types/components/MediaViewer/index.d.ts +2 -0
  73. package/dist/types/components/MediaViewer/index.d.ts.map +1 -0
  74. package/dist/types/components/MediaViewer/mediaViewerGestures.d.ts +35 -0
  75. package/dist/types/components/MediaViewer/mediaViewerGestures.d.ts.map +1 -0
  76. package/dist/types/components/Thumbnail/Thumbnail.d.ts +21 -0
  77. package/dist/types/components/Thumbnail/Thumbnail.d.ts.map +1 -1
  78. package/dist/types/components/index.d.ts +1 -0
  79. package/dist/types/components/index.d.ts.map +1 -1
  80. package/docs/consumers/brand.md +6 -2
  81. package/docs/consumers/setup-instructions.md +35 -3
  82. package/package.json +1 -1
  83. package/skills/setup-muka/SKILL.md +36 -3
  84. package/tokens/t4-components/avatar.json +33 -1
@@ -7,7 +7,8 @@
7
7
  align-items: center;
8
8
  justify-content: center;
9
9
  flex-shrink: 0;
10
- overflow: hidden;
10
+ /* No overflow clipping: the status dot sits on the edge. The image and the
11
+ loading shimmer round themselves to the avatar shape instead. */
11
12
  user-select: none;
12
13
  vertical-align: middle;
13
14
  background-color: var(--avatar-color-background-default);
@@ -80,9 +81,10 @@
80
81
  border-radius: var(--avatar-radius-square-sm);
81
82
  }
82
83
 
83
- /* 4xs is too small for initials, the fallback icon or a status dot:
84
+ /* 4xs is too small for initials, an icon, the fallback icon or a status dot:
84
85
  it shows the picture, or the plain background */
85
86
  .muka-avatar--4xs .muka-avatar__initials,
87
+ .muka-avatar--4xs .muka-avatar__icon,
86
88
  .muka-avatar--4xs .muka-avatar__fallback,
87
89
  .muka-avatar--4xs .muka-avatar__status {
88
90
  display: none;
@@ -118,38 +120,59 @@
118
120
  .muka-avatar__skeleton {
119
121
  position: absolute;
120
122
  inset: 0;
123
+ border-radius: inherit;
121
124
  background: linear-gradient(
122
125
  90deg,
123
126
  transparent 0%,
124
127
  var(--color-surface-level1) 50%,
125
128
  transparent 100%
126
- );
129
+ ) no-repeat;
130
+ background-size: 50% 100%;
127
131
  animation: avatar-loading 1.5s ease-in-out infinite;
128
132
  }
129
133
 
134
+ /* The highlight sweeps by background position, so it stays inside the
135
+ rounded shape without the avatar clipping its overflow */
130
136
  @keyframes avatar-loading {
131
137
  0% {
132
- transform: translateX(-100%);
138
+ background-position: -100% 0;
133
139
  }
134
140
  100% {
135
- transform: translateX(100%);
141
+ background-position: 200% 0;
136
142
  }
137
143
  }
138
144
 
139
145
  /* Avatar content */
140
146
  .muka-avatar__image {
147
+ border-radius: inherit;
141
148
  width: 100%;
142
149
  height: 100%;
143
150
  object-fit: cover;
144
151
  display: block;
145
152
  }
146
153
 
154
+ /* Icon slot: a fixed icon size per avatar size, in the initials colour
155
+ (subtle text) */
147
156
  .muka-avatar__icon {
148
- width: 60%;
149
- height: 60%;
150
157
  display: flex;
151
158
  align-items: center;
152
159
  justify-content: center;
160
+ color: var(--avatar-color-foreground-default);
161
+ }
162
+
163
+ .muka-avatar--3xs .muka-avatar__icon { width: var(--avatar-icon-size-3xs); height: var(--avatar-icon-size-3xs); }
164
+ .muka-avatar--2xs .muka-avatar__icon { width: var(--avatar-icon-size-2xs); height: var(--avatar-icon-size-2xs); }
165
+ .muka-avatar--xs .muka-avatar__icon { width: var(--avatar-icon-size-xs); height: var(--avatar-icon-size-xs); }
166
+ .muka-avatar--sm .muka-avatar__icon { width: var(--avatar-icon-size-sm); height: var(--avatar-icon-size-sm); }
167
+ .muka-avatar--md .muka-avatar__icon { width: var(--avatar-icon-size-md); height: var(--avatar-icon-size-md); }
168
+ .muka-avatar--lg .muka-avatar__icon { width: var(--avatar-icon-size-lg); height: var(--avatar-icon-size-lg); }
169
+ .muka-avatar--xl .muka-avatar__icon { width: var(--avatar-icon-size-xl); height: var(--avatar-icon-size-xl); }
170
+
171
+ /* A Muka Icon fills the slot and takes its colour (its own `color` prop still wins) */
172
+ .muka-avatar__icon .muka-icon {
173
+ width: 100%;
174
+ height: 100%;
175
+ color: inherit;
153
176
  }
154
177
 
155
178
  .muka-avatar__icon svg {
@@ -32,7 +32,10 @@ function getInitials(name) {
32
32
  * - Loading and error states
33
33
  * - Clickable support
34
34
  *
35
- * @accessibility WCAG 2.1 AA compliant
35
+ * @accessibility WCAG 2.1 AA, except initials contrast
36
+ * - Initials and "+N" use subtle text by design (Figma "Avatar"), about 2.5–3.4:1
37
+ * on the avatar fill, below the 4.5:1 AA text minimum. They are decorative:
38
+ * the accessible name comes from `name`, so always pass it
36
39
  * - Requires alt text when using image
37
40
  * - Uses role="img" with aria-label for non-image avatars
38
41
  * - Status indicators include aria-label
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../../../components/Avatar/Avatar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../../../components/Avatar/Avatar.tsx"],"names":[],"mappings":"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"}
@@ -24,7 +24,10 @@
24
24
  fill: none;
25
25
  /* Subtle lift on the filled segment, matching the Figma elevation */
26
26
  filter: drop-shadow(0 2px 4px var(--color-black-alpha-5, rgba(0, 0, 0, 0.05)));
27
- transition: stroke-dasharray 0.3s ease;
27
+ /* Butt caps keep the always-rendered 0% arc invisible (round caps would draw a dot) */
28
+ stroke-linecap: butt;
29
+ /* view duration (300ms) reads at the 24px size; tokens zero it for reduced motion */
30
+ transition: stroke-dasharray var(--motion-duration-view) var(--motion-easing-default);
28
31
  }
29
32
 
30
33
  /* ─── Indeterminate (spinner) ─────────────────────────── */
@@ -52,7 +52,7 @@ const DataPieChart = ({ value, max = 100, variant = 'donut', size: sizeProp = 'l
52
52
  background: `conic-gradient(from 0deg, ${trackColor} 0deg, ${resolvedColor} 340deg, ${resolvedColor} 360deg)`,
53
53
  } })] }));
54
54
  }
55
- return ((0, jsx_runtime_1.jsxs)("div", { className: chartClasses, style: { width: size, height: size }, role: "img", "aria-label": label, ...props, children: [(0, jsx_runtime_1.jsxs)("svg", { className: "muka-data-pie-chart__svg", viewBox: "0 0 100 100", "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("circle", { className: "muka-data-pie-chart__track", cx: 50, cy: 50, r: radius, strokeWidth: strokeWidth, stroke: trackColor }), fraction > 0 && ((0, jsx_runtime_1.jsx)("circle", { className: "muka-data-pie-chart__segment", cx: 50, cy: 50, r: radius, strokeWidth: strokeWidth, stroke: resolvedColor, strokeDasharray: `${arcLength} ${circumference - arcLength}`, strokeDashoffset: 0 }))] }), showValue && variant === 'donut' && ((0, jsx_runtime_1.jsxs)("span", { className: "muka-data-pie-chart__value", "aria-hidden": "true", children: [percent, "%"] }))] }));
55
+ return ((0, jsx_runtime_1.jsxs)("div", { className: chartClasses, style: { width: size, height: size }, role: "img", "aria-label": label, ...props, children: [(0, jsx_runtime_1.jsxs)("svg", { className: "muka-data-pie-chart__svg", viewBox: "0 0 100 100", "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("circle", { className: "muka-data-pie-chart__track", cx: 50, cy: 50, r: radius, strokeWidth: strokeWidth, stroke: trackColor }), (0, jsx_runtime_1.jsx)("circle", { className: "muka-data-pie-chart__segment", cx: 50, cy: 50, r: radius, strokeWidth: strokeWidth, stroke: resolvedColor, strokeDasharray: `${arcLength} ${circumference - arcLength}`, strokeDashoffset: 0 })] }), showValue && variant === 'donut' && ((0, jsx_runtime_1.jsxs)("span", { className: "muka-data-pie-chart__value", "aria-hidden": "true", children: [percent, "%"] }))] }));
56
56
  };
57
57
  exports.DataPieChart = DataPieChart;
58
58
  exports.default = exports.DataPieChart;
@@ -1 +1 @@
1
- {"version":3,"file":"DataPieChart.js","sourceRoot":"","sources":["../../../../components/DataPieChart/DataPieChart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataPieChart.js","sourceRoot":"","sources":["../../../../components/DataPieChart/DataPieChart.tsx"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@
38
38
  height: 100%;
39
39
  max-width: 100vw;
40
40
  max-height: 100vh;
41
+ max-height: 100dvh;
41
42
  margin: 0;
42
43
  display: flex;
43
44
  flex-direction: column;
@@ -72,6 +73,8 @@
72
73
 
73
74
  .muka-dialog--lg .muka-dialog__surface {
74
75
  height: calc(100vh - var(--dialog-margin-top-mobile));
76
+ /* dvh tracks the visible area as mobile toolbars show and hide */
77
+ height: calc(100dvh - var(--dialog-margin-top-mobile));
75
78
  }
76
79
 
77
80
  /* Body */
@@ -48,7 +48,41 @@ const MIN_HEIGHT_DISMISS = 200;
48
48
  // Snap point heights in px (must match dialog tokens)
49
49
  const SNAP_SM = 400; // 25rem
50
50
  const SNAP_MD = 600; // 37.5rem
51
- const getSnapLg = () => window.innerHeight - 56;
51
+ // Size from the visual viewport: on iOS Safari `innerHeight` can be taller
52
+ // than the visible area while the toolbars show, so the surface would extend
53
+ // past it and the browser would scroll the page to keep it in view.
54
+ const getSnapLg = () => (window.visualViewport?.height ?? window.innerHeight) - 56;
55
+ /**
56
+ * Record the scroll position of the document and of every element on the page
57
+ * that can scroll, including `overflow: hidden` ones such as an app shell: the
58
+ * browser can scroll those while the dialog is open, and the user can't
59
+ * scroll them back. iOS Safari doesn't focus a tapped button, so the opener
60
+ * can't be relied on to find them.
61
+ */
62
+ function takeScrollSnapshot(exclude) {
63
+ const snapshot = [];
64
+ const root = document.scrollingElement;
65
+ if (root)
66
+ snapshot.push([root, root.scrollTop, root.scrollLeft]);
67
+ for (const el of document.body.querySelectorAll('*')) {
68
+ if (el === root || exclude.contains(el))
69
+ continue;
70
+ if (el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth) {
71
+ snapshot.push([el, el.scrollTop, el.scrollLeft]);
72
+ }
73
+ }
74
+ return snapshot;
75
+ }
76
+ function restoreScrollSnapshot(snapshot) {
77
+ for (const [el, top, left] of snapshot) {
78
+ if (!el.isConnected)
79
+ continue;
80
+ if (el.scrollTop !== top)
81
+ el.scrollTop = top;
82
+ if (el.scrollLeft !== left)
83
+ el.scrollLeft = left;
84
+ }
85
+ }
52
86
  function getNearestSnap(height) {
53
87
  const snapLg = getSnapLg();
54
88
  const snaps = [SNAP_SM, SNAP_MD, snapLg];
@@ -103,12 +137,39 @@ const Dialog = ({ open, onClose, children, size = 'sm', mobileHeight = 'full', m
103
137
  const [snapHeight, setSnapHeight] = (0, react_1.useState)(null);
104
138
  const dragStartY = (0, react_1.useRef)(0);
105
139
  const dragStartHeight = (0, react_1.useRef)(0);
140
+ // Element focused when the dialog opened, and the page scroll at that time
141
+ const openerRef = (0, react_1.useRef)(null);
142
+ const scrollSnapshotRef = (0, react_1.useRef)(null);
143
+ // Close the native <dialog> and put the page back exactly as it was. iOS
144
+ // scrolls the page (and scroll containers) to keep a tall dialog and its
145
+ // focused input in view, and the native close scrolls again to restore
146
+ // focus, so refocus the opener without scrolling and undo any scroll.
147
+ const closeAndRestore = (0, react_1.useCallback)(() => {
148
+ const dialog = dialogRef.current;
149
+ if (dialog?.open)
150
+ dialog.close();
151
+ const opener = openerRef.current;
152
+ openerRef.current = null;
153
+ if (opener?.isConnected)
154
+ opener.focus({ preventScroll: true });
155
+ const snapshot = scrollSnapshotRef.current;
156
+ scrollSnapshotRef.current = null;
157
+ if (snapshot) {
158
+ restoreScrollSnapshot(snapshot);
159
+ // iOS can scroll once more as the keyboard and toolbars settle
160
+ requestAnimationFrame(() => restoreScrollSnapshot(snapshot));
161
+ }
162
+ }, []);
106
163
  // Open the native <dialog> and force reflow before slide-in
107
164
  (0, react_1.useLayoutEffect)(() => {
108
165
  const dialog = dialogRef.current;
109
166
  if (!dialog)
110
167
  return;
111
168
  if (open && !dialog.open) {
169
+ const active = document.activeElement;
170
+ openerRef.current =
171
+ active instanceof HTMLElement && active !== document.body ? active : null;
172
+ scrollSnapshotRef.current = takeScrollSnapshot(dialog);
112
173
  dialog.showModal();
113
174
  // Move focus to the surface so no interactive element gets the focus ring
114
175
  surfaceRef.current?.focus({ preventScroll: true });
@@ -135,13 +196,15 @@ const Dialog = ({ open, onClose, children, size = 'sm', mobileHeight = 'full', m
135
196
  else if (dialog.open) {
136
197
  setIsSlideIn(false);
137
198
  const timer = setTimeout(() => {
138
- dialog.close();
199
+ closeAndRestore();
139
200
  setSnapHeight(null);
140
201
  setDragHeight(null);
141
202
  }, ANIMATION_DURATION);
142
203
  return () => clearTimeout(timer);
143
204
  }
144
- }, [open]);
205
+ }, [open, closeAndRestore]);
206
+ // Unmounting while open removes the <dialog>; still put the page back
207
+ (0, react_1.useEffect)(() => closeAndRestore, [closeAndRestore]);
145
208
  // Handle escape key
146
209
  (0, react_1.useEffect)(() => {
147
210
  const dialog = dialogRef.current;
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../../components/Dialog/Dialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../../components/Dialog/Dialog.tsx"],"names":[],"mappings":"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"}
@@ -192,6 +192,9 @@
192
192
  flex-shrink: 0;
193
193
  width: var(--size-2xl, 2rem);
194
194
  height: var(--size-2xl, 2rem);
195
+ /* Bleed into the field's vertical padding: keeps the full hit area without
196
+ making a password or clearable field taller than a plain one. */
197
+ margin-block: calc(var(--input-field-padding-y) * -1);
195
198
  padding: 0;
196
199
  border: none;
197
200
  background: transparent;
@@ -199,6 +202,24 @@
199
202
  cursor: pointer;
200
203
  }
201
204
 
205
+ /* The outermost button bleeds into the right padding by the same amount, so
206
+ its glyph sits as close to the edge as it does to the top and bottom. */
207
+ .muka-input__clear:last-child,
208
+ .muka-input__reveal:last-child {
209
+ margin-inline-end: calc(var(--input-field-padding-y) * -1);
210
+ }
211
+
212
+ /* md: match the right gap to the gap above and below the vertically centred
213
+ button exactly, i.e. (field height − borders − button) / 2. Holds in the
214
+ focus/error state too, where border and padding trade 1px. */
215
+ .muka-input__field--md .muka-input__clear:last-child,
216
+ .muka-input__field--md .muka-input__reveal:last-child {
217
+ margin-inline-end: calc(
218
+ (var(--input-field-height-default) - 2 * var(--border-width-regular) - var(--size-2xl, 2rem)) / 2
219
+ - var(--input-field-padding-x)
220
+ );
221
+ }
222
+
202
223
  .muka-input__field--sm .muka-input__clear,
203
224
  .muka-input__field--sm .muka-input__reveal {
204
225
  width: var(--size-xl, 1.5rem);
@@ -0,0 +1,180 @@
1
+ /* MediaViewer Component Styles - Using Muka Design Tokens */
2
+
3
+ /* ─── Native dialog: full viewport ────────────────────── */
4
+ .muka-media-viewer {
5
+ position: fixed;
6
+ inset: 0;
7
+ width: 100%;
8
+ height: 100%;
9
+ max-width: none;
10
+ max-height: none;
11
+ margin: 0;
12
+ padding: 0;
13
+ border: none;
14
+ display: flex;
15
+ flex-direction: column;
16
+ overflow: hidden;
17
+ overscroll-behavior: contain;
18
+ color: var(--color-text-default-default);
19
+ background-color: var(--color-black-alpha-12);
20
+ animation: muka-media-viewer-in var(--motion-duration-component) var(--motion-easing-enter);
21
+ }
22
+
23
+ .muka-media-viewer:not([open]) {
24
+ display: none;
25
+ }
26
+
27
+ .muka-media-viewer::backdrop {
28
+ background-color: var(--color-black-alpha-12);
29
+ }
30
+
31
+ @keyframes muka-media-viewer-in {
32
+ from {
33
+ opacity: 0;
34
+ }
35
+ to {
36
+ opacity: 1;
37
+ }
38
+ }
39
+
40
+ /* ─── Chrome: TopBar and footer sit on a surface ──────── */
41
+ .muka-media-viewer__topbar {
42
+ flex-shrink: 0;
43
+ background-color: var(--color-surface-level3);
44
+ }
45
+
46
+ .muka-media-viewer__live {
47
+ position: absolute;
48
+ width: 1px;
49
+ height: 1px;
50
+ padding: 0;
51
+ margin: -1px;
52
+ overflow: hidden;
53
+ clip: rect(0, 0, 0, 0);
54
+ white-space: nowrap;
55
+ border: 0;
56
+ }
57
+
58
+ /* ─── Stage: the dark area the images slide across ────── */
59
+ .muka-media-viewer__stage {
60
+ position: relative;
61
+ flex: 1 1 auto;
62
+ min-height: 0;
63
+ overflow: hidden;
64
+ /* Gestures are handled in JS: no browser panning or pinch on the stage. */
65
+ touch-action: none;
66
+ user-select: none;
67
+ -webkit-user-select: none;
68
+ }
69
+
70
+ .muka-media-viewer__slide {
71
+ position: absolute;
72
+ inset: 0;
73
+ display: flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ padding: var(--spacing-4);
77
+ transition: transform var(--motion-duration-component) var(--motion-easing-default);
78
+ will-change: transform;
79
+ }
80
+
81
+ /* While a finger drags, the image follows it without easing. */
82
+ .muka-media-viewer--dragging .muka-media-viewer__slide {
83
+ transition: none;
84
+ }
85
+
86
+ .muka-media-viewer__image {
87
+ display: block;
88
+ max-width: 100%;
89
+ max-height: 100%;
90
+ object-fit: contain;
91
+ pointer-events: none;
92
+ }
93
+
94
+ /* ─── Previous / next: devices that can hover ─────────── */
95
+ .muka-media-viewer__nav {
96
+ position: absolute;
97
+ top: 50%;
98
+ display: none;
99
+ transform: translateY(-50%);
100
+ opacity: 0;
101
+ transition: opacity var(--motion-duration-micro) var(--motion-easing-enter);
102
+ }
103
+
104
+ .muka-media-viewer__nav--previous {
105
+ left: var(--spacing-4);
106
+ }
107
+
108
+ .muka-media-viewer__nav--next {
109
+ right: var(--spacing-4);
110
+ }
111
+
112
+ @media (hover: hover) and (pointer: fine) {
113
+ .muka-media-viewer__nav {
114
+ display: block;
115
+ }
116
+
117
+ .muka-media-viewer__stage:hover .muka-media-viewer__nav,
118
+ .muka-media-viewer__nav:focus-within {
119
+ opacity: 1;
120
+ }
121
+ }
122
+
123
+ /* ─── Footer: caption, meta and actions ───────────────── */
124
+ .muka-media-viewer__footer {
125
+ flex-shrink: 0;
126
+ display: flex;
127
+ flex-direction: column;
128
+ gap: var(--spacing-3);
129
+ padding: var(--spacing-4);
130
+ padding-bottom: calc(var(--spacing-4) + env(safe-area-inset-bottom, 0px));
131
+ background-color: var(--color-surface-level3);
132
+ }
133
+
134
+ .muka-media-viewer__details {
135
+ display: flex;
136
+ align-items: flex-start;
137
+ justify-content: space-between;
138
+ gap: var(--spacing-3);
139
+ }
140
+
141
+ .muka-media-viewer__caption {
142
+ min-width: 0;
143
+ color: var(--color-text-subtle-default);
144
+ font-family: var(--text-body-sm-regular-fontFamily);
145
+ font-size: var(--text-body-sm-regular-fontSize);
146
+ font-weight: var(--text-body-sm-regular-fontWeight);
147
+ line-height: var(--text-body-sm-regular-lineHeight);
148
+ overflow-wrap: anywhere;
149
+ }
150
+
151
+ .muka-media-viewer__meta {
152
+ flex-shrink: 0;
153
+ }
154
+
155
+ .muka-media-viewer__actions {
156
+ display: flex;
157
+ flex-wrap: wrap;
158
+ gap: var(--spacing-2);
159
+ }
160
+
161
+ /* Mobile: actions stack full width, like Dialog footers. */
162
+ @media (max-width: 1023px) {
163
+ .muka-media-viewer__actions {
164
+ flex-direction: column;
165
+ }
166
+
167
+ .muka-media-viewer__actions > * {
168
+ width: 100%;
169
+ }
170
+ }
171
+
172
+ /* ─── Reduced motion ──────────────────────────────────── */
173
+ @media (prefers-reduced-motion: reduce) {
174
+ .muka-media-viewer,
175
+ .muka-media-viewer__slide,
176
+ .muka-media-viewer__nav {
177
+ animation: none;
178
+ transition: none;
179
+ }
180
+ }