Skip to content

Round floating surface corners - #92

Open
tella-butler wants to merge 5 commits into
mainfrom
rounder-floating-surfaces
Open

Round floating surface corners#92
tella-butler wants to merge 5 commits into
mainfrom
rounder-floating-surfaces

Conversation

@tella-butler

@tella-butler tella-butler commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add dedicated rounded-popup and rounded-modal design tokens instead of reusing button and generic scale corners
  • use the popup token across menus and popovers, with concentric Chrome squircle geometry for menu gutters and rows
  • unify centered dialogs, command palettes, desktop dialogs, and phone sheets on the modal token
  • keep Safari and Firefox intentionally tighter: circular fallbacks render at 11.9px / 22.1px versus Chrome's 18.9px / 35.1px squircles
  • make menu content padding overridable so the spin-off menu's existing full-bleed layout remains full bleed

This is radius-only and intentionally separate from #90's shadow work.

Visual comparison

Light-mode before/after pairs for menus, popovers, dialogs, and the Safari/Firefox phone fallback

Verification

  • bun run typecheck
  • bun test src/frontend (251 passing)
  • Tailwind v4 production compile
  • semantic tailwind-merge checks for full and top-only radius overrides
  • real light-mode Chrome captures at desktop and phone widths
  • simulated Safari/Firefox fallback: phone sheet computed to 22.1px with corner-shape: round

Started by Kent de Bruin in this Michael session

@tella-butler

tella-butler commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author
🕙 Outdated review — superseded by a newer review below

🤖 Michael review · approve · confidence 5/5

Safe to merge. The semantic radius tokens are applied consistently across the shared menu, popover, modal, and responsive-sheet primitives, while caller overrides and the spin-off menu's full-bleed layout remain intact. The two failing installer checks concern a missing OpenCode engine and are unrelated to this frontend-only diff; type-check and tests pass.

💡 Labels: os-adversarial — deeper two-pass review · os-simplify — quality cleanup pass · os-auto-fix — fix anything outstanding and push until CI passes.
Reviewed 29f5ed4 · GPT-5.6 Sol · earlier reviews collapse above · open session

@tella-butler

Copy link
Copy Markdown
Contributor Author

Light-mode radius comparison

All pairs use the same light theme; only corner geometry changes.

Surface Before After
Account menu Account menu before Account menu after
Usage popover Usage popover before Usage popover after
Command palette Command palette before Command palette after
Desktop Desk Desktop Desk before Desktop Desk after
Phone sheet, Safari/Firefox fallback Phone sheet fallback before Phone sheet fallback after

The phone pair forces corner-shape: round and --rf: 0.85, matching the tighter Safari/Firefox fallback. The new radius computes to 22.1px there; Chrome's modal squircle remains larger at 35.1px.

@tella-butler

tella-butler commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author
🕙 Outdated review — superseded by a newer review below

🤖 Michael review · approve · confidence 5/5

Safe to merge. The new commit only merges current main; none of the PR-owned lines changed since the previous approval. The complete diff consistently applies the popup and modal radius tokens, preserves the spin-off menu's full-bleed layout through the inner-content override, and maintains the intended browser fallbacks.

💡 Labels: os-adversarial — deeper two-pass review · os-simplify — quality cleanup pass · os-auto-fix — fix anything outstanding and push until CI passes.
Reviewed 2eb518f · GPT-5.6 Sol · earlier reviews collapse above · open session

tella-butler pushed a commit that referenced this pull request Aug 12, 2026
A bare `#3` chipped as a PR reference in prose. The first fix required 4+
digits, which is right for tella-fusion (#5648) and wrong for every repo
numbered under a thousand — opensession is at #92, tella-mac at #14.

Measured over 120k transcript entries: 4+ digit `#numbers` are almost all
PRs, while 1-3 digit ones are mostly stream and step indices (`stream #0`),
CSS hex colours (`color: #333`), and rankings (`#29`). The legit short form
carries its own evidence — `PR #92` is how the small-numbered repos are
actually written.

So a short number now links when something other than its digits says PR: a
`PR`/`PRs` cue in front of it, a qualifier (`backstage#92`), or a PR the
session list already knows for that repo. The cue is matched by the
tokenizer (which cannot see behind its own match position) but re-emitted as
prose, so the chip stays labelled `#92` rather than repeating the word next
to the PR icon.
tella-butler pushed a commit that referenced this pull request Aug 12, 2026
The renderer can place `opensession#92` at any length, but a bare `#92` is a
guess it declines to make for short numbers — `#3`, `#333` and `#29` are far
more often a step, a hex colour or a ranking. Writing the repo id is the
cheap half of that contract, so ask for it in the run instructions instead of
leaning entirely on heuristics.

Goes in the existing "Session UI rendering" section, so every run gets it.
@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
opensession Ready Ready Preview Aug 26, 2026 2:35pm

@open-session-os-tella-dev

open-session-os-tella-dev Bot commented Aug 26, 2026

Copy link
Copy Markdown

🤖 OS review · comment · confidence 4/5

Safe to merge if retaining the newer, larger phone-sheet geometry is intentional. The popup and desktop modal token changes hold together, but the merged diff no longer achieves the stated unification of phone sheets with the modal token.
1 inline comment below.

💡 Labels: os-auto-fix — I fix these and push until CI passes · os-adversarial — deeper two-pass review · os-simplify — quality cleanup pass.
Reviewed 94292d3 · GPT-5.6 Sol · earlier reviews collapse above · open session

@open-session-os-tella-dev open-session-os-tella-dev Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OS review · 94292d3

? "inset-0 h-dvh max-h-none rounded-none bg-surface pb-[env(safe-area-inset-bottom)] pt-[env(safe-area-inset-top)] shadow-none"
: "inset-x-0 bottom-0 max-h-[94dvh] rounded-t-[calc(var(--sheet-radius,34px)*var(--rf))] bg-surface pb-[env(safe-area-inset-bottom)] shadow-[0_-12px_40px_rgba(0,0,0,0.35)]"
: "left-1/2 top-1/2 max-h-[85vh] w-[92vw] max-w-[30rem] -translate-x-1/2 -translate-y-1/2 rounded-[calc(18px*var(--rf))] bg-raised smooth-shadow-ring-lg",
: "left-1/2 top-1/2 max-h-[85vh] w-[92vw] max-w-[30rem] -translate-x-1/2 -translate-y-1/2 rounded-modal bg-raised smooth-shadow-ring-lg",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 P2 — Confirm that phone sheets should remain outside the modal token

The merge changes only the desktop branch to rounded-modal; the adjacent phone branch remains rounded-t-[calc(var(--sheet-radius,34px)*var(--rf))]. This is exercised by real phone consumers such as SidebarCustomizeDialog and ProfileSection. With the current --rf values, an ordinary phone sheet resolves to about 26.2px in Safari/Firefox and 45.9px in Chrome, while rounded-modal resolves to about 17.0px and 29.7px respectively. Consequently the current PR no longer delivers its stated goal of unifying phone sheets on the modal token; the previously reviewed implementation used rounded-t-modal, so this behavior was lost during the merge. If preserving main's newer sheet geometry is intentional, update the PR scope and visual-verification claims; otherwise restore rounded-t-modal on the phone-sheet branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants