- 1

Frameworks y Librerías de JavaScript para Aplicaciones Web
08:14 - 2

Creación y Composición de Componentes en Desarrollo Web
08:34 - 3

Transformación de Páginas Web a Componentes Reutilizables
12:47 - 4

Reactividad y Estrategias de Renderizado en JavaScript
12:40 - 5

Diferencias entre Librerías y Frameworks en Desarrollo Web
02:30 - 6

Empaquetadores y herramientas esenciales para desarrollo frontend JS
15:32
Estilos Dinámicos con Theme Provider y Style Components
Clase 22 de 28 • Curso de Frameworks y Librerías de JavaScript
Contenido del curso
- 7

Desarrollo de Aplicaciones con React.js: Componentes y Hooks
09:31 - 8

Ciclo de vida de componentes en ReactJS
02:15 - 9

Desarrollo de Aplicación RIA en Code Sandbox
13:29 - 10

Estado y Eventos en React para Aplicaciones Interactivas
10:10 - 11

Arquitectura y Funcionamiento de Angular: Componentes y Servicios
11:53 - 12

Demo de Aplicación Angular para Gestión de Películas
16:11 - 13

Vue.js: Características y Ventajas frente a Otros Frameworks
05:43 - 14

Creación de un Demo con Vue.js desde HTML Básico
09:56 - 15

Desarrollo de sitios web con Svelte: optimización y rendimiento
06:06 - 16

Creación de Aplicaciones con Svelte: Primeros Pasos Prácticos
09:04
- 17

CSS en JS: Integración y Ventajas en Aplicaciones React
06:48 - 18

Estilos en Angular con CSS: Aplicación de Películas
11:27 - 19

Componentes en Vue.js y Preprocesadores CSS
11:51 - 20

Estilos avanzados con SASS en View Components
14:31 - 21

"Uso de Styled Components para Estilos Dinámicos en React"
15:48 - 22

Estilos Dinámicos con Theme Provider y Style Components
09:13 - 23

Variables CSS y Emotion en Svelte: Mejora tus Componentes
13:16
- 24

Escalamiento de Aplicaciones Web: SPA, SSR y Generadores Estáticos
08:21 - 25

Desarrollo de Aplicaciones con Next.js: Rutas y Renderizado Dinámico
15:53 - 26

Organización de Proyectos en React: Contenedores y Presentacionales
08:32 - 27
Elección de Frameworks y Librerías JavaScript para Proyectos Web
01:25 - 28

Desarrollo Frontend: Próximos Pasos y Evaluación Final
01:43
¿Cómo podemos implementar estilos globales y dinámicos con Styled Components?
Para asegurarnos de que nuestras aplicaciones no solo tengan un diseño integrado, sino también un aspecto único y dinámico, podemos usar Styled Components. Esto nos permite combinar CSS directamente con nuestros componentes React. En esta sección, aprenderás a implementar estilos globales que cambian dinámicamente al interactuar con elementos, como cuando pasas el mouse sobre una película.
¿Cómo crear estilos globales?
Primero, debemos crear un componente para nuestros estilos globales. Esto se consigue con la función CreateGlobalStyle de Styled Components.
// GlobalStyle.js
import { createGlobalStyle } from 'styled-components';
export const GlobalStyle = createGlobalStyle`
html, body {
background-color: ${(props) => props.theme.bg};
}
`;
Dentro del archivo GlobalStyle.js, definimos que tanto el html como el body tendrán un color de fondo que se determinará por las propiedades del tema.
¿Cómo integrar este estilo global en nuestra aplicación?
Luego de definir nuestros estilos globales, debemos integrarlos dentro de nuestro Theme Provider, asegurándonos de que todos los componentes puedan manejar estas propiedades.
import { ThemeProvider } from 'styled-components';
import { GlobalStyle } from './GlobalStyle';
const App = () => {
return (
<ThemeProvider theme={selectedTheme}>
<GlobalStyle />
{/* Otros componentes */}
</ThemeProvider>
);
};
Aquí utilizamos ThemeProvider para pasar propiedades de tema a lo largo de nuestra aplicación, donde selectedTheme es la selección del tema actual.
¿Cómo hacer dinámico el cambio de temas?
La clave para un sitio web interactivo radica en permitir que los usuarios vean cambios visuales según su interacción. En nuestro caso, queremos que el tema cambie al pasar el mouse por una película específica.
Uso de React State para gestionar temas
Primero, manejamos el estado del tema usando el hook useState de React.
import React, { useState } from 'react';
const [theme, setTheme] = useState('Avengers');
// Paso el estado directamente al ThemeProvider
<ThemeProvider theme={themes[theme]}></ThemeProvider>
Aquí, themes contiene las definiciones de estilo asociadas con cada película.
Actualizar el tema al interactuar con el componente
Cuando pasamos el mouse sobre una película, actualizamos el tema llamando a setTheme.
const MovieComponent = ({ movieName, updateTheme }) => {
return (
<StyledComponent onMouseEnter={() => updateTheme(movieName)}>
{/* Renderizar información de película */}
</StyledComponent>
);
};
// Llama a cada componente con la función para actualizar tema
<MovieComponent updateTheme={setTheme} movieName="Terminator" />
La función onMouseEnter utiliza updateTheme para cambiar el tema actual dependiendo del nombre de la película.
¿Cómo solucionar problemas comunes?
¿Qué ocurre si nada cambia al pasar el mouse por una película? Hay varios elementos a revisar:
- Comprobación de funciones y parámetros: Asegúrate de que las funciones están correctamente referenciadas con
onMouseEnter={() => updateTheme(movieName)}. - Verificación del estado inicial: Confirmar que el tema inicial (por ejemplo, "Avengers") está correctamente vinculado en
useState.
Desafíos y formas de extender tu aprendizaje
Ahora que lo básico está implementado, invita a la creatividad en tu aplicación. Añade más películas, integra distintos colores o temas, o experimenta con animaciones para transiciones más atractivas.
Recuerda, la práctica hace maestro. Juega con estas configuraciones y diviértete mientras aprendes, ¡y no olvides compartir tus nuevas creaciones en los comentarios! Si te sientes valiente, en la siguiente clase exploraremos más acerca de CSS en JS con Svelte y el uso de otra herramienta popular, Emotion. ¡Te espero ahí!