Overflow in React Breadcrumb component
7 Oct 202524 minutes to read
Overflow Mode
The Breadcrumb component uses the maxItems and overflowMode properties to control how breadcrumb items are displayed when they exceed the available container space. The maxItems property sets the maximum number of items to display, while overflowMode determines the behavior for handling additional items.
In the following example, maxItems is set to 3 with overflowMode as Menu (default). To prevent breadcrumb item navigation, the enableNavigation property has been set to false in the Breadcrumb component.
import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate() {
return (<span className="e-bicons e-arrow"></span>);
}
return (<BreadcrumbComponent maxItems={3} enableNavigation={false} separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>);
}
export default App;
ReactDom.render(<App />, document.getElementById('element'));import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate(): JSX.Element {
return (
<span className="e-bicons e-arrow"></span>
);
}
return (
<BreadcrumbComponent maxItems={3} enableNavigation={false} separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>
);
}
export default App;
ReactDom.render(<App />,document.getElementById('element'));The following overflow modes are available in the Breadcrumb component.
- Collapsed
- Menu
- Wrap
- Scroll
- Hidden
- None
Collapsed
Collapsed mode displays the first and last breadcrumb items while hiding intermediate items behind a collapsed icon (ellipsis). When the collapsed icon is clicked, all hidden items become visible and navigable, providing a compact view that maintains access to all navigation levels.
import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate() {
return (<span className="e-bicons e-arrow"></span>);
}
return (<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Collapsed' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>);
}
export default App;
ReactDom.render(<App />, document.getElementById('element'));import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate(): JSX.Element {
return (
<span className="e-bicons e-arrow"></span>
);
}
return (
<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Collapsed' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>
);
}
export default App;
ReactDom.render(<App />,document.getElementById('element'));Menu
Menu mode displays the maximum number of breadcrumb items that fit within the container space and organizes the remaining items into a dropdown submenu. This mode provides efficient space utilization while keeping all items accessible through the overflow menu.
import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate() {
return (<span className="e-bicons e-arrow"></span>);
}
return (<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Menu' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>);
}
export default App;
ReactDom.render(<App />, document.getElementById('element'));import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate(): JSX.Element {
return (
<span className="e-bicons e-arrow"></span>
);
}
return (
<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Menu' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>
);
}
export default App;
ReactDom.render(<App />,document.getElementById('element'));Wrap
Wrap mode automatically wraps breadcrumb items to multiple lines when the total width exceeds the container space.
import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate() {
return (<span className="e-bicons e-arrow"></span>);
}
return (<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Wrap' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>);
}
export default App;
ReactDom.render(<App />, document.getElementById('element'));import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate(): JSX.Element {
return (
<span className="e-bicons e-arrow"></span>
);
}
return (
<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Wrap' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>
);
}
export default App;
ReactDom.render(<App />,document.getElementById('element'));Scroll
Scroll mode displays an HTML scroll bar when the breadcrumb width exceeds the container space, allowing users to horizontally scroll to view hidden items. This mode maintains the single-line layout while providing access to all items through scrolling.
import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate() {
return (<span className="e-bicons e-arrow"></span>);
}
return (<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Scroll' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>);
}
export default App;
ReactDom.render(<App />, document.getElementById('element'));import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate(): JSX.Element {
return (
<span className="e-bicons e-arrow"></span>
);
}
return (
<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Scroll' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>
);
}
export default App;
ReactDom.render(<App />,document.getElementById('element'));Hidden
Hidden mode displays the maximum number of items that fit within the container space and completely hides the remaining items. Hidden items become visible when users navigate to previous levels by clicking on visible breadcrumb items, creating a dynamic navigation experience.
import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate() {
return (<span className="e-bicons e-arrow"></span>);
}
return (<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Hidden' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>);
}
export default App;
ReactDom.render(<App />, document.getElementById('element'));import { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbItemsDirective } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
function App() {
function breadcrumbTemplate(): JSX.Element {
return (
<span className="e-bicons e-arrow"></span>
);
}
return (
<BreadcrumbComponent maxItems={3} enableNavigation={false} overflowMode='Hidden' separatorTemplate={breadcrumbTemplate}>
<BreadcrumbItemsDirective>
<BreadcrumbItemDirective text="Home" url="../"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Breadcrumb" url="./breadcrumb"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Default" url="./breadcrumb/default-functionalities"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Icons" url="./breadcrumb/icons"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Navigation" url="./breadcrumb/navigation"></BreadcrumbItemDirective>
<BreadcrumbItemDirective text="Overflow" url="./breadcrumb/overflow"></BreadcrumbItemDirective>
</BreadcrumbItemsDirective>
</BreadcrumbComponent>
);
}
export default App;
ReactDom.render(<App />,document.getElementById('element'));None
None mode shows all the items on a single line.