TypeScript CSS JavaScript Other
Switch branches/tags
test-react15@1.0.1 release-table-1.29.1 release-table-1.26.1 release-table-1.24.1 release-table-1.22.1 release-table-1.4.1 release-datetime-1.14.1 release-core-1.17.1 release-1.33.0 release-1.32.0 release-1.31.0 release-1.30.0 release-1.29.0 release-1.28.0 release-1.27.0 release-1.26.0 release-1.25.1 release-1.25.0 release-1.24.0 release-1.23.1 release-1.23.0 release-1.22.0 release-1.21.0 release-1.20.0 release-1.19.0 release-1.18.0 release-1.17.0 release-1.16.0 release-1.15.0 release-1.14.0 release-1.13.0 release-1.12.0 release-1.11.1 release-1.11.0 release-1.10.0 release-1.9.0 release-1.8.0 release-1.7.0 release-1.6.0 release-1.5.0 release-1.4.0 release-1.3.1 release-1.3.0 release-1.2.0 release-1.1.0 release-1.0.1 release-1.0.0 release-0.1.0 @blueprintjs/webpack-build-scripts@0.5.3 @blueprintjs/webpack-build-scripts@0.5.2 @blueprintjs/webpack-build-scripts@0.5.1 @blueprintjs/webpack-build-scripts@0.5.0 @blueprintjs/webpack-build-scripts@0.4.0 @blueprintjs/webpack-build-scripts@0.3.3 @blueprintjs/webpack-build-scripts@0.3.2 @blueprintjs/webpack-build-scripts@0.3.1 @blueprintjs/webpack-build-scripts@0.3.0 @blueprintjs/tslint-config@1.4.1 @blueprintjs/tslint-config@1.4.0 @blueprintjs/tslint-config@1.3.1 @blueprintjs/tslint-config@1.3.0 @blueprintjs/tslint-config@1.2.0 @blueprintjs/tslint-config@1.1.0 @blueprintjs/tslint-config@1.0.1 @blueprintjs/tslint-config@1.0.0 @blueprintjs/timezone@3.0.0-rc.0 @blueprintjs/timezone@3.0.0-beta.0 @blueprintjs/timezone@2.0.1 @blueprintjs/timezone@2.0.0 @blueprintjs/timezone@2.0.0-rc.4 @blueprintjs/timezone@2.0.0-rc.3 @blueprintjs/timezone@2.0.0-rc.2 @blueprintjs/timezone@2.0.0-rc.1 @blueprintjs/timezone@2.0.0-beta.3 @blueprintjs/timezone@2.0.0-beta.2 @blueprintjs/timezone@2.0.0-beta.1 @blueprintjs/test-commons@0.7.0 @blueprintjs/test-commons@0.6.0 @blueprintjs/test-commons@0.5.2 @blueprintjs/test-commons@0.5.1 @blueprintjs/test-commons@0.5.0 @blueprintjs/test-commons@0.4.0 @blueprintjs/test-commons@0.3.1 @blueprintjs/test-commons@0.3.0 @blueprintjs/table@3.0.0-rc.0 @blueprintjs/table@3.0.0-beta.0 @blueprintjs/table@2.1.1 @blueprintjs/table@2.1.0 @blueprintjs/table@2.0.0 @blueprintjs/table@2.0.0-rc.4 @blueprintjs/table@2.0.0-rc.3 @blueprintjs/table@2.0.0-rc.2 @blueprintjs/table@2.0.0-rc.1 @blueprintjs/table@2.0.0-beta.3 @blueprintjs/table@2.0.0-beta.2 @blueprintjs/table@2.0.0-beta.1 @blueprintjs/table@1.31.3 @blueprintjs/table@1.31.2 @blueprintjs/table@1.31.1 @blueprintjs/table@1.31.0
Nothing to show
Clone or download
giladgray missed enum renames in upgrade script (#2620)
* missed enum renames in upgrade script

* more script updates

* an actual rename

* add - prefix so it won't rename non-ideal-state-visual

* vars for option defaults, reused in usage
Latest commit 0d2257b Jun 21, 2018


Blueprint CircleCI

Blueprint is a React-based UI toolkit for the web.

It is optimized for building complex, data-dense web interfaces for desktop applications. If you rely heavily on mobile interactions and are looking for a mobile-first UI toolkit, this may not be for you.

Read the introductory blog post β–Έ

View the full documentation β–Έ

Read our FAQ on the wiki β–Έ

Bug report? Feature request? Support question?

Choose the appropriate issue type and fill out the template.

What's new in 2.0

Check out the 2.0 changelog on the wiki, and make sure to review the 2.0 migration guide.

🚧 3.0 is in progress! 🚧

Blueprint 3.0 will support multiple major versions of Blueprint on the same page through removing global styles and deconflicting selectors. It also restores support for React 15 in most packages.

To make a contribution that you wish to have released in an earlier major version of any @blueprintjs package, please submit a PR to the release/1.x or release/2.x branch.


This repository contains multiple projects in the packages/ directory that fall into 3 categories:


These are the component libraries we publish to NPM.

  • npm – Core styles & components.
  • npm – Components for interacting with dates and times.
  • npm – Components for generating and displaying icons.
  • npm – Components for selecting items from a list.
  • npm – Scalable interactive table component.
  • npm – Components for picking timezones.
  • npm – Incubator and staging area for new components still under initial development.


These are hosted on GitHub Pages as static web applications:

  • docs-app – Documentation site at blueprintjs.com/docs
  • landing-app – Landing page at blueprintjs.com

These are used as development playground environments:

  • table-dev-app – demo page that supports manual testing of all table features

Build tooling

These packages define development dependencies and contain build configuration. They adhere to the standard NPM package layout, which allows us to keep clear API boundaries for build configuration and isolate groups of devDependencies. They are published to NPM in order to allow other Blueprint-related projects to use this infrastructure outside this monorepo.


Lerna manages inter-package dependencies in this monorepo. Builds are orchestrated via lerna run and NPM scripts.

Prerequisites: Node.js v8+, Yarn v1.0+

One-time setup

After cloning this repo, run:

  1. yarn to install all dependencies.
  2. yarn verify to ensure you have all the build tooling working properly.

Incorporating upstream changes

If you were previously in a working state and have just pulled new code from develop:

  • If there were package dependency changes, run yarn at the root.
    • This command is very quick if there are no new things to install.
  • Run yarn compile to get the latest built versions of the library packages in this repo.
    • This command is quicker than yarn verify since it doesn't build the application packages (docs-app, landing-app, etc.) or run tests

Developing libraries

Each library has its own dev script which you can run to watch changes to that package and run the docs application with webpack-dev-server: yarn dev:core, yarn dev:datetime, etc.

  • One exception is tableβ€”since it has its own dev application, the dev:table script doesn't run the docs site.
    • Run the table dev application using yarn dev in the packages/table-dev-app folder.
  • You may also choose to watch changes across all packages by running yarn dev:all from the root directory.

Updating dependencies

  1. Edit the package.json where you wish to change dependencies.
  2. Run yarn at the root to update lockfiles.
  3. Commit the result.

Updating documentation

Much of Blueprint's documentation lives inside source code as JSDoc comments in .tsx files and KSS markup in .scss files. This documentation is extracted and converted into static JSON data using documentalist.

If you are updating documentation sources (not the docs UI code which lives in packages/docs-app or the docs theme in packages/docs-theme), you'll need to run yarn compile from packages/docs-data to see changes reflected in the application. For simplicity, an alias script yarn docs-data exists in the root to minimize directory hopping.

Updating icons

The One-time setup and Incorporating upstream changes steps should produce the generated source code in this repo used to build the icons documentation. This is sufficient for most development workflows.

If you are updating icons or adding new ones, you'll need to run yarn compile in packages/icons to see those changes reflected before running any of the dev scripts.


Looking for places to contribute to the codebase? Check out the "help wanted" label.

Read about our contribution guidelines and development practices to give your PR its best chance at getting merged.


This project is made available under the Apache-2.0 License.