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 の梯子で持つのか。

制約

関連

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

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions