Skip to content

feat(account): let an account decline a colour and read in the plain foreground #102

Description

@smileygames

purpose

アカウントの色設定に「色を持たない」を足す。選ぶと、その参加者だけ地の文字色(--fg)で表示される。

Master の要望(2026-08-26)は当初「白を追加できるか」だった。文字どおりの白と「色を辞退する」の二択を示し、Master は後者を選んだ。

premise

白は今の作りでは表現できない。 アカウントが持つのは hue: Option<f64>(角度ひとつ)であり、実際の色は oklch(var(--speaker-l) var(--speaker-c) <角度>) で組まれる。明度と彩度はテーマが持つ固定値:

--speaker-l --speaker-c
明るいテーマ 0.528 0.104
暗いテーマ 0.715 0.087

白は oklch(1 0 …) すなわち明度 1 / 彩度 0 であり、角度をどこへ回しても届かない。八色の一覧に白を足せないのは選択肢の不足ではなく、軸が足りないためである。

明度をテーマごとに変えているのは読みやすさのためで、src/styles.css の註釈がそう書いている——「この対はどの角度が乗っても、このテーマで読める状態に保つ」。明るいテーマの背景に明度 1 を置けば字は消える。文字どおりの白を足すと、この設計が閉じた問題が開く。

一方 --fg は両テーマで読める。 暗いテーマでは #e8e8ea であり、画面上はほぼ白に見える。要望の見た目は、暗いテーマにおいてはこれで満たされる。

constraints

  • 現行の状態は二つ。Some(角度) = 選んだ、None = 名前から導出。src-tauri/src/config.rs の註釈が「既定値ではなく不在にしてある。選んだことと導かれたことは別の状態である(fix(session): let a participant declare who they are in the room #45)」と明示している。
  • したがって「色を辞退した」は三つ目の状態であり、None に相乗りさせられない。角度の欄に番兵値を入れる形も採らない——欄の意味が角度でなくなる。
  • --speaker-l / --speaker-c は参加者が選べない値のままにする。この issue が足すのは「この対を使わない」という選択であって、対を上書きする権利ではない。

未確定(詰めるところ)

  1. 型をどう広げるか。hue とは別に宣言を持つか、三状態を表す一つの型にするか。設定ファイルの後方互換(既存の hue を読む経路)を壊さないこと。
  2. 一覧での見え方。「既定(名前から)」の隣に「色なし」を置く形でよいか。
  3. 自分自身(user 種別のアカウント)との見分け。地の文字色は画面の持ち主の色でもあるため、辞退した参加者が自分と同じ見え方になる。feat(ui): surface the participant panel the design already specifies #43 が「宣言した色は他の参加者と同じ重さで並ぶ」ことを狙っていた軸に触れる可能性がある。

Activity

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

    enhancement新機能・改善要望forming本文を再構築しながら要求を整えている状態

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions