Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Aplicando Estilos Inline na Prática | Técnicas de Estilização em Aplicações React
Introdução ao React

bookAplicando Estilos Inline na Prática

Vamos criar um componente Notification versátil que exibe texto e altera dinamicamente a propriedade background-color com base na prop behavior. A implementação será realizada passo a passo.

Passo 1

Iniciamos criando o componente pai, App, juntamente com o componente filho, Notification, utilizando a estrutura básica do React.

// Import necessary dependencies and create a root element
import { createRoot } from "react-dom/client";

const root = createRoot(document.getElementById("root"));

// Child component - `Notification`
const Notification = (props) => <></>;

// Parent component - `App`
const App = () => <></>;

// Render the `App` component to the root element
root.render(<App />);

Etapa 2

Para fornecer uma estilização padrão para o componente Notification, criamos um objeto chamado notificationStyles e atribuimos as seguintes propriedades: padding com o valor de "20px"; fontSize com o valor de "24px"; color com o valor de "aquamarine";

// Define default styles as an object
const notificationStyles = {
  padding: "20px",
  fontSize: "24px",
  color: "aquamarine",
};

Atribuir o objeto notificationStyles como valor para o atributo style do componente Notification component, que é aplicado ao elemento p retornado.

// Child component - Notification
const Notification = (props) => (
  <>
    {/* Step 2: Apply default styles using inline styles */}
    <p style={notificationStyles}></p>
  </>
);

Etapa 3

No componente App, é possível utilizar o componente Notification passando as props behavior e text. A prop behavior determina a aparência da notificação, enquanto a prop text especifica o texto a ser exibido dentro da notificação.

// Parent component - `App`
const App = () => (
  <>
    {/* Step 3: Use the Notification component with behavior and text props */}
    <Notification text="Success" behavior="positive" />
    <Notification text="Failure" behavior="negative" />
    <Notification text="Information" behavior="neutral" />
  </>
);

Etapa 4

É possível implementar a lógica para colorir o fundo de cada mensagem de notificação com base na prop behavior da seguinte forma:

  • Se o valor de behavior for "positive", a cor de fundo deve ser green;
  • Se o valor de behavior for "negative", a cor de fundo deve ser red;
  • Se o valor de behavior for "neutral", a cor de fundo deve ser blue.

Pode-se criar uma função para tratar essa lógica utilizando a instrução switch do JavaScript. Veja um exemplo de implementação:

// Function to set background color based on `behavior` prop
const setBackgroundColor = (behavior) => {
  switch (behavior) {
    case "positive":
      return "green";
    case "negative":
      return "red";
    case "neutral":
      return "blue";
    default:
      return "transparent";
  }
};

Essa função recebe a prop behavior como argumento e retorna a cor de fundo correspondente com base no valor utilizando a instrução switch. A prop behavior retornará uma cor de fundo transparent caso não corresponda aos casos especificados.

Vamos incorporar essa função ao objeto de estilos do componente:

// Child component - `Notification`
const Notification = (props) => (
  <>
    {/* Step 2, : Apply default styles using inline styles */}
    {/* Step 4, : Apply the value for the `background-color` property 
    based on the `behavior` prop */}
    <p
      style={{
        ...notificationStyles,
        backgroundColor: setBackgroundColor(props.behavior),
      }}
    >
      {props.text}
    </p>
  </>
);

Utilizam-se convenções do JavaScript para garantir a estrutura adequada do objeto de estilos. Primeiro, espalha-se o objeto notificationStyles existente. Em seguida, adiciona-se uma propriedade adicional, backgroundColor, cujo valor é derivado da string retornada pela função setBackgroundColor.

Código completo do aplicativo:

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you show me the complete code for the Notification component?

How can I customize the colors for different behaviors?

Can you explain how the style merging works in the Notification component?

bookAplicando Estilos Inline na Prática

Deslize para mostrar o menu

Vamos criar um componente Notification versátil que exibe texto e altera dinamicamente a propriedade background-color com base na prop behavior. A implementação será realizada passo a passo.

Passo 1

Iniciamos criando o componente pai, App, juntamente com o componente filho, Notification, utilizando a estrutura básica do React.

// Import necessary dependencies and create a root element
import { createRoot } from "react-dom/client";

const root = createRoot(document.getElementById("root"));

// Child component - `Notification`
const Notification = (props) => <></>;

// Parent component - `App`
const App = () => <></>;

// Render the `App` component to the root element
root.render(<App />);

Etapa 2

Para fornecer uma estilização padrão para o componente Notification, criamos um objeto chamado notificationStyles e atribuimos as seguintes propriedades: padding com o valor de "20px"; fontSize com o valor de "24px"; color com o valor de "aquamarine";

// Define default styles as an object
const notificationStyles = {
  padding: "20px",
  fontSize: "24px",
  color: "aquamarine",
};

Atribuir o objeto notificationStyles como valor para o atributo style do componente Notification component, que é aplicado ao elemento p retornado.

// Child component - Notification
const Notification = (props) => (
  <>
    {/* Step 2: Apply default styles using inline styles */}
    <p style={notificationStyles}></p>
  </>
);

Etapa 3

No componente App, é possível utilizar o componente Notification passando as props behavior e text. A prop behavior determina a aparência da notificação, enquanto a prop text especifica o texto a ser exibido dentro da notificação.

// Parent component - `App`
const App = () => (
  <>
    {/* Step 3: Use the Notification component with behavior and text props */}
    <Notification text="Success" behavior="positive" />
    <Notification text="Failure" behavior="negative" />
    <Notification text="Information" behavior="neutral" />
  </>
);

Etapa 4

É possível implementar a lógica para colorir o fundo de cada mensagem de notificação com base na prop behavior da seguinte forma:

  • Se o valor de behavior for "positive", a cor de fundo deve ser green;
  • Se o valor de behavior for "negative", a cor de fundo deve ser red;
  • Se o valor de behavior for "neutral", a cor de fundo deve ser blue.

Pode-se criar uma função para tratar essa lógica utilizando a instrução switch do JavaScript. Veja um exemplo de implementação:

// Function to set background color based on `behavior` prop
const setBackgroundColor = (behavior) => {
  switch (behavior) {
    case "positive":
      return "green";
    case "negative":
      return "red";
    case "neutral":
      return "blue";
    default:
      return "transparent";
  }
};

Essa função recebe a prop behavior como argumento e retorna a cor de fundo correspondente com base no valor utilizando a instrução switch. A prop behavior retornará uma cor de fundo transparent caso não corresponda aos casos especificados.

Vamos incorporar essa função ao objeto de estilos do componente:

// Child component - `Notification`
const Notification = (props) => (
  <>
    {/* Step 2, : Apply default styles using inline styles */}
    {/* Step 4, : Apply the value for the `background-color` property 
    based on the `behavior` prop */}
    <p
      style={{
        ...notificationStyles,
        backgroundColor: setBackgroundColor(props.behavior),
      }}
    >
      {props.text}
    </p>
  </>
);

Utilizam-se convenções do JavaScript para garantir a estrutura adequada do objeto de estilos. Primeiro, espalha-se o objeto notificationStyles existente. Em seguida, adiciona-se uma propriedade adicional, backgroundColor, cujo valor é derivado da string retornada pela função setBackgroundColor.

Código completo do aplicativo:

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3
some-alt