Skip to content

Recipe editor dropdowns (style, ingredients): 10-item cap, contains-match, clipped on small screens #7

Closed

Description

@ndreno

Source

User feedback (forum, v0.3, 2026-05-19) — Arwen, plus a follow-up note about mobile.

Symptoms reported

Filtering behaviour

  • With an empty input, only 10 items show, even though the catalog list is much longer. Brewers can't tell whether they're looking at "the whole catalog" or a truncated slice.
  • Typing a letter — which a brewer expects to narrow the list — instead produces a different set of 10 items: matches that contain the letter anywhere, including matches on a different field, rather than items whose name starts with the typed text. New items appear, which is the opposite of what filtering should do.

Display on small devices

  • On phone / small tablet widths, the dropdown popup is clipped inside its parent section card instead of floating above it. The visible portion is so short that picking an option is awkward — the brewer can barely see the choices.

Expected

  • With an empty input, the dropdown shows either the full list (scrollable) or a clearly labelled "top N — type to filter" affordance.
  • Typing filters the list. Matching should be predictable: prefix match by default on the displayed field, optionally a secondary fuzzy/substring tier ranked below prefix matches.
  • The visible-result count should reflect the actual number of matches, not a hardcoded 10.
  • Filtering must never add unrelated entries as more characters are typed.
  • The popup must render above its container (portal / fixed positioning) so it isn't clipped by section overflow rules — especially on phone and small-tablet widths.

Scope

  • Style picker (BJCP).
  • Malt / hop / yeast / misc pickers in the recipe editor.

Related

Activity

  1. reopened this on Jun 8, 2026
  2. ndreno commented on Jun 8, 2026

    @ndreno
    ContributorAuthor

    Reopening — still reported as "déroutant" on v0.4.0 (forum, 2026-05-28, Arwen)

    The 10-cap / clipping / contains-match work shipped, but two ordering behaviours still confuse a real user:

    Les listes déroulantes sont toujours aussi déroutantes : sans sélection j'arrive sur Pilsner malt et le reste de la liste est dans le désordre. Quand je tape M j'obtiens dans l'ordre Honey Malt, Flaked Corn (Maize), Honey, Black Patent…

    Both are "working as coded" — but the result reads as broken:

    1. Empty query → catalog order. scoreTiered returns 0 for every item on an empty query, so the stable sort just preserves catalog order, and Pilsner malt (first in fermentables.ts:16) is what greets you. Looks arbitrary. → Sort alphabetically (by display name) when the query is empty so an unfiltered list is predictable.

    2. Alias-prefix matches surface visibly-non-matching names. Typing "M" returns (catalog/index.ts:31-79):

      • Honey Malt — prefix on the word "Malt" (tier A)
      • Flaked Corn (Maize) — French alias "maïs" prefix (tier A)
      • Honey — French alias "miel" prefix (tier A)
      • Black Patent — alias "malt noir" contains (tier B)

      So three of the four don't visibly start with M. The scoring is defensible, but to the brewer it looks like noise. Options:

      • rank a prefix on the visible display name above a prefix on a hidden alias, and/or
      • when an alias caused the match, show it (e.g. "Honey — miel") so the order makes sense.

    Companion: #34 asks to scope this same dropdown by the selected fermentable category, which would also shrink these lists.

  3. added a commit that references this issue on Jun 9, 2026
  4. ndreno commented on Jun 9, 2026

    @ndreno
    ContributorAuthor

    Shipped in v0.5.0 (#39): empty query now lists alphabetically (no more surprise "Pilsner malt"), a prefix on the visible name outranks a prefix on a hidden alias, and the matched alias is shown in the row (e.g. "Honey — miel").

  5. ndreno commented on Jun 17, 2026

    @ndreno
    ContributorAuthor

    Follow-up from forum feedback (2026-06-15) — Arwen

    Thread

    Arwen reports the ingredient search still feels like it mixes "starts-with" and "contains" matches in the same result list, making the ordering read oddly. The tiered scoring landed here in v0.5.0, but it's worth re-checking the ranking against her examples — a contains-match on the visible name may still be slipping above where she'd expect a prefix match to sit. Re-opening this thread of feedback rather than a new issue since it's the same picker.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions