Skip to content

feat(ui): let the whole UI be scaled from a global setting #66

Description

@smileygames

目的

UI 全体の拡大縮小を、全体設定の項目として持てるようにする。

Master の発言(2026-08-24、#60 の実機確認の場で):

全体UIの大きさは全体設定でいじれた方がいいからね。今はなくても問題ない。

前提

寸法の軸は三本ある

対象 操作の置き場所 状態
会話面 #room の本文(発言者名・時刻・行の最大幅を含む)と入力欄の本文(#composer textarea#81 Ctrl + = / - / 0 とヘッダのピッカー #60 で実装済み
端末 xterm の fontSize(桁数と行数が従う) 端末面のヘッダ #68
UI 全体 上の二つを除いた画面 全体設定の「UI サイズ変更」 本 issue

三本は独立である。互いに相対で乗らない。一本を動かしても他の二本は動かない。

この形が効くのは、求めているものが違うためである。全体設定は画面そのものの見え方(画面が遠い、字が小さい)を扱い、会話面の設定は読んでいる本文を扱い、端末の設定は CLI が使える桁数と行数を扱う。どれかを動かしたときに他が付いてくると、どの都合で動かしたのかを設定が区別できなくなる。

決まった経緯

  • 会話ビューは「UI サイズ変更」の外。 全体設定には「UI サイズ変更」の項目を置き、会話ビューはそれとは別の設定とする(Master、2026-08-24)。
  • 端末も外。 端末の寸法は端末面のヘッダに置く(Master、2026-08-24、feat(ui): give the terminal pane a header with tabs, close and size #68)。UI 全体の寸法ではない。

したがって「UI サイズ変更」が覆うのは、会話面と端末を除いた画面である。参加者パネル、タイトルバー、アカウントのモーダルなど。

入力欄は、本文(#composer textarea)だけがここから抜けた(#81)。書く文と読む文が同じ一つの文であるため、会話面の軸に入る。同じ行の 宛先送信 は書かれる文ではなく操作であり、この軸に残る。

未決

以下は未検討。memo の段階であり、着手前に詰める。

  • 全体設定をどこに置くか。 アカウントのモーダルとは別の面が要る。
  • webview 自身のズームで足りるのか、アプリ側で持つべきなのか。 feat(ui): let the chat text size be changed #60 はキー操作で webview のズームを止めている(event.preventDefault())。webview のズームは会話面と端末も巻き込むため、それをそのまま「UI サイズ変更」に使うと三軸の独立が壊れる。アプリ側で持つなら、覆う範囲をどう表現するか(:root の変数か、面ごとの指定か)。
  • 保持先と上下限。 feat(ui): let the chat text size be changed #60 と同じく localStorage の梯子で持つのか。

制約

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlog受け入れ済み、着手時期未定enhancement新機能・改善要望memoメモとして開始した状態。見出しは必要なものだけでよい

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions