chore: add BACKLOG.md

This commit is contained in:
Falkan
2026-03-18 23:07:05 -04:00
parent 1dd2f0c5d3
commit 8bdde05ca7

View File

@@ -1,47 +1,42 @@
# humor-units Backlog # humor-units Backlog
Issues and improvements to address eventually. Not blockers. Items are roughly ordered by priority. Move to DONE when shipped.
--- ---
## Bugs ## TODO
*(none yet)* ### Uniform font size
Get actual text measurements of output card values and render all cards in a group
at a uniform font size. JS must be minimal — no heavy layout libraries.
The requirement is *real* uniformity based on measurements, not "close enough."
## Improvements ### Custom dropdown (typeahead fix)
Native `<select>` accumulates keystrokes into a browser-managed search string.
Switching letters requires backspace to clear the accumulated string first.
Fix requires replacing the native select with a custom dropdown component
that handles keyboard search with a clean reset-on-idle timer.
### UI: "Clear" button hover feedback in light/Dan mode ---
In dark mode the "Clear" button text lightens on hover, giving visual feedback. In light
mode and Dan mode it currently does nothing visible. Should have a matching subtle
highlight (e.g. text darkens, underline appears, or border darkens).
### Admin: tooltips / descriptions for units ## DONE
Allow users to attach an optional `description` string to each unit. On the front end,
show it as a tooltip when hovering over the unit name or symbol. A single `description`
field is sufficient — no need to distinguish between tooltip text and description text.
Data shape change: add optional `description?: string` to the `Unit` type. - Hidden flag on Unit and Group (server-side filtered, admin checkbox)
- Description placeholders: `{id}`, `{id:label}`, `{id:plural}`, `{id:symbol}`, `{id:description}`
### Admin: group sort order (alphabetical vs. defined) Two-pass resolver with cycle fallback to Label (symbol)
Per-group setting controlling whether units are displayed on the front end in: - Drag handle contrast fix (opacity on --pico-color, primary-inverse on selected rows, magenta in Dan Mode)
- **Defined order** — the order they appear in `units.json` (current implicit behaviour) - Custom tooltip (500ms hover delay, no mouse movement required, Dan Mode styled)
- **Alphabetical order** — sorted by label at render time - ⓘ indicator on units with descriptions
- Enter to save / Escape to discard in admin forms
Data shape change: add optional `sortOrder?: 'defined' | 'alpha'` to the `Group` type - Auto-save on unit/group selection in admin
(default: `'defined'`). - Domain-based branding (humorunits.com / dickloads.com) via src/lib/brand.ts
- YOLO toggle visibility: auto (show when >1 group) or never — admin Settings panel
### Admin: unsaved-form guard on "Add Unit" / "Add Group" - Group alwaysShowLabel flag
If the user is in the middle of filling out a create/edit form and clicks "+ Add Unit" - Production server setup (npm run start / build:watch + serve with nodemon)
or "+ Add Group", the current form should be auto-saved before opening the new one. - Editable unit/group IDs with full cascade (group refs, baseUnitId refs, {id:*} in descriptions)
If the save fails (e.g. missing required field), highlight the erroring field and block - Alpha sort tiebreak: labelPlural primary, symbol secondary
navigation until it is resolved — don't silently discard the in-progress work. - Infinite loop fix: $effect → onMount + in-flight guards on loadData/loadConfig
- Sort-alpha button per group in admin tree (⇅)
### Admin: configure YOLO mode label and description via admin page - Settings button moved to admin header
The YOLO mode toggle label and description are currently configurable only by editing - sortPosition pin: optional 1-based fixed slot per unit, inserts into float list
`data/config.json` directly (`yoloLabel`, `yoloDescription` fields). Add a settings - Dropdown optgroup dividers matching group order and visibility rules
section to the admin page where these can be edited in-browser and saved via a new
`PUT /admin/api/config` endpoint.
Add a "Delete" option to the bulk action dropdown so multiple units can be deleted at
once. Should show a confirmation dialog listing the units to be deleted before
committing.