Skip to content

Commit 917a6b5

Browse files
committed
dropdown pixel perfect
1 parent a79bd51 commit 917a6b5

2 files changed

Lines changed: 9 additions & 9 deletions

File tree

packages/react-components/src/components/ui/dropdown-menu.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ function DropdownMenuContent({
4242
data-slot="dropdown-menu-content"
4343
sideOffset={sideOffset}
4444
className={cn(
45-
"bg-bg-primary data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border-separator p-2 shadow-lg",
45+
"bg-bg-primary data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border-separator px-2 py-3 shadow-lg",
4646
className
4747
)}
4848
{...props}
@@ -74,7 +74,7 @@ function DropdownMenuItem({
7474
data-inset={inset}
7575
data-variant={variant}
7676
className={cn(
77-
"focus:bg-bg-secondary focus:text-text-primary data-[variant=destructive]:text-text-error-primary data-[variant=destructive]:focus:bg-bg-error-tertiary dark:data-[variant=destructive]:focus:bg-bg-error-tertiary data-[variant=destructive]:focus:text-text-error-primary data-[variant=destructive]:*:[svg]:!text-text-error-primary [&_svg:not([class*='text-'])]:fg-fg-secondary relative flex cursor-pointer items-center gap-2 rounded-md px-3 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 h-8 typo-body text-text-secondary",
77+
"focus:bg-bg-secondary focus:text-text-primary data-[variant=destructive]:text-text-error-primary data-[variant=destructive]:focus:bg-bg-error-tertiary dark:data-[variant=destructive]:focus:bg-bg-error-tertiary data-[variant=destructive]:focus:text-text-error-primary data-[variant=destructive]:*:[svg]:!text-text-error-primary [&_svg:not([class*='text-'])]:fg-fg-secondary relative flex cursor-pointer items-center gap-2 rounded-md px-3 py-1.5 outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 h-8 typo-body text-text-secondary",
7878
className
7979
)}
8080
{...props}
@@ -92,13 +92,13 @@ function DropdownMenuCheckboxItem({
9292
<DropdownMenuPrimitive.CheckboxItem
9393
data-slot="dropdown-menu-checkbox-item"
9494
className={cn(
95-
"focus:bg-bg-secondary focus:text-text-primary relative flex cursor-default items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-text-link h-8 typo-body text-text-secondary",
95+
"focus:bg-bg-secondary focus:text-text-primary relative flex cursor-default items-center gap-2 rounded-md py-1.5 pr-2 pl-9 outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-text-link h-8 typo-body text-text-secondary",
9696
className
9797
)}
9898
checked={checked}
9999
{...props}
100100
>
101-
<span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
101+
<span className="pointer-events-none absolute left-3 flex size-3.5 items-center justify-center">
102102
<DropdownMenuPrimitive.ItemIndicator>
103103
<CheckIcon className="size-4" />
104104
</DropdownMenuPrimitive.ItemIndicator>
@@ -128,7 +128,7 @@ function DropdownMenuRadioItem({
128128
<DropdownMenuPrimitive.RadioItem
129129
data-slot="dropdown-menu-radio-item"
130130
className={cn(
131-
"focus:bg-bg-secondary focus:text-text-primary relative flex cursor-pointer items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 h-8 typo-body text-text-secondary",
131+
"focus:bg-bg-secondary focus:text-text-primary relative flex cursor-pointer items-center gap-2 rounded-md py-1.5 pr-2 outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 h-8 typo-body text-text-secondary",
132132
className
133133
)}
134134
{...props}
@@ -155,7 +155,7 @@ function DropdownMenuLabel({
155155
data-slot="dropdown-menu-label"
156156
data-inset={inset}
157157
className={cn(
158-
"px-3 py-1.5 text-sm font-medium data-[inset]:pl-8 typo-body text-text-secondary",
158+
"px-3 py-1.5 data-[inset]:pl-10 typo-body text-text-secondary",
159159
className
160160
)}
161161
{...props}
@@ -170,7 +170,7 @@ function DropdownMenuSeparator({
170170
return (
171171
<DropdownMenuPrimitive.Separator
172172
data-slot="dropdown-menu-separator"
173-
className={cn("border-border-separator -mx-1 my-1 h-px", className)}
173+
className={cn("bg-bg-quaternary -mx-1 my-1 h-px", className)}
174174
{...props}
175175
/>
176176
);
@@ -211,7 +211,7 @@ function DropdownMenuSubTrigger({
211211
data-slot="dropdown-menu-sub-trigger"
212212
data-inset={inset}
213213
className={cn(
214-
"focus:bg-bg-secondary focus:text-text-primary data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-md px-3 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 h-8 typo-body text-text-secondary",
214+
"focus:bg-bg-secondary focus:text-text-primary data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-md px-3 py-1.5 outline-hidden select-none data-[inset]:pl-8 h-8 typo-body text-text-secondary",
215215
className
216216
)}
217217
{...props}

packages/react-components/src/stories/DropdownMenu.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ export const WithCheckboxes: Story = {
141141
<DropdownMenuTrigger asChild>
142142
<Button variant="secondary">View Options</Button>
143143
</DropdownMenuTrigger>
144+
144145
<DropdownMenuContent className="w-56">
145146
<DropdownMenuLabel>Sidebar control</DropdownMenuLabel>
146147
<DropdownMenuSeparator />
@@ -162,7 +163,6 @@ export const WithCheckboxes: Story = {
162163
>
163164
Expand on hover
164165
</DropdownMenuCheckboxItem>
165-
<DropdownMenuSeparator />
166166
</DropdownMenuContent>
167167
</DropdownMenu>
168168
);

0 commit comments

Comments
 (0)