├── .babelrc ├── .gitignore ├── README.md ├── endpoint ├── index.html └── static │ └── .gitignore ├── package.json ├── server.js ├── src ├── UsingStyleName │ └── index.js ├── UsingStylesProperty │ ├── custom.css │ └── index.js ├── index.js └── table.css └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015", 4 | "stage-0", 5 | "react" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React CSS Modules Examples 2 | 3 | https://github.com/gajus/react-css-modules 4 | 5 | ## Setup 6 | 7 | ```sh 8 | git clone https://github.com/gajus/react-css-modules-examples.git 9 | cd ./react-css-modules-examples 10 | npm install 11 | ``` 12 | 13 | ## Running webpack-dev-server Using React Hot Loader 14 | 15 | ```sh 16 | npm start 17 | ``` 18 | -------------------------------------------------------------------------------- /endpoint/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /endpoint/static/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "start": "webpack-dev-server" 5 | }, 6 | "devDependencies": { 7 | "babel-core": "^6.4.5", 8 | "babel-loader": "^6.2.1", 9 | "babel-preset-es2015": "^6.3.13", 10 | "babel-preset-react": "^6.3.13", 11 | "babel-preset-stage-0": "^6.3.13", 12 | "css-loader": "^0.23.1", 13 | "extract-text-webpack-plugin": "^1.0.1", 14 | "style-loader": "^0.13.0", 15 | "webpack": "^2.0.6-beta", 16 | "webpack-dev-server": "^2.0.0-beta" 17 | }, 18 | "dependencies": { 19 | "react": "^0.15.0-alpha.1", 20 | "react-css-modules": "^3.7.4", 21 | "react-dom": "^0.15.0-alpha.1" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | // https://github.com/Browsersync/recipes/tree/master/recipes/webpack.react-hot-loader 2 | var browserSync, 3 | webpack, 4 | webpackDevMiddleware, 5 | webpackHotMiddleware, 6 | webpackConfig, 7 | bundler; 8 | 9 | browserSync = require('browser-sync'); 10 | webpack = require('webpack'); 11 | webpackDevMiddleware = require('webpack-dev-middleware'); 12 | webpackHotMiddleware = require('webpack-hot-middleware'); 13 | webpackConfig = require('./webpack.config.browsersync'); 14 | bundler = webpack(webpackConfig); 15 | 16 | browserSync({ 17 | ui: false, 18 | ghostMode: false, 19 | online: false, 20 | open: false, 21 | notify: false, 22 | host: webpackConfig.devServer.host, 23 | port: webpackConfig.devServer.port, 24 | xip: false, 25 | tunnel: true, 26 | server: { 27 | baseDir: webpackConfig.devServer.contentBase, 28 | 29 | middleware: [ 30 | webpackDevMiddleware(bundler, { 31 | publicPath: webpackConfig.output.publicPath, 32 | noInfo: true, 33 | quiet: false, 34 | stats: { 35 | colors: true 36 | } 37 | }), 38 | webpackHotMiddleware(bundler) 39 | ] 40 | }, 41 | files: [ 42 | './endpoint/static/*.css' 43 | ] 44 | }); 45 | -------------------------------------------------------------------------------- /src/UsingStyleName/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import CSSModules from 'react-css-modules'; 3 | import styles from './../table.css'; 4 | 5 | let Table; 6 | 7 | Table = class extends React.Component { 8 | constructor(props) { 9 | super(props); 10 | 11 | this.state = { 12 | count: 0 13 | }; 14 | 15 | setInterval(() => { 16 | this.setState({ 17 | count: this.state.count + 1 18 | }); 19 | }, 10); 20 | } 21 | 22 | render () { 23 | return