Skip to content

feat(tools): polish tool cards, sliders, and color inputs - #46

Merged
yungsamd17 merged 8 commits into
mainfrom
feat/tools-ui-polish
Oct 21, 2026
Merged

yungsamd17 merged 8 commits into
mainfrom
feat/tools-ui-polish

Conversation

@yungsamd17

@yungsamd17 yungsamd17 commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Tool cards react again, sliders got fill trails, and the Icon Maker color picker is now the shared one.

What changed

  • Tool card hover — the @media (hover: hover) gate added in fix(tools): smooth mobile scrolling and stop sticky card hover #45 left the cards inert on browsers that misreport hover support. Back to a plain .tool-item:hover.
  • Card wash — the hover gradient is clipped to the padding box, so it can no longer bleed through the translucent border or past the rounded corners.
  • Sliders — new shared src/scripts/range-fill.ts paints the filled trail up to the thumb (WebKit via a CSS variable, Firefox via ::-moz-range-progress); thumbs are white with a soft glow. Icon Maker's hue slider keeps its rainbow track.
  • One color picker — the Icon Maker canvas picker moved into src/scripts/tools/color-picker.ts + src/components/ColorField.astro. QR Generator's foreground/background use it instead of the native OS color box, and Icon Maker's own fields use the same component. Also fixed the picker's HSV→RGB conversion, which returned the wrong channel for the 120°–180° sector.
  • Accessibility — anchors get a :focus-visible ring (tool cards and footer links are anchors and had none), and prefers-reduced-motion: reduce now disables transitions and animations while keeping the busy spinner.
  • Cleanup — explicit transition properties instead of transition: all, hex colors normalized to lowercase everywhere, .color-field.cp-disabled promoted to the shared stylesheet, docs/README.md architecture map refreshed.

Touched areas

  • Styles: src/styles/tool.css, src/styles/global.css, src/styles/tools/icon-maker.css
  • New: src/components/ColorField.astro, src/scripts/tools/color-picker.ts, src/scripts/range-fill.ts
  • Scripts: src/scripts/tools/icon-maker.ts, src/scripts/tools/qr-generator.ts, src/scripts/tools/lib.ts
  • Pages: src/pages/tools/icon-maker.astro, src/pages/tools/qr-generator.astro, src/pages/design.astro
  • Docs: AGENTS.md, docs/README.md

Testing

  • npm run build — 12 pages built
  • npx astro check — 0 errors
  • Color picker exercised in a DOM harness (hex input, invalid hex, popup open/close, hue slider, per-field isolation)
  • Before/after screenshots — to be added

Built with minimax-m3.1-flash-free in the OpenCode harness, running in T3 Code.

@github-actions

Copy link
Copy Markdown

✅ PR Checks passed

Typecheck (npx astro check) and production build both green.

@yungsamd17
yungsamd17 merged commit d42fe52 into main Oct 21, 2026
2 checks passed
@yungsamd17
yungsamd17 deleted the feat/tools-ui-polish branch October 21, 2026 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant