Repository navigation
UI Consistency: 1 new finding, 1 unresolved
New finding
apps/web/src/components/clerk/T3ConnectSidebarSignIn.tsx(lines 85-88): the newDesktopConnectAvatarrawMenuTriggeromitscursor-pointerand a focus-visible ring. Under Tailwind v4 preflight a bare<button>getscursor: default, and keyboard focus falls back to the UA outline instead of the app'sring-ring, unlike every other raw trigger/sidebar control inapps/web/src. Inline suggestion posted.
Still open from a prior run (not re-posted)
apps/web/src/components/clerk/T3ConnectSidebarSignIn.tsx(lines 115-125): the desktop accountDialogPopuprenders only aDialogPanelwith noDialogTitleand noaria-label, so the dialog has no accessible name. OtherDialogPopupcall sites in the app pair withDialogHeader/DialogTitle, or setaria-labelwhen the visible heading lives inside the content.
Details
Note
Your check run agent prompt is: .macroscope/check-run-agents/ui-consistency.md
More information about how Check Run Agents work can be found in our Help Center.
Scope reviewed (include patterns apps/web/src/**/*.{ts,tsx,css}): cloud/connectAuth.tsx, cloud/managedAuth.tsx, cloud/useCloudLinkController.ts, components/clerk/T3ConnectSidebarSignIn.tsx, components/clerk/useT3ConnectAuthPrompt.tsx, components/clerk/authRedirect.ts, components/cloud/ConnectCliAuthSurface.tsx, components/cloud/ConnectOnboardingDialog.tsx, main.tsx, plus the related tests.
Checks performed:
- Compared the new desktop menu/dialog composition against
components/ui/menu.tsx,components/ui/dialog.tsx,components/ui/button.tsx,components/ui/input.tsxand existing call sites for trigger styling, focus ring, cursor, and dialog naming conventions. - Confirmed Tailwind v4 (
@import "tailwindcss"inapps/web/src/index.css) with no globalbutton { cursor: pointer }override, so the missingcursor-pointeris a real behavior change from the ClerkUserButtontrigger it replaces. - Verified
hover:bg-sidebar-row-hoveris a real theme token bridged inindex.css/themePalette.ts, so the retained hover treatment is correct. - The new sign-in waiting dialog in
useT3ConnectAuthPrompt.tsxusesDialog/DialogHeader/DialogTitle/DialogPanel/DialogFooter,Input, andButtonprimitives correctly; theInputwrapper isinline-flex w-fulland theButtonisshrink-0, so the flex row keeps its intended geometry.text-destructivefor inline error copy matches existing usage across the app. - Provider/hook refactors (
connectAuth.tsx,managedAuth.tsx,useCloudLinkController.ts,main.tsx) change auth plumbing only and introduce no new controls or styling.
🔍 Agent activity — 1 tool call
💭 I'm reviewing the in-scope files for this auth-related change, including the cloud connect and managed auth components, the sidebar sign-in dialog, and the redirect logic, recalling that I'd previously flagged an issue with the Dialog component in the sidebar sign-in file. The Dialog still lacks an accessible name at that same location, but since I already flagged this issue previously and the code wasn't changed in response, I shouldn't repost it. Now I'm checking for any new findings in this commit. Since the prior commit isn't reachable, likely due to a force-push, I'll just review the head diff for the in-scope files instead: the new connectAuth component, the managedAuth test and implementation, the cloud link controller hook, and some components directory changes. Now I'm checking a few UI consistency concerns: whether DesktopConnectAvatar's raw span should use an Avatar primitive instead, whether the Input component defaults to full width so it behaves properly inside a flex container, and whether MenuTrigger has default styling or needs explicit render props to match the rest of the design system. I'm checking whether MenuTrigger needs a default button styling and confirming that MenuItem's onClick works fine with Base UI's conventions. I also want to see how other MenuTrigger usages in the repo handle focus-visible rings to stay consistent. I'll also look at whether Input has w-full in its component definition, and check DialogPanel/DialogPopup overflow behavior for the avatar dialog's max-w-2xl profile pages. I notice the DesktopConnectAvatar MenuTrigger is missing the focus-visible ring and cursor-pointer styling that other raw triggers in the codebase include, which is a minor accessibility inconsistency worth flagging against the preservation rules. But I should check whether the browser's default focus outline still applies since outline-none isn't set — if so, keyboard focus remains visible even without the explicit ring, which weakens the case for flagging this. Still, the missing cursor-pointer compared to other buttons and menu items in the repo suggests a real inconsistency worth noting. The DesktopConnectAvatar dialog still lacks a DialogTitle, which was flagged before — since it persists, I shouldn't repost the comment but should note it in the summary. Now let me check button.tsx for the cursor behavior and confirm the sidebar-row-hover token exists. I notice the new DesktopConnectAvatar MenuTrigger is missing the repo's usual cursor-pointer and focus-ring conventions that other interactive elements have. I want to confirm this is a Tailwind v4 project, since that affects whether buttons get cursor:pointer by default, and the index.css structure with @variant/@theme suggests it is. So my first finding is that this trigger lacks the cursor-pointer and focus-visible ring classes present elsewhere, and I'll suggest adding them or switching to the existing Button component for consistency. I'm also checking connectAuth.tsx for any other UI issues, though it seems to just contain providers with no rendered elements. Now I'm checking the sign-in prompt's input-button row layout and confirming the flex sizing works correctly since the button has shrink-0 and the input will shrink to fit. I'm also verifying the dialog structure matches the repo's conventions for panel, header, and footer, and double-checking whether the destructive text color token is used consistently with how MenuItem applies it elsewhere. I'm checking other consistency points across the codebase—error text styling, avatar circles, sign-in prompts, and menu item click handlers all seem to follow existing patterns fine. Now I'm looking at the DesktopConnectAvatar's trigger sizing to verify it matches conventions elsewhere. I want to confirm whether the Dialog primitive requires a title for accessibility, since Base UI warns if none is set—already flagged that separately. The real finding I'm settling on is that migrating from Clerk's UserButton to a plain menu trigger loses the pointer cursor and focus-visible ring that Clerk's styles provided by default, especially since Tailwind v4's preflight resets cursor to default on buttons. I want to verify this by checking whether the web app is actually on Tailwind v4 before posting that comment. I've confirmed Tailwind v4 is in use with no global cursor override, so the MenuTrigger button defaults to
cursor: default. I'll leave a suggestion on lines 85-88 of T3ConnectSidebarSignIn.tsx addingcursor-pointerto the className to fix this.
1. modify_pr — One finding on the new desktop account control; the previously reported missing dialog accessible name in the same file is still open and is not re-posted here.
Agent Credits: 170 credits