CursosEmpresasBlogLiveConfPrecios

Styled Components

Clase 12 de 15 • Curso de Introducción a Librerías UI con React

Contenido del curso

Introducción al curso

  • 1
    Bienvenida al curso

    Bienvenida al curso

    01:40 min
  • 2
    ¿Qué es UI?

    ¿Qué es UI?

    02:16 min
  • 3
    ¿Qué es una librería UI?

    ¿Qué es una librería UI?

    05:35 min
  • 4
    ¿Por qué una libreria UI?

    ¿Por qué una libreria UI?

    04:45 min

¿Por qué usar una librería UI?

  • 5
    Beneficios al usar una librería UI

    Beneficios al usar una librería UI

    03:20 min
  • 6
    Tiempo de Desarrollo

    Tiempo de Desarrollo

    05:08 min
  • 7
    Iteración del Proyecto

    Iteración del Proyecto

    04:33 min
  • 8
    Escalabilidad del Proyecto

    Escalabilidad del Proyecto

    04:34 min
  • 9
    Dinero

    Dinero

    03:15 min
  • 10
    Conclusión del modulo

    Conclusión del modulo

    02:29 min

Librerias UI

  • 11
    Tipos de librerias UI

    Tipos de librerias UI

    01:32 min
  • 12
    Styled Components

    Styled Components

    Viendo ahora
  • 13
    Bootstrap

    Bootstrap

    13:53 min
  • 14
    Material UI

    Material UI

    09:27 min

