Repository navigation
Float the reply field on Liquid Glass on iOS - #17
Merged
simonhamp merged 1 commit intoOct 20, 2026
Merged
Conversation
KaitoMuraoka
marked this pull request as ready for review
October 19, 2026 14:21
Member
|
cool |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The reply bar under a commit is a control that floats over the replies as they scroll, but on iOS it was drawn flat: an opaque surface with a hairline on top. The HIG puts controls like this on Liquid Glass, above the content layer, and asks bars not to carry custom backgrounds that fight the system's effects. So on iOS the field becomes a glass plate, the way Messages draws its composer. Android keeps the flat bar, since Material has no glass to match.
What changed
ios:glass ios:rounded-[18] ios:px-4. It's the regular variant, not clear, since text scrolls behind it. The radius isn'trounded-fullbecause the field grows to five lines, and a capsule that tall bulges at both ends.android:bg-theme-surface,android:bg-theme-hairline). On an opaque surface the glass has nothing to show through and reads as a grey pill.Display::ReplyBarHeightcounts on and the clearance under the last reply is unchanged..regularMaterialinstead of glass, through the existingglassfallback.Tests
The test that the reply bar is painted solid with its hairline now runs on Android and also checks the field has no glass. A new test checks that on iOS the bar and hairline have no background and the field is on glass. The 509 tests in
tests/Feature/Screenspass, and Pint is clean. The full suite still stops atAppIconTest, which runs out of memory booting the plugin discovery; it does the same onmain.Screenshot
Explanation in Japanese
コミット画面の返信バーは、返信がスクロールする間もその上に浮かぶコントロールです。しかしiOSでは、上部に細い線があるだけの不透明な面として描画されていました。HIGでは、このようなコントロールはコンテンツより手前にLiquid Glassで配置し、システムの効果と競合する独自の背景をバーに持たせないことが推奨されています。そこでiOSでは、Messagesの入力欄のように、返信フィールドをガラスのプレートにします。Materialには対応するガラス表現がないため、Androidでは従来どおりのフラットなバーを維持します。
変更内容
ios:glass ios:rounded-[18] ios:px-4を設定しました。返信が背後をスクロールするため、clearではなく通常のバリアントを使います。フィールドは最大5行まで伸びるので、両端が膨らんで見えるrounded-fullではなく、18ポイントの角丸にしています。android:bg-theme-surface、android:bg-theme-hairline)。不透明な面ではガラス越しに何も見えず、灰色のピルのように見えてしまうためです。Display::ReplyBarHeightの計算どおりとなり、最後の返信との間隔も変わりません。glassフォールバックによって.regularMaterialが使われます。テスト
返信バーを塗りつぶしと細い線で描画するテストはAndroidで実行するように変更し、フィールドにガラスが適用されていないことも確認します。また、iOSではバーと細い線に背景がなく、フィールドがガラス上にあることを確認するテストを追加しました。
Screensの509件のテストはすべて成功し、Pintも問題ありません。全テストスイートはAppIconTestで停止します。プラグインの検出処理でメモリ不足になりますが、mainブランチでも同じ状況です。