fix: uniform 2-col classification grid and fix effect profile label overflow
- Classification: replace fragmented layout (full-width + 3-col + full-width) with a single 2-column grid; Category spans full width via col-span-2 - Effect profile: replace flex + fixed w-40 label with CSS grid using minmax(7rem,10rem) label column to prevent overflow at narrow viewports Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
c09acc7c81
commit
c132bc836f
1 changed files with 30 additions and 30 deletions
|
|
@ -245,21 +245,21 @@
|
||||||
<!-- ── Classification ────────────────────────────────────────────────────── -->
|
<!-- ── Classification ────────────────────────────────────────────────────── -->
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader><CardTitle>Classification</CardTitle></CardHeader>
|
<CardHeader><CardTitle>Classification</CardTitle></CardHeader>
|
||||||
<CardContent class="space-y-4">
|
<CardContent>
|
||||||
<div class="space-y-2">
|
<div class="grid grid-cols-2 gap-4">
|
||||||
<Label>Category *</Label>
|
<div class="col-span-2 space-y-2">
|
||||||
<input type="hidden" name="category" value={category} />
|
<Label>Category *</Label>
|
||||||
<Select type="single" value={category} onValueChange={(v) => (category = v)}>
|
<input type="hidden" name="category" value={category} />
|
||||||
<SelectTrigger>{category ? lbl(category) : 'Select category'}</SelectTrigger>
|
<Select type="single" value={category} onValueChange={(v) => (category = v)}>
|
||||||
<SelectContent>
|
<SelectTrigger>{category ? lbl(category) : 'Select category'}</SelectTrigger>
|
||||||
{#each categories as cat}
|
<SelectContent>
|
||||||
<SelectItem value={cat}>{lbl(cat)}</SelectItem>
|
{#each categories as cat}
|
||||||
{/each}
|
<SelectItem value={cat}>{lbl(cat)}</SelectItem>
|
||||||
</SelectContent>
|
{/each}
|
||||||
</Select>
|
</SelectContent>
|
||||||
</div>
|
</Select>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="grid grid-cols-3 gap-4">
|
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<Label>Time *</Label>
|
<Label>Time *</Label>
|
||||||
<input type="hidden" name="recommended_time" value={recommendedTime} />
|
<input type="hidden" name="recommended_time" value={recommendedTime} />
|
||||||
|
|
@ -299,19 +299,19 @@
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<Label>Absorption speed</Label>
|
<Label>Absorption speed</Label>
|
||||||
<input type="hidden" name="absorption_speed" value={absorptionSpeed} />
|
<input type="hidden" name="absorption_speed" value={absorptionSpeed} />
|
||||||
<Select type="single" value={absorptionSpeed} onValueChange={(v) => (absorptionSpeed = v)}>
|
<Select type="single" value={absorptionSpeed} onValueChange={(v) => (absorptionSpeed = v)}>
|
||||||
<SelectTrigger>{absorptionSpeed ? lbl(absorptionSpeed) : 'Select speed'}</SelectTrigger>
|
<SelectTrigger>{absorptionSpeed ? lbl(absorptionSpeed) : 'Select speed'}</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
{#each absorptionSpeeds as s}
|
{#each absorptionSpeeds as s}
|
||||||
<SelectItem value={s}>{lbl(s)}</SelectItem>
|
<SelectItem value={s}>{lbl(s)}</SelectItem>
|
||||||
{/each}
|
{/each}
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
@ -473,8 +473,8 @@
|
||||||
<div class="grid grid-cols-1 gap-3 sm:grid-cols-2">
|
<div class="grid grid-cols-1 gap-3 sm:grid-cols-2">
|
||||||
{#each effectFields as field}
|
{#each effectFields as field}
|
||||||
{@const key = field.key as keyof typeof effectValues}
|
{@const key = field.key as keyof typeof effectValues}
|
||||||
<div class="flex items-center gap-3">
|
<div class="grid grid-cols-[minmax(7rem,10rem)_1fr_1.25rem] items-center gap-3">
|
||||||
<span class="w-40 shrink-0 text-xs text-muted-foreground">{field.label}</span>
|
<span class="text-xs text-muted-foreground">{field.label}</span>
|
||||||
<input
|
<input
|
||||||
type="range"
|
type="range"
|
||||||
name="effect_{field.key}"
|
name="effect_{field.key}"
|
||||||
|
|
@ -482,9 +482,9 @@
|
||||||
max="5"
|
max="5"
|
||||||
step="1"
|
step="1"
|
||||||
bind:value={effectValues[key]}
|
bind:value={effectValues[key]}
|
||||||
class="flex-1 accent-primary"
|
class="accent-primary"
|
||||||
/>
|
/>
|
||||||
<span class="w-4 text-center font-mono text-sm">{effectValues[key]}</span>
|
<span class="text-center font-mono text-sm">{effectValues[key]}</span>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue