diff --git a/src/uix/eidos/components/qr-code/qr-code.svelte b/src/uix/eidos/components/qr-code/qr-code.svelte index 306631be0..3adb9a5fc 100644 --- a/src/uix/eidos/components/qr-code/qr-code.svelte +++ b/src/uix/eidos/components/qr-code/qr-code.svelte @@ -28,8 +28,17 @@ const eidos = ActiveEidos.require(); const resolvedSize = $derived(eidos.resolve(size, 'md')); + // Literal map (not interpolated) so each --qr-code-size-* token name appears + // verbatim in the source — the recipe contract scans for exact token names. + const SIZE_VARS = { + xs: 'var(--qr-code-size-xs)', + sm: 'var(--qr-code-size-sm)', + md: 'var(--qr-code-size-md)', + lg: 'var(--qr-code-size-lg)', + xl: 'var(--qr-code-size-xl)' + } as const; const px = $derived( - typeof resolvedSize === 'number' ? `${resolvedSize}px` : `var(--qr-code-size-${resolvedSize})` + typeof resolvedSize === 'number' ? `${resolvedSize}px` : SIZE_VARS[resolvedSize] ); // A logo needs max redundancy + a cleared centre to stay scannable.