From 97630b71639e5710c7546a659bb728ea805911a6 Mon Sep 17 00:00:00 2001 From: Codex Luna <268560960+lipluscodex@users.noreply.github.com> Date: Mon, 12 Oct 2026 00:08:10 +0900 Subject: [PATCH] feat(account): expand colors and dim stopped accounts --- docs/2-screen.md | 4 ++-- src/main.ts | 10 +++++++++- src/styles.css | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/2-screen.md b/docs/2-screen.md index 22c8d67..36eb195 100644 --- a/docs/2-screen.md +++ b/docs/2-screen.md @@ -341,7 +341,7 @@ Master「コメント書き込み欄の上にある下までスクロールボ **起動していないアカウントも最初から並ぶ。** 一度起動することを条件にしない。 -**行の見え方。** 名前はその参加者の色で表示する。オフラインの行は色を保ったまま薄くし、丸印も名前と同じだけ薄くする。灰色に落として色を捨てない——色はアカウントの同一性を担っており、居ないだけで別人に見えるのは誤りである。行が示す補足は、この画面の本人なら「(あなた)」、プロセスが在って部屋の名簿にまだ現れていないなら「起動中」、席の無いアカウントなら「未起動」、セッションが終了して出力だけ残っているなら「終了」である。走っているセッションについては、出力が届いている間は「考え中…」または「出力中」、ターンが利用制限で終わっていれば「制限中」、端末が 1 秒以上黙っていれば「待機」が同じ場所に出る(下記「走っているアカウントが何をしているか」)。名前の前には会話面と同じ丸印を置く(#253)——アカウントの画像があれば画像、無ければ頭文字を参加者の色で描く。#225 から #253 までは参加者の色の小さな点だった。点が担っていた「会話の色の凡例」の役目は、丸印の色が引き継ぐ。丸印は会話面と同じ関数で描き、二通りの描き方を持たない。引くアカウントは、部屋に居る行なら席が宣言したアカウント(会話面の行が持つものと同じ)、居ない行ならリストのアカウントである。アカウントを持たないゲストの行は頭文字のままであり、`mcp` の行は通知の畳みの見出しと同じ丸印になる。画像は会話面が読み込んだものを使い回し、行ごとに読み込み直さない。直径は会話面の文字サイズ(`--room-font-size`)の 2.31 倍、頭文字は 1.2375 倍である——会話面の丸印(直径は文字サイズの 2.1 × 1.265 倍)の 1/1.15 にあたる。#258 で、会話面の文字サイズが既定のときの、それまでの会話面の丸印(`1rem` の会話面で頭文字 `1.1em`、直径はその `2.1em`)と同じ直径にし、頭文字も同じ比で上げた(#253 では直径およそ 1.4rem、頭文字 0.75rem)。行の高さは丸印に合わせて伸び、▶/■ と `⋯` の列の並びと幅は変わらない。 +**行の見え方。** 名前はその参加者の色で表示する。オフラインの行は色を保ったまま、呼称・元の名前・丸印を opacity 0.35 で薄くする(#393)。開始とメニューの操作は薄くしない。灰色に落として色を捨てない——色はアカウントの同一性を担っており、居ないだけで別人に見えるのは誤りである。行が示す補足は、この画面の本人なら「(あなた)」、プロセスが在って部屋の名簿にまだ現れていないなら「起動中」、席の無いアカウントなら「未起動」、セッションが終了して出力だけ残っているなら「終了」である。走っているセッションについては、出力が届いている間は「考え中…」または「出力中」、ターンが利用制限で終わっていれば「制限中」、端末が 1 秒以上黙っていれば「待機」が同じ場所に出る(下記「走っているアカウントが何をしているか」)。名前の前には会話面と同じ丸印を置く(#253)——アカウントの画像があれば画像、無ければ頭文字を参加者の色で描く。#225 から #253 までは参加者の色の小さな点だった。点が担っていた「会話の色の凡例」の役目は、丸印の色が引き継ぐ。丸印は会話面と同じ関数で描き、二通りの描き方を持たない。引くアカウントは、部屋に居る行なら席が宣言したアカウント(会話面の行が持つものと同じ)、居ない行ならリストのアカウントである。アカウントを持たないゲストの行は頭文字のままであり、`mcp` の行は通知の畳みの見出しと同じ丸印になる。画像は会話面が読み込んだものを使い回し、行ごとに読み込み直さない。直径は会話面の文字サイズ(`--room-font-size`)の 2.31 倍、頭文字は 1.2375 倍である——会話面の丸印(直径は文字サイズの 2.1 × 1.265 倍)の 1/1.15 にあたる。#258 で、会話面の文字サイズが既定のときの、それまでの会話面の丸印(`1rem` の会話面で頭文字 `1.1em`、直径はその `2.1em`)と同じ直径にし、頭文字も同じ比で上げた(#253 では直径およそ 1.4rem、頭文字 0.75rem)。行の高さは丸印に合わせて伸び、▶/■ と `⋯` の列の並びと幅は変わらない。 **丸印の大きさだけは会話面の文字サイズの軸に在る(#260)。** #253 では丸印も `rem` で持ち、パネルの他の部分と同じく UI 全体の倍率(#66)に連れ、会話面の文字サイズには連れなかった。#258 の値(2.31rem)は「UI の倍率が 1・会話面の文字サイズが既定」のときに会話面の丸印の 1/1.15 になる値であり、会話面の文字は UI の倍率を割り戻している(下記「会話面の文字サイズ」)ため、どちらかの設定が既定でないと比が崩れ、二つがほぼ同じ大きさに見えた。Master「アカウントのアイコンサイズがチャット欄のアイコンサイズと同じになってない?」(2026-10-03)。#258 の意図は会話面の丸印との大きさの関係(Master「今の会話のアイコンサイズをアカウントのアイコンサイズに。で会話のアイコンもう少しだけ大きくできる?」、2026-10-03)であり、それを保つために丸印の大きさを会話面の文字サイズの軸へ移した。パネルの文字・行・操作は UI 全体の軸のままである。 @@ -409,7 +409,7 @@ Master「コメント書き込み欄の上にある下までスクロールボ 導出だけでは足りないことは実測で判明した。`Lin` 130.5 度 / `Lay` 165.5 度 / `マスター` 205.5 度と、実際に使う 3 名が 75 度の帯に収まる。accent と同じ低彩度では 35 度差を見分けられず、色で追うという目的が、まさに使う名前の組で弱まる。名前由来かつ安定という性質と、任意の 2 名の分離保証は両立しない。分離を得るには色を導出ではなく宣言にする必要がある(#40)。 -宣言できるのは色相だけである。明度と彩度は上表のまま動かさない。選んだ色相によらずライト / ダークの両方で読める、という条件を保つためである。宣言は 8 色から選ぶ。連続した色相環にしない。買う必要があるのは「任意の 2 名を見分けられること」であって、度数を人間に判断させることではない。 +宣言できるのは色相だけである。明度と彩度は上表のまま動かさない。選んだ色相によらずライト / ダークの両方で読める、という条件を保つためである。宣言は色相順の 16 色から選ぶ(#393)。既存の赤 25・橙 55・黄 95・緑 145・青緑 195・青 250・紫 300・桃 350 を保ち、その間に紅 7.5・朱 40・山吹 75・黄緑 120・ミント 170・水色 222.5・藍 275・藤 325 を加える。「自動」と保存済みの色相は引き続き使える。連続した色相環にしない。買う必要があるのは「任意の 2 名を見分けられること」であって、度数を人間に判断させることではない。 宣言が accent より上にあるのは、宣言した本人にだけ出ない色は宣言した色ではないからである。以前の色分けは自分 / 他人の二値であり(#39)、自分以外の全員が同じ色になっていた。accent は自分の**既定**として残るため、色を宣言しない参加者の見え方はこれまでと変わらない。宣言した場合に自分を自分と判じる手段は、名簿の「(あなた)」と、行に出ている自分の名前である。色はその 3 つのうち最も速い経路であって、唯一の経路ではなかった。宣言によって、色は割り当てられるものから選ぶものへ移る。 diff --git a/src/main.ts b/src/main.ts index 00bf5ba..d41afd0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -69,17 +69,25 @@ const LOCAL_KEY = "pullcept.local-account"; * colour picker would ask for two values and silently discard them. * * A short list rather than a continuous dial: what this has to buy is that any - * two participants can be told apart, and eight positions spread round the + * two participants can be told apart, and sixteen positions spread round the * wheel buy it without asking anyone to judge degrees. */ const HUES: { label: string; hue: number }[] = [ + { label: "紅", hue: 7.5 }, { label: "赤", hue: 25 }, + { label: "朱", hue: 40 }, { label: "橙", hue: 55 }, + { label: "山吹", hue: 75 }, { label: "黄", hue: 95 }, + { label: "黄緑", hue: 120 }, { label: "緑", hue: 145 }, + { label: "ミント", hue: 170 }, { label: "青緑", hue: 195 }, + { label: "水色", hue: 222.5 }, { label: "青", hue: 250 }, + { label: "藍", hue: 275 }, { label: "紫", hue: 300 }, + { label: "藤", hue: 325 }, { label: "桃", hue: 350 }, ]; diff --git a/src/styles.css b/src/styles.css index b3cf2c2..2c329c5 100644 --- a/src/styles.css +++ b/src/styles.css @@ -2197,7 +2197,7 @@ button svg.icon { It is still not an addressee: that list comes from the room's roster, so an offline account cannot appear in it at all. */ #participants .member.offline .pick { - opacity: 0.55; + opacity: 0.35; } #participants .empty {