2026-07-19 の macOS/iPadOS UI 精査より。#12(もし)・#19(else)・#20(四則)でブロックの引数と行要素が増え、ワークスペース行の器が追いついていない。
課題
- if ヘッダの幅あふれ: ワークスペース列は 300–440pt 固定(
ContentView.swift の frame(minWidth: 300, idealWidth: 360, maxWidth: 440))。一方 if ヘッダは「もし + 値ボタン + 比較ボタン + 値ボタン + なら + (+そうでなければ) + Add Here + ↑↓×」の 9 要素で、360pt では圧縮・truncate がほぼ確実。ネスト(16pt/段)でさらに悪化する
- タッチターゲット過小(iPad): DropGap は実質 8–10pt 高。行の ↑↓× / Add Here / そうでなければの × は
controlSize(.small) の borderless で、HIG の 44pt に遠い。子ども対象では致命的
- ブロックらしさの弱さ: パレットは濃色 borderedProminent、ワークスペース行は opacity 0.15 の淡色。色でパレット↔プログラムを対応付ける手掛かりが弱い
方向性案(要デザイン検討)
- ↑↓×(RowControls)をコンテキストメニュー / スワイプアクションに退避し、行は「ラベル + スロット」に専念させる
- if ヘッダは
ViewThatFits で 1 行⇄2 行を自動切替(条件部を 2 行目へ)
- DropGap は見た目を細いまま
contentShape の当たり判定だけ拡大(±12pt 程度)
- 行背景の彩度を上げる(0.15 → 0.3 前後)か、カテゴリ色の縁取りを足す
受け入れ条件
2026-07-19 の macOS/iPadOS UI 精査より。#12(もし)・#19(else)・#20(四則)でブロックの引数と行要素が増え、ワークスペース行の器が追いついていない。
課題
ContentView.swiftのframe(minWidth: 300, idealWidth: 360, maxWidth: 440))。一方 if ヘッダは「もし + 値ボタン + 比較ボタン + 値ボタン + なら + (+そうでなければ) + Add Here + ↑↓×」の 9 要素で、360pt では圧縮・truncate がほぼ確実。ネスト(16pt/段)でさらに悪化するcontrolSize(.small)の borderless で、HIG の 44pt に遠い。子ども対象では致命的方向性案(要デザイン検討)
ViewThatFitsで 1 行⇄2 行を自動切替(条件部を 2 行目へ)contentShapeの当たり判定だけ拡大(±12pt 程度)受け入れ条件