chore: add BACKLOG.md
This commit is contained in:
69
BACKLOG.md
69
BACKLOG.md
@@ -1,47 +1,42 @@
|
||||
# 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
|
||||
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.
|
||||
## DONE
|
||||
|
||||
Data shape change: add optional `description?: string` to the `Unit` type.
|
||||
|
||||
### Admin: group sort order (alphabetical vs. defined)
|
||||
Per-group setting controlling whether units are displayed on the front end in:
|
||||
- **Defined order** — the order they appear in `units.json` (current implicit behaviour)
|
||||
- **Alphabetical order** — sorted by label at render time
|
||||
|
||||
Data shape change: add optional `sortOrder?: 'defined' | 'alpha'` to the `Group` type
|
||||
(default: `'defined'`).
|
||||
|
||||
### Admin: unsaved-form guard on "Add Unit" / "Add Group"
|
||||
If the user is in the middle of filling out a create/edit form and clicks "+ Add Unit"
|
||||
or "+ Add Group", the current form should be auto-saved before opening the new one.
|
||||
If the save fails (e.g. missing required field), highlight the erroring field and block
|
||||
navigation until it is resolved — don't silently discard the in-progress work.
|
||||
|
||||
### Admin: configure YOLO mode label and description via admin page
|
||||
The YOLO mode toggle label and description are currently configurable only by editing
|
||||
`data/config.json` directly (`yoloLabel`, `yoloDescription` fields). Add a settings
|
||||
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.
|
||||
- Hidden flag on Unit and Group (server-side filtered, admin checkbox)
|
||||
- Description placeholders: `{id}`, `{id:label}`, `{id:plural}`, `{id:symbol}`, `{id:description}`
|
||||
Two-pass resolver with cycle fallback to Label (symbol)
|
||||
- Drag handle contrast fix (opacity on --pico-color, primary-inverse on selected rows, magenta in Dan Mode)
|
||||
- Custom tooltip (500ms hover delay, no mouse movement required, Dan Mode styled)
|
||||
- ⓘ indicator on units with descriptions
|
||||
- Enter to save / Escape to discard in admin forms
|
||||
- Auto-save on unit/group selection in admin
|
||||
- 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
|
||||
- Group alwaysShowLabel flag
|
||||
- Production server setup (npm run start / build:watch + serve with nodemon)
|
||||
- Editable unit/group IDs with full cascade (group refs, baseUnitId refs, {id:*} in descriptions)
|
||||
- Alpha sort tiebreak: labelPlural primary, symbol secondary
|
||||
- Infinite loop fix: $effect → onMount + in-flight guards on loadData/loadConfig
|
||||
- Sort-alpha button per group in admin tree (⇅)
|
||||
- Settings button moved to admin header
|
||||
- sortPosition pin: optional 1-based fixed slot per unit, inserts into float list
|
||||
- Dropdown optgroup dividers matching group order and visibility rules
|
||||
|
||||
Reference in New Issue
Block a user