Skip to content

Match Menu and Select lists to the lig header dialect - #12

Merged
0froq merged 1 commit into
mainfrom
cursor/menu-select-lig-dialect-0ef5
Oct 24, 2026
Merged

0froq merged 1 commit into
mainfrom
cursor/menu-select-lig-dialect-0ef5

Conversation

@0froq

@0froq 0froq commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Summary

Menu and Select floating lists now use the lig SiteHeader surface as the library default: hairline (--ui-line), radius 0, no shadow, 11px --ui-font-meta, underline on the highlighted row, and a 5px accent dot in the start gutter.

Select’s old list (muted border, paper halo, accent tint, solid accent row) is gone. Both lists share one rule in overlay.css. Tooltip, dialog, and hover card keep their existing paper halo. Combobox is unchanged.

Language / chrome

/docs/language (en + zh) covers:

  • Principles, compressed from the creative-direction profile: coherence over decoration, a restrained surface, aesthetics as a constraint.
  • Radius tiers: controls ~2px (--ui-radius), app rows ~8, cards ~10. Floating menus are the control tier as lig draws it: radius 0 and a hairline. 8 and 10 are product tiers, not new tokens.
  • Elevation: menu default has no soft shadow.
  • One highlight: underline, plus the accent dot for the current row.
  • Three fonts, and the .ui / --ui-* bridge.

designStatus

Notes accept ai-draft → reviewed → stable. The docs badge reads the note. Menu and Select are reviewed. Other components stay ai-draft.

What lig can delete

In app/components/SiteHeader.vue, these deep overrides become redundant once this is vendored. Do not delete them in this PR (ui repo only).

Remove the list chrome, row padding, highlight, checked row, and accent-dot rules:

  • :deep(.l-menu-list.ui-menu-content), .l-language-select :deep(.ui-select-content) — min-width, padding, border, radius 0, box-shadow: none, 11px meta
  • :deep(.l-menu-list .ui-menu-item), .l-language-select :deep(.ui-select-item) — gutter padding, radius 0
  • highlighted row rules — background: none and the underline
  • .l-language-select :deep(.ui-select-item[data-state='checked']) — no fill, --ui-fg text
  • :deep(.l-menu-list [aria-current='page'])::before and the shared dot position rule, including .ui-select-item > [aria-hidden='true']

Keep the header trigger rules. Those are nav chrome, not the floating list: muted meta on .l-menu and .ui-select-trigger, foreground on hover/open, and the responsive .l-menu display.

lig still sets aria-current="page" on the current menu item. The library paints the dot from that attribute. The dot uses inset-inline-start, so it follows dir.

Aesthetic choice

Underline + accent dot is implemented. The previous faint fill and the accent-bar treatment are not left as a second variant.

No open choice on the list surface. Header trigger color (muted until hover/open) stays site-owned.

Verification

pnpm check (lint, typecheck, token contract) passes.

In the docs site, opening Menu and Select shows the shared surface: 1px --ui-line, radius 0, box-shadow: none, 11px Geist Mono, underlined highlight, 5px accent dot. Menu and Select badges read Reviewed; Button stays AI Draft. /docs/language renders the Chrome section.

Menu list: hairline, underline on the highlighted row
Select list: underline and accent dot

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

Floating menus are a hairline, square, unshadowed surface with an underline and an accent dot. Language docs and the design-status gate record that dialect; Menu and Select are reviewed.

Co-authored-by: froQ <sayhola@froq.me>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅

View logs ↗
No Preview URL. Enable ↗ 0e53fa1 2026-10-24T09:16:49.096Z View logs ↗

@0froq
0froq marked this pull request as ready for review October 24, 2026 14:32
@0froq
0froq merged commit 62834e1 into main Oct 24, 2026
2 checks passed
0froq added a commit to 0froq/lig that referenced this pull request Oct 24, 2026
* refactor(header): drop list chrome that Menu and Select now own

The lig header dialect for floating lists is the library default after
0froq/ui#12. Keep the trigger chrome and the aria-current page marker.

Co-authored-by: froQ <sayhola@froq.me>

* Squashed 'vendor/ui/' changes from 1b874ef..62834e1

62834e1 feat(ui): use the lig header list as the Menu and Select default (#12)
826561e fix(ui): ignore SSR slot comments when measuring signature marks
81ec46b fix(ui): declare GridTable private row height in CSS
f483e20 fix(ui): satisfy upstream lint rules for GridTable exports
d236d70 feat(ui): add UiDevtools to show library and project components
abd153c feat(ui): transition pinned title halo and clear pinned table columns at rest
f59c5d3 feat(ui): add a bg-colored halo around pinned titles
6313114 feat(ui): add a bg-colored halo around floating panels
4501f0b fix(ui): drop opaque backgrounds from in-flow components
6428c22 fix(ui): tint GridTable pin fade with the hovered row
3e3aa93 feat(ui): add crosshair hover highlight to GridTable
4e59077 feat(ui): add GridTable and use it for lightweight ports
d579cb4 style(ui): mark checked select item with a dot
c04293b refactor(ui): rename DropdownMenu to Menu
192fdc2 fix(ui): allow private custom properties in token check
e972b00 feat(ui): support untitled CodeBlock and keep title rule when folded
dc0465f fix(ui): indent collapsible panel content
563e395 chore(ui): merge upstream 0froq/ui main
c01fc75 feat(ui): add CodeBlock, sticky open headers and a footer-band pen route
caf1c6c wip: palette, signature and i18n updates from Air
8e4dc84 fix(ui): stabilize Select popup layout and focus handling
0f689d1 feat(ui): add a custom mode to Select for header language switching
5b64792 fix: remove menu highlight edge markers
50a3c60 feat: show syntax inspector popovers on narrow screens
8976b7a feat: share boundary-aware wheel scroll handoff
e254580 feat: ease pen stroke progress behind scrolling
f87bb31 feat: reveal connecting pen strokes while scrolling
b02ae41 fix: inset the page rule turn from the left edge
1f3eb9f fix: end the page rule above the first label
160d4eb docs: relicense under MIT and rewrite the guides
13e43a9 Merge pull request #4 from 0froq/codex/ui-paper-signature

git-subtree-dir: vendor/ui
git-subtree-split: 62834e120909b156fe4e3b38e08bbe1e8aa885d3

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
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