Skip to content

Commit f9cc070

Browse files
authored
refactor(ui) standardize border styles to use dashed 3px borders across components (#169)
1 parent 8ac2cdc commit f9cc070

File tree

13 files changed

+27
-18
lines changed

13 files changed

+27
-18
lines changed

app/docs/components/dropdown-menu/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export default function DropdownMenuPage() {
6262
<DropdownMenuTrigger asChild>
6363
<Button variant="outline">Open</Button>
6464
</DropdownMenuTrigger>
65-
<DropdownMenuContent className="text-xs w-56 rounded-none overflow-clip">
65+
<DropdownMenuContent className="text-xs w-56 rounded-none">
6666
<DropdownMenuLabel>My Account</DropdownMenuLabel>
6767
<DropdownMenuSeparator />
6868
<DropdownMenuGroup>
@@ -147,7 +147,7 @@ export default function DropdownMenuPage() {
147147
<DropdownMenuTrigger asChild>
148148
<Button variant="outline">Open</Button>
149149
</DropdownMenuTrigger>
150-
<DropdownMenuContent className="text-xs w-56 rounded-none overflow-clip">
150+
<DropdownMenuContent className="text-xs w-56 rounded-none">
151151
<DropdownMenuLabel>My Account</DropdownMenuLabel>
152152
<DropdownMenuSeparator />
153153
<DropdownMenuGroup>

components/ui/8bit/chart.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,14 @@ function ChartTooltipContent({
173173
return (
174174
<div
175175
className={cn(
176-
"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
176+
"relative border-y-6 border-foreground dark:border-ring bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg px-2.5 py-1.5 text-xs shadow-xl",
177177
className
178178
)}
179179
>
180+
<div
181+
className="absolute inset-0 border-x-6 -mx-1.5 border-foreground dark:border-ring pointer-events-none"
182+
aria-hidden="true"
183+
/>
180184
{!nestLabel ? tooltipLabel : null}
181185
<div className="grid gap-1.5">
182186
{payload.map((item, index) => {

components/ui/8bit/command.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ function CommandItem({
208208
<ShadcnCommandItem
209209
data-slot="command-item"
210210
className={cn(
211-
"rounded-none border-t border-b border-dashed border-y-4 border-ring/0 hover:border-foreground dark:hover:border-ring",
211+
"rounded-none border-dashed border-y-3 border-ring/0 hover:border-foreground dark:hover:border-ring",
212212
className
213213
)}
214214
{...props}

components/ui/8bit/dropdown-menu.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ function DropdownMenuItem({
6565
return (
6666
<ShadcnDropdownMenuItem
6767
className={cn(
68-
"hover:bg-transparent active:bg-transparent focus:bg-transparent rounded-none border-dashed border-y-4 border-transparent focus:border-foreground hover:border-foreground dark:focus:border-ring bg-transparent",
68+
"hover:bg-transparent active:bg-transparent focus:bg-transparent rounded-none border-dashed border-y-3 border-transparent focus:border-foreground hover:border-foreground dark:focus:border-ring bg-transparent",
6969
className
7070
)}
7171
{...props}
@@ -129,7 +129,7 @@ function DropdownMenuContent({
129129
return (
130130
<ShadcnDropdownMenuContent
131131
className={cn(
132-
"bg-popover mt-1 py-2",
132+
"mt-1 py-2",
133133
font !== "normal" && pressStart.className,
134134
className
135135
)}

components/ui/8bit/pagination.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ function PaginationLink({ ...props }: PaginationLinkProps) {
175175
className,
176176
"relative group",
177177
"bg-transparent hover:bg-transparent active:bg-transparent focus:bg-transparent",
178-
"rounded-none border-dotted border-y-4 border-transparent",
178+
"rounded-none border-dashed border-y-4 border-transparent",
179179
"dark:hover:border-ring dark:focus:border-ring",
180180
"hover:border-foreground focus:border-foreground",
181181
"active:border-transparent",
@@ -230,7 +230,7 @@ function PaginationPrevious({
230230
"relative group",
231231
"flex flex-row w-full text-sm",
232232
"bg-transparent hover:bg-transparent active:bg-transparent focus:bg-transparent",
233-
"rounded-none border-dotted border-y-4 border-transparent",
233+
"rounded-none border-dashed border-y-4 border-transparent",
234234
"hover:border-foreground focus:border-foreground active:border-transparent",
235235
"dark:hover:border-ring dark:focus:border-ring",
236236
"data-[active=true]:border-none aria-[current=page]:border-none",
@@ -256,7 +256,7 @@ function PaginationNext({
256256
"relative group",
257257
"flex flex-row w-full text-sm",
258258
"bg-transparent hover:bg-transparent active:bg-transparent focus:bg-transparent",
259-
"rounded-none border-dotted border-y-4 border-transparent",
259+
"rounded-none border-dashed border-y-4 border-transparent",
260260
"hover:border-foreground focus:border-foreground active:border-transparent",
261261
"dark:hover:border-ring dark:focus:border-ring",
262262
"data-[active=true]:border-none aria-[current=page]:border-none",

components/ui/8bit/select.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ function SelectItem({
141141
<ShadcnSelectItem
142142
className={cn(
143143
className,
144-
"rounded-none border-t border-b border-dashed border-ring/0 hover:border-foreground dark:hover:border-ring"
144+
"rounded-none border-y-3 border-dashed border-ring/0 hover:border-foreground dark:hover:border-ring"
145145
)}
146146
{...props}
147147
>

components/ui/8bit/table.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,12 @@ function Table({
6767
}
6868

6969
function TableHeader({ className, ...props }: React.ComponentProps<"thead">) {
70-
return <ShadcnTableHeader className={cn(className)} {...props} />
70+
return (
71+
<ShadcnTableHeader
72+
className={cn(className, "border-b-4 border-foreground dark:border-ring")}
73+
{...props}
74+
/>
75+
)
7176
}
7277

7378
function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
@@ -83,7 +88,7 @@ function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
8388
<ShadcnTableRow
8489
className={cn(
8590
className,
86-
"border-dashed border-foreground dark:border-ring"
91+
"border-dashed border-b-4 border-foreground dark:border-ring"
8792
)}
8893
{...props}
8994
/>

public/r/8bit-chart.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

public/r/8bit-command.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

public/r/8bit-dropdown-menu.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"files": [
1111
{
1212
"path": "components/ui/8bit/dropdown-menu.tsx",
13-
"content": "import { Press_Start_2P } from \"next/font/google\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { cva, VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n DropdownMenu as ShadcnDropdownMenu,\n DropdownMenuContent as ShadcnDropdownMenuContent,\n DropdownMenuGroup as ShadcnDropdownMenuGroup,\n DropdownMenuItem as ShadcnDropdownMenuItem,\n DropdownMenuLabel as ShadcnDropdownMenuLabel,\n DropdownMenuPortal as ShadcnDropdownMenuPortal,\n DropdownMenuSeparator as ShadcnDropdownMenuSeparator,\n DropdownMenuShortcut as ShadcnDropdownMenuShortcut,\n DropdownMenuSub as ShadcnDropdownMenuSub,\n DropdownMenuSubContent as ShadcnDropdownMenuSubContent,\n DropdownMenuSubTrigger as ShadcnDropdownMenuSubTrigger,\n DropdownMenuTrigger as ShadcnDropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nconst DropdownMenu = ShadcnDropdownMenu\n\nconst DropdownMenuPortal = ShadcnDropdownMenuPortal\n\nconst DropdownMenuTrigger = ShadcnDropdownMenuTrigger\n\nconst DropdownMenuGroup = ShadcnDropdownMenuGroup\n\nconst DropdownMenuLabel = ShadcnDropdownMenuLabel\n\nconst DropdownMenuSeparator = ShadcnDropdownMenuSeparator\n\nconst DropdownMenuShortcut = ShadcnDropdownMenuShortcut\n\nconst DropdownMenuSub = ShadcnDropdownMenuSub\n\nconst pressStart = Press_Start_2P({\n weight: [\"400\"],\n subsets: [\"latin\"],\n})\n\nfunction DropdownMenuSubTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.DropdownMenuSubTrigger>) {\n return (\n <ShadcnDropdownMenuSubTrigger\n className={cn(\n \"hover:bg-transparent active:bg-transparent focus:bg-transparent rounded-none border-dashed border-y-4 border-transparent focus:border-foreground hover:border-foreground dark:focus:border-ring bg-transparent data-[state=open]:bg-transparent data-[state=open]:border-foreground dark:data-[state=open]:border-ring\",\n className\n )}\n {...props}\n >\n {children}\n </ShadcnDropdownMenuSubTrigger>\n )\n}\n\nfunction DropdownMenuItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item>) {\n return (\n <ShadcnDropdownMenuItem\n className={cn(\n \"hover:bg-transparent active:bg-transparent focus:bg-transparent rounded-none border-dashed border-y-4 border-transparent focus:border-foreground hover:border-foreground dark:focus:border-ring bg-transparent\",\n className\n )}\n {...props}\n >\n {children}\n </ShadcnDropdownMenuItem>\n )\n}\n\nexport const dropDownVariants = cva(\"\", {\n variants: {\n font: {\n normal: \"\",\n retro: pressStart.className,\n },\n },\n defaultVariants: {\n font: \"retro\",\n },\n})\n\nfunction DropdownMenuSubContent({\n children,\n className,\n font,\n ...props\n}: BitDropownMenuContentProps) {\n return (\n <ShadcnDropdownMenuSubContent\n {...props}\n className={cn(\n \"bg-popover\",\n font !== \"normal\" && pressStart.className,\n className\n )}\n >\n {children}\n\n <div\n className=\"absolute inset-0 border-x-6 -mx-1.5 border-foreground dark:border-ring pointer-events-none\"\n aria-hidden=\"true\"\n />\n <div\n className=\"absolute inset-0 border-y-6 -my-1.5 border-foreground dark:border-ring pointer-events-none\"\n aria-hidden=\"true\"\n />\n </ShadcnDropdownMenuSubContent>\n )\n}\n\nexport interface BitDropownMenuContentProps\n extends React.ComponentProps<typeof DropdownMenuPrimitive.Content>,\n VariantProps<typeof dropDownVariants> {}\n\nfunction DropdownMenuContent({\n children,\n font,\n className,\n ...props\n}: BitDropownMenuContentProps) {\n return (\n <ShadcnDropdownMenuContent\n className={cn(\n \"bg-popover mt-1 py-2\",\n font !== \"normal\" && pressStart.className,\n className\n )}\n {...props}\n >\n {children}\n\n <div\n className=\"mt-2.5 absolute inset-0 border-x-6 -mx-1.5 border-foreground dark:border-ring pointer-events-none\"\n aria-hidden=\"true\"\n />\n <div\n className=\"mt-1 absolute inset-0 border-y-6 -my-1.5 border-foreground dark:border-ring pointer-events-none\"\n aria-hidden=\"true\"\n />\n </ShadcnDropdownMenuContent>\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n DropdownMenuShortcut,\n DropdownMenuSub,\n}\n",
13+
"content": "import { Press_Start_2P } from \"next/font/google\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { cva, VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n DropdownMenu as ShadcnDropdownMenu,\n DropdownMenuContent as ShadcnDropdownMenuContent,\n DropdownMenuGroup as ShadcnDropdownMenuGroup,\n DropdownMenuItem as ShadcnDropdownMenuItem,\n DropdownMenuLabel as ShadcnDropdownMenuLabel,\n DropdownMenuPortal as ShadcnDropdownMenuPortal,\n DropdownMenuSeparator as ShadcnDropdownMenuSeparator,\n DropdownMenuShortcut as ShadcnDropdownMenuShortcut,\n DropdownMenuSub as ShadcnDropdownMenuSub,\n DropdownMenuSubContent as ShadcnDropdownMenuSubContent,\n DropdownMenuSubTrigger as ShadcnDropdownMenuSubTrigger,\n DropdownMenuTrigger as ShadcnDropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nconst DropdownMenu = ShadcnDropdownMenu\n\nconst DropdownMenuPortal = ShadcnDropdownMenuPortal\n\nconst DropdownMenuTrigger = ShadcnDropdownMenuTrigger\n\nconst DropdownMenuGroup = ShadcnDropdownMenuGroup\n\nconst DropdownMenuLabel = ShadcnDropdownMenuLabel\n\nconst DropdownMenuSeparator = ShadcnDropdownMenuSeparator\n\nconst DropdownMenuShortcut = ShadcnDropdownMenuShortcut\n\nconst DropdownMenuSub = ShadcnDropdownMenuSub\n\nconst pressStart = Press_Start_2P({\n weight: [\"400\"],\n subsets: [\"latin\"],\n})\n\nfunction DropdownMenuSubTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.DropdownMenuSubTrigger>) {\n return (\n <ShadcnDropdownMenuSubTrigger\n className={cn(\n \"hover:bg-transparent active:bg-transparent focus:bg-transparent rounded-none border-dashed border-y-4 border-transparent focus:border-foreground hover:border-foreground dark:focus:border-ring bg-transparent data-[state=open]:bg-transparent data-[state=open]:border-foreground dark:data-[state=open]:border-ring\",\n className\n )}\n {...props}\n >\n {children}\n </ShadcnDropdownMenuSubTrigger>\n )\n}\n\nfunction DropdownMenuItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item>) {\n return (\n <ShadcnDropdownMenuItem\n className={cn(\n \"hover:bg-transparent active:bg-transparent focus:bg-transparent rounded-none border-dashed border-y-3 border-transparent focus:border-foreground hover:border-foreground dark:focus:border-ring bg-transparent\",\n className\n )}\n {...props}\n >\n {children}\n </ShadcnDropdownMenuItem>\n )\n}\n\nexport const dropDownVariants = cva(\"\", {\n variants: {\n font: {\n normal: \"\",\n retro: pressStart.className,\n },\n },\n defaultVariants: {\n font: \"retro\",\n },\n})\n\nfunction DropdownMenuSubContent({\n children,\n className,\n font,\n ...props\n}: BitDropownMenuContentProps) {\n return (\n <ShadcnDropdownMenuSubContent\n {...props}\n className={cn(\n \"bg-popover\",\n font !== \"normal\" && pressStart.className,\n className\n )}\n >\n {children}\n\n <div\n className=\"absolute inset-0 border-x-6 -mx-1.5 border-foreground dark:border-ring pointer-events-none\"\n aria-hidden=\"true\"\n />\n <div\n className=\"absolute inset-0 border-y-6 -my-1.5 border-foreground dark:border-ring pointer-events-none\"\n aria-hidden=\"true\"\n />\n </ShadcnDropdownMenuSubContent>\n )\n}\n\nexport interface BitDropownMenuContentProps\n extends React.ComponentProps<typeof DropdownMenuPrimitive.Content>,\n VariantProps<typeof dropDownVariants> {}\n\nfunction DropdownMenuContent({\n children,\n font,\n className,\n ...props\n}: BitDropownMenuContentProps) {\n return (\n <ShadcnDropdownMenuContent\n className={cn(\n \"mt-1 py-2\",\n font !== \"normal\" && pressStart.className,\n className\n )}\n {...props}\n >\n {children}\n\n <div\n className=\"mt-2.5 absolute inset-0 border-x-6 -mx-1.5 border-foreground dark:border-ring pointer-events-none\"\n aria-hidden=\"true\"\n />\n <div\n className=\"mt-1 absolute inset-0 border-y-6 -my-1.5 border-foreground dark:border-ring pointer-events-none\"\n aria-hidden=\"true\"\n />\n </ShadcnDropdownMenuContent>\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n DropdownMenuShortcut,\n DropdownMenuSub,\n}\n",
1414
"type": "registry:component",
1515
"target": "components/ui/8bit/dropdown-menu.tsx"
1616
}

0 commit comments

Comments
 (0)