From af2b276e98a45a0f711bfdb5af7cebcbb50f856b Mon Sep 17 00:00:00 2001 From: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com> Date: Sun, 22 Feb 2026 18:36:27 -0800 Subject: [PATCH] Make browser omnibar squircle --- Sources/Panels/BrowserPanelView.swift | 4 +++- ..._browser_omnibar_compact_layout_regression.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Sources/Panels/BrowserPanelView.swift b/Sources/Panels/BrowserPanelView.swift index 37f0af44..65f2f25e 100644 --- a/Sources/Panels/BrowserPanelView.swift +++ b/Sources/Panels/BrowserPanelView.swift @@ -194,7 +194,9 @@ struct BrowserPanelView: View { @State private var omnibarPillFrame: CGRect = .zero @State private var lastHandledAddressBarFocusRequestId: UUID? @State private var isBrowserThemeMenuPresented = false - private let omnibarPillCornerRadius: CGFloat = 12 + // Keep this below half of the compact omnibar height so it reads as a squircle, + // not a capsule. + private let omnibarPillCornerRadius: CGFloat = 10 private let addressBarButtonSize: CGFloat = 22 private let addressBarButtonHitSize: CGFloat = 26 private let addressBarVerticalPadding: CGFloat = 4 diff --git a/tests/test_browser_omnibar_compact_layout_regression.py b/tests/test_browser_omnibar_compact_layout_regression.py index 3886f495..707c4a8b 100644 --- a/tests/test_browser_omnibar_compact_layout_regression.py +++ b/tests/test_browser_omnibar_compact_layout_regression.py @@ -71,10 +71,26 @@ def main() -> int: f"addressBarVerticalPadding regressed to {vertical_padding:g}; expected <= 4 for compact omnibar height" ) + omnibar_corner_radius = parse_cgfloat_constant(view_source, "omnibarPillCornerRadius") + if omnibar_corner_radius is None: + failures.append("omnibarPillCornerRadius constant is missing") + elif omnibar_corner_radius > 10: + failures.append( + f"omnibarPillCornerRadius regressed to {omnibar_corner_radius:g}; expected <= 10 to keep a squircle profile" + ) + address_bar_block = extract_block(view_source, "private var addressBar: some View") if ".padding(.vertical, addressBarVerticalPadding)" not in address_bar_block: failures.append("addressBar no longer applies compact vertical padding via addressBarVerticalPadding") + omnibar_field_block = extract_block(view_source, "private var omnibarField: some View") + if omnibar_field_block.count( + "RoundedRectangle(cornerRadius: omnibarPillCornerRadius, style: .continuous)" + ) < 2: + failures.append( + "omnibarField no longer uses continuous rounded-rectangle background+stroke tied to omnibarPillCornerRadius" + ) + button_bar_block = extract_block(view_source, "private var addressBarButtonBar: some View") hit_frame_uses = button_bar_block.count("addressBarButtonHitSize") if hit_frame_uses < 3: