Summary#
Implement layout for form controls as replaced/atomic inline-level elements with intrinsic dimensions.
Details#
Form controls are not normal flow elements — they are atomic inline-level boxes with intrinsic sizes determined by their type and content:
- Text inputs: width from
sizeattribute (default 20 characters), height from font metrics + padding - Textareas: width from
colsattribute (default 20), height fromrowsattribute (default 2) - Buttons: sized to fit their content (text label) plus padding
- Checkboxes/radio buttons: small fixed square (e.g., 13x13 CSS px)
- Select dropdowns: width to fit longest option text, height like a single-line text input
Acceptance criteria#
- Form controls participate in inline layout as atomic inline boxes
- Each control type has correct default intrinsic dimensions
width/heightCSS properties override intrinsic sizessizeattribute on<input>affects intrinsic widthrows/colsattributes on<textarea>affect intrinsic dimensions<fieldset>and<legend>use block layout with correct legend positioning- Tests verify intrinsic sizing for each control type
Dependencies#
- Form element parsing and DOM interfaces