Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/2-screen.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 全体の軸のままである。

Expand Down Expand Up @@ -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 つのうち最も速い経路であって、唯一の経路ではなかった。宣言によって、色は割り当てられるものから選ぶものへ移る。

Expand Down
10 changes: 9 additions & 1 deletion src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 },
];

Expand Down
2 changes: 1 addition & 1 deletion src/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Loading