30 días de proyectos de JavaScript | Día1: crea una aplicación de lista de tareas con HTML, CSS y JavaScript | Ahmed Sadek | Skillshare
Buscar

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

30 días de proyectos de JavaScript | Día1: crea una aplicación de lista de tareas con HTML, CSS y JavaScript

teacher avatar Ahmed Sadek, full stack web developer, freelancer & t

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      1:24

    • 2.

      Para enumerar el diseño de IU de aplicaciones

      6:39

    • 3.

      Adición de tareas con JavaScript

      11:02

    • 4.

      Finalización y eliminación de tareas con JavaScript

      7:07

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

6

Estudiantes

--

Proyecto

Acerca de esta clase

30 días de proyectos en javascript es una serie basada en proyectos que contiene 30 proyectos geniales creados con HTML, CSS y javascript. Cada semana se agregará una nueva clase con un nuevo proyecto, así que no te olvides de seguirme para recibir notificaciones cada vez que se suba una nueva clase.

la razón por la que creé esta lección es porque vi a muchos estudiantes entrar en un framework de frontend demasiado pronto. Aprender JavaScript vainilla y comprender cómo funciona el modelo de objetos de archivo son esenciales antes de pasar a un framework. Esta serie te enseña esto al crear proyectos del mundo real de todo tipo.

También aprenderás más sobre HTML5 y CSS, incluidas las etiquetas semánticas en tu marcado, las propiedades básicas de CSS como colores, alineación, flexbox y sombras, las propiedades personalizadas de CSS, las animaciones/transiciones y más.

30 proyectos pueden parecer mucho, pero pudimos hacerlos lo suficientemente pequeños como para que puedas completar un proyecto en solo unas horas. Por supuesto, esto depende de tu nivel de habilidad.

Para aprovechar al máximo este curso, intenta terminar una clase diaria y lo más importante es codificar conmigo, no solo veas los videos, sino que abre tu editor de código y codifique para que, con el tiempo y terminando los proyectos, agudes mucho tus habilidades de codificación.

Conoce a tu profesor(a)

Teacher Profile Image

Ahmed Sadek

full stack web developer, freelancer & t

