Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Aplicación Práctica de CSS Externo | Técnicas de Estilizado en Aplicaciones React
Introducción a React

bookAplicación Práctica de CSS Externo

Practiquemos creando un componente de tarjeta compuesto por tres componentes. El objetivo es utilizar diferentes componentes y aplicar estilos para que sea visualmente atractivo. Avanzaremos paso a paso para lograrlo.

Antes de comenzar, exploremos la funcionalidad de la prop especial llamada children, que permite pasar componentes, elementos o texto como elementos hijos. Así es como funciona:

const App = () => (
  <Container>
    <Notification />
    <Message />
  </Container>
);

El componente Container incluye una prop children, que contendrá los componentes Notification y Message. Cualquier contenido colocado entre las etiquetas de apertura y cierre del componente Container será tratado como sus hijos.

El componente Container tiene el siguiente código:

const Container = (props) => (
  <div>{props.children}</div>
);

Nota

Las props simples se definen explícitamente y se accede a ellas usando sus nombres específicos dentro de un componente. Por otro lado, la prop children permite pasar componentes, elementos o texto como hijos de un componente sin definir explícitamente un nombre de prop. Representa el contenido entre las etiquetas de apertura y cierre del componente.

Podemos comenzar.

Paso 1

Creamos todos los componentes necesarios: Container, UserImage y UserInfo. Construyamos toda la aplicación incorporando estos componentes dentro del componente App.

Ejemplo:

// `Container` component to hold `UserImage` and `UserInfo`
const Container = (props) => (
  <div>{props.children}</div>
);

// `UserImage` component to display user image
const UserImage = () => (
  <img
    className="image"
    src="https://codefinity-content-media.s3.eu-west-1.amazonaws.com/code-1/react/styling/user.png"
    alt="user"
    width={200}
  />
);

// `UserInfo` component to display user information
const UserInfo = (props) => (
  <div>
    <p>
      <span>Name:</span> {props.name}
    </p>
    <p>
      <span>Age:</span> {props.age}
    </p>
    <p>
      <span>Occupation:</span> {props.occupation}
    </p>
  </div>
);

// `App` component that combines `Container`, `UserImage`, and `UserInfo`
const App = () => (
  <Container>
    <UserImage />
    <UserInfo name="Michelle" age="36 years" occupation="Accountant" />
  </Container>
);

Paso 2

Verificar que todos los nombres de clase esenciales estén añadidos a los elementos utilizando el atributo className.

// `Container` component to hold `UserImage` and `UserInfo`
const Container = (props) => <div className="container">{props.children}</div>;

// `UserImage` component to display user image
const UserImage = () => (
  <img
    className="image"
    src="https://codefinity-content-media.s3.eu-west-1.amazonaws.com/code-1/react/styling/user.png"
    alt="user"
    width={200}
  />
);

// `UserInfo` component to display user information
const UserInfo = (props) => (
  <div className="description">
    <p className="text">
      <span className="label">Name:</span> {props.name}
    </p>
    <p className="text">
      <span className="label">Age:</span> {props.age}
    </p>
    <p className="text">
      <span className="label">Occupation:</span> {props.occupation}
    </p>
  </div>
);

// `App` component that combines `Container`, `UserImage`, and `UserInfo`
const App = () => (
  <Container>
    <UserImage />
    <UserInfo name="Michelle" age="36 years" occupation="Accountant" />
  </Container>
);

Paso 3

Importar el archivo CSS en el archivo que contiene todos los componentes. Esto se realiza en la parte superior del archivo.

import "./index.css"; // Importing the CSS file

Paso 4

Por último, tenemos la libertad de aplicar cualquier estilo según nuestras preferencias.

/* Styling for the `Container` component */
.container {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  border: 3px solid #4f5e77;
  border-radius: 10px;
  width: 320px;
  background-color: #ff8a00;
}

/* Styling for the `UserImage` component */
.image {
  display: block;
  max-width: 100%;
  height: auto;
  margin-bottom: 20px;
}

/* Styling for the `UserInfo` component text */
.text {
  font-size: 22px;
  color: #bbdefb;
}

/* Styling for the `UserInfo` component label */
.label {
  font-size: 28px;
  font-weight: 700;
  text-transform: uppercase;
  color: #4f5e77;
}

Código completo de la aplicación:

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

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

Suggested prompts:

