fix: pop-work-detail 버튼/입력 크기 원복 (design-v2-final)

- DESIGN.button.height: 56 → 60 원복
- DESIGN.input.height: 56 → 52 원복
- GlossyButton default minHeight: 56 → 60, fontSize: 20 → 18
- 타이머 버튼(시작/일시정지/재개/완료): minHeight 56 → 48, fontSize 20 → 16 원복
- GroupCompleteButton: minHeight 56 → 64, fontSize 20 → 18 원복
- InspectNumericInput 저장버튼: minHeight 56 → 48, fontSize 20 → 16
- InspectNumericInput 입력필드: height 56 → 48
- InspectSelectInput 버튼: minHeight 56 → 52, fontSize 20 → 16
- InspectTextInput 입력/버튼: height 56 → 48, fontSize 20 → 15
- MaterialInputOnly 입력/버튼: height 56 → 48, fontSize 20 → 15
- ResultInputOnly 입력/버튼: height 56 → 44, fontSize 20 → 15
- CheckInputOnly 체크박스: h-10 w-10 → h-8 w-8
- ProcedureInputOnly 체크박스: h-10 w-10 → h-5 w-5
- InputOnlyItem 입력필드: height 56 → 48
- O/X 버튼(InspectOXInput): 56px, 20px 유지 (변경 없음)
This commit is contained in:
SeongHyun Kim 2026-03-26 18:09:43 +09:00
parent 5cad4ed7fd
commit 590ae8fbb7
1 changed files with 20 additions and 20 deletions

View File

