GithubHelp home page GithubHelp logo

runt18 / react-toolbox Goto Github PK

View Code? Open in Web Editor NEW

This project forked from react-toolbox/react-toolbox

0.0 2.0 0.0 4.5 MB

A set of React components implementing Google's Material Design specification with the power of CSS Modules

Home Page: http://www.react-toolbox.com

License: MIT License

CSS 32.16% JavaScript 67.46% HTML 0.39%

react-toolbox's Introduction

React Toolbox

npm version Build Status NPM Status react-toolbox channel on discord Donate

React Toolbox is a set of React components that implement Google's Material Design specification. It's powered by CSS Modules and harmoniously integrates with your webpack workflow. You can take a tour through our documentation website and try the components live!

Installation

React Toolbox can be installed as an npm package:

npm install --save react-toolbox

Usage

Although there are other ways to use React Toolbox, the recommended way is to create a webpack workflow with babel-loader, css-loader and sass-loader. A good starting point is React Hot Webpack Boilerplate.

Once you have the workflow ready, you can just require and use the components:

import React from 'react';
import Button from 'react-toolbox/lib/button';

const CustomButton = () => (
  <Button label="Hello world" raised accent />
);

export default CustomButton;

The previous code creates a React button component based on React Toolbox button. It's important to notice that requiring a module from the exposed root of the package will also import the SASS of the component.

Roboto Font and Material Design Icons

React Toolbox assumes that you are importing Roboto Font and Material Design Icons.

In order to import the fonts for you, we'd need to include them in the CSS which is considered a bad practice. If you are not including them in your app, go to the linked sites and follow the instructions.

Customization

Since React Toolbox styles are written in CSS, it's pretty easy to customize your components. We have several ways:

Via React Toolbox Loader

Thanks to the power of SASS, all components in React Toolbox are configured from a variables file. The best way to customize your build is to create a custom configuration SASS file overriding configuration variables like colors or sizes.

With toolbox-loader you can tell webpack where your configuration file is and it will prepend your config to each SASS build. This will result in your customized CSS for React Toolbox Components. For now you can browse the configuration files and override what you want.

Via className property

Generally each component will have a className prop so you can pass the class name you want to keep in the root node of the resulting markup. All markup is styled with the lowest specificity level so you can just nest one level in your CSS and the result will be applied. Consider this example:

const CustomButton = () => (
  <Button className='customized' label='Custom button' />
);

If you browse the resulting markup you will see data attributes like data-react-toolbox="label" so you can avoid directly styling tag names. You can now write your CSS:

.customized > [data-react-toolbox="label"] {
  color: green;
  font-weight: bold;
}

TypeScript

A TypeScript definition file react-toolbox.d.ts is available. It is referenced in package.json and should be picked up by the TypeScript compiler when importing from the npm package.

Note that to comply with the typings requirement, a triple-slash reference to react.d.ts is NOT included. You will need to reference react.d.ts somewhere in your project.

Authors and Contributors

The project is being initially developed and maintained by Javier Velasco and Javier Jiménez and the contribution scene is just getting warm. We want to create reference components so any contribution is very welcome.

To work in the project you'd need a node version supporting ES6 syntax. Although the project is built using Babel we use some ES6 features in the development server. Also, the package has been tested with node 4.2.1. Consider using nvm or n to handle different node versions!

To start the documentation site locally, you'll need to install the dependencies from both the main package and the docs subproject:

git clone https://github.com/react-toolbox/react-toolbox.git
npm install
cd docs/
npm install
npm start

Local documentation will then be available at http://localhost:8081/.

License

This project is licensed under the terms of the MIT license.

react-toolbox's People

Contributors

alesjiranek avatar arhamahmed avatar bartekus avatar enzomartin avatar felipeleusin avatar felipemsantana avatar gadicc avatar hsrobflavorus avatar hycner avatar javivelasco avatar juanperi avatar kagux avatar karlmacklin avatar kerenchandran avatar kikobeats avatar liesislukas avatar lucaas avatar mattkauffman23 avatar mgcrea avatar nathanmarks avatar necinc avatar nogsmpls avatar pdf avatar sosaucily avatar soyjavi avatar suancarloj avatar tobiasbales avatar ustccjw avatar ynonp avatar zalmoxisus avatar

Watchers

 avatar  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.