Skip to content

Frontend and UX help wanted #4

Description

@7akob

Skood's sync engine is the part I cared about, and it works well. The interface is where the project is weakest, and that is exactly where help would make the most difference. If you like frontend work or UX, there is a lot of low-hanging fruit here, and every item below is small enough to be its own pull request.

Concrete things worth doing

Replace the four native browser dialogs. This is the biggest single win. window.prompt and window.confirm block the page, cannot be styled, and look alien in all three themes:

  • first-run username prompt (public/script.js:56)
  • rename prompt (public/script.js:63)
  • clipboard fallback prompt (public/script.js:217)
  • clear-queue confirm (public/script.js:334)

A small in-page modal or inline editing pattern, theme-aware through the existing CSS custom properties, would replace all four.

Accessibility pass. Currently there is nothing: no aria attributes and no :focus or :focus-visible rules anywhere in public/. Specifically worth fixing:

  • keyboard focus is invisible on every button and input
  • the icon buttons are bare emoji glyphs with only a title, so screen readers announce them poorly
  • the chat box is not a live region, so new messages are not announced
  • the connection dot blinks via a CSS animation with no prefers-reduced-motion guard

Mobile polish. The layout survives at 375px and the panels stack correctly, but nothing is tuned. The chat box is a fixed 250px tall, the video input row wraps awkwardly, and tap targets are small.

Queue reordering. Drag to reorder is the most requested-feeling missing thing. The server already keys queue items by a stable qid, so the sync side is straightforward.

Unread chat indicator. Nothing tells you a message arrived while you were scrolled up or on another tab.

Loading and empty states. "Loading..." is the entire feedback while a title resolves, and the empty panels are a single line of italic text.

Keyboard shortcuts. Space to play/pause, arrow keys to seek. Needs care, since the YouTube iframe steals focus and typing in chat must never trigger them.

More themes. See #2, which has a designed but unbuilt light theme ready to claim.

Constraints to work within

Skood stays vanilla: no framework, no bundler, no build step, no client dependencies. Two specific things to know before you start:

  • index.html wires handlers with inline onclick attributes, so handler functions must stay global in script.js. Changing that is fine as a deliberate PR, but do not do it as a side effect of something else.
  • Theme rules change look only, never layout that the mobile media query owns. CONTRIBUTING.md explains the theme system.

Claiming something

Comment on this issue saying which item you want, so two people do not build the same modal. One item per pull request keeps review easy. If you want to redesign something more broadly rather than fix a specific item, open a separate issue with a mockup first so we can talk it through before you spend time on it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions