Skip to content

Fix ID generator note, dropdown styling and preset display; polish sidebar - #4

Merged
fadeltd merged 1 commit into
mainfrom
fix/ui-polish
Sep 24, 2026
Merged

fadeltd merged 1 commit into
mainfrom
fix/ui-polish

Conversation

@fadeltd

@fadeltd fadeltd commented Sep 24, 2026

Copy link
Copy Markdown
Owner

1. Overlapping text in the ID generator note

The paragraph had display: flex. That promotes every inline child to a flex item — so Generated with, the inline <code>, and the rest of the sentence were laid out as three siblings in a row instead of flowing as text. Hence the overlap.

It is a plain block again with the icon inline, and the code reference now sits in a subtle chip.

2. Preset dropdown "doesn't select" — not intended, now fixed

Its value was hardcoded to "", so it always snapped back to Preset…. I had built it as an action menu; you read it as broken, which is the same thing from your side.

It now shows whichever preset the current options match. That is derived from the options rather than stored, so it survives a reload and falls back to Custom the instant you change any field — no state to keep in sync, and it cannot lie about what is loaded.

3. Dropdown padding and the escaping arrow

The native <select> arrow sits outside the padding box and cannot be styled, so at our 28px control height it collided with the border. Suppressed with appearance-none and replaced by a chevron drawn as a background image, with padding-right: 32px reserved for it and a comfortable left inset.

Applies to every dropdown in the app, not just this tool.

4. Sidebar

Control moved from the bottom of the tool list to the top, where it is visible without scrolling. Width now animates (200ms), with labels fading in so they do not appear fully formed before the animation finishes. Both disabled under prefers-reduced-motion.

Verification

14 browser assertions against the real app, including the ones that would have caught these in the first place:

  • note is display: block, the <code> is inside the paragraph's box, height is sane rather than collapsed
  • select reports appearance: none, a chevron background, padding-right ≥ 24px
  • preset shows Stripe secret key, then Custom after a field edit
  • sidebar transitions width, toggle is < 40px from the top, collapses to 52px and the toggle stays reachable

Plus 4 new unit tests for the preset matcher (334 total), and typecheck, lint and build clean.

Merging this cuts v0.2.3

### Fixed and ### Changed only → patch.

It is also the second exercise of the corrected release chain — PR #3 fixed the dispatch, so if that landed first this one should tag and deploy without intervention.

…debar

Four things, three of which were my bugs.

The security note in the ID generator rendered as overlapping fragments. The
paragraph had `display: flex`, which promotes every inline child to a flex
item -- so "Generated with", the inline <code>, and the remaining sentence were
laid out as three siblings in a row rather than as flowing text. It is a plain
block again, with the icon inline.

Dropdowns had cramped padding and the native arrow sat outside the padding box,
colliding with the border at a 28px control height. The native arrow cannot be
styled, so it is suppressed with appearance-none and replaced by a chevron
drawn as a background image, with padding reserved for it.

The preset dropdown always read "Preset..." because its value was hardcoded
empty -- it worked as an action menu but read as broken, which is the same
thing from the user's side. It now shows whichever preset the current options
match. That is derived from the options rather than stored, so it survives a
reload and falls back to "Custom" the moment any field changes, with no state
to keep in sync.

The sidebar collapse control moves from the bottom of the tool list to the top,
where it is visible without scrolling, and the width now animates with the
labels fading in behind it. Both are disabled under prefers-reduced-motion.
@fadeltd
fadeltd merged commit 75d9b08 into main Sep 24, 2026
1 check passed
@fadeltd
fadeltd deleted the fix/ui-polish branch September 24, 2026 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant