Giter VIP home page Giter VIP logo

blueprint's Introduction

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.

View the full documentation ▸

Read our FAQ on the wiki ▸

Read the introductory blog post ▸

Support question? We use the blueprintjs tag on Stack Overflow ▸

Packages

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

Libraries

These are the component libraries we publish to NPM.

  • npm – Core styles & components.
  • npm – Components for interacting with dates and times.
  • npm – Documentation theme for Documentalist data.
  • npm – Scalable interactive table component.
  • npm – Incubator and staging area for new components still under initial development.

Applications

These are hosted on GitHub Pages as static web applications.

  • docs-app
  • landing-app

Build tooling

These private packages define development dependencies and contain build configuration. They adhere to standard NPM package layout—this allows us to keep clear API boundaries for build configuration and isolate groups of devDependencies. In the future, we might publish these packages to allow other Blueprint projects to use this infrastructure outside this monorepo.

  • karma-build-scripts
  • node-build-scripts
  • tslint-config
  • webpack-build-scripts

Development

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-libs 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), you'll need to run yarn generate-docs-data from the docs-app package to see it reflected in the application. Note that yarn bundle in this package also runs this script.

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/core to see those changes reflected before running any of the dev scripts.

Contributing

Looking for places to contribute to the codebase? Check out the Status: accepting PRs label.

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

License

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

blueprint's People

Contributors

cmslewis avatar giladgray avatar llorca avatar adidahiya avatar gscshoyru avatar themadcreator avatar leebyp avatar pkwi avatar jkillian avatar cyu06 avatar tgreenwatts avatar brieb avatar rootulp avatar invlid avatar mfedderly avatar alexlandau avatar drewdennison avatar sushain97 avatar tobilen avatar binck360 avatar bogdanpetru avatar cathyxz avatar ericanderson avatar franciscofabian avatar jrafidi avatar philcchen avatar ryanmcnamara avatar codebling avatar eparish avatar k-simons avatar

Watchers

James Cloos avatar Mrugesh Modi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.