Skip to content

Repository files navigation

react-dropdown-browser

Note This is a minimally modified fork of fraserxu/react-dropdown, with the addition of a browser build, so that the library can be used from a CDN. This fork will become deprecated if this pull request is merged: Add browser build #174. Content below is the original README. -- Curran

NPM versionDownloads

Simple Dropdown component for React, inspired by react-select Demo is available here

Why

  • The default HTML select element is hard to style
  • And sometime we also want grouped menus
  • if you want more advanced select, check react-select

Installation

// with npm
$ npm install react-dropdown --save
// with yarn
$ yarn add react-dropdown

Changelog

If you want to support React version under v0.13, use react-dropdown@v0.6.1

Usage

This is the basic usage of react-dropdown

importDropdownfrom'react-dropdown';import'react-dropdown/style.css';constoptions=['one','two','three'];constdefaultOption=options[0];<Dropdownoptions={options}onChange={this._onSelect}value={defaultOption}placeholder="Select an option"/>;

Options

Flat Array options

constoptions=['one','two','three'];

Object Array options

constoptions=[{value: 'one',label: 'One'},{value: 'two',label: 'Two',className: 'myOptionClassName'},{type: 'group',name: 'group1',items: [{value: 'three',label: 'Three',className: 'myOptionClassName'},{value: 'four',label: 'Four'}]},{type: 'group',name: 'group2',items: [{value: 'five',label: 'Five'},{value: 'six',label: 'Six'}]}];

When using Object options you can add to each option a className string to further customize the dropdown, e.g. adding icons to options

Disabling the Dropdown

Just pass a disabled boolean value to the Dropdown to disable it. This will also give you a .Dropdown-disabled class on the element, so you can style it yourself.

<DropdowndisabledonChange={this._onSelect}value={defaultOption}placeholder="Select an option"/>;

Customizing the dropdown

className

The className prop is passed down to the wrapper div, which also has the Dropdown-root class.

<DropdownclassName='myClassName'/>;

controlClassName

The controlClassName prop is passed down to the control div, which also has the Dropdown-control class.

<DropdowncontrolClassName='myControlClassName'/>;

placeholderClassName

The placeholderClassName prop is passed down to the placeholder div, which also has the Dropdown-placeholder class.

<DropdownplaceholderClassName='myPlaceholderClassName'/>;

menuClassName

The menuClassName prop is passed down to the menu div (the one that opens and closes and holds the options), which also has the Dropdown-menu class.

<DropdownmenuClassName='myMenuClassName'/>;

arrowClassName

The arrowClassName prop is passed down to the arrow span , which also has the Dropdown-arrow class.

<DropdownarrowClassName='myArrowClassName'/>;

arrowClosed, arrowOpen

The arrowClosed & arrowOpen props enable passing in custom elements for the open/closed state arrows.

<DropdownarrowClosed={<spanclassName="arrow-closed"/>}arrowOpen={<spanclassName="arrow-open"/>}/>;

Check more examples in the example folder.

Run example

$ npm start

License

MIT | Build for CSViz project @Wiredcraft

About

🔽 A dead simple dropdown component for React

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages