feat(ai-character): 커뮤니티 생성 미디어 흐름 개선
This commit is contained in:
14
DESIGN.md
14
DESIGN.md
@@ -146,9 +146,17 @@ Primary font stack: `Pretendard`, `Noto Sans KR`, `Apple SD Gothic Neo`, `system
|
||||
|
||||
### FileField
|
||||
|
||||
- Structure: controlled `File | null` field with visible label, native file input, accept guidance, selected filename, and clear button.
|
||||
- Variants: domain-neutral only; allowed extensions, MIME, and max bytes are injected by caller policy.
|
||||
- Accessibility: label targets the input; description, accept guidance, and error are connected with `aria-describedby`; clear is a native button.
|
||||
- Structure: controlled `File | null` field with visible label, native file input, accept guidance, selected filename, clear button, and an actual upload preview when the controlled value is an image File.
|
||||
- Variants: image values render an object-contain preview inside a bounded tokenized surface; non-image values retain the filename-only layout. Allowed extensions, MIME, and max bytes are injected by caller policy.
|
||||
- Lifecycle: the field owns only its preview Blob URL and revokes it on value replacement, clear, and unmount; the caller continues to own validation, crop state, and the File itself.
|
||||
- Accessibility: label targets the input; description, accept guidance, and error are connected with `aria-describedby`; the image preview uses the field label in its alt text; clear is a native button.
|
||||
- Motion: none.
|
||||
|
||||
### CanPriceField
|
||||
|
||||
- Structure: controlled numeric CAN price input with a visible label, native number input, visible `단위: 캔` guidance, and an inline error slot.
|
||||
- Contract: callers provide the controlled string and error state; the field preserves the native number input value and renders `min=0`, `step=1`. Domain submit logic rejects blank, negative, decimal, and out-of-range values against the shared `0..99,999` integer schema.
|
||||
- Accessibility: the visible label targets the input, the unit guidance and error are connected with `aria-describedby`, invalid state uses `aria-invalid`, and mobile input text remains 16px.
|
||||
- Motion: none.
|
||||
|
||||
### TagInput
|
||||
|
||||
Reference in New Issue
Block a user