Skip to content

agency: Style A picked-button treatment (▶ BOLD_UPPER ◀)#105

Merged
MagMueller merged 1 commit intomainfrom
agency-style-a
May 8, 2026
Merged

agency: Style A picked-button treatment (▶ BOLD_UPPER ◀)#105
MagMueller merged 1 commit intomainfrom
agency-style-a

Conversation

@MagMueller
Copy link
Copy Markdown
Contributor

@MagMueller MagMueller commented May 8, 2026

Picked-button visibility iteration on top of #104.

Symptom

PR #104 shipped a trailing ` ✓` suffix on the picked button. Magnus tested it on his phone, said the mark was technically there but not unmistakable — at phone-button text size, an extra ✓ next to the button's own ✅ blends in. He wanted the entire button to look heavier.

Fix — Style A

Side-by-side comparison of 5 candidate styles posted as cards in TG; Magnus picked Style A: bold uppercase letters wrapped with framing arrows.

Default label After tap
`✅ Yes` `▶ ✅ 𝗬𝗘𝗦 ◀`
`⏭ Skip` `▶ ⏭ 𝗦𝗞𝗜𝗣 ◀`
`✏️ Edit` `▶ ✏️ 𝗘𝗗𝗜𝗧 ◀`
`Send draft A` (custom) `▶ 𝗦𝗘𝗡𝗗 𝗗𝗥𝗔𝗙𝗧 𝗔 ◀`

Bold uppercase via Mathematical Sans-Serif Bold (U+1D5D4 onward). Emojis, digits, punctuation pass through unchanged.

Restoring original labels on un-pick

Default kinds use `reset_others=True` — when the user changes their mind, the previously-picked button needs to revert to its original label. That requires knowing the original (we lose case info on bold-uppercase).

Approach: use the suggestion's `buttons_json` from `agency.db` for a lossless restore. When unavailable, fall back to lossy un-bold (case collapses to upper) — fine for the default Yes/Skip/Edit set since "YES" is acceptable.

Legacy mark cleanup

The `✓ ` prefix (PR #103) and ` ✓` suffix (PR #104) mark schemes are still recognized — `_agency_unpick_label` strips them on the next tap so cards posted before this rolled out tidy up automatically.

Test plan

  • Tap default Yes/Skip/Edit on a freshly-posted card — picked button shows `▶ ✅ 𝗬𝗘𝗦 ◀` etc., others stay normal
  • Re-tap a different default button — previously picked reverts to its original label, new pick shows the bold-arrow treatment
  • Tap a custom multi-button card (variant picker) — multiple buttons can wear the picked treatment simultaneously (additive)
  • Card posted before this PR (with ` ✓` suffix) gets cleaned up correctly on the next tap

Summary by cubic

Make picked buttons in agency cards unmistakable by switching to Style A: bold uppercase letters wrapped with arrows. Adds lossless label restore and cleans up legacy checkmark marks.

  • New Features
    • Style A transform: "✅ Yes" → "▶ ✅ 𝗬𝗘𝗦 ◀" using Mathematical Sans-Serif Bold; emojis, digits, and punctuation pass through.
    • Default buttons are exclusive (reset others); custom buttons remain additive for stacking actions.
    • Restore original labels on unpick via buttons_json; fallback to un-bold uppercase when missing.
    • Automatically strip old "✓ " prefix and " ✓" suffix marks on the next tap.

Written for commit 3b3ff9f. Summary will update on new commits.

Magnus reviewed 5 candidate styles posted as cards in TG and picked
Style A — bold uppercase letters wrapped with framing arrows. The
trailing " ✓" suffix shipped in #104 was visible-but-subtle: easy to
miss at phone scale next to a button label that already leads with a
colorful icon. Style A makes the picked button visibly heavier than
its siblings regardless of icon shape.

Picked transformation:
  ✅ Yes        →  ▶ ✅ 𝗬𝗘𝗦 ◀
  ⏭ Skip       →  ▶ ⏭ 𝗦𝗞𝗜𝗣 ◀
  ✏️ Edit       →  ▶ ✏️ 𝗘𝗗𝗜𝗧 ◀
  Send draft A →  ▶ 𝗦𝗘𝗡𝗗 𝗗𝗥𝗔𝗙𝗧 𝗔 ◀

Bold uppercase uses Mathematical Sans-Serif Bold (U+1D5D4 onward).
Emojis, digits, and punctuation pass through unchanged.

Restoring the original label on un-pick uses the suggestion's
buttons_json from agency.db (lossless). When buttons_json isn't
available we fall back to lossy un-bold (case collapses to upper) —
acceptable for the default Yes/Skip/Edit set since "YES" is fine.

Module-level helpers added: _agency_bold_upper, _agency_unbold,
_agency_pick_label, _agency_is_picked, _agency_strip_legacy_marks,
_agency_unpick_label. Legacy "✓ " prefix (#103) and " ✓" suffix
(#104) marks are still recognized + cleaned up on the next tap so
in-flight cards from before this change tidy up automatically.

Default kinds (action/dismiss/refine) keep reset_others=True so only
the latest pick is highlighted. Custom kinds stay additive so
variant-picker patterns ("Send draft A" + "Send draft B") still
stack visibly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MagMueller MagMueller merged commit a685168 into main May 8, 2026
6 checks passed
@MagMueller MagMueller deleted the agency-style-a branch May 8, 2026 16:43
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