Can you explain how the `children` prop works in more detail?

What would the code look like if I wanted to add more user information?

How can I customize the styles further?

bookAplicación Práctica de CSS Externo

Desliza para mostrar el menú

Practiquemos creando un componente de tarjeta compuesto por tres componentes. El objetivo es utilizar diferentes componentes y aplicar estilos para que sea visualmente atractivo. Avanzaremos paso a paso para lograrlo.

Antes de comenzar, exploremos la funcionalidad de la prop especial llamada children, que permite pasar componentes, elementos o texto como elementos hijos. Así es como funciona:

const App = () => (
  <Container>
    <Notification />
    <Message />
  </Container>
);

El componente Container incluye una prop children, que contendrá los componentes Notification y Message. Cualquier contenido colocado entre las etiquetas de apertura y cierre del componente Container será tratado como sus hijos.

El componente Container tiene el siguiente código:

const Container = (props) => (
  <div>{props.children}</div>
);

Nota

Las props simples se definen explícitamente y se accede a ellas usando sus nombres específicos dentro de un componente. Por otro lado, la prop children permite pasar componentes, elementos o texto como hijos de un componente sin definir explícitamente un nombre de prop. Representa el contenido entre las etiquetas de apertura y cierre del componente.

Podemos comenzar.

Paso 1

Creamos todos los componentes necesarios: Container, UserImage y UserInfo. Construyamos toda la aplicación incorporando estos componentes dentro del componente App.

Ejemplo:

// `Container` component to hold `UserImage` and `UserInfo`
const Container = (props) => (
  <div>{props.children}</div>
);

// `UserImage` component to display user image
const UserImage = () => (
  <img
    className="image"
    src="https://codefinity-content-media.s3.eu-west-1.amazonaws.com/code-1/react/styling/user.png"
    alt="user"
    width={200}
  />
);

// `UserInfo` component to display user information
const UserInfo = (props) => (
  <div>
    <p>
      <span>Name:</span> {props.name}
    </p>
    <p>
      <span>Age:</span> {props.age}
    </p>
    <p>
      <span>Occupation:</span> {props.occupation}
    </p>
  </div>
);

// `App` component that combines `Container`, `UserImage`, and `UserInfo`
const App = () => (
  <Container>
    <UserImage />
    <UserInfo name="Michelle" age="36 years" occupation="Accountant" />
  </Container>
);

Paso 2

Verificar que todos los nombres de clase esenciales estén añadidos a los elementos utilizando el atributo className.

// `Container` component to hold `UserImage` and `UserInfo`
const Container = (props) => <div className="container">{props.children}</div>;

// `UserImage` component to display user image
const UserImage = () => (
  <img
    className="image"
    src="https://codefinity-content-media.s3.eu-west-1.amazonaws.com/code-1/react/styling/user.png"
    alt="user"
    width={200}
  />
);

// `UserInfo` component to display user information
const UserInfo = (props) => (
  <div className="description">
    <p className="text">
      <span className="label">Name:</span> {props.name}
    </p>
    <p className="text">
      <span className="label">Age:</span> {props.age}
    </p>
    <p className="text">
      <span className="label">Occupation:</span> {props.occupation}
    </p>
  </div>
);

// `App` component that combines `Container`, `UserImage`, and `UserInfo`
const App = () => (
  <Container>
    <UserImage />
    <UserInfo name="Michelle" age="36 years" occupation="Accountant" />
  </Container>
);

Paso 3

Importar el archivo CSS en el archivo que contiene todos los componentes. Esto se realiza en la parte superior del archivo.

import "./index.css"; // Importing the CSS file

Paso 4

Por último, tenemos la libertad de aplicar cualquier estilo según nuestras preferencias.

/* Styling for the `Container` component */
.container {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  border: 3px solid #4f5e77;
  border-radius: 10px;
  width: 320px;
  background-color: #ff8a00;
}

/* Styling for the `UserImage` component */
.image {
  display: block;
  max-width: 100%;
  height: auto;
  margin-bottom: 20px;
}

/* Styling for the `UserInfo` component text */
.text {
  font-size: 22px;
  color: #bbdefb;
}

/* Styling for the `UserInfo` component label */
.label {
  font-size: 28px;
  font-weight: 700;
  text-transform: uppercase;
  color: #4f5e77;
}

Código completo de la aplicación:

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

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