Estilos Globales con styled-components
Clase 20 de 33 • Curso de Desarrollo de Aplicaciones Web con Gatsby JS
Contenido del curso
Preparando el entorno
Fundamentos de Gatsby
Creando la vista con React
Graphql en Gatsby
Usando plugins en Gatsby
Stripe checkout
Generando páginas programáticamente
- 24

Creando páginas en función de los datos
08:57 min - 25

Manejo de Gatsby Templates
13:39 min - 26

Terminando la Vista de Detalle de los Productos
05:58 min - 27

StaticQuery vs. useStaticQuery
03:23 min - 28

Construyendo el Carrito de Compras: useContext
08:18 min - 29

Construyendo el Carrito de Compras: Vista
09:22 min - 30

Construyendo el Carrito de Compras: Agregar productos al carrito
08:44 min - 31

Comprando productos
08:34 min
Gatsby a producción
Resumen
Al estilizar componentes con Styled Components estamos definiendo estilos únicamente de los componentes creados con styled, no al resto de nuestra aplicación (a pesar de que trabajemos con otras etiquetas HTML iguales a las que definimos en los componentes estilizados con styled):
const StyledButton = styled.button`
color: red;
`;
const App = () => (
<>
<StyledButton>
El color de este boton es RED
StyledButton>
<button>Este botón no tiene estilosbutton>
<button className="boton-color-violeta">
Este botón tampoco tiene estilos
button>
>
);
Sin embargo, Styled Components también nos permite crear estilos globales: Estilos que podemos aplicar a todas las clases o etiquetas HTML de la aplicación.
- Importa
createGlobalStyledestyled-components:
import { createGlobalStyle } from 'styled-components';
- Crea un nuevo componente con los estilos globales de tu aplicación usando
createGlobalStyle:
export const GlobalStyles = createGlobalStyle`
button {
color: green:
}
button.boton-color-violeta {
color: purple;
}
`;
- Envuelve toda tu aplicación en el componente de estilos globales:
const App = () => (
<>
El color de este boton es RED
>
);
- Puedes usar el componente con estilos globales como parte de tu layout:
// gatsby-browser.js
const GlobalStyles = require('src/styles');
exports.wrapRootElement = ({ element }) => (
<>
{element}
>
);