fix: fill the RadioGroup indicator's own SVG path instead of faking it with a background

The checked-state dot used bg-primary-foreground behind an unfilled,
stroke-only CircleIcon (fill="none" by default) -- relying on the
stroke and background happening to share the same color to look like
a solid dot. That's fragile and, combined with a size-2 box (50% of
the outer ring), reads as an oversized hole rather than a normal radio
dot. Fill the icon's own path directly (fill-primary-foreground) and
size it down to a more typical proportion (size-1.5, ~40% of the
ring). Verified centered and correctly proportioned in both themes via
headless Chromium (pixel-precise marker overlay + zoomed screenshots).
This commit is contained in:
Matthew McPeak 2026-07-14 10:39:18 -04:00
parent 8cee97614d
commit a49f216c43

View file

@ -54,7 +54,7 @@ onBeforeUnmount(() => {
>
<span v-if="isChecked" data-slot="radio-group-indicator" class="flex size-4 items-center justify-center">
<slot>
<CircleIcon class="bg-primary-foreground absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full" />
<CircleIcon class="fill-primary-foreground text-primary-foreground absolute top-1/2 left-1/2 size-1.5 -translate-x-1/2 -translate-y-1/2" />
</slot>
</span>
</button>