CSS-in-JS
既存のCSS-in-JSソリューションをどれでも使用できます。最もシンプルなのはインラインスタイルです:
function HiThere() {
return <p style={{ color: 'red' }}>hi there</p>
}
export default HiThere
分離されたスコープ付きCSSをサポートするためにstyled-jsxをバンドルしています。 目的は、Webコンポーネントと同様の「シャドウCSS」をサポートすることですが、残念ながらサーバーレンダリングはサポートされておらず、JSのみです。
他の人気のあるCSS-in-JSソリューション(Styled Componentsなど)については、上記の例を参照してください。
styled-jsx
を使用したコンポーネントの例:
function HelloWorld() {
return (
<div>
Hello world
<p>scoped!</p>
<style jsx>{`
p {
color: blue;
}
div {
background: red;
}
@media (max-width: 600px) {
div {
background: blue;
}
}
`}</style>
<style global jsx>{`
body {
background: black;
}
`}</style>
</div>
)
}
export default HelloWorld
その他の例についてはstyled-jsxドキュメントを参照してください。
JavaScriptの無効化
はい、JavaScriptを無効にしても、本番ビルド(next start
)ではCSSが読み込まれます。開発中は、Fast Refreshによる最適な開発者体験を提供するために、JavaScriptを有効にする必要があります。