Repository navigation
refactor(desktop): stop app CSS restyling the shared components' insides - #3674
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
charleslpan
added a commit
that referenced
this pull request
Oct 18, 2026
charleslpan
enabled auto-merge
October 18, 2026 19:25
…ther control Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
github-merge-queue
Bot
removed this pull request from the merge queue due to a conflict with the base branch
Oct 18, 2026
…-internals-css # Conflicts: # apps/desktop/src/renderer/styles/desktop.css # apps/desktop/src/renderer/styles/tooltip.css
charleslpan
enabled auto-merge
October 18, 2026 19:57
…-internals-css # Conflicts: # apps/catalog/src/examples/search-fields.tsx # apps/desktop/src/renderer/styles/desktop.css
…end slot rather than restating the picker's check Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
charleslpan
added a commit
that referenced
this pull request
Oct 18, 2026
…slot, so its submenu chevron is the picker's own size Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 3, P8: the desktop's own CSS stops reaching into
@luke/ui's parts. I re-scannedrg '\.luke-' apps/desktop/src/renderer/styles apps/web/src: the web has no hits. Every desktop rule that restyled a shared component's inside is now a component option, points at the app's own element, or is deleted.Into the components (approved by the orchestrator):
--luke-fold: barevalue: its main part's glyph alone, at the control's corner, with no chevron. The plan toolbar at ≤320px sets it instead of hiding.luke-split-button > .luke-button:last-childand re-rounding the main part.foldedstill folds the words.--luke-fold: folded: its tally is read out to screen readers but not drawn. The find bar at ≤300px sets it instead of hiding.luke-search-field-tally.inputlook now fills the label's line and overhangs it (−3px above and below, minus its inset and border at the start). Before, Settings set those negative margins on.luke-inline-edit. No new API.packages/ui/README.mddocuments the--luke-foldvalues. The catalog shows SplitButton bare and SearchField folded.Pointed at the app's own element instead of a shared part:
.todos-dock-body) instead of.luke-disclosure-body.fold.tsxis untouched (it's P4's)..card-code,.actor-words:has(> .card-when), and acard-corner-markclass on the pull request mark replace the.luke-hover-card-note/-cornerdescendant selectors.Shortcut(tooltip-chord,button-chord). Before, they were selected through.luke-tooltip,.luke-dialog-actions .luke-buttonand.home .luke-button.Deleted:
.sidebar-task > .luke-inline-editand.luke-hover-card .integration-tool-listwere dead: no element matches them anymore..settings-chevron,.credential-check) beat the shared layer. Those global rules now leave.luke-menu-item-endalone, as they already left chips and button faces, so the menu draws its own..luke-combobox-option-end .credential-check, added by a sibling PR to undo the same leak in a picker's option. The global.credential-checkrule now leaves.luke-combobox-option-endalone too, so the combobox draws its own check (16px, text colour when chosen). It is pixel-identical to the sibling's fix; screenshots below.overflow: visibleon the automations empty state.Why exclusions rather than scoping the glyph rules:
.settings-chevron,.credential-checkand.link-iconare@luke/uiglyph classes that the app styles globally. Scoping them to the app's own containers, or moving them into thebaselayer, would also resize the chevrons in several buttons, nav items and list rows that rely on the app size today. So the rules keep their:where(:not(…))list of the shared slots that draw their own glyph, which has zero specificity and restyles nothing of those slots.Kept, as placement or app content (not internals): flex, width or grid placement on a component's root (
.luke-text,.luke-badge,.luke-empty-state,.luke-search-field,.luke-text-field,.luke-hover-card-head,.tab-button > .luke-inline-editwidth). Also kept::has()conditions on the app's own containers;--state-glyph-sizeon hover-card slots, which sizes the app's ownStateGlyphand nothing of the card's);.luke-facerules and the face-size rules. These are the motion wiring thatpackages/brand's generator writes into the renderer (--face-motion,--voice-*), so they stay with the generated face-motion.css.Visible changes
Nothing else should change visibly. The Start split button at 600/400/300px, the find bar's tally at 420/280px, and the Settings rename field are pixel-identical between
mainand this branch:.settings-chevronrule leaked into a combobox option's end slot as it did into the menu's. It now leaves.luke-combobox-option-endalone, so the chevron is the picker's own glyph size and matches the check beside it.The picker's check after this change (identical to
main):Evidence
pnpm check:affected: green (typecheck, lint, knip, discarded-effect, tests). One run hit a failure inlist-row.test.ts's swipe test (from feat(ui): tune a row's swipe: a trackpad scroll never swipes, lifted fingers let go at once, a flick carries, and the row follows with no render #3653, already on main). It passes alone 3/3 and on rerun; this PR touches no list-row code.styles.cssfrommain(before) and from this branch (after).--luke-foldstates are shown in the catalog instead.Invariants
./scripts/check.shgreen. (CI)astype assertion.Effect.runPromise/runSync/runForkadded.setTimeout/setInterval/new Promise/AbortController/fs.watch.CLAUDE.md/AGENTS.mdsentence names the changed part.PRIVACY.mdunchanged.Notes
🤖 Generated with Claude Code