fix: stack bitrate slider and input vertically for responsive layout
This commit is contained in:
@@ -176,22 +176,22 @@ export function StreamingPanel() {
|
|||||||
<div className="text-xs text-txt-secondary mb-1.5">
|
<div className="text-xs text-txt-secondary mb-1.5">
|
||||||
Bitrate Range
|
Bitrate Range
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-start gap-3">
|
||||||
<div className="flex-1">
|
<div className="flex-1 space-y-1.5">
|
||||||
<label className="text-[11px] text-txt-tertiary mb-1 block">Min</label>
|
<label className="text-[11px] text-txt-tertiary block">Min</label>
|
||||||
<div className="flex items-center gap-2">
|
<input
|
||||||
<input
|
type="range"
|
||||||
type="range"
|
min={100}
|
||||||
min={100}
|
max={Math.min(draft.maxBitrateKbps - 500, 100000)}
|
||||||
max={Math.min(draft.maxBitrateKbps - 500, 100000)}
|
step={100}
|
||||||
step={100}
|
value={Math.min(draft.minBitrateKbps, 100000)}
|
||||||
value={Math.min(draft.minBitrateKbps, 100000)}
|
onChange={(e) => setDraft({ ...draft, minBitrateKbps: Number(e.target.value) })}
|
||||||
onChange={(e) => setDraft({ ...draft, minBitrateKbps: Number(e.target.value) })}
|
className="w-full h-1.5 accent-accent-primary cursor-pointer appearance-none bg-interactive-muted rounded-full
|
||||||
className="flex-1 h-1.5 accent-accent-primary cursor-pointer appearance-none bg-interactive-muted rounded-full
|
[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3
|
||||||
[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3
|
[&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-md
|
||||||
[&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-md
|
[&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-0"
|
||||||
[&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-0"
|
/>
|
||||||
/>
|
<div className="flex items-center gap-1.5">
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
min={100}
|
min={100}
|
||||||
@@ -202,26 +202,26 @@ export function StreamingPanel() {
|
|||||||
const v = Number(e.target.value);
|
const v = Number(e.target.value);
|
||||||
if (v >= 100 && v <= 1000000) setDraft({ ...draft, minBitrateKbps: v });
|
if (v >= 100 && v <= 1000000) setDraft({ ...draft, minBitrateKbps: v });
|
||||||
}}
|
}}
|
||||||
className="input-standard w-24 px-2 py-1 text-xs"
|
className="input-standard w-20 px-2 py-0.5 text-xs"
|
||||||
/>
|
/>
|
||||||
|
<span className="text-[11px] text-txt-tertiary">{formatKbps(draft.minBitrateKbps)}</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-[11px] text-txt-secondary mt-0.5">{formatKbps(draft.minBitrateKbps)}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1">
|
<div className="flex-1 space-y-1.5">
|
||||||
<label className="text-[11px] text-txt-tertiary mb-1 block">Max</label>
|
<label className="text-[11px] text-txt-tertiary block">Max</label>
|
||||||
<div className="flex items-center gap-2">
|
<input
|
||||||
<input
|
type="range"
|
||||||
type="range"
|
min={draft.minBitrateKbps + 500}
|
||||||
min={draft.minBitrateKbps + 500}
|
max={100000}
|
||||||
max={100000}
|
step={500}
|
||||||
step={500}
|
value={Math.min(draft.maxBitrateKbps, 100000)}
|
||||||
value={Math.min(draft.maxBitrateKbps, 100000)}
|
onChange={(e) => setDraft({ ...draft, maxBitrateKbps: Number(e.target.value) })}
|
||||||
onChange={(e) => setDraft({ ...draft, maxBitrateKbps: Number(e.target.value) })}
|
className="w-full h-1.5 accent-accent-primary cursor-pointer appearance-none bg-interactive-muted rounded-full
|
||||||
className="flex-1 h-1.5 accent-accent-primary cursor-pointer appearance-none bg-interactive-muted rounded-full
|
[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3
|
||||||
[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3
|
[&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-md
|
||||||
[&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-md
|
[&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-0"
|
||||||
[&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-0"
|
/>
|
||||||
/>
|
<div className="flex items-center gap-1.5">
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
min={draft.minBitrateKbps + 500}
|
min={draft.minBitrateKbps + 500}
|
||||||
@@ -232,10 +232,10 @@ export function StreamingPanel() {
|
|||||||
const v = Number(e.target.value);
|
const v = Number(e.target.value);
|
||||||
if (v >= 500 && v <= 1000000) setDraft({ ...draft, maxBitrateKbps: v });
|
if (v >= 500 && v <= 1000000) setDraft({ ...draft, maxBitrateKbps: v });
|
||||||
}}
|
}}
|
||||||
className="input-standard w-24 px-2 py-1 text-xs"
|
className="input-standard w-20 px-2 py-0.5 text-xs"
|
||||||
/>
|
/>
|
||||||
|
<span className="text-[11px] text-txt-tertiary">{formatKbps(draft.maxBitrateKbps)}</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-[11px] text-txt-secondary mt-0.5">{formatKbps(draft.maxBitrateKbps)}</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user