App Masters

App Masters

  • English
  • Português

›Frontend

App Masters - Core

  • Início
  • Conteúdo

Backend

  • Adonis
  • Laravel
  • Livewire
  • Sequelize

Fundamentos de Javascript

  • Javascript Assíncrono
  • Typescript

Padrões de Projeto

  • Presentational Container Design Pattern

Frontend

  • Ant Design
  • Flexbox
  • Media Queries
  • React Hook Form
  • Redux
  • Redux-Saga
  • Redux-Thunk
  • Styled Components
  • Tailwind
  • TWA
  • Yup

Testes

  • Cypress
  • Detox
  • Jest

Ferramentas

  • Docker
  • nvm
  • Storybook
  • Visual Studio Code

CMS

  • Strapi

Styled Components

O que é?

styled-components é uma biblioteca que ajuda criar componentes React a partir de elementos HTML, associando-os a estilos CSS de uma maneira simples e direta. A biblioteca permite a definição destes estilos diretamente em nossos arquivos JavaScript.

Como usar

Para instalar a biblioteca, simplesmente execute no terminal:

npm install --save styled-components

Depois disso, voce pode importar a biblioteca no seu código e começar a usá-la.

import styled from 'styled-components'

Sintaxe

A sintaxe utilizada pela biblioteca parece estranha inicialmente, mas é bem simples. Ela utiliza "crases" para englobar as regras de CSS que você está escrevendo, que são tagged template literals (não se preocupe muito com isso, só lembre de usar as crases quando criar um novo componente).

Nós recomendamos usar algum plugin para destacar a sintaxe da biblioteca. Você pode encontrar um para sua IDE na documentação oficial. styled-components: Tooling

Exemplo Simples

Dê uma olhada neste exemplo simples retirado da documentação oficial:

import styled, { css } from 'styled-components'

const Button = styled.button`
  background: transparent;
  border-radius: 3px;
  border: 2px solid palevioletred;
  color: palevioletred;
  margin: 0.5em 1em;
  padding: 0.25em 1em;

  ${props => props.primary && css`
    background: palevioletred;
    color: white;
  `}
`;

const Container = styled.div`
  text-align: center;
`

render(
  <Container>
    <Button>Normal Button</Button>
    <Button primary>Primary Button</Button>
  </Container>
);

Na primeira linha nós estamos importando a biblioteca styled e { css }. Na linha seguinte nós criamos um novo componentes Button que vai renderizar um botão HTML com os estilos CSS informados.

A importação { css } é usada para permitir um controle dinâmico de novas regras CSS com as propriedades passadas para o Styled Component.

Práticas comuns

Estas são duas práticas comumente utilizadas durante o desenvolvimento:

import styled, { css } from 'styled-components'

/*We can import pre-made components and edit them with the following syntax*/
import { Layout, Button } from 'antd';
const StyledLayout = styled(Layout)`
  height: auto;
  min-height: 100vh;
`;

/* We can also directly edit CSS classes for a given component*/
export const ButtonStyled = styled(Button)`
  font-weight: 700 !important;
    &.secondary{
        background-color: "red";
    border-color: "red";
    color: white;
  }
  &.outlined{
        background-color: transparent;
    color: "blue" !important;
    border-color: "blue" !important;  }
`;

render(
  <StyledLayout>
    <ButtonStyled class="secondary">Secondary Button</ButtonStyled>
    <ButtonStyled class="outlined">Outlined Button</ButtonStyled>
  </StyledLayout>
);

Aprenda Mais

styled-components: Documentation

Styled Components: To Use or Not to Use?

Prática

Crie alguns elementos com a biblioteca. Por exemplo:

  • Um Botão que muda a cor de background por props (styled.button...)
  • Um Container que centraliza elementos renderizados dentro dele (styled.div...)
  • Importe um elemento de alguma biblioteca (Antd ou MaterialUI) e crie um Styled Component a partir dele
← Redux-ThunkTailwind →
  • Sintaxe
  • Exemplo Simples
  • Práticas comuns
App Masters
App masters
Content
More
BlogGitHub
Copyright © 2022 App Masters