mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
fix(studio): give flat-inspector value fields a resting-state input affordance
Every editable value in the flat inspector (FlatRow's CommitField, the Motion Timing row's Start/End/Duration cells, and every raw <select> — Style/Text dropdowns, Grade's Custom LUT and Copy-grade-to scope) rendered its underline/border only on hover (`border-transparent group-hover:border-...` or no border at all). At rest a value looked like plain static text, with nothing distinguishing it from a label — testers reported not being able to tell which fields were editable. Give each a dim-but-visible resting border (`border-panel-border-input/50`, or `border-panel-accent/30` for the explicitCustom tier) that brightens on hover/focus, instead of a fully transparent one. Purely visual — no behavior change. Full studio suite (2641 tests) green; typecheck/oxlint/oxfmt clean.
This commit is contained in:
@@ -377,7 +377,7 @@ export function FlatColorGradingSection({
|
|||||||
track("select", "Custom LUT");
|
track("select", "Custom LUT");
|
||||||
applyLut(src || null, src && lut?.src === src ? lut.intensity : 1);
|
applyLut(src || null, src && lut?.src === src ? lut.intensity : 1);
|
||||||
}}
|
}}
|
||||||
className="bg-transparent font-mono text-[10px] text-panel-text-3 outline-none"
|
className="border-b border-panel-border-input/50 bg-transparent font-mono text-[10px] text-panel-text-3 outline-none hover:border-panel-border-input"
|
||||||
>
|
>
|
||||||
<option value="">None</option>
|
<option value="">None</option>
|
||||||
{lutAssets.map((asset) => (
|
{lutAssets.map((asset) => (
|
||||||
@@ -545,7 +545,7 @@ export function FlatColorGradingSection({
|
|||||||
onSetApplyScope(e.target.value as "source-file" | "project");
|
onSetApplyScope(e.target.value as "source-file" | "project");
|
||||||
}}
|
}}
|
||||||
disabled={applyBusy}
|
disabled={applyBusy}
|
||||||
className="bg-transparent font-mono text-[11px] text-panel-text-0 outline-none disabled:opacity-50"
|
className="border-b border-panel-border-input/50 bg-transparent font-mono text-[11px] text-panel-text-0 outline-none hover:border-panel-border-input disabled:opacity-50"
|
||||||
>
|
>
|
||||||
<option value="source-file">Current file media</option>
|
<option value="source-file">Current file media</option>
|
||||||
<option value="project">All project media</option>
|
<option value="project">All project media</option>
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ export function FlatTimingRow({
|
|||||||
const cell = (label: string, value: string, onCommit: (next: string) => void) => (
|
const cell = (label: string, value: string, onCommit: (next: string) => void) => (
|
||||||
<div className="grid gap-px">
|
<div className="grid gap-px">
|
||||||
<span className="text-[9px] text-panel-text-4">{label}</span>
|
<span className="text-[9px] text-panel-text-4">{label}</span>
|
||||||
<span className="border-b border-transparent font-mono text-[11px] text-panel-text-0 hover:border-panel-border-input">
|
<span className="border-b border-panel-border-input/50 font-mono text-[11px] text-panel-text-0 hover:border-panel-border-input">
|
||||||
<CommitField
|
<CommitField
|
||||||
value={value}
|
value={value}
|
||||||
onCommit={(next) => {
|
onCommit={(next) => {
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ export function FlatRow({
|
|||||||
data-flat-row-value="true"
|
data-flat-row-value="true"
|
||||||
className={`min-w-0 border-b pb-px font-mono text-[11px] ${VALUE_TIER_VALUE_CLASS[tier]} ${
|
className={`min-w-0 border-b pb-px font-mono text-[11px] ${VALUE_TIER_VALUE_CLASS[tier]} ${
|
||||||
tier === "explicitCustom"
|
tier === "explicitCustom"
|
||||||
? "border-transparent group-hover:border-panel-accent/35"
|
? "border-panel-accent/30 group-hover:border-panel-accent/70"
|
||||||
: "border-transparent group-hover:border-panel-border-input"
|
: "border-panel-border-input/50 group-hover:border-panel-border-input"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<CommitField
|
<CommitField
|
||||||
|
|||||||
@@ -53,7 +53,13 @@ export function FlatSelectRow({
|
|||||||
<div className="group flex min-h-[30px] items-center justify-between">
|
<div className="group flex min-h-[30px] items-center justify-between">
|
||||||
<span className={`text-[11px] ${VALUE_TIER_LABEL_CLASS[tier]}`}>{label}</span>
|
<span className={`text-[11px] ${VALUE_TIER_LABEL_CLASS[tier]}`}>{label}</span>
|
||||||
<span className="flex items-center gap-2">
|
<span className="flex items-center gap-2">
|
||||||
<label className="flex items-center gap-1.5">
|
<label
|
||||||
|
className={`flex items-center gap-1.5 border-b pb-px ${
|
||||||
|
tier === "explicitCustom"
|
||||||
|
? "border-panel-accent/30 group-hover:border-panel-accent/70"
|
||||||
|
: "border-panel-border-input/50 group-hover:border-panel-border-input"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
<select
|
<select
|
||||||
value={value}
|
value={value}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ function FlatTextFieldEditor({
|
|||||||
>
|
>
|
||||||
Weight
|
Weight
|
||||||
</span>
|
</span>
|
||||||
<label className="flex items-center gap-1.5">
|
<label className="flex items-center gap-1.5 border-b border-panel-border-input/50 pb-px hover:border-panel-border-input">
|
||||||
<select
|
<select
|
||||||
value={weight}
|
value={weight}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user