White text on the blue buttons drops below 4.5:1 contrast on hover
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 68/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- tailwindcss, typescript
調査の方向性
Read the 17 hover:brightness-110 usages in src, including src/components/signup/header-buttons.ts; note that the PRIMARY stack is not on main yet. Compare the existing hover colours in the consent form and sign-in link, then apply the chosen treatment across the affected buttons and check that white text stays above 4.5:1 contrast. Done means no affected white-text bg-brand button uses hover:brightness-110 and the listed lint, typecheck, knip, and test commands pass.
索引モデルが issue の本文から書いたものです。
説明
Needs your OK: choosing the hover colour is a small design call. Swap pipeline:proposed for pipeline:ready to have it built.
What happens
- The hover style lightens the button. Most blue (
bg-brand) buttons usehover:brightness-110. That includes the signup header'sPRIMARYstyle (src/components/signup/header-buttons.tson the "Publish and share" stack): Publish and share, Share, and Reopen signup (#608). In all, 17 places insrcusehover:brightness-110. - The contrast drops below what normal-size text needs. At rest, white text on
#1f6febis 4.63:1, which passes WCAG 1.4.3's 4.5:1. Brightened by 10% to about#227aff, it's 3.97:1. These labels are 13–15px, so they need 4.5:1. - Axe doesn't catch it. It checks the colours at rest, not on hover.
- Found while reviewing #608.
Fix, in outline
- Darken on hover instead of lightening. Use
hover:bg-[#1658c4], the hover colour the OAuth consent button (src/app/oauth/consent/[uid]/consent-form.tsx) and the sign-in link (src/app/login/confirm/sign-in-link.tsx) already use. Better still, add it as abrand-hovercolour intailwind.config.tsand use that everywhere. - Leave the disabled style alone.
disabled:brightness-90onPRIMARYdarkens, so it's fine as it is. - Or drop the hover change on these buttons altogether. That's simpler, but gives no hover feedback.
Watch for
PRIMARYonly exists on the "Publish and share" stack (#571 → #581), not onmainyet. Build this after that stack lands, or changePRIMARYthere as well as the other 16 places.- The text never gets bigger on hover. These buttons stay "normal text" for WCAG, so 4.5:1 is the bar on hover too, not 3:1.
Choices this makes
Darkening on hover, with the colour the consent and sign-in buttons already use, rather than a new one.
Done when
- No
bg-brandbutton with white text useshover:brightness-110. - White on the hover colour is at least 4.5:1 (
#1658c4gives 6.51:1). pnpm lint && pnpm typecheck && pnpm knip && pnpm testpass.
- 主要言語
- TypeScript
- スター
- 19
- フォーク
- 4
- 平均マージ
- 21時間 3分
- マージ済み PR(30日)
- 176
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
richshaw/OpenSignup のほかの issue
-
enhancement pipeline:proposed pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
richshaw/OpenSignup#654 ·
メンテナーはふだん 1 日以内に返信
-
The help pages never say "pause", so organizers looking for it miss Close or reopen a signup対応中かも @richshaw が今日担当しました。 オープンenhancement pipeline:building pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
richshaw/OpenSignup#653 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
enhancement pipeline:proposed pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
richshaw/OpenSignup#652 ·
メンテナーはふだん 1 日以内に返信
-
SMTP timeout notes in smtp.ts and the changelog describe nodemailer 10.0, not 10.1対応中かも @agammann が 2 日前に担当しました。 オープンenhancement good first issue pipeline:ready
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
richshaw/OpenSignup#645 ·
メンテナーはふだん 1 日以内に返信
-
enhancement pipeline:proposed pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
richshaw/OpenSignup#589 ·
メンテナーはふだん 1 日以内に返信
richshaw/OpenSignup の issue をすべて見る
似ている issue
-
calcite-ui-icons enhancement impact - p3 - not time sensitive needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
Esri/calcite-design-system#15467 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
diegosouzapw/OmniRoute#18390 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 1/5 1〜3時間 初心者へのやさしさ 86/100
guilhermerodz/input-otp#157 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
davidjerleke/embla-carousel#1414 ·
メンテナーはふだん 4 日以内に返信