Profesor(a)
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: Hola a todos, y bienvenidos a esta nueva lección de nuestro curso. En esta lección, vamos a crear una lista simple de hacer usando HTML, CSS y JavaScript. Puedes ver aquí tenemos un campo de entrada que dice agrega tu tarea, un botón para agregar la tarea. Entonces si voy aquí y digo, lea un libro, luego haga clic en el botón. Puedes ver que la tarea se agrega aquí con este borde inferior y este ícono de basura a la derecha. Y si agregamos otra tarea, digamos, ir al gimnasio, puedes ver que se agrega aquí debajo de la primera tarea. Muy bien, digamos que terminamos la primera tarea aquí leyendo un libro Podemos ir aquí y dar click en él, y como pueden ver, tiene esta línea de trazo indicando que esta tarea está terminada. Y si queremos eliminar completamente la tarea, podemos dar click en el icono de papelera aquí. Y se puede ver que se ha ido por completo. Este curso es ideal para estudiantes que hayan aprendido los fundamentos de Javascript y quieran aplicar sus conocimientos de manera práctica Al crear una aplicación de lista de tareas simple pero atractiva, los estudiantes obtendrán experiencia práctica, profundizarán su comprensión de los conceptos básicos de Javascript y aumentarán su confianza en desarrollo de proyectos del mundo real Para aprovechar al máximo este curso, se anima a los estudiantes a construir el proyecto por su cuenta y subir su trabajo terminado como archivo zip a la galería del proyecto. 2. Para enumerar el diseño de IU de aplicaciones: Bien, comencemos a crear esta app. Voy a empezar aquí en mi HTML y en un div, darle una clase de contenedor. Después dentro de él, agregaré otro div con una clase de tarea nueva. Entonces este nuevo div tarea contendrá la entrada de texto en que escribiremos nuestra tarea y el botón encargado de agregarla. Bien, vayamos a nuestro CSS y comencemos apuntando al cuerpo. Luego agregando altura, 100 VH, luego fondo, gradiente lineal a la derecha. Por lo que su dirección será de izquierda a derecha. Entonces agregaré estos tres bonitos colores. Y como puedes ver, el cuerpo ahora tiene este gradiente fresco como fondo. Bien, ahora apuntaré al div contenedor. Y agregar ancho, 40% del cuerpo, luego ancho mínimo, 450 píxeles. Entonces, en pantallas más pequeñas, el ancho no disminuirá por debajo de los 450 píxeles, pero en pantallas más grandes , ocupará el 40% del ancho del cuerpo. Entonces para poder verlo, agregaré borde, dos pixeles, sólido, blanco. También agregaré relleno, 30 píxeles de arriba y abajo y 40 píxeles de izquierda y derecha. Y puedes ver aquí tenemos nuestro contenedor div en la esquina superior izquierda. Pero queremos centrarlo horizontal y verticalmente dentro de nuestra página web. Así podemos subir aquí dentro de su contenedor, el cuerpo y agregar display flex, justificar contenido, centrarlo para centrarlo verticalmente, y alinear elementos centro para centrarlo horizontalmente, tal como se ve aquí. Todo bien. Ahora apuntemos al div con la clase de Nueva tarea, que contendrá la entrada de texto y el botón y agregaremos color de fondo. Relleno blanco 30 píxeles desde arriba e abajo y 20 píxeles de izquierda y derecha. Luego radio de borde, cinco píxeles para tener algunas curvas en la esquina, luego sombra de cuadro, cero como desplazamiento horizontal, 15 píxeles como desplazamiento vertical y 30 píxeles como valor de desenfoque. Entonces este color negro semitransparente. Como puedes ver aquí, el nuevo div de tareas se ve mucho mejor. Volvamos a nuestro HTML para agregar los elementos dentro de este div. Voy a agregar una entrada con un tipo de texto, luego un marcador de posición de agregar tu tarea Entonces este será el texto marcador dentro de la entrada, como puedes ver aquí Entonces por debajo de eso, agregaré un botón con una clase de BTN. Entonces diré Add. Se puede ver que tenemos un botón al lado de la entrada. Después iré a mi CSS y apuntaré la entrada dentro de la nueva tarea DIV. Después agregaré width, 70% de la nueva tarea div width, luego height, 45 pixels. Después para aumentar ligeramente el tamaño de fuente del texto, agregaremos tamaño de fuente 15 píxeles, luego borde, dos píxeles, sólido, este color gris claro. También agregaré relleno, 12 pixeles y colocaré este color. Después peso de fuente, 500 y finalmente, radio de borde cinco píxeles. Y ahora se puede ver que la entrada se ve mucho mejor. Y al escribir dentro de él, se puede ver que el texto se ve bastante bien. Pero queremos cambiar este feo color negro cuando nos enfocamos en la entrada. Volvamos aquí y apuntemos de nuevo a la entrada. Y al enfocarnos en él, agregaremos color de borde, este bonito color del degradado corporal. También agregaré esquema. Ninguno. Y ahora cuando voy y me concentro en el insumo, se puede ver que tenemos esta linda frontera. Vamos a darle estilo a este botón aquí. Volveré y lo apuntaré. Después agrega ingenio, 20%, altura, 45 pixeles. Radio de borde, cinco píxeles. Peso de la fuente, 500. Tamaño de fuente, 16 píxeles. Color de fondo, nuestro color favorito, luego borde. Ninguno, color blanco puntero del cursor. Y por último, bosquejo, ninguno. Ahora, como pueden ver, el botón se ve mucho mejor. Ahora queremos presionar el botón hasta el final de la nueva tarea div para que tengamos algo de espaciado en el centro. Podemos hacerlo usando Flexbox. Entonces iré aquí en la nueva tarea div y agregaré display flex, luego justificaré el espacio de contenido entre para que el espacio esté entre la entrada y el botón como ves aquí. Bien, ahora vamos a crear la parte donde mostraremos las tareas agregadas. Volveré a mi HTML, iré por debajo del nuevo div de tareas y agregaré un nuevo div con una clase de tareas. Después volveré a mi CSS para darle estilo a ese div. Yo lo apuntaré. Luego agrega ancho, 100% del ancho del contenedor. Después color de fondo, blanco, relleno, 30 pixeles de arriba e abajo y 20 pixeles de izquierda y derecha. Después margen superior 50 píxeles. Y ahora puedes ver que tenemos este fondo blanco en la parte inferior en el que podemos insertar nuestras tareas. Agreguemos un radio de borde. De diez píxeles, luego caja sombra cero, 15 píxeles, 30 píxeles, y este color semitransparente. Y ahora hemos terminado de diseñar nuestra app de lista de tareas pendientes, y luego la siguiente lección, seguiremos trabajando con JavaScript. Entonces, nos vemos ahí. 3. Adición de tareas con JavaScript: Bienvenidos de nuevo, todos. En esta lección, vamos a seguir trabajando en nuestra lista de tareas pendientes. En la última lección, terminamos el HTML y CSS para nuestra lista de tareas pendientes, y en esta lección, continuaremos construyéndola usando JavaScript. Así que vayamos a nuestro archivo JavaScript y comencemos. En primer lugar, vamos a apuntar a algunos elementos HTML y almacenarlos dentro de variables JavaScript. Voy a crear una nueva variable, nombrarla Botón Agregar tarea. Entonces queremos seleccionar este botón aquí. Entonces agregaré el selector de consulta de punto de documento y agregaré el botón de clase aquí. Entonces duplicaré eso y cambiaré el nombre de la variable a entrada de tareas. Entonces esta variable contendrá la entrada de texto aquí. Entonces cambiaré el botón aquí al div con la clase de nueva tarea y luego agregaré entrada para apuntar a la entrada dentro de ella. También queremos apuntar al marcador de posición div que contendrá nuestras tareas agregadas, esta de aquí Entonces voy a duplicar eso una vez más, cambiar el nombre de la variable a contenedor de tareas. Y apuntar al div con la clase de tareas. Ahora, vamos a implementar la lógica de esta app. Lo que queremos hacer es querer que la tarea que agregamos aquí se muestre en este div en la parte inferior. Pero si no escribimos nada y hacemos clic en el botón, queremos alguna acción que nos impida hacer eso y un mensaje de visualización para que el usuario nos diga que debes ingresar a una tarea. Así que vamos a configurarlo rápidamente como nuestro primer paso. Voy a ir aquí y decir añadir taskbton punto AD Event Después escucharé el evento click y agregaré una función de devolución Entonces lo que acabamos de hacer, todos, es que agregamos el botón agregar Tarea, y queremos responder al hacer clic en este botón. Entonces agregamos add event listener para permitirnos hacer precisamente eso Entonces escuchamos el evento click aquí, es decir, cada vez que hacemos clic en el botón, queríamos hacer algo, y podemos decirle al navegador qué hacer aquí en esta función de devolución Entonces voy a ir aquí dentro de esta función y decir, tareas entrada punto valor punto Longitud igual a cero. Voy a agregar alerta y dentro de ella, diré, Por favor ingrese una tarea. Así que aquí acabamos de verificar usando la condición I. Le dijimos al navegador si el valor que le damos a las tareas ingresadas aquí tiene una longitud de cero o en otras palabras, un número de caracteres igual a cero, y eso solo significa que aún no está escrito nada. Queremos mostrar esta alerta al usuario y decirle que ingrese una tarea. Bien, volvamos y probemos eso. Se puede ver cuando hago clic en el botón sin introducir ningún texto, esta alerta aparece para mí y dice: Por favor ingrese una tarea. Ahora puedo dar clic en Bien y luego comenzar a ingresar a la tarea y agregarla usando este botón. Pero continuemos nuestro trabajo en Javascript. Voy a ir aquí y en el caso donde el usuario ingresó una tarea, podemos traducir eso en el código agregando else. Entonces básicamente queremos agarrar cualquier valor que el usuario haya agregado aquí dentro de la entrada y mostrarlo en este tenedor de lugar div en la parte inferior. Y, por supuesto, todo eso debería suceder cuando hacemos clic en el botón de anuncio. Es por eso que todo nuestro código está dentro de esta función de devolución Entonces voy a agregar contenedor de tareas. Y como queremos insertar las tareas dentro este contenedor envuelto en algunos elementos HTML para darles estilo, voy a añadir punto HTML interno y pondré eso igual a, luego agregaré literales de plantilla, y dentro de él, agregaremos algo de HTML regular Como ves aquí, acabo agregar un div con una clase de tarea, y dentro de él, agregué un span que debería contener la tarea. Entonces queremos agarrar el valor de entrada que agregamos e insertarlo dentro del span aquí. Podemos hacerlo fácilmente yendo aquí y diciendo tareas entrada punto VLU Todo bien. Vamos a probar eso. Iré aquí y agregaré una tarea. Digamos que lee un libro. Luego haz clic en Agregar, y ahora puedes ver que la tarea se agrega aquí. Pero una vez que agrego otra tarea, vamos a enfrentar un nuevo problema. Probemos eso y agreguemos uno nuevo. Después al hacer clic en el botón Agregar, se puede ver que se agrega la nueva tarea, pero se elimina la anterior. Pero queremos mantener el primero y mostrar el segundo debajo de él. Entonces entendamos por qué sucede esto en primer lugar. Cuando miramos aquí, puedes ver que configuramos el contenido HTML del contenedor de tareas para que sea igual a este contenido aquí. Y eso debería suceder al hacer clic en el botón. Así que cada vez que hacemos clic en el botón, este clode aquí se ejecutará, y el contenido HTML se actualizará básicamente desde el cuadrado y contendrá el valor de la entrada Por eso cambia con cada nueva tarea que añadimos. Pero podemos arreglar eso con un simple truco, que es agregar un signo más aquí frente al signo igual. Por lo que será más igual este valor. Y eso básicamente le dice al navegador que agregue el nuevo contenido mientras mantiene el contenido antiguo en su lugar. Y ahora, cuando vuelvo y trato de agregar algunas tareas, puedes ver que las nuevas tareas se agregan debajo de las antiguas, pero ahora es el momento de agregar algunos estilos al div de tarea y al lado span. Iré a mi CSS y apuntaré al div tarea luego agregaré height, 50 pixels, padding, cinco pixeles de arriba e abajo, y diez pixeles de izquierda y derecha. Entonces margen los diez píxeles superiores para que tengamos algún espaciado entre las tareas. También queremos agregar un borde en la parte inferior para separar las tareas. Entonces voy a agregar borde inferior, dos pixeles, sólido este color gris claro. Entonces finalmente, voy a añadir puntero de cursor. Y ahora cuando voy y trato de agregar tareas, puedes ver que las tareas se muestran aquí de una manera mucho mejor. Bien, ahora vamos a diseñar el span dentro de la tarea Div. Voy a apuntar. Y agregue tamaño de fuente, 15 píxeles, peso de fuente, 400. Y así, las tareas se ven exactamente de la manera que queremos. Sigamos adelante. Queremos agregar un icono de papelera en cada tarea para que podamos eliminar la tarea cuando queramos. Entonces volveré a nuestro archivo JavaScript, iré aquí dentro del tastiv y debajo del span y agregaré un botón Con una clase de eliminar Luego dentro de ese botón, agregaremos el icono de papelera, y agregaremos este icono usando el sitio web Font Awesome. Y para incluir iconos Font Awesome en nuestro proyecto, buscaremos Font Awesome CDN Entonces copiaremos aquí este primer código. Vuelve a nuestro HTML y pegarlo aquí encima de la hoja de estilo. Entonces buscaré Font Awesome. Ir a iconos. Después busca Basura. Da click en este icono aquí, luego copia su código. Ir a mi editor de código y pegarlo aquí dentro del botón con la clase de borrar. Ahora cuando voy y agrego una tarea, puedes ver que tenemos este ícono de basura aquí, pero vamos a agregarle algunos estilos. Volveré a mi CSS y seleccionaré el botón que contiene el icono. Después agregaré altura, 100% de la tarea div ancho 40 píxeles, color de fondo, nuestro color rojo, color, radio de borde blanco, cinco píxeles, borde ninguno. Contorno, ninguno, y finalmente, puntero del cursor. Y ahora puedes ver que se ve mucho mejor. Por último, queremos moverlo al final de la tarea div aquí, y podemos hacerlo usando Flexbox yendo aquí dentro del div de tarea y agregando display flex, align items, center para alinearlo verticalmente dentro del task div luego justifique el contenido, espacio entre para que sea empujado hasta el final de la tarea div tal como se ve aquí Bien, todos, eso es todo para esta lección. Recapitulemos rápidamente lo que hicimos. Aquí en nuestro JavaScript, le dijimos al navegador que cuando hacemos clic en el botón de anuncio, queremos ejecutar algún código, y el código a ejecutar se agregará dentro de esta función de devolución Luego dentro de la función callback, comprobamos si el campo de entrada está vacío Y como respuesta a eso, agregamos esta alerta que le dice al usuario que agregue una tarea. Entonces por debajo de eso, simplemente agarramos el valor de la entrada agregada por el usuario, agregamos dentro de un span y un div, luego insertamos dentro del div de tareas en la parte inferior. También agregamos un icono de papelera junto a él usando sitio web Font Awesome para que podamos eliminar la tarea una vez que haya terminado. Bien, en la siguiente lección, aprenderemos cómo podemos eliminar o marcar las tareas como finalizadas. Usaremos algunas funciones geniales de JavaScript para hacer eso, así que te veré ahí. 4. Finalización y eliminación de tareas con JavaScript: Oigan, todo el mundo. Bienvenido de nuevo a la parte final de la creación de esta aplicación de lista de tareas usando HTML, CSS y JavaScript. Después de mostrar nuestras tareas aquí, queremos tener la opción de eliminarlas una vez que las terminemos, y lo haremos usando este ícono de papelera que agregamos aquí. Entonces hagámoslo en nuestro JavaScript. En primer lugar, quiero apuntar los botones aquí a la derecha, así voy a crear una nueva variable, nombra eliminar botones. Entonces voy a decir documento. Y como pueden ser más de un botón en el caso de agregar múltiples tareas, al igual que aquí, voy a decir selector de consulta de puntos todos y dirigirlos por su clase, borre eso que agregamos arriba aquí en nuestro HTML insertado. Entonces al hacer eso, esta variable aquí contendrá todos los botones de las tareas en una lista de nodos. Y para poder escuchar el evento click de cada botón, primero necesitaremos recorrer los botones, luego escuchar el evento click de cada uno. Entonces hagámoslo. Diré eliminar botones, y los recorremos usando para cada método. Entonces voy a decir punto para cada uno. Después agregaré una función de devolución de llamada dentro del bucle. Por lo que esta función se ejecutará en todos los botones dentro de la lista de nodos de eliminar botones. Entonces necesitamos pasar un parámetro aquí que represente cada botón. Entonces voy a agregar botón. Después dentro de la función que se ejecutará en cada botón, queremos escuchar el evento click de cada botón para que podamos eliminar su tarea. Entonces voy a agregar botón, que acabamos de pasar como parámetro aquí. Punto agregar oyente de eventos. Entonces queremos escuchar el evento click. Después agregaré una función de devolución de llamada que se ejecutará cada vez que se haga clic en el botón Después dentro de esta función, queremos eliminar la tarea relativa al botón que pulsamos Si subimos aquí, puedes ver que cada tarea está representada por este div aquí que tiene la clase de tarea y contiene tanto las tareas agregadas como el botón de eliminar. Por lo que tendremos que eliminar todo este div al hacer clic en este botón. Y si te das cuenta, el div que queremos eliminar es un padre del botón de borrar. Entonces voy a bajar aquí y decir botón, punto nodo padre. Eliminar puntos. Entonces, como puedes ver, he apuntado al nodo padre del botón, que es el div con la clase de tarea usando este nodo padre aquí. Después lo eliminé, y todo esto debería suceder una vez que haga clic en el botón de eliminar. Entonces probemos eso. Iré aquí y agregaré algunas tareas. Entonces digamos que quiero eliminar una tarea específica. Puedo ir aquí y hacer clic en el botón de basura, y como pueden ver, se retira. Y también puedo eliminar las otras tareas por completo. Todo bien. Ahora, al terminar una tarea, queremos tener la capacidad de marcarla terminada. Y lo haremos simplemente agregando una línea cruzada a través la tarea al hacer clic en la propia tarea. Entonces para hacer eso, recorreremos las tareas, y al hacer clic en cualquier tarea, agregaremos esa línea. Esto es muy parecido a lo que hicimos aquí. Entonces, antes que nada, queremos seleccionar las tareas agregadas. Entonces voy a crear una nueva variable, nombrarla tareas agregadas. Y voy a establecer eso igual al selector de consulta de punto de documento todos. Y apuntaré a todos los divs que tengan una clase de tarea, que es este div arriba de aquí Entonces fácilmente podemos ir aquí y copiar esta lógica desde aquí. Pégalo y simplemente cambia lo que queremos hacer. En primer lugar, reemplazaré los botones de eliminar con tareas agregadas, por lo que esta vez recorreremos la tarea agregada ellos mismos. Entonces voy a cambiar botón aquí a tarea, que representa cada tarea individual. Después dentro, cambiaremos el botón aquí a tarea también para que podamos escuchar el evento click de cada tarea. Entonces voy a eliminar este código aquí porque claramente no queremos eliminar el padre de la tarea al hacer clic en él. Pero en realidad, queremos agregar una línea simple a través de la tarea, y podemos hacerlo usando CSS. Entonces voy a decir tarea classLT punto Toggle. Y voy a alternar la clase llamada done. Entonces, lo que esto hará es que cada vez que hagamos clic en una tarea, se agregará una clase llamada Don al div con una clase de tarea. Y si volvemos a hacer clic, la clase será eliminada. Entonces probemos eso. Agregaré una tarea luego la inspeccionaré. Y quiero que eches un vistazo más de cerca aquí al div con la clase de tarea. Se puede ver al hacer clic en la tarea, se agrega una clase llamada D. Y al volver a hacer clic, se elimina esta clase D. Y eso está sucediendo debido al método toggle que agregamos aquí. Todo bien. Usaremos esta clase De para darle estilo a la tarea al hacer clic en ella. Entonces iré a mi CSS y apuntaré a la tarea div Y cuando tenga otra clase llamada hecha, agregaré decoración de texto, línea a través. Entonces ve aquí y da click en él. puede ver que se agrega la línea para indicar que hemos terminado esta tarea y esa línea se agrega debido a la clase De. Y al volver a hacer clic, se elimina, y podemos eliminar completamente la tarea haciendo clic en el botón de papelera. Bien, ahora nos queda una cosa. Se puede ver que la tarea en la entrada sigue ahí después de agregar la tarea, pero queremos eliminarla una vez que agreguemos la tarea. En otras palabras, queremos vaciar la entrada que esté lista para que se agregue la siguiente tarea. De esa manera no tendremos que eliminar manualmente el texto de la tarea anterior. Podemos hacerlo fácilmente yendo a nuestro archivo JavaScript, y en la parte inferior aquí voy a decir entrada de tareas. Que es, recuerden, la entrada de texto que seleccionamos aquí. Después voy a añadir valor de punto, y voy a establecer y vaciar cadenas como un valor. Y recuerda, esto sucederá al hacer clic en el botón agregar Tarea. Entonces probemos eso. Voy a añadir una nueva tarea y ahora se puede ver que la entrada se vacía cuando añadimos la tarea. Y al agregar otra tarea, vuelve a estar vacía, y podemos marcar esta tarea como terminada. También podemos eliminar esta tarea. Y con eso, todos, hemos terminado de crear este proyecto. Espero que te haya gustado y sacaras algo de ello, y te veré en otro proyecto de JavaScript.