1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-scoped-stylesheets-and-postcss
Tim Neutkens 7f0591896a Use latest version of Next for all examples (#1597)
* Use latest for all examples

* Update yarn.lock
2017-04-03 09:46:35 +05:30
..
pages Add example with-scoped-stylesheets-and-postcss (#1146) 2017-02-17 16:04:58 +01:00
.babelrc Add example with-scoped-stylesheets-and-postcss (#1146) 2017-02-17 16:04:58 +01:00
next.config.js Add example with-scoped-stylesheets-and-postcss (#1146) 2017-02-17 16:04:58 +01:00
package.json Use latest version of Next for all examples (#1597) 2017-04-03 09:46:35 +05:30
postcss.config.js Add example with-scoped-stylesheets-and-postcss (#1146) 2017-02-17 16:04:58 +01:00
README.md Add example with-scoped-stylesheets-and-postcss (#1146) 2017-02-17 16:04:58 +01:00

Scoped stylesheets with PostCSS example

This is an example of using scoped stylesheets and PostCSS, heavily influenced by @davibe's with-global-stylesheet.

How to use

Download the example or clone the repo:

curl https://codeload.github.com/zeit/next.js/tar.gz/master | tar -xz --strip=2 next.js-master/examples/with-scoped-stylesheets-and-postcss
cd with-scoped-stylesheets-and-postcss

To get this example running you must

npm install .
npm run dev

Visit http://localhost:3000 and try edit pages/styles.css. Your changes should be picked up instantly.

Deploy it to the cloud with now (download)

now

Why

Scoped CSS is neat and keeps your JS clean. PostCSS is amazing for extended features, such as nesting. CSS Modules keep your class names “local”.

Known bugs

There's a bug, possibly within next.js, making composition between files unuseable. Consider the following:

styles.css

.paragraph {
  composes: font-sans from '../global.css';
}

global.css

.font-sans {
  font-family: georgia; /* ;) */
}

The following error is thrown:

Module build failed: Error: Cannot find module '-!./../node_modules/css-loader/index.js??ref--6-4!./../node_modules/postcss-loader/index.js!../global.css'