镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Document floating surfaces in the design catalog - #135

Merged
wesbillman merged 1 commit into
mainfrom
morganm/floating-surfaces
Sep 22, 2026
Merged

wesbillman merged 1 commit into
mainfrom
morganm/floating-surfaces

Conversation

@morgmart

Copy link
Copy Markdown
Contributor

What this does

Adds Floating surfaces to the design catalog’s Foundations section, beside Elevation and Glass. It gives the design-system owner a place to inspect the existing card recipe, try the real Preview Card and Select, and see where adoption still differs.

This is catalog-only: no enforcement, popup migration, shared styling changes, or composer integration.

Why it matters

The shared appearance already exists but was only visible through individual components. This page makes its background, border, corners, and shadow understandable together without claiming every floating surface already uses it.

How it works

The page renders the existing shared recipe and components, links to their catalog entries, and documents the separate popup recipe and remaining exceptions. The recipe stays in the shared design system; nothing moves and no new product component is introduced.

Open Foundations → Floating surfaces in the standalone catalog. Hover over the preview example, open the notification dropdown, and switch themes.

Verification

  • Design-system unit suite: 69 tests passed on the initial catalog working tree based on e9717dd; subsequent edits only clarified prose.
  • Complete catalog browser suite: 38 checks passed in Chromium/WebKit after review corrections, before a final hover-only wording correction. Used an untracked copy with isolated ports because the normal app-preview port was occupied; assertions were unchanged.
  • Final-page browser checks passed in both engines at narrow, intermediate, and wide widths in light/dark: hover preview, dropdown selection, links, and horizontal overflow. Screenshots below use synthetic catalog data.
  • App/catalog builds passed. Commit/push hooks passed at 9dbd7f7, including design types and guards; independent review findings were addressed.
  • No browser cases added or removed. Existing catalog navigation/reload coverage now includes the new page.
  • Hosted CI and human design review remain pending. Existing preview keyboard-focus behavior is unchanged; the page documents hover rather than promising focus activation.

Screenshots

Floating surfaces catalog page in light mode

Floating surfaces catalog page in dark mode

Signed-off-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
@morgmart
morgmart marked this pull request as ready for review September 22, 2026 16:07
@morgmart
morgmart requested review from a team, comp615 and wesbillman as code owners September 22, 2026 16:07

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Review clear

No actionable blockers found at 9dbd7f73e9d372a79b32d87c37dcbcac98f00028 against base e9717dda50eb25e81e0edad30b5d0500a052b591.

  • The four-file change stays catalog-only: the route, Foundations link, and existing reload/isolation traversal agree. Component links resolve to existing registry entries; the page reuses the viewer’s theme owner and real shared controls.
  • The documented floating-surface roles match the shared CSS and PreviewCard/Select consumers. The page accurately distinguishes popover-surface exceptions without migrating production behavior or introducing a new styling owner.
  • Validation: read-only pinned-source review on Blox, with an independent contract review integrated. Existing exact-head required CI is successful. No PR code or tests were executed by this review; the standalone catalog browser run and visual acceptance were not independently reproduced. Existing browser assertions remain intact, with no test cases added or removed.

@wesbillman
wesbillman merged commit c50272d into main Sep 22, 2026
12 checks passed
@wesbillman
wesbillman deleted the morganm/floating-surfaces branch September 22, 2026 22:27
wpfleger96 added a commit that referenced this pull request Nov 6, 2026
…#2649)

Moves values that only make sense for one distributor out of the
open-source tree and into build settings, and removes internal
references from docs, tests and fixtures.

