Use our Tailwind CSS Breadcrumbs component to simply create beautiful Breadcrumbs for your pages with Material Tailwind.
Breadcrumbs are website links that allow users to track where they are
on a website and how far they are from the homepage. They are highly important elements
for your search engine optimisation (SEO) and user experience.
See below our versatile Breadcrumbs component example that you can use in your Tailwind CSS and React project.
import { Breadcrumbs } from "@material-tailwind/react";
export function BreadcrumbsDefault() {
return (
<Breadcrumbs>
<a href="#" className="opacity-60">
Docs
</a>
<a href="#" className="opacity-60">
Components
</a>
<a href="#">Breadcrumbs</a>
</Breadcrumbs>
);
}You can add any type of icon for the Breadcrumbs component as easy as using icon in html.
import { Breadcrumbs } from "@material-tailwind/react";
export function BreadcrumbsWithIcon() {
return (
<Breadcrumbs>
<a href="#" className="opacity-60">
<svg
xmlns="http://www.w3.org/2000/svg"
className="h-4 w-4"
viewBox="0 0 20 20"
fill="currentColor"
>
<path d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" />
</svg>
</a>
<a href="#" className="opacity-60">
<span>Components</span>
</a>
<a href="#">Breadcrumbs</a>
</Breadcrumbs>
);
}A Breadcrumbs could be a block level component as well that get's all the available space in a row. You can render a Breadcrumbs as a block level element using the fullWidth prop.
import { Breadcrumbs } from "@material-tailwind/react";
export function BlockLevelBreadcrumbs() {
return (
<Breadcrumbs fullWidth>
<a href="#" className="opacity-60">
Docs
</a>
<a href="#" className="opacity-60">
Components
</a>
<a href="#">Breadcrumbs</a>
</Breadcrumbs>
);
}You can modify the Breadcrumbs separators by using the Separator prop.
import { Breadcrumbs } from "@material-tailwind/react";
export function BreadcrumbsCustomSeparator() {
return (
<Breadcrumbs separator="-">
<a href="#" className="opacity-60">
Docs
</a>
<a href="#" className="opacity-60">
Components
</a>
<a href="#">Breadcrumbs</a>
</Breadcrumbs>
);
}You can use the className prop to add custom styles to the Breadcrumbs component.
import { Breadcrumbs } from "@material-tailwind/react";
import { ArrowLongRightIcon } from "@heroicons/react/24/outline";
export function BreadcrumbsCustomStyles() {
return (
<Breadcrumbs
separator={
<ArrowLongRightIcon className="h-4 w-4 text-white" strokeWidth={2.5} />
}
className="rounded-full border border-white bg-gradient-to-tr from-gray-900 to-gray-800 p-1"
>
<a
href="#"
className="rounded-full bg-white px-3 py-1 font-medium text-gray-900"
>
Docs
</a>
<a
href="#"
className="rounded-full bg-white px-3 py-1 font-medium text-gray-900"
>
Components
</a>
<a
href="#"
className="rounded-full bg-white px-3 py-1 font-medium text-gray-900"
>
Breadcrumbs
</a>
</Breadcrumbs>
);
}
The following props are available for breadcrumbs component. These are the custom props that we've added for the breadcrumbs component and you can use all the other native props as well.
| Attribute | Type | Description | Default |
|---|---|---|---|
separator | node | Change breadcrumbs separator between it's elements | / |
fullWidth | boolean | Change breadcrumbs to a block level element | false |
className | string | Add custom className for breadcrumbs | '' |
children | node | Add content for breadcrumbs | No default value it's a required prop. |
import type { BreadcrumbsProps } from "@material-tailwind/react";Learn how to customize the theme and styles for breadcrumbs component, the theme object for breadcrumbs component has two main objects:
A. The defaultProps object for setting up the default value for props of breadcrumbs component.
B. The styles object for customizing the theme and styles of breadcrumbs component.
You can customize the theme and styles of breadcrumbs component by adding Tailwind CSS classes as key paired values for objects.
interface BreadcrumbsStyleTypes {
defaultProps: {
separator: node;
fullWidth: boolean;
className: string;
};
styles: {
base: {
root: {
initial: object;
fullWidth: object;
};
list: object;
item: {
initial: object;
disabled: object;
};
separator: object;
};
};
}import type { BreadcrumbsStyleTypes } from "@material-tailwind/react";const theme = {
breadcrumbs: {
defaultProps: {
className: "",
fullWidth: false,
separator: "/",
},
styles: {
base: {
root: {
initial: {
width: "w-max",
},
fullWidth: { display: "block", width: "w-full" },
},
list: {
display: "flex",
flexWrap: "flex-wrap",
alignItems: "items-center",
width: "w-full",
bg: "bg-blue-gray-50",
bgOpacity: "bg-opacity-60",
py: "py-2",
px: "px-4",
borderRadius: "rounded-md",
},
item: {
initial: {
display: "flex",
alignItems: "items-center",
color: "text-blue-gray-900",
fontSmoothing: "antialiased",
fontFamily: "font-sans",
fontSize: "text-sm",
fontWeight: "font-normal",
lineHeight: "leading-normal",
cursor: "cursor-pointer",
transition: "transition-colors duration-300",
hover: "hover:text-light-blue-500",
},
disabled: {
pointerEvents: "pointer-events-none",
},
},
separator: {
color: "text-blue-gray-500",
fontSize: "text-sm",
fontSmoothing: "antialiased",
fontFamily: "font-sans",
fontWeight: "font-normal",
lineHeight: "leading-normal",
px: "mx-2",
pointerEvents: "pointer-events-none",
userSelcet: "select-none",
},
},
},
},
};Looking for more breadcrumbs examples? Check out our Ecommerce Sections from Material Tailwind Blocks.