Files
PaperClipAI/ui
scotttongandClaude Opus 5 d42b00939f fix(ui): keep bottom-left overlays clear of the sidebar
The announcement well is `fixed left-3 bottom-3` and 22rem wide. On desktop
that is not the corner of the page — it is the sidebar's footer, where the
account menu and the Share feedback button live. A 352px card at left:12px
covers the whole width of a 240px sidebar, so an announcement lands on top of
those controls, and the feedback button's tooltip (z-50, opening upward)
lands back on top of the announcement.

The toast viewport has the same anchor and the same collision. The two never
appear together — the well hides itself while a toast is up — so they have to
move together or they disagree with each other.

Rather than bump a z-index, which would only decide who wins a fight neither
should be in, the overlays now clear the sidebar:

- `SidebarShell` publishes its reserved width on the root. It is a sibling of
  these overlays, not an ancestor, so a custom property is the shared channel.
  Reserved width, not panel width: a peeking panel overlays content on purpose
  and is transient, so the overlays must not slide as the pointer crosses it.
- `--overlay-gutter-left` and `--overlay-available-width` derive from it. With
  no sidebar they are exactly the values these overlays already used, so the
  mobile drawer and any host outside the app shell are unchanged.
- Both overlays take the offset at `md:` and up only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 23:48:49 -07:00
..

@paperclipai/ui

Published static assets for the Paperclip board UI.

What gets published

The npm package contains the production build under dist/. It does not ship the UI source tree or workspace-only dependencies.

Storybook

Storybook config, stories, and fixtures live under ui/storybook/.

pnpm --filter @paperclipai/ui storybook
pnpm --filter @paperclipai/ui build-storybook

Typical use

Install the package, then serve or copy the built files from node_modules/@paperclipai/ui/dist.