No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Creación de un Componente Button con JavaScript y CSS

6/21
Recursos

¿Cómo resolver el reto de exportar archivos de tokens en Figma?

¡Aventurarse en el mundo del diseño y programación puede ser tan emocionante como desafiante! Cuando trabajamos con herramientas como Figma, precisamos no solo diseñar sino también transformar esos diseños en elementos útiles para nuestra web o aplicación. Un paso crucial es exportar los tokens de diseño. Para ello:

  1. Buscar un plugin adecuado: Empezamos instalando el plugin Design Tokens en Figma, el cual nos ayudará a exportar los tokens necesarios en un archivo JSON.
  2. Exportar los tipos de tokens: Optamos por tipos tipográficos y de colores, aunque también puedes explorar otras configuraciones según tus necesidades.
  3. Revisar el formato JSON: Abre el archivo exportado para asegurarte de que incluye todas las variables de diseño necesarias, las cuales podrás transformar en variables CSS más adelante.

Este procedimiento te interesa si deseas mantener una coherencia entre el diseño y el código, asegurando que ambos universos hablen el mismo idioma.

¿Cómo construir un botón con JavaScript y CSS?

Ah, el botón, ese pequeño gigante imprescindible en la interacción del usuario con la interfaz. ¡Vamos a construirlo desde cero con JavaScript y CSS!

¿Cómo estructurar el JavaScript para crear un botón?

La magia comienza con JavaScript, ¡donde le damos vida a nuestro botón en el DOM!

// Creamos la función createButton
export const createButton = ({ style = 'outlined', size = 'small', label }) => {
  // Creamos el elemento botón
  const button = document.createElement('button');
  
  // Establecemos propiedades
  button.type = 'submit'; // Tipo de botón
  button.role = 'button'; // Rol del botón
  button.innerHTML = label; // Texto interno del botón

  return button; // Retornamos el botón creado
};

¿Cómo estilizar el botón con CSS?

Una vez nuestro botón está creado, es hora de ponerle un traje a medida usando CSS.

@import '../common/variables.css';

button {
  border: 2px solid var(--black); /* Bordes sólidos y negros según nuestra variable */
  /* Agrega más estilos según sea necesario */
}

Asegúrate de importar las variables CSS para mantener consistencia en tu diseño.

¿Cómo visualizar el botón en Storybook?

Storybook es nuestra herramienta aliada para ver y probar componentes de UI, como nuestro flamante botón.

import { createButton } from './button.js';

// Plantilla para la visualización del botón
export const Default = ({ label = 'Button' }) => createButton({ label });

// De esta forma, Storybook reconocerá y mostrará nuestro componente.

Corre npm run storybook para abrir Storybook y observar cómo nuestro botón cobra vida. Asegúrate de resolver cualquier error que surja al importar archivos.

Recomendaciones para seguir avanzando

Este es solo el comienzo en tu travesía creando componentes interactivos y visuales en la web. Aquí algunos consejos para seguir aprendiendo y perfeccionando tus habilidades:

  1. Practica regularmente: La creación de componentes puede ser compleja al principio, pero la práctica constante te hará experto.
  2. Explora más extensiones y plugins: Herramientas como Storybook y plugins en Figma pueden facilitar tu trabajo cuando les sacas el máximo provecho.
  3. Colaboración y comunidad: Comparte y colabora con otros desarrolladores. La comunidad siempre tiene mucho que ofrecer.

Mantén la curiosidad encendida y continúa aprendiendo. Cada línea de código que escribas es un paso más en la dirección correcta. ¡Vamos, el mundo del desarrollo web te espera!

Aportes 6

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Comparto mi progreso 😃

Les comparto lo que llevo hasta el momento, usando React + TypeScript ![](https://static.platzi.com/media/user_upload/code1-0c8a6988-1edd-4712-9a03-4339f37ef8f5.jpg)![](https://static.platzi.com/media/user_upload/code-bc7596c3-f6d5-4c90-88e0-9c77c2b59089.jpg)
pero como haces para comitear este output (json) a tu repo. lo ideal seria: que los cambios en figma los pueda pushear a tu repo
Algo que me he encontrado trabajando con storybook es la capacidad de hacer pruebas de iteraccion <https://storybook.js.org/docs/writing-tests/interaction-testing>
Acá el equivalente para los que trabajan con React: ```js import { Button } from './Button'; ---------------------------------- export default { component: Button, }; export const Primary = { args: { label: 'Button', primary: true, }, }; ```

/** variables.css **/
Code:

:root {
    --primary_300: rgb(186, 104, 200);
    --primary_50: rgb(243, 229, 245);
    --primary_600: rgb(142, 36, 170);
    --error_50: rgb(255, 235, 238);
    --error_300: rgb(229, 115, 115);
    --error_600: rgb(229, 57, 53);
    --info_50: rgb(227, 242, 253);
    --info_300: rgb(100, 181, 246);
    --info_600: rgb(30, 136, 229);
    --neutral_50: rgb(250, 250, 250);
    --neutral_300: rgb(224, 224, 224);
    --neutral_600: rgb(117, 117, 117);
    --warning_50: rgb(255, 243, 224);
    --warning_300: rgb(255, 183, 77);
    --warning_600: rgb(251, 140, 0);
    --success_50: rgb(224, 247, 250);
    --success_300: rgb(77, 208, 225);
    --success_600: rgb(0, 172, 193);
    --body-12: 12px;
    --body-14: 14px;
    --body-16: 16px;
    --body-18: 18px;
    --h2: 32px;
    --h1: 40px;
  }