react-burger-nav

A hamburger icon triggered, off-canvas sidebar React component, using CSS transitions to show/hide the sidebar content.

Usage no npm install needed!

<script type="module">
  import reactBurgerNav from 'https://cdn.skypack.dev/react-burger-nav';
</script>

README

react-burger-nav

A hamburger icon triggered, off-canvas sidebar React component, using CSS transitions to show/hide the sidebar content.

Original implementation by Negomi at negomi.github.io/react-burger-nav. This pseudo fork was created to provide a single effect implementation for a specific project. Many thanks to Negomi for the hard work :)

Installation

Install via npm and include it in your own React build process (using Browserify, Webpack, etc).

npm install react-burger-nav --save

Usage

Items for the sidebar should be passed as child elements of the component using JSX.

var RBN = require('react-burger-nav');

var Example = React.createClass({
  render: function() {
    return (
      <RBN>
        <a className="external-link" href="https://github.com/">GitHub</a>
        <Link className="react-router-link" to="/">Home</Link>
        <img src="https://assets-cdn.github.com/images/modules/dashboard/bootcamp/octocat_setup.png"/>
      </RBN>
    );
  }
});

Properties

There is an optional id prop, which will simply add an ID to the rendered menu's outermost element. This is not required for any functionality.

<RBN id={ "sidebar" }/>

Styling

All the animations are handled internally by the component. However, the visual styles (colors, fonts etc.) are not, and need to be included with CSS.

The component has the following helper classes:

// Colour of the overlay
.rbn-overlay {
    background: rgba(50, 50, 50, .5);
}

// Colour of burger icon
.rbn-burger-button {
  background: #373a47;
}

// Colour of burger bars
.rbn-burger-bars {
  background: #444;
}

// Color of close button cross
.rbn-cross {
  background: #bdc3c7;
}

// General menu styles
.rbn-menu {
    background: #444;
    font-size: 1.15em;
    padding: 2.5em 1.5em 0;
}

// Wrapper for item list
.rbn-item-list {
  color: #b8b7ad;
  padding: 0.8em;
}

Browser Support

Because this project uses CSS3 features, it's only meant for modern browsers. It also relies on React's implementation of inline styles.

Chrome and Firefox have full support.

License

ICS

Release History

  • 1.0.0 Intial Release
  • 1.0.1 Added left assignment to fixed position elements
  • 1.0.2 Fixed stupid typo
  • 2.0.0 Upgrade core React components, plus all related components, methods, etc.
  • 2.0.1 Removed default overlay colour style so it can be set with CSS