Capítulo 299 de 456
Next.js suporta qualquer solução CSS-in-JS existente; inline styles funcionam direto, e styled-jsx vem embutido pra CSS escopado por componente.
styled-jsx: bundlado com o Next.js, gera "shadow CSS"-like escopado por componente via <style jsx>.<style jsx> vs <style global jsx>: o primeiro é escopado ao componente, o segundo aplica globalmente (ex.: body).next start) o CSS ainda carrega mesmo sem JS; em dev, JS é obrigatório pra Fast Refresh funcionar.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>
)
}
p, div) coexistindo com CSS global (body) na mesma árvore.styled-jsx é embutido; Styled Components, Emotion etc. exigem instalação e setup próprios (ver exemplos oficiais no repo do Next.js).styled-jsx é a única solução CSS-in-JS nativa do Next.js, sem instalação extra.