**Merge order:** this PR and
[squareup/buzz-releases#135](squareup/buzz-releases#135)
depend on each other and merge together: this PR first, then #135 right
after, with no release build in between. #135 sets the new build inputs;
without them a release build loses the Git access rule and the Apps
control plane. #135 also checks that the built app contains both values,
so it fails on any buzz-app commit from before this PR.

## Build settings
- **`BUZZ_BUILD_REPOSITORY_ACCESS`** replaces the hardcoded `squareup`
rule in `crates/plugin-manager/src/access.rs`. It holds JSON in the
`repository-access.json` schema and is compiled in as the default rules.
The parser now lives in `access/schema.rs` and is shared with
`build.rs`, so a value that isn't valid, has no rules or has an unusable
rule fails the build. The build emits the value as compact JSON, so a
pretty-printed value reaches the runtime whole. Unset means no default
rules. Runtime file behavior is unchanged.
- **`BUZZ_BUILDERLAB_APPS_CONTROL_PLANE`** names the Apps control plane
for the build's own login origin. Rust (`apps_control_plane`) and
TypeScript (`controlPlane`, plus the dev broker in `vite.config.ts`)
both read it from the same sources: the process environment, then
`.env.local`. Vite mode files such as `.env.production` are not read.
Both sides require an HTTPS origin and a login origin. The private
tenant entries (production and staging) are removed from both public
tables. The native FI forwarder's Apps mode
(`src-tauri/src/federated_identity/access.rs`) resolves its control
plane through the same `apps_control_plane`, and in an FI build
`BUZZ_BUILDERLAB_ORIGIN` is the descriptor's identity origin, so the
setting applies to FI sign-in too.
- `release.yml` no longer compiles one private community into the
external-MCP and owner-access allowlists
(`BUZZ_EXTERNAL_MCP_COMMUNITIES`, `BUZZ_OWNER_MCP_COMMUNITIES`) or the
workflow-restriction list (`BUZZ_WORKFLOW_RESTRICTED_COMMUNITIES`).
Builds that want them set their own origins, and the docs and
workflow-authorization test use example communities.
- `communityName` drops its hard-coded list of hosted suffixes. An
unnamed `<name>.communities.<domain>` host shows as `<name>` on any
domain, and any other host shows in full.

## Cleanup
- Docs: bb-block rollout text, private signing-infrastructure link, IAM
role and bucket names, internal release-repo inventory, private backend
and security-plugin links (including the security-plugin link in
`docs/releases.md`), and design-system source links. The design system
describes its values in its own terms instead of naming an outside
design reference.
- Tests and fixtures (including the federated-identity fixtures that
came in with main): private hosts, org and repo names, and the SSH user
are replaced with example values. A ticket key is dropped.
- Internal work logs are removed (`docs/archive/hardening-*`, and the
matching parts of `docs/status.md` and `docs/inbox.md`).
- `AGENTS.md`: the personal acceptance-setup section is removed. A new
"Open-source boundary" section lists what must not be committed and the
build settings to use instead. It also says the rule covers
functionality, not only identifiers: features must be generic,
Block-only functionality belongs in a privately kept plugin, and host
changes for such plugins must be documented, inert, general-purpose
extension points.

## Validation
- `cargo test -p buzzodz-plugins --lib`: 80 passed.
- A build with `BUZZ_BUILD_REPOSITORY_ACCESS` set to the buzz-releases
value resolves `https://github.com/squareup/x.git` to the same SSH URL
and agent socket as the old built-in rule (`buzzodz plugin access`). An
invalid value fails the build.
- `build_config` tests cover compact emission of pretty-printed JSON,
and the control plane from process and `.env.local` but not from a mode
file. `browser-host/vite-config.test.mjs` covers the same frontend cases
plus a rejected non-origin value. A `buzzodz` built with pretty-printed
JSON resolves its rule at runtime (exit 0).
- `cargo test -p buzzodz-plugins` and the `federated_identity` tests in
`src-tauri` pass.
- Every changed unit-test file passes when run on its own.

Related:
[squareup/buzz-releases#135](squareup/buzz-releases#135),
[block/buzz#9114](block/buzz#9114)

---------

Signed-off-by: Will Pfleger <wpfleger@block.xyz>
Co-authored-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
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