Allow UI primitives to be declared
markfinger opened this issue · comments
Possibly related to #3
Forewarning: my YAGNI sense is tingling, but the idea keeps floating around, so I'll try to brain-dump and forget about it for a bit.
It might be useful to break out all the UI primitives into distinct items that can be used in whatever way a dev needs. Effectively, functionalities like panels could be declared, links/data on buttons could be declared, etc. Higher-level functionalities like filtering/sorting/etc might be just an opinionated abstraction built atop those primitives.
I did a quick scan of what we're using at the moment, and my notes:
- Button
- With href (eg: sorting options)
- Form submit button
- Form reset button (maybe just a href?)
- Collapsible panel
- Can define the text on the button
- Should the panel body expansion force reflow, or should it be positioned absolutely? Why not a modal?
- Row
- Force a new row within the UI
- Force a new row within a panel
- Text field
- Radio field
- Group with nested RadioButton instances or just a typical choice tuple?
- Choice field
- Select widget
- Multiple choice as a param?
- Boolean field
- Float (left/right)
- Move components out of the normal flow
- Ex: layout controls
Fixed in latest codebase.