image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Francileudo Oliveira
Francileudo Oliveira26/11/2022 08:24
Compartilhe

CSS-in-Js: aplicando estilos dentro do arquivo javascript

  • #JavaScript
  • #CSS
  • #React

Olá, seja muito bem vindo(a), anteriormente nós conhecemos o que são componentes e criamos o nosso primeiro componente para o projeto do e-commerce usando Next.js: https://programacao-descomplicada.blogspot.com/2022/11/o-que-sao-componentes-em-react.html, agora iremos colocar a estilização do componente usando css-in-js.

  Para isso podemos usar o Styled-Components que é uma das formas de usar o css-in-js, o link da biblioteca é o seguinte: https://styled-components.com/. Fica a dica conhecer um sobre ele em um próximo artigo, mas hoje nós vamos usar uma forma nativa do Next.js para isso. 

  O styled-jsx: https://github.com/vercel/styled-jsx, vai nos permitir escrever o css dentro do javascript porém vamos precisar de uma estrutura para isso:

<style jsx>{` `}</style>

  Não precisamos instalar nenhuma dependência já que o styled-jsx é nativo do Next.js, o que precisamos é colocar essa estrutura dentro do nosso componente do cabeçalho e jogar o nosso CSS feito anteriormente dentro dele, dessa forma:

export function Header() {

 return (

<>

 <header className="c-header">

  <div className="c-header__logo">

   <iconify-icon className="c-header__icon" icon="akar-icons:game-controller"></iconify-icon>

   <a href="./index.html">

    <h1 className="c-header__title">Player<span>One</span></h1>

   </a>

  </div>

  <div>

   <a href="./pages/login.html" className="c-header__button-login">Login</a>

  </div>

 </header>



 <style jsx>{`

 * {

  padding: 0;

  margin: 0;

  text-decoration: none;

  box-sizing: border-box;

 }

 .c-header {

  display: flex;

  justify-content: space-around;

  align-items: center;

  padding: 1rem;

  box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);

  background: #fff;

  position: fixed;

  width: 100%;

  top: 0;

  z-index: 1000;

 }



 .c-header__logo {

  display: flex;

  align-items: center;

  font-size: 1.5rem;

 }



 .c-header__title {

  margin-left: 0.5rem;

  color: #000;

 }



 .c-header__title span {

  color: #628FD9;

 }



 .c-header__icon {

  color: #628FD9;

  font-size: 2rem;

 }



 .c-header__button-login {

  padding: 0.5rem 1rem;

  background: transparent;

  border: 2px solid #628FD9;

  color: #628FD9;

  transition: all 300ms ease-out;

 }



 .c-header__button-login:hover {

  background: #628FD9;

  color: #fff;

 }

`}</style>

</>

 )

}

  Com isso temos o nosso cabeçalho estilizado usando css-in-js, outro ponto que podemos perceber é que criamos css de reset dentro desse nosso css, mas esse reset só funciona no componente do cabeçalho, como fazer um arquivo de css global para todo o projeto React? Podemos usar o Styled-Components dessa vez para resolver isso como outra forma de fazer css-in-js no próximo artigo, um abraço e até a próxima.

Artigo Original: https://programacao-descomplicada.blogspot.com/2022/11/css-in-js-aplicando-estilos-dentro-do.html

Compartilhe
Comentários (1)
Edcleia Franco
Edcleia Franco - 26/11/2022 11:19

Boa!