KendoReact Layout Overview

The KendoReact Layout components enable you to create a perceptive and intuitive layout of web projects and provide an easier navigation.

The KendoReact Layout components are part of the KendoReact library which provides native Kendo UI components for the React ecosystem and are available under the kendo-react-layout NPM package.

Basic Usage

The following example demonstrates the Layout components in action.

    .k-drawer-container {
        position: fixed;
        width: 100%;
        height: 100%;
const items = [
      { text: 'Inbox', icon: 'k-i-inbox', selected: true },
      { separator: true },
      { text: 'Notifications', icon: 'k-i-bell' },
      { text: 'Calendar', icon: 'k-i-calendar' },
      { separator: true },
      { text: 'Attachments', icon: 'k-i-hyperlink-email' },
      { text: 'Favourites', icon: 'k-i-star-outline' }

    class App extends React.Component {
        state = {
          tabSelected: 0,
          expanded: true,
          selectedId: items.findIndex(x => x.selected === true)

        handleTabSelect = (e) => {
          this.setState({tabSelected: e.selected});
        handleClick = () => {
          this.setState(prevState => ({expanded: !prevState.expanded }));
        handleSelect = (e) => {
          this.setState({selectedId: e.selected});
          this.setState({expanded: false});
        render() {
            return (
                    (item, index) => ({ ...item, selected: index === this.state.selectedId }))}
                  <div class="example-wrapper container-fluid">
                    <div class="row">
                      <div class="col-xs-12 col-sm-6 example-col">
                        <TabStrip selected={this.state.tabSelected} onSelect={this.handleTabSelect}>
                            <TabStripTab title="Baseball" >
                                  Baseball is a bat-and-ball game played between two teams of nine players each, who take turns batting and fielding.
                                  The batting team attempts to score runs by hitting a ball that is thrown by the pitcher with a bat swung by the batter, then running counter-clockwise around a series of four bases: first, second, third, and home plate. A run is scored when a player advances around the bases and returns to home plate.
                            <TabStripTab title="Basketball">
                                  Basketball is a sport that is played by two teams of five players on a rectangular court. The objective is to shoot a ball through a hoop 18 inches (46 cm) in diameter and mounted at a height of 10 feet (3.048 m) to backboards at each end of the court. The game was invented in 1891 by Dr. James Naismith, who would be the first basketball coach of the Kansas Jayhawks, one of the most successful programs in the game's history.
                            <TabStripTab title="Football">
                                  Football is a family of team sports that involve, to varying degrees, kicking a ball with the foot to score a goal. Unqualified, the word football is understood to refer to whichever form of football is the most popular in the regional context in which the word appears.
                      <div class="col-xs-12 col-sm-6 example-col">
                          <PanelBarItem title="Invasion Games">
                            <PanelBarItem title="Hockey"></PanelBarItem>
                            <PanelBarItem title="Soccer"></PanelBarItem>
                            <PanelBarItem title="Rugby"></PanelBarItem>
                          <PanelBarItem title="Net & Court Games" expanded="true">
                            <PanelBarItem title="Badminton"></PanelBarItem>
                            <PanelBarItem title="Squash"></PanelBarItem>
                            <PanelBarItem title="Tennis" selected={true}></PanelBarItem>
                            <PanelBarItem title="Table Tennis"></PanelBarItem>
                            <PanelBarItem title="Volleyball"></PanelBarItem>
                          <PanelBarItem title="Target Games">
                            <PanelBarItem title="Golf"></PanelBarItem>
                            <PanelBarItem title="Lawn bowls"></PanelBarItem>
                            <PanelBarItem title="Tenpin bowling"></PanelBarItem>
                      <div class="col-xs-12 example-col">
                          <MenuItem text="Invasion Games">
                            <MenuItem text="Hockey" />
                            <MenuItem text="Soccer" />
                            <MenuItem text="Rugby" />
                          <MenuItem text="Net & Court Games">
                            <MenuItem text="Badminton" />
                            <MenuItem text="Squash" />
                            <MenuItem text="Tennis" />
                            <MenuItem text="Table Tennis" />
                            <MenuItem text="Volleyball" />
                          <MenuItem text="Target Games">
                            <MenuItem text="Golf" />
                            <MenuItem text="Lawn bowls" />
                            <MenuItem text="Tenpin bowling" />
                      <div class="col-xs-12 example-col">
                        <Card style={{width: 300}}>
                          <CardImage src={""}/>
                          <p>Barcelona, the cosmopolitan capital of Spain's Catalonia region, is known for its art and architecture.</p>
                          <p>The fantastical Sagrada Família church and other modernist landmarks designed by Antoni Gaudí dot the city.</p>
                            <span><span className="k-button k-flat k-primary">Map</span></span>
                            <span><span className="k-button k-flat k-primary">Weather</span></span>
                      <div class="col-xs-12 col-sm-6 example-col">
                        <button className="k-button" onClick={this.handleClick}>Toggle Drawer state</button>
                      <div class="col-xs-12 example-col">
                        <Avatar type="initials" shape="circle" style={{ width: 100, height: 100 }}><span>KR</span></Avatar>

    <App />,


  1. Download and install the package. Use Node.js v5.0.0 or later.

    npm install --save @progress/kendo-react-layout
  2. Once installed, import the package module.

    // ES2015 module syntax
    import { Avatar, Card, Drawer, Menu, PanelBar, TabStrip } from '@progress/kendo-react-layout';
    // CommonJS format
    const { Avatar, Card, Drawer, Menu, PanelBar, TabStrip } = require('@progress/kendo-react-layout');
  3. You are required to install one of the Kendo UI themes to style your components. For more information on how to add the styles, refer to the article on getting started.


The Layout package requires you to install the following peer dependencies in your application:

  • react 16.8.2*
  • react-dom