Skip to content

feat(kiosk): mark first-come chores as up for grabs - #1247

Merged
tempus2016 merged 2 commits into
tempus2016:mainfrom
iantrich:kiosk-up-for-grabs-tag
Nov 11, 2026
Merged

tempus2016 merged 2 commits into
tempus2016:mainfrom
iantrich:kiosk-up-for-grabs-tag

Conversation

@iantrich

@iantrich iantrich commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

On the kiosk's child screen, a first-come chore looked like any other chore. It sits on every child's list until one of them finishes it, so a child couldn't tell a race from their own job. It now gets a dashed accent border, a tinted background and an orange "Up for grabs — first one wins" tag next to the points.

Done, waiting-for-a-grown-up and missed rows are left alone, as is every chore that isn't first_come.

Related issue

N/A. The motivation is above: with a wall tablet and first_come chores, nothing on the kiosk says which chores are shared. I can open an issue first if you'd rather agree the approach there.

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that changes existing behaviour)
  • Documentation only
  • CI / tooling / chore

How has this been tested?

  • A new test in taskmate-kiosk-card.test.cjs: with one first_come chore and one ordinary chore due, only the first-come row is marked and the tag appears once. All 89 kiosk tests pass (node --test tests/frontend/taskmate-kiosk-card.test.cjs).
  • Rendered the real card in a browser against a mock hass with first-come, alternating and ordinary chores, and checked the result by eye.

Note: I added the key to each locale's cards.json bundle by hand instead of running scripts/split_locales.py, so please let CI's --check confirm they match.

  • Ran ruff check . locally (matches the Ruff CI check)
  • Ran pytest locally (matches the Run tests CI check)
  • Exercised the change on a live Home Assistant instance
  • For card changes: hard-refreshed the browser and checked the console for errors

Checklist

  • My code follows the existing patterns in the codebase
  • I bumped manifest.json version if this is a release-bound change (left to the maintainer's release)
  • Any new user-facing strings are translated into all locales in this same PR. The non-English strings are my own translations, so a native speaker may want to check them.
  • I updated the README / docs where relevant (Kiosk Mode wiki page)

Preview of change
image

A first-come chore sits on every child's list until one of them finishes
it, but the kiosk drew it like any other chore, so a child couldn't tell
a race from their own job. On the kiosk's child screen it now gets a
dashed accent border, a tinted background and an "Up for grabs - first
one wins" tag. Done, waiting and missed rows are left alone.

- New string kiosk.up_for_grabs in all locales, with the split bundles
- Test: only the first-come chore is marked
- Docs: Kiosk Mode page
@iantrich
iantrich requested a review from tempus2016 as a code owner November 11, 2026 03:07
@github-actions github-actions Bot added documentation Improvements or additions to documentation cards Lovelace cards / frontend (www/*.js) translations i18n / locale strings tests Test suite labels Nov 11, 2026
@tempus2016

Copy link
Copy Markdown
Owner

Thanks for this. It's a nice, tidy change, and it's the right gap to fill on the kiosk. Two small things before I take it to testing:

  1. Contrast in the Graphite design. The tag text is fixed at #2b1700 on a solid --tmd-warn background. Graphite's warn colour is #B25E00, so that combination only reaches about 3.7:1, which is below 4.5:1 for small bold text. The other designs are fine. Could you switch the text colour, or use a lighter tint like .km-tag does, so it passes in all five designs?
  2. First-come chores that need approval. These show the new orange tag right next to the existing "A grown-up will check" tag, which is also warn-coloured. Could you check how that row looks, and tell the two tags apart if they're hard to separate? A screenshot of that case would help.

CI is green. Once those are in, I'll test it on my dev instance across the designs.

@tempus2016 tempus2016 added the enhancement New feature or request label Nov 11, 2026
@tempus2016 tempus2016 added this to the v7.9.0 milestone Nov 11, 2026
…rom needs-check

The tag used fixed dark ink on a solid warn fill, which only reached
3.7:1 on the Graphite design. It now uses the design's own text colour
on a 28% warn tint, which is at least 5.5:1 in every design, light and
dark.

On a first-come chore that also needs approval, the tag sat next to the
warn-coloured "A grown-up will check" tag. It now has a stronger tint
and a dashed border matching the row's, so the two read apart. Adds a
wiki screenshot of that row.
@iantrich

Copy link
Copy Markdown
Contributor Author

I added a photo to the wiki that shows how they look together after tweaking things based on your feedback

image

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

Labels

cards Lovelace cards / frontend (www/*.js) documentation Improvements or additions to documentation enhancement New feature or request tests Test suite translations i18n / locale strings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants