diff --git a/.planning/phases/07-admin-forms-lists/07-CONTEXT.md b/.planning/phases/07-admin-forms-lists/07-CONTEXT.md new file mode 100644 index 0000000..a1cd758 --- /dev/null +++ b/.planning/phases/07-admin-forms-lists/07-CONTEXT.md @@ -0,0 +1,81 @@ +# Phase 7: Admin Forms & Lists - Context + +**Gathered:** 2026-02-04 +**Status:** Ready for planning + + +## Phase Boundary + +YAML-driven form and list generation for the admin backend. Developers define `fields.yaml` and `columns.yaml`, the system renders corresponding forms and tables with standard widgets, filters, and validation display. RelationController-style relations and WinterCMS repeater behavior included. + + + + +## Implementation Decisions + +### Form widget styling +- Modern minimal aesthetic: clean lines, whitespace, subtle borders (Linear/Notion feel) +- Labels positioned above inputs (stacked layout) +- Sections collapsible, expanded by default +- Action buttons (Save, Cancel) at bottom of form +- Required fields indicated with red asterisk +- Help text always visible below fields +- Field width configurable via YAML (span: left, cssClass grid system) — similar to WinterCMS +- Disabled fields render as read-only appearance (normal styling, not editable) +- Multiple sections use horizontal tabs +- Dark mode supported with user toggle in preferences + +### Relations and repeaters +- Relation fields use RelationController-style behavior: modal-based, rich list/form within, highly customizable through YAML +- Repeater fields match WinterCMS behavior: inline add/remove, drag handles for reorder, collapsible items, configurable min/max + +### List presentation +- Table density user-selectable (comfortable/compact toggle) +- Row click navigates to edit/preview screen (configurable) +- Bulk actions toolbar above list: Create, Delete Selected, etc. — operates on checkbox-selected records +- Traditional pagination (page numbers, explicit navigation) +- Columns auto-size by content or explicit YAML width; user can drag to resize +- Row reordering is separate feature controlled by model trait + +### Validation UX +- Validation on submit only (no real-time or on-blur) +- Error messages inline under each invalid field +- Auto-scroll to first error with highlight/pulse animation +- Two save actions: "Save" (stay on form + flash), "Save and close" (redirect to list + flash) + +### YAML syntax design +- WinterCMS-inspired but improved — cleaner patterns, better defaults +- Conditional visibility via `trigger` property (WinterCMS style) +- Custom widgets registered via plugin boot lifecycle (explicit, not convention) +- YAML anchors/aliases supported for field reuse (standard YAML mixins) +- Validation rules defined in Scala model only (type-safe, not in YAML) + +### Claude's Discretion +- Specific animation/transition implementations +- Exact color palette within "modern minimal" aesthetic +- Internal component architecture +- Widget rendering optimizations + + + + +## Specific Ideas + +- Forms and lists should feel like WinterCMS to experienced users, but with cleaner visuals +- RelationController is important — rich modal-based relation management, not simple dropdowns +- Repeater must match WinterCMS exactly: collapse/expand items, drag reorder, add/remove inline +- Column resizing like Excel — drag borders, but auto-fit by default + + + + +## Deferred Ideas + +None — discussion stayed within phase scope + + + +--- + +*Phase: 07-admin-forms-lists* +*Context gathered: 2026-02-04*