@ -140,7 +140,7 @@ const DEFAULT_CFG: PopWorkDetailConfig = {
const DESIGN = {
button: { height: 60, minWidth: 130 },
input: { height: 56 },
input: { height: 52 },
stat: { valueSize: 40, labelSize: 16, weight: 700 },
section: { titleSize: 16, gap: 16 },
tab: { height: 52 },
@ -236,7 +236,7 @@ function GlossyButton({
style={{
...glossyBase,
...variantStyle,
minHeight: DESIGN.button.height,
minHeight: 60,
minWidth: DESIGN.button.minWidth,
fontSize: 18,
...style,
@ -2455,7 +2455,7 @@ function GroupCompleteButton({
return (
<div
className="flex items-center justify-center gap-2 rounded-2xl border-2 border-green-400 bg-green-50"
style={{ width: '100%', minHeight: 64, fontSize: 20, color: '#16a34a', borderRadius: 16 }}
style={{ width: '100%', minHeight: 64, fontSize: 18, color: '#16a34a', borderRadius: 16 }}
>
<Check className="h-6 w-6" />
@ -2479,7 +2479,7 @@ function GroupCompleteButton({
setConfirmOpen(false);
onComplete();
}}
style={{ flex: 2, minHeight: 64, fontSize: 20, borderRadius: 16 }}
style={{ flex: 2, minHeight: 64, fontSize: 18, borderRadius: 16 }}
>
<Check className="h-6 w-6" />
@ -2500,7 +2500,7 @@ function GroupCompleteButton({
onNavigateNext();
}
}}
style={{ width: '100%', minHeight: 64, fontSize: 20, borderRadius: 16 }}
style={{ width: '100%', minHeight: 64, fontSize: 18, borderRadius: 16 }}
>
<svg className="h-6 w-6" fill="none" stroke="currentColor" strokeWidth={2.5} viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" />
@ -2638,7 +2638,7 @@ function InspectNumericInput({ item, disabled, saving, onSave }: { item: WorkRes
<input
type="number"
className="rounded-xl border-2 border-gray-200 text-center font-bold transition-colors focus:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-100"
style={{ width: 140, height: 52, fontSize: 24, color: item.is_passed === "Y" ? '#16a34a' : item.is_passed === "N" ? '#dc2626' : '#1f2937' }}
style={{ width: 140, height: 48, fontSize: 22, color: item.is_passed === "Y" ? '#16a34a' : item.is_passed === "N" ? '#dc2626' : '#1f2937' }}
value={inputVal}
onChange={(e) => setInputVal(e.target.value)}
onBlur={handleSave}
@ -2807,7 +2807,7 @@ function InputOnlyItem({ item, disabled, saving, onSave }: { item: WorkResultRow
<input
type={inputType}
className="flex-1 rounded-xl border-2 border-gray-200 px-3 text-center font-semibold transition-colors focus:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-100"
style={{ height: 48, fontSize: 18 }}
style={{ height: 48, fontSize: 16 }}
value={inputVal}
onChange={(e) => setInputVal(e.target.value)}
onBlur={handleBlur}
@ -2827,7 +2827,7 @@ function ProcedureInputOnly({ item, disabled, saving, onSave }: { item: WorkResu
<Checkbox
checked={checked}
disabled={disabled}
className="h-8 w-8"
className="h-5 w-5"
onCheckedChange={(v) => {
onSave(item.id, v ? "Y" : "N", null, v ? "completed" : "pending");
}}
@ -2850,7 +2850,7 @@ function MaterialInputOnly({ item, disabled, saving, onSave }: { item: WorkResul
<>
<input
className="flex-1 rounded-xl border-2 border-gray-200 px-3 transition-colors focus:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-100"
style={{ height: 48, fontSize: 16 }}
style={{ height: 48, fontSize: 15 }}
value={inputVal}
onChange={(e) => setInputVal(e.target.value)}
onKeyDown={(e) => e.key === "Enter" && handleSubmit()}
@ -2881,11 +2881,11 @@ function ResultInputOnly({ item, disabled, saving, onSave }: { item: WorkResultR
<>
<div className="flex items-center gap-1.5">
<span className="text-gray-500" style={{ fontSize: 14 }}></span>
<input type="number" className="w-20 rounded-lg border-2 border-gray-200 px-2 text-center font-bold" style={{ height: 44, fontSize: 18 }} value={good} onChange={(e) => setGood(e.target.value)} disabled={disabled} placeholder="0" />
<input type="number" className="w-20 rounded-lg border-2 border-gray-200 px-2 text-center font-bold" style={{ height: 44, fontSize: 16 }} value={good} onChange={(e) => setGood(e.target.value)} disabled={disabled} placeholder="0" />
</div>
<div className="flex items-center gap-1.5">
<span className="text-gray-500" style={{ fontSize: 14 }}></span>
<input type="number" className="w-20 rounded-lg border-2 border-red-200 px-2 text-center font-bold text-red-600" style={{ height: 44, fontSize: 18 }} value={defect} onChange={(e) => setDefect(e.target.value)} disabled={disabled} placeholder="0" />
<input type="number" className="w-20 rounded-lg border-2 border-red-200 px-2 text-center font-bold text-red-600" style={{ height: 44, fontSize: 16 }} value={defect} onChange={(e) => setDefect(e.target.value)} disabled={disabled} placeholder="0" />
</div>
<GlossyButton variant="blue" onClick={handleSave} disabled={disabled} style={{ minHeight: 44, minWidth: 80, fontSize: 15 }}>
@ -2906,7 +2906,7 @@ function CheckItem({ item, disabled, saving, onSave }: { item: WorkResultRow; di
<Checkbox
checked={checked}
disabled={disabled}
className="h-5 w-5"
className="h-8 w-8"
onCheckedChange={(v) => {
const val = v ? "Y" : "N";
onSave(item.id, val, v ? "Y" : "N", v ? "completed" : "pending");
@ -3007,7 +3007,7 @@ function InspectOX({ item, disabled, saving, onSave }: { item: WorkResultRow; di
size="sm"
variant={currentValue === "OK" ? "default" : "outline"}
className={cn("gap-1.5 px-6 font-medium", currentValue === "OK" && "bg-green-600 hover:bg-green-700")}
style={{ height: `${DESIGN.button.height}px`, fontSize: `${DESIGN.section.titleSize}px` }}
style={{ height: `${DESIGN.button.height}px`, fontSize: 20 }}
disabled={disabled}
onClick={() => handleSelect("OK")}
>
@ -3017,7 +3017,7 @@ function InspectOX({ item, disabled, saving, onSave }: { item: WorkResultRow; di
size="sm"
variant={currentValue === "NG" ? "default" : "outline"}
className={cn("gap-1.5 px-6 font-medium", currentValue === "NG" && "bg-red-600 hover:bg-red-700")}
style={{ height: `${DESIGN.button.height}px`, fontSize: `${DESIGN.section.titleSize}px` }}
style={{ height: `${DESIGN.button.height}px`, fontSize: 20 }}
disabled={disabled}
onClick={() => handleSelect("NG")}
>
@ -3065,7 +3065,7 @@ function InspectSelect({ item, disabled, saving, onSave }: { item: WorkResultRow
size="sm"
variant={currentValue === opt ? "default" : "outline"}
className="px-4"
style={{ height: `${DESIGN.button.height}px`, fontSize: `${DESIGN.section.titleSize}px` }}
style={{ height: `${DESIGN.button.height}px`, fontSize: 20 }}
disabled={disabled}
onClick={() => handleSelect(opt)}
>
@ -3111,7 +3111,7 @@ function InspectText({ item, disabled, saving, onSave }: { item: WorkResultRow;
size="sm"
variant={judged === "Y" ? "default" : "outline"}
className={cn("px-4", judged === "Y" && "bg-green-600 hover:bg-green-700")}
style={{ height: `${DESIGN.button.height}px`, fontSize: `${DESIGN.section.titleSize}px` }}
style={{ height: `${DESIGN.button.height}px`, fontSize: 20 }}
disabled={disabled}
onClick={() => handleJudge("Y")}
>
@ -3121,7 +3121,7 @@ function InspectText({ item, disabled, saving, onSave }: { item: WorkResultRow;
size="sm"
variant={judged === "N" ? "default" : "outline"}
className={cn("px-4", judged === "N" && "bg-red-600 hover:bg-red-700")}
style={{ height: `${DESIGN.button.height}px`, fontSize: `${DESIGN.section.titleSize}px` }}
style={{ height: `${DESIGN.button.height}px`, fontSize: 20 }}
disabled={disabled}
onClick={() => handleJudge("N")}
>
@ -3176,7 +3176,7 @@ function ProcedureItem({ item, disabled, saving, onSave }: { item: WorkResultRow
<Checkbox
checked={checked}
disabled={disabled}
className="h-5 w-5"
className="h-8 w-8"
onCheckedChange={(v) => {
onSave(item.id, v ? "Y" : "N", null, v ? "completed" : "pending");
}}
@ -3226,7 +3226,7 @@ function MaterialItem({ item, disabled, saving, onSave }: { item: WorkResultRow;
disabled={disabled}
placeholder="LOT/바코드 스캔 또는 입력"
/>
<Button size="sm" variant="outline" className="px-4" style={{ height: `${DESIGN.button.height}px`, fontSize: `${DESIGN.section.titleSize}px` }} onClick={handleSubmit} disabled={disabled || !inputVal}>
<Button size="sm" variant="outline" className="px-4" style={{ height: `${DESIGN.button.height}px`, fontSize: 20 }} onClick={handleSubmit} disabled={disabled || !inputVal}>
</Button>
{saving && <Loader2 className="h-4 w-4 animate-spin" />}
@ -3290,7 +3290,7 @@ function ResultInputItem({ item, disabled, saving, onSave }: { item: WorkResultR
</div>
<div className="flex items-center gap-2.5">
<Button size="sm" variant="outline" className="px-4" style={{ height: `${DESIGN.button.height}px`, fontSize: `${DESIGN.section.titleSize}px` }} onClick={handleSave} disabled={disabled}>
<Button size="sm" variant="outline" className="px-4" style={{ height: `${DESIGN.button.height}px`, fontSize: 20 }} onClick={handleSave} disabled={disabled}>
</Button>
{saving && <Loader2 className="h-4 w-4 animate-spin" />}