feat(frontend): unified reader settings bar with theme linkage (B0)

This commit is contained in:
2026-09-16 15:20:18 +08:00
parent 8283d66db6
commit 6aefe62a9f
3 changed files with 192 additions and 1 deletions
+4 -1
View File
@@ -14,6 +14,8 @@ function Slider({
() => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),
[value, defaultValue, min, max],
);
// radix 的可访问 slider 角色在 Thumb 上,aria-label 提到 Root 传不进去——改下沉到每个 Thumb。
const { "aria-label": ariaLabel, ...rootProps } = props;
return (
<SliderPrimitive.Root
data-slot="slider"
@@ -25,7 +27,7 @@ function Slider({
"relative flex w-full touch-none select-none items-center data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
className,
)}
{...props}
{...rootProps}
>
<SliderPrimitive.Track
data-slot="slider-track"
@@ -40,6 +42,7 @@ function Slider({
<SliderPrimitive.Thumb
key={i}
data-slot="slider-thumb"
aria-label={Array.isArray(ariaLabel) ? ariaLabel[i] : ariaLabel}
className="block size-4 shrink-0 rounded-full border border-primary/50 bg-background shadow transition-[color,box-shadow] hover:ring-4 hover:ring-ring/30 focus-visible:ring-4 focus-visible:ring-ring/50 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
/>
))}