No tienes acceso a esta clase

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

Curso de Tailwind CSS 1

Curso de Tailwind CSS 1

Víctor Yoalli Domínguez

Víctor Yoalli Domínguez

Forms

23/29
Recursos

¿Cómo crear un formulario de contacto atractivo?

Crear un formulario de contacto atractivo y funcional es fundamental para captar la atención de los usuarios y garantizar una interacción satisfactoria. En esta guía, aprenderás cómo diseñar un formulario que incluya controles de entrada para el nombre y un mensaje, mejorando su estética y usabilidad.

¿Cómo iniciar el diseño del formulario?

Para empezar, abre tu editor de texto y crea un formulario básico. El objetivo es incluir campos para el nombre y el mensaje del usuario. Sigue estos pasos para estructurar el formulario:

  1. Campo Nombre: Comienza creando un control para el campo nombre.
  2. Campo Mensaje: De manera similar, añade un campo de texto para que los usuarios puedan ingresar sus mensajes.

¿Cómo mejorar la apariencia del formulario?

Un buen diseño visual hace que el formulario sea más fácil de usar y estéticamente agradable. Aquí te mostramos cómo puedes lograrlo:

Diseño del campo de texto

  • Fondo: Cambia el fondo del control a un color gris claro (grey-200), pero ajusta según sea necesario para que el contraste sea adecuado.
  • Borde: Añade un borde suave para distinguir el campo sobre el fondo.
  • Espaciado y fuente: Utiliza padding para crear espacio entre el texto y el borde del campo. Ajusta el tamaño de la fuente para que sea legible y atractivo.

Redondeo y color del texto

  • Haz que los bordes sean redondeados para un aspecto más moderno.
  • Cambia el color del texto a un gris oscuro como text-gray-800 para que contraste adecuadamente con el fondo.

¿Cómo implementar el modo responsivo?

Cuando diseñes para dispositivos móviles, es crucial que el control ocupe toda la anchura disponible para maximizar la usabilidad. Utiliza clases como w-full en Tailwind CSS para asegurar que hace esto correctamente.

¿Cómo añadir funcionalidad al formulario?

Después de diseñar los campos de entrada, es momento de añadir un botón para enviar el formulario.

Configuración del botón de envío

  • Texto y estilo: Inserta un botón con el texto "Enviar" y cambia su tipo a block para que se alinee correctamente en el contenedor.
  • Colores: Utiliza un color de fondo gris medio (bg-gray-500) para el botón y un efecto de sombra (shadow-lg) para que destaque como un botón presionable.
  • Interacción: Asegúrate de que el botón reaccione adecuadamente al hover y al focus cambiando la sombra o el color de fondo para dar retroalimentación visual al usuario.

¿Cómo manejar y destacar el focus en los controles?

El estado focus resalta el campo que el usuario está editando actualmente, mejorando la experiencia de uso al hacer más evidente en cuál campo está trabajando. Aplica estilos diferentes para focus:

  • Focus en el campo: Elimina bordes grises predeterminados y añade márgenes azules para un enfoque más moderno.
  • Borde y sombra: Cambia focus:ring o focus:border para la personalización.

Prácticas recomendadas para mantener el compromiso de los estudiantes

  • Presentación visual clara y atractiva: Un diseño limpio anima a completar el formulario.
  • Funcionalidad robusta: Asegúrate de que los campos funcionen correctamente en todos los navegadores y dispositivos.
  • Proporcionar retroalimentación visual: Los usuarios deben recibir indicaciones visuales claras sobre si sus acciones han sido reconocidas y procesadas.

Al implementar estos principios, estarás bien encaminado a crear un formulario de contacto que no solo sea funcional, sino que también ofrezca una experiencia de usuario positiva y atractiva. Recuerda seguir experimentando y aprendiendo nuevas técnicas para seguir mejorando tu diseño. ¡Nos vemos en el siguiente aprendizaje!

Aportes 19

Preguntas 1

Ordenar por:

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

Me gustó la clase y lo referente a Tailwind está excelente, pero:

  • Aunque no sea funcional, si es un formulario debería tener su etiqueta <form>
  • Los nombres de los campos en div??? para eso existe <label for="">
  • Cuando miramos la paleta de colores le pasaron unos colores para call to action, entonces solo siguió los 2 principales y el resto inventando

JAJA perdón si soy fastidioso con este comentario, respecto a Tailwind está excelente el curso y excelente profesor. Pero lo anterior me parecierón unos pequeños errores jaja


el “focus:shadow-outline” cambio por “focus:ring-2”. 😃

¿A dónde se fueron todos?

Antes de pasar a la maquetación con Tailwind la pagina debe estar diseñada en un wireframe de preferencia para no gastar tiempo viendo que opciones quedarían mejor.

