Breadcrumb
blode-ui/breadcrumbFreeComponent
A navigation aid that shows the current page location within a hierarchy.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/mblode/blode-ui/main/public/r/breadcrumb.jsonSource
1import { mergeProps } from "@base-ui/react/merge-props";2import { useRender } from "@base-ui/react/use-render";3import { ChevronRight, MoreHorizontal } from "blode-icons-react";4import type * as React from "react";56import { cn } from "@/lib/utils";78const Breadcrumb = ({ ...props }: React.ComponentProps<"nav">) => (9 <nav aria-label="breadcrumb" data-slot="breadcrumb" {...props} />10);1112const BreadcrumbList = ({ className, ...props }: React.ComponentProps<"ol">) => (13 <ol14 className={cn(15 "flex flex-wrap items-center gap-1.5 break-words text-muted-foreground text-sm sm:gap-2.5",16 className,17 )}18 data-slot="breadcrumb-list"19 {...props}20 />21);2223const BreadcrumbItem = ({ className, ...props }: React.ComponentProps<"li">) => (24 <li25 className={cn("inline-flex items-center gap-1.5", className)}26 data-slot="breadcrumb-item"27 {...props}28 />29);3031const BreadcrumbLink = ({32 asChild,33 className,34 children,35 ...props36}: React.ComponentProps<"a"> & {37 asChild?: boolean;38}) =>39 useRender({40 defaultTagName: "a",41 props: mergeProps<"a">(42 {43 className: cn("transition-colors hover:text-foreground", className),44 },45 asChild ? props : { ...props, children },46 ),47 render: asChild ? (children as React.ReactElement) : undefined,48 state: {49 slot: "breadcrumb-link",50 },51 });5253const BreadcrumbPage = ({ className, ...props }: React.ComponentProps<"span">) => (54 <span55 aria-current="page"56 aria-disabled="true"57 className={cn("font-normal text-foreground", className)}58 data-slot="breadcrumb-page"59 {...props}60 />61);6263const BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<"li">) => (64 <li65 aria-hidden="true"66 className={cn("[&>svg]:size-3.5", className)}67 data-slot="breadcrumb-separator"68 role="presentation"69 {...props}70 >71 {children ?? <ChevronRight />}72 </li>73);7475const BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<"span">) => (76 <span77 aria-hidden="true"78 className={cn("flex size-9 items-center justify-center", className)}79 data-slot="breadcrumb-ellipsis"80 role="presentation"81 {...props}82 >83 <MoreHorizontal className="size-4" />84 <span className="sr-only">More</span>85 </span>86);8788export {89 Breadcrumb,90 BreadcrumbList,91 BreadcrumbItem,92 BreadcrumbLink,93 BreadcrumbPage,94 BreadcrumbSeparator,95 BreadcrumbEllipsis,96};
What it pulls in
npm packages
Files it writes
More from blode/ui
All 85 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | blode/ui | Components | Free | 2 deps | |
| Alertalert | blode/ui | Components | Free | no deps | |
| Alert Dialogalert-dialog | blode/ui | Components | Free | 1 dep | |
| Ask User Questionsask-user-questions | blode/ui | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | blode/ui | Components | Free | 1 dep | |
| Attachmentattachment | blode/ui | Components | Free | 1 dep | |
| Autocompleteautocomplete | blode/ui | Components | Free | 1 dep | |
| Avataravatar | blode/ui | Components | Free | 1 dep |
