Files
summercms-initial-research/.planning/phases/07-admin-forms-lists/07-CONTEXT.md
Jakub Zych 8abdc30bf2 docs(07): capture phase context
Phase 07: Admin Forms & Lists
- Implementation decisions documented
- Phase boundary established
2026-02-04 16:29:23 +01:00

3.2 KiB

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