Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Uso de Módulos CSS para Estilos con Alcance en React | Técnicas de Estilizado en Aplicaciones React
Dominio de React

bookUso de Módulos CSS para Estilos con Alcance en React

Los módulos CSS son un enfoque que permite delimitar los nombres de clases CSS a componentes específicos de manera local. Ofrecen una forma de escribir código CSS de manera modular y encapsulada, lo que reduce las posibilidades de conflictos de estilos y facilita el mantenimiento de los mismos. De hecho, se ha convertido en uno de los enfoques más adoptados para organizar proyectos en React.

Organización de archivos y carpetas

Supongamos que tenemos la siguiente interfaz de usuario compuesta por tres componentes: VideoPlayer, AuthorInformation y VideoDescription.

No consolidaremos todos los componentes y estilos en un solo archivo. En su lugar, estableceremos una carpeta separada para cada componente. Dentro de cada carpeta, crearemos un archivo jsx para el renderizado y la lógica, y un archivo css para aplicar los estilos. Cada archivo css debe terminar con module.css para lograr la modularidad. Así, la estructura se vería de la siguiente manera:

Nota

Este enfoque ofrece una solución conveniente para crear componentes de React y escribir estilos. Garantiza que cada componente esté aislado y pueda reutilizarse de manera efectiva. El alcance local de los nombres de clase mejora la organización del código, promueve la reutilización y evita conflictos de estilos.

Sintaxis

Analicemos la sintaxis para utilizar estilos modulares en un componente, usando el componente VideoDescription como ejemplo.

Dentro de VideoDescription.jsx, se crea un componente que genera un marcado específico. No hay nada particularmente nuevo o desconocido en esto.

const VideoDescription = () => (
  <p>
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Delectus accusamus
    iure amet officia? Ratione harum, mollitia rem, maxime eveniet totam
    cupiditate explicabo omnis, atque iure architecto officiis praesentium
    libero quae.
  </p>
);

La diferencia surge cuando se desea aplicar un nombre de clase. Primero, se debe importar el archivo VideoDescription.module.css en el archivo VideoDescription.jsx. Esto se puede lograr utilizando la siguiente sintaxis:

import <file_name> from "<file_path>";
  • <file_name> puede ser cualquier palabra que se asocie con el archivo. Generalmente, se utiliza un nombre como: css, styles o simplemente s;
  • <file_path> es la ruta correcta al archivo. Ya se conoce la sintaxis: ./.

Resultado:

import css from "./VideoDescription.module.css";

Para asignar un nombre de clase al elemento, se puede utilizar el atributo className. Dentro de este atributo, se encierra el nombre de la clase deseada entre llaves {}. Dentro de las llaves, se incluye la palabra específica asociada al archivo de estilos, seguida de un punto . y el nombre de la clase. Resultado: className={css.text}. text es el nombre real de la clase.

import css from "./VideoDescription.module.css";

const VideoDescription = () => (
  <p className={css.text}>
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Delectus accusamus
    iure amet officia? Ratione harum, mollitia rem, maxime eveniet totam
    cupiditate explicabo omnis, atque iure architecto officiis praesentium
    libero quae.
  </p>
);

Ahora se puede abrir el archivo VideoDescription.module.css y aplicar los estilos al elemento p con el nombre de clase text utilizando el selector de clase:

.text {
  background-color: lightgreen;
  color: darkblue;
  font-size: 24px;
}

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 8

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 2.17

bookUso de Módulos CSS para Estilos con Alcance en React

Desliza para mostrar el menú

Los módulos CSS son un enfoque que permite delimitar los nombres de clases CSS a componentes específicos de manera local. Ofrecen una forma de escribir código CSS de manera modular y encapsulada, lo que reduce las posibilidades de conflictos de estilos y facilita el mantenimiento de los mismos. De hecho, se ha convertido en uno de los enfoques más adoptados para organizar proyectos en React.

Organización de archivos y carpetas

Supongamos que tenemos la siguiente interfaz de usuario compuesta por tres componentes: VideoPlayer, AuthorInformation y VideoDescription.

No consolidaremos todos los componentes y estilos en un solo archivo. En su lugar, estableceremos una carpeta separada para cada componente. Dentro de cada carpeta, crearemos un archivo jsx para el renderizado y la lógica, y un archivo css para aplicar los estilos. Cada archivo css debe terminar con module.css para lograr la modularidad. Así, la estructura se vería de la siguiente manera:

Nota

Este enfoque ofrece una solución conveniente para crear componentes de React y escribir estilos. Garantiza que cada componente esté aislado y pueda reutilizarse de manera efectiva. El alcance local de los nombres de clase mejora la organización del código, promueve la reutilización y evita conflictos de estilos.

Sintaxis

Analicemos la sintaxis para utilizar estilos modulares en un componente, usando el componente VideoDescription como ejemplo.

Dentro de VideoDescription.jsx, se crea un componente que genera un marcado específico. No hay nada particularmente nuevo o desconocido en esto.

const VideoDescription = () => (
  <p>
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Delectus accusamus
    iure amet officia? Ratione harum, mollitia rem, maxime eveniet totam
    cupiditate explicabo omnis, atque iure architecto officiis praesentium
    libero quae.
  </p>
);

La diferencia surge cuando se desea aplicar un nombre de clase. Primero, se debe importar el archivo VideoDescription.module.css en el archivo VideoDescription.jsx. Esto se puede lograr utilizando la siguiente sintaxis:

import <file_name> from "<file_path>";
  • <file_name> puede ser cualquier palabra que se asocie con el archivo. Generalmente, se utiliza un nombre como: css, styles o simplemente s;
  • <file_path> es la ruta correcta al archivo. Ya se conoce la sintaxis: ./.

Resultado:

import css from "./VideoDescription.module.css";

Para asignar un nombre de clase al elemento, se puede utilizar el atributo className. Dentro de este atributo, se encierra el nombre de la clase deseada entre llaves {}. Dentro de las llaves, se incluye la palabra específica asociada al archivo de estilos, seguida de un punto . y el nombre de la clase. Resultado: className={css.text}. text es el nombre real de la clase.

import css from "./VideoDescription.module.css";

const VideoDescription = () => (
  <p className={css.text}>
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Delectus accusamus
    iure amet officia? Ratione harum, mollitia rem, maxime eveniet totam
    cupiditate explicabo omnis, atque iure architecto officiis praesentium
    libero quae.
  </p>
);

Ahora se puede abrir el archivo VideoDescription.module.css y aplicar los estilos al elemento p con el nombre de clase text utilizando el selector de clase:

.text {
  background-color: lightgreen;
  color: darkblue;
  font-size: 24px;
}

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 8
some-alt