Despedida

  • 15
    Resumen del curso

    Resumen del curso

    04:46 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Comentarios

      Rodrigo Ramos Xochiteotzin

      Rodrigo Ramos Xochiteotzin

      student•
      hace 4 años
        Rodrigo Ramos Xochiteotzin

        Rodrigo Ramos Xochiteotzin

        student•
        hace 4 años
        Victor Manuel Sarria Salinas

        Victor Manuel Sarria Salinas

        student•
        hace 4 años
      Orlando Manuel Mendoza Vargas

      Orlando Manuel Mendoza Vargas

      student•
      hace 4 años
      Dario Turchi

      Dario Turchi

      student•
      hace 4 años
      Julian Franco

      Julian Franco

      student•
      hace 4 años
        Daniel Rodrigo Valdivieso Merino

        Daniel Rodrigo Valdivieso Merino

        teacher•
        hace 4 años
        Julian Franco

        Julian Franco

        student•
        hace 4 años
      Tomás Gálvez

      Tomás Gálvez

      student•
      hace 4 años
      César Palma

      César Palma

      student•
      hace 4 años
      Jahiker Rojas

      Jahiker Rojas

      student•
      hace 4 años
      florencia barbero

      florencia barbero

      student•
      hace 3 años
        Daniel Rodrigo Valdivieso Merino

        Daniel Rodrigo Valdivieso Merino

        teacher•
        hace 3 años
      Max Felipe Hess Alvarez

      Max Felipe Hess Alvarez

      student•
      hace 3 años
        Daniel Rodrigo Valdivieso Merino

        Daniel Rodrigo Valdivieso Merino

        teacher•
        hace 3 años
      Gilbert Ardila

      Gilbert Ardila

      student•
      hace 3 años
        Daniel Rodrigo Valdivieso Merino

        Daniel Rodrigo Valdivieso Merino

        teacher•
        hace 3 años
      Marco Antonio Alducin Garcia

      Marco Antonio Alducin Garcia

      student•
      hace 3 años
      Juan Camilo Lentino Villalba

      Juan Camilo Lentino Villalba

      student•
      hace 4 años
      Jassen Castillo

      Jassen Castillo

      student•
      hace 4 años
      Arnaldo Duran

      Arnaldo Duran

      student•
      hace 4 años
      Alexander Arismendy

      Alexander Arismendy

      student•
      hace 4 años

      Esta librería es buenísima y muy útil si la forma en que te gusta trabajar los componentes está basada en los SFC (single file components, algo que te será familiar si vienes de Vue.js). Esto significa que puedas plasmar en un sólo componente el modelo, la vista y el controlador, separados de acuerdo a su responsabilidad. Por ejemplo:

      import React from 'react' import styled from 'styled-components' const Wrapper = styled.div` width: 100vw; height: 100vh; background-color: red; ` const Component = (props) => { //logica, estado, etc return ( <Wrapper> {props.children} </Wrapper> ) }

      Creamos un elemento div y lo estilizamos, llamándolo Wrapper. Luego dentro del componente de React lo usamos para renderizar otros elementos o componentes adentro de él. Si ya tienes el componente creado y quieres pasarlo por la librería styled componentes, lo único que tienes que hacer es pasarlo como parámetro de styled, es decir, styled ahora se usa como función:

      import { MyComponent } from './MyComponent.jsx' const MyStyledComponent = styled(MyComponent)` //estilos css ` return ( <MyStyledComponent> </MyStyledComponent> )

      Te será muy útil para crear clases dinámicas que sean sensibles al estado del componente ya sea interno o pasado por las props del padre.

      Tip

      Esta librería te permite trabajar con una sintaxis parecida a un pre-procesador de CSS para poder anidar estilos de acuerdo al uso de pseudo-elementos u pseudo-clases usando el ampersand (&). "&" significa que te estas refiriendo a la instancia del componente estilizado

      const Ejemplo = styled.div` padding: 2rem; background: papayawhip; // cambio de color de fondo de acuerdo al hover &:hover { background: red; }

      Checa la documentación

      super completo like a este post.

      En mi humilde opinión, yo no veo a Styled Components como una "Librería UI", por el hecho de que esta no ofrece componentes UI a los desarrolladores para que los usen en sus proyectos. . En cambio esto se conoce como una forma de "CSS in JS" y lo que en realidad sí es, es una alternativa para los Precompiladores de CSS como lo son SASS, LESS y Stylus.

      me recuerda mucho a Luisito Comunica este profe

      hay algo que no me queda muy claro, los type o los onClick igual se los puedo dar al <Button/> ? y las props son las del componente padre si ?

      Hola Julián, gran pregunta. Ve a codesandbox pon este código e interactua con él.

      import { useState } from "react"; import styled from "styled-components"; const Button = styled.button` background: palevioletred; border-radius: 3px; border: none; color: white; `; export default function App() { const [count, setCount] = useState(0); return ( <div className="App"> <Button onClick={() => setCount(count + 1)}>{count}</Button> </div> ); }

      Te darás cuenta de que efectivamente podemos poveerle el evento onClick :)

      Ahora cuentame tú, ¿Qué pasa cuando interactuamos con un input y ponemos un type diferente? 👀

      Quedo pendiente a tu respuesta, saludos :)

      PlatziAbrazo 💚

      :O funciona de igual manera.

      <Button type="reset" onClick={() => setCount(0)}> reset </Button> <Button type="button" onClick={() => setCount(count + 1)}> {count} </Button>

      Hice esto, no habia entendido bien era que cuando uno pone el styled.button esta pasando la etiqueta html desde el styled. !!

      Gracias !

      Esta librería no brinda componentes listos, sino solo permite estilizar los componentes que ya tenemos creados nosotros.

      Las librerías CSS-in-JS nos proporcionan un nuevo enfoque para escribir CSS. Su objetivo es abordar las limitaciones de CSS, como la falta de funcionalidad dinámica, alcance y portabilidad. A pesar de sus ventajas, CSS-in-JS es una tecnología controvertida, ya que muchos desarrolladores preguntan si vale la pena complicar aún más el desarrollo front-end.

      https://webdesign.tutsplus.com/es/articles/an-introduction-to-css-in-js-examples-pros-and-cons--cms-33574

      Ahora que estoy aprendiendo React y he conocido styled-components, me ha gustado mucho, ya que nos permite anidar reglas, utilizar expresiones regulares de JS y cargar solo los estilos que necesitamos en el componente, lo cual es genial para la optimización del proyecto.

      Hola! SOy nueva en esto, que terminal recomiendan usar? hay algun curso mas basico que me enseñe react. Yo vengo desde html, css y javascript con visualstudio

      Yo utilizo la terminal de VSCode y me va suuuuuper bien :)

      Saludos Florencia y muchos éxitos en este maravilloso camino.

      Una duda, esta libreria solo puedes aplicar los estilos desde el componente padre y no desde el mismo componente?

      por ejemplo intente poner estilos desde un componente boton pero no me dejo, lo hice en el componente padre que es app y automaticamente me dejo, esto si es asi no seria mas perjudicial para la aplicacion tener tanto codigo en un documento?

      Hola Max, compartenos el código para ver como ayudarte pero en principio este debería dejar aplicar estilos a cualquier componente.

      Lo importante ahí es manejar buenas practicas en cuanto a la estandarización de como manejará tu equipo los archivos.

      Siempre es importante mantener estandares para facilitar la lectura del código en el futuro.

      viendo style-components me pregunto ¿no sería mejor usar una librería de estilos como tailwindcss para darle estilos al componente normal de html? o hay alguna diferencia real que nos provea esta librería

      La mejor herramienta siempre depende de las necesidades y de tu equipo, en mi equipo de trabajo por ejemplo, usamos taildwindcss, no por decisión mia. Cuando entré a trabajar allá ya lo utilizaban... nos va bien pero siempre y cuando se tengan claros los estandares del equipo.

      No siempre una herramienta como taildwindcss es la ultima palabra, hay momentos en los que se nos queda corta y nos toca escribir el css, en nuestro caso scss.

      A mi me parece que Styled Components es realmente la manera en que podemos usar CSS en React, y para no llenar con tanto código separarlo en un hook personalizado, aunque si lo viéramos de este modo, es sustituir los archivos propios de CSS a otros en JS. Yo si lo veo mas laborioso, pero quizas, pudiera no ser reutilizable para otros proyectos.

      Styled Components nos permite trabajar con el CSS sin que los estilos se pisen entre si, me parece una de sus mayores ventajas y resulta muy útil, evitando algo que en ocasiones puede ser tedioso, pero por otro lado, a la hora de leer el código, al tener componentes con sus estilos incorporados puede llegar a ser mas complicado, todo depende del desarrollador, el equipo y la forma de trabajar.

      es genial esta libreria

      styled-components dudo que este cerca de ser una solución final, la lectura del código se desnaturaliza, styled jsx soluciona un poco mejor este problema, rescatando conceptos de styled-components

      Claro que si