Con diseño responsive:

    <div class="mt-8 mx-2 md:mx-auto w-full md:w-1/2">
      <div>
        <div>Nombre</div>
        <input class="w-full py-1 px-4 rounded border border-blue-300 bg-gray-300 text-gray-800 placeholder-secondary leading-snug hover:bg-white focus:outline-none focus:shadow-outline" type="text" placeholder="Nombre">
      </div>
      <div>
        <div>Email</div>
        <input class="w-full py-1 px-4 rounded border border-blue-300 bg-gray-300 text-gray-800 placeholder-secondary leading-snug hover:bg-white focus:outline-none focus:shadow-outline" type="text" placeholder="Email">
      </div>
      <div>
        <div>Comentarios</div>
        <textarea class="w-full py-1 px-4 rounded border border-blue-300 bg-gray-300 text-gray-800 placeholder-secondary leading-snug hover:bg-white focus:outline-none focus:shadow-outline" name="" id="" rows="3"></textarea>
      </div>
      <div>
        <button class="block mx-auto px-4 py-2 rounded shadow-xl bg-gray-500 hover:shadow-none hover:bg-gray-700 hover:text-white">Enviar</button>
      </div>
    </div>

Sólo como comentario ya que no es clase de buenas prácticas de HTML, en el caso de los formularios en lugar de utilizar <div>Nombre</div> una buena práctica sería el utilizar la etiqueta <label> señalando el id al que corresponde ese elemento:

<div>
  <label for="fname">Nombre</label>
  <input class="…" type="text" id="fname" placeholder="Nombre" />
</div>

Esto para que en dispositivos móviles, cuando el usuario de click (touch) en el nombre, en automático también se active el input de formulario y comience a escribir. Esto puede suceder muy a menudo ya que dependerá de la habilidad motriz o visual del usuario o la calidad y el tamaño de su pantalla.

Chicos, yo llevo el proyecto así.

Aquí les dejo el código del formulario.

<section class="p-8 md:px-32 lg:px-80 bg-white" id="contact">
      <h3 class="text-3xl text-center font-semibold text-gray-900 capitalize">Contact us</h3>
      <form>
        <div class="mt-3">
          <label class="block text-lg text-gray-700" for="name">Name</label>
          <input placeholder="What's your name?" class="bg-gray-200 px-2 w-full h-10 rounded-md focus:outline-none focus:shadow-outline" type="text" id="name">
        </div>
        
        <div class="mt-3">
          <label class="block text-lg text-gray-700" for="email">Email</label>
          <input placeholder="What's your email address?" class="bg-gray-200 px-2 w-full h-10 rounded-md focus:outline-none focus:shadow-outline" type="text" id="email">
        </div>

        <div class="mt-3">
          <label class="block text-lg text-gray-700" for="comments">Comments</label>
          <textarea placeholder="Write a comment" class="bg-gray-200 p-2 w-full h-20 lg:h-24 rounded-md leading-snug focus:outline-none focus:shadow-outline" name="comments" id="comments"></textarea>
        </div>

        <button class="bg-primary md:px-20 px-10 py-3 text-lg m-auto block mt-3 text-gray-900 rounded-md font-medium">Enviar</button>
      </form>
    </section>

Que malas practicas, en los cursos de css y html básico y definitivo mencionan la importancia del uso de las etiquetas html como la etiqueta form. Aun que sea maquetación deberíamos respetar los conceptos básicos y las buenas practicas previas.

Será cuestión de acostumbrarse a usar muchas clases, pero en general lo veo útil en vez de estar escribiendo cientos de lineas de css…

Si alguien tiene problemas con el footer (ya que no me aparecia hasta el final de la pagina. Lo que hice fue quitarle las lineas de absolute bottom-0 y con eso pude solucionar mi problema

Mobile:

Tablet:

Escritorio:

colocar un div para colocar un texto es mala practica

tailwind rocks!

<!-- FORMS -->

 <!-- FORMS -->
        <form class="mx-2">
            <div>
                <div>Nombre</div>
                <input class="w-full leading-snug text-gray-500 py-1 px-4 rounded border border-blue-300 bg-gray-200 placeholder-secondary hover:bg-white focus:outline-none focus:shadow-outline" type="text" placeholder="Nombre"><!-- leading snug controla el espacio entre lineas -->
            </div>
            <div>
                <div>Email</div>
                <input class="w-full leading-snug text-gray-500 py-1 px-4 rounded border border-blue-300 bg-gray-200 placeholder-secondary hover:bg-white focus:outline-none focus:shadow-outline" type="email" placeholder="Email"><!-- leading snug controla el espacio entre lineas -->
            </div>
            <div>
                <div>Comentarios</div>
                <textarea class="w-full leading-snug text-gray-500 py-1 px-4 rounded border border-blue-300 bg-gray-200 placeholder-secondary hover:bg-white  focus:outline-none focus:shadow-outline" name="" id="" cols="30" rows="10">
                </textarea>
            </div>

            <div>
                <button class="rounded shadow-xl py-1 px-4 bg-gray-400 mx-auto block hover:shadow-none hover:bg-gray-700 hover:text-white">
                    Enviar 
                </button>
            </div>
        </form>

desktop ❤️

f