Haz clic para copiar al portapapeles

¡Cómo copiar código al portapapeles con un solo clic!

Haz clic para copiar al portapapeles

Aaron Grieve
Diseñador web y gráfico freelance
Ver perfil del autor
Aaron Grieve
Diseñador web y gráfico freelance
Ver perfil del autor
Índice de contenidos

En este tutorial, usando una biblioteca externa para el portapapeles, crearemos una colección CMS de degradados. Esta colección permitirá a los usuarios copiar el código hexadecimal al portapapeles simplemente haciendo clic en él. No te preocupes si nunca has trabajado con una biblioteca externa: ¡es más sencillo de lo que parece!

La experiencia de usuario es una parte fundamental del proceso de diseño. Aprovecha siempre la oportunidad de ir un paso más allá para hacer que una interacción sea más emocionante y fácil de usar.

Inspirados por Gradients.io de Luke Davies, vamos a llevar su brillante trabajo un poco más lejos para mejorar la experiencia de usuario. Usaremos clipboard.js para construir nuestra colección CMS de degradados en Webflow.

Aquí tienes una demostración de lo que vamos a construir

Paso 1: Crea tu colección CMS

Abre el diseñador y haz clic en la pestaña CMS del menú de la izquierda. Haz clic en Crear nueva colección.

Ponle a la colección el nombre "Gradients" y establece la URL de la colección como "Gradient".

Haz clic en Añadir nuevo campo y selecciona Texto plano entre las opciones de tipo de campo.

Llámalo "First Hex Code". Configura el campo como obligatorio marcando la opción Este campo es obligatorio. Repite el proceso y llama a tu nuevo campo "Second Hex Code".

Ya hemos terminado aquí, haz clic en Crear colección en la parte superior derecha.

Ahora vamos a añadir nuestros elementos CMS. En la parte superior derecha, haz clic en el botón Nuevo degradado.

A continuación, tienes una lista de los detalles que he usado para cada elemento CMS:

  • Ultramarine #00A8C5 #FFFF7E
  • Ocean-Blue #2E3192 #1BFFFF
  • Sanguine #D4145A #FBB03B
  • Luscious-Lime #009245 #FCEE21
  • Purple-Lake #662D8C #ED1E79
  • Fresh-Papaya #ED1C24 #FCEE21

Una vez que hayas introducido cada elemento CMS en la colección, ve al panel de pestañas de la izquierda en el diseñador y haz clic en la pestaña Añadir elemento(s). Coloca una sección en el lienzo, asígnale la clase "Hero Section" y utiliza los siguientes ajustes:

  • Display: Flex, Vertical, Justify:Center, Align:Center
  • Altura mínima: 100vh
  • Color de fondo: #f1f1f1

A continuación, coloca un contenedor en el lienzo; no hace falta que le pongas nombre a la clase. Añade una lista de colección CMS y vincúlala a la colección de degradados (Gradients Collection). Para ello, selecciónala en el menú desplegable del panel de configuración de la lista de colección. Elige 3 columnas en la sección de diseño del mismo panel.

Selecciona uno de los elementos de la colección, asígnale la clase "Collection Item" y añade un margen superior e inferior de 10px (el izquierdo y el derecho tienen 10px por defecto).

Paso 2: Añadir contenido e incrustaciones HTML

Selecciona la pestaña de elementos a la izquierda, baja hasta el final y coloca un widget de incrustación HTML (HTML Embed) en uno de los elementos de la colección. Cuando se abra el cuadro de diálogo HTML, copia y pega este fragmento de CSS:

<style>

. {

   background: ; /* Para navegadores que no admiten degradados */

   background: -webkit-linear-gradient(bottom right, , ); /* Para Safari 5.1 a 6.0 */

   background: -o-linear-gradient (bottom right, , ); /* Para Opera 11.1 a 12.0 */

   background: -moz-linear-gradient(bottom right, , ); /* Para Firefox 3.6 a 15 */

   background: linear-gradient(bottom right, , ); /* Sintaxis estándar */

}

</style>

Ahora añadiremos nuestro contenido dinámico al fragmento de CSS. El código final debería quedar exactamente así:

Haz clic en el botón Guardar y cerrar (Save & Close). Con la incrustación HTML seleccionada en el panel del navegador, abre el panel de elementos y coloca un div debajo. Asígnale la clase "background-gradient" y añade los siguientes ajustes:

  • Relleno inferior: 10px
  • Altura mínima: 200px

Ahora añade otro HTML Embed al div background-gradient. Cuando se abra el panel HTML, añade el siguiente fragmento:

<div class="background-gradient "></div>

En el espacio junto a la última comilla, añade el campo dinámico "Name". Asegúrate de que haya un espacio entre background-gradient y el campo dinámico.

Al pulsar Save & Close, verás cómo los degradados dinámicos rellenan los divs creados anteriormente. A continuación, añade un div al contenedor del elemento de colección y asígnale la clase "Flex Row" con los siguientes ajustes:

  • Display: Flex, Horizontal, Justify:Center, Align:Center

Añade un div a la fila flexible recién creada, asígnale la clase "Tooltip Wrapper" y establece el display en Position: Relative.

Coloca un bloque de texto en el div tooltip wrapper, asígnale la clase "hex-code" y utiliza los siguientes ajustes:

  • Margen izquierdo y derecho: 10px
  • Tamaño de fuente: 18px
  • Color de fondo: Transparente (esto es necesario, ya que vamos a añadir HTML Embeds y algunos estilos predeterminados añaden un color de fondo un poco más adelante).

Ahora coloca otro widget HTML Embed junto al bloque de texto. Copia y pega el siguiente fragmento de marcado en el modal de HTML Embed.

<button id="btn" class="btn hex-code" data-clipboard-text=""></button>

Haz clic en Guardar y cerrar.

Ya puedes eliminar el bloque de texto del código hexadecimal de la colección; solo lo necesitábamos para darle estilo al texto del HTML Embed.

Coloca un nuevo bloque de texto debajo del HTML Embed del código hexadecimal y asígnale la clase "Tooltip" con los siguientes ajustes:

  • Relleno (todos los lados): 5px
  • Posición: Absoluta, Superior, -150%
  • Tamaño de fuente: 12px
  • Alineación del texto: Centrado
  • Color de fondo: #f1f1f1
  • Radio del borde: 3px

Ajustes de sombra de caja:

  • Color: rgba(0, 0, 0, 0.48)
  • Distancia: 1px
  • Desenfoque: 3px

Cambia el texto a "Haz clic para copiar" y tendrás una etiqueta emergente con este aspecto:

Dejaremos las etiquetas emergentes aquí por ahora, pero volveremos más tarde para añadir interacciones heredadas.

Diseña interacciones y animaciones sin escribir código

Crea interacciones y animaciones complejas sin tener que tocar ni una línea de código.

→
↗
►
↓
←
↑
Leer ahora

Ahora, volviendo a los divs del contenedor de la etiqueta emergente, vamos a duplicar el contenedor. Para ello, haz clic derecho y selecciona Duplicar en el menú desplegable; deberías tener dos uno al lado del otro. Haz doble clic en el nuevo código HTML incrustado y ajusta los campos dinámicos haciendo clic y eligiendo el segundo código hexadecimal. Haz clic en Guardar y cerrar.

Ahora verás ambos códigos hexadecimales mostrados en cada elemento de la colección, respectivamente.

Por motivos estéticos, he añadido un icono de flecha SVG de Flaticon entre los dos códigos hexadecimales. Simplemente descarga el icono, ponlo en el panel de recursos y colócalo entre dos de los divs del contenedor de la etiqueta emergente. Ajusta el ancho de la imagen a 15px. No hace falta añadir un nombre de clase.

Paso 3: Añadir la biblioteca JS externa

Para que esto funcione, vamos a apuntar a la biblioteca de Javascript alojada externamente. Para ello, navega a la configuración de tu proyecto haciendo clic en el menú de hamburguesa en la esquina superior izquierda del diseñador.

Desde aquí, ve a la pestaña de código personalizado y coloca el siguiente fragmento en la sección de código del pie de página:

<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script>

<script>

 new Clipboard('.btn');

</script>

Si publicas el sitio ahora, ¡puedes probarlo!

Paso 4: Añadir una señal visual

En esta etapa, nuestro usuario se pregunta si lo que ha hecho ha funcionado; no hay respuesta hasta que pega el contenido. Y todos sabemos lo molesto que puede ser eso, ¡así que vamos a solucionarlo con una señal visual! Crearemos una interacción que muestre la etiqueta emergente al pasar el ratón y añadiremos una llamada a la acción de "Haz clic para copiar". También añadiremos un mensaje modal grande que confirme que han copiado el contenido al portapapeles.

¡Manos a la obra!

Toma un div, colócalo en el cuerpo de tu página y asígnale la clase "Visual Cue" con estos ajustes:

  • Visualización: Diseño flexible (Flex), Justificar: Centro, Alinear: Centro
  • Posición: Fija, Completa
  • Índice Z: 999
  • Color de fuente: #ffffff
  • Color de fondo: rgba(0, 0, 0, 0.78)
  • Cursor: Predeterminado

Añade un bloque de texto H1 al div de la señal visual y asígnale la clase “Copied Text” con los siguientes ajustes:

  • Margen (superior e inferior): 0px
  • Margen (izquierdo): 10px
  • Tamaño de fuente: 50px

A continuación, añadiremos un icono de copiar de Flaticon, lo descargaremos y lo colocaremos en el panel de recursos. Luego, ponlo en el lienzo junto al texto —de nuevo, no hace falta añadir una clase— y ajusta el ancho a 50px.

Ahora que tenemos el modal de señal visual en su sitio, vamos a ajustar un par de parámetros. Esto es para que no sea visible ni en el diseñador ni en el sitio final.

  • Visualización: Ninguna
  • Opacidad: 0%

Paso 5: Añadir interacciones

¡Ya estamos en la recta final! Solo nos falta añadir las interacciones.

Abre la pestaña de interacciones y haz clic en el interruptor de interacciones heredadas. Debemos usarlas porque las interacciones 2.0 no funcionan actualmente con el contenido del CMS.

Selecciona un contenedor de información (tooltip) en el lienzo, haz clic en el icono de más en el panel de interacciones y llama a tu nueva interacción “Tooltip On Load”. Haz clic en el icono de más en el panel “Initial Appearance” y añade estos ajustes:

  • Transformar: Mover hacia abajo 20px
  • Opacidad: 0%

Ahora selecciona uno de los contenedores de información, añade una nueva interacción y llámala “Hex Code Trigger”.

Haz clic en el icono de más en el panel de activadores y elige Hover (pasar el ratón). Marca la casilla Afectar a elementos diferentes, busca la clase “Tooltip” y selecciónala en el menú desplegable. Marca la casilla Limitar a elementos anidados.

Cambia la opacidad al 100% y deja los 200ms predeterminados de duración. Haz clic en el icono de más en el panel Hover Over, deja todos los ajustes como están y simplemente cierra el menú desplegable.

Ve a la sección Hover Out, haz clic en el icono de más y aplica los siguientes ajustes:

  • Mover hacia abajo: 20px
  • Opacidad: 0%

Vamos a añadir la última interacción para la ventana emergente con el mensaje copiado. Mantén seleccionado el Tooltip Wrapper y vuelve al panel de interacciones heredadas. Añade otra interacción haciendo clic en el icono de más y selecciona Clic.

Marca la casilla Afectar a diferentes elementos y busca la clase "Visual Cue". Selecciónala en la lista desplegable.

A continuación, haz clic en el icono de más junto al texto Primer clic. Selecciona el ajuste de visualización Flex y haz clic en + Nuevo paso.

En este paso, cambia la opacidad al 100% y deja los 200ms predeterminados. Haz clic en + Nuevo paso de nuevo.

Añade 500ms de tiempo de espera y otro paso.

Cambia la opacidad al 0%, dejando de nuevo el tiempo de animación predeterminado de 200ms. Añade un último paso nuevo.

Cambia el ajuste de visualización a ninguno.

Selecciona hecho... ¡Porque ya hemos terminado! Solo una última cosa: tenemos que añadir las interacciones heredadas al otro contenedor de información.

Simplemente selecciona el otro contenedor de información, abre el panel de interacciones heredadas y selecciona la interacción Hex Code Trigger.

Ahora ya está. ¡Publica y disfruta!


Última actualización
January 25, 2018
Categoría

Artículos relacionados

Cómo crear formularios de búsqueda interactivos con Webflow
Cómo crear formularios de búsqueda interactivos con Webflow

Cómo crear formularios de búsqueda interactivos con Webflow

Cómo crear formularios de búsqueda interactivos con Webflow

Desarrollo
Por
Aaron Grieve
,
,
Leer artículo
Cómo crear una ventana emergente en Webflow
Cómo crear una ventana emergente en Webflow

Cómo crear una ventana emergente en Webflow

Cómo crear una ventana emergente en Webflow

Diseño
Por
Aaron Grieve
,
,
Leer artículo
Cómo crear y diseñar una barra de progreso con Webflow
Cómo crear y diseñar una barra de progreso con Webflow

Cómo crear y diseñar una barra de progreso con Webflow

Cómo crear y diseñar una barra de progreso con Webflow

Desarrollo
Por
Aaron Grieve
,
,
Leer artículo
Cómo crear transiciones de página en Webflow
Cómo crear transiciones de página en Webflow

Cómo crear transiciones de página en Webflow

Cómo crear transiciones de página en Webflow

Desarrollo
Por
Aaron Grieve
,
,
Leer artículo
Creación de desplazamiento horizontal
Creación de desplazamiento horizontal

Creación de desplazamiento horizontal

Creación de desplazamiento horizontal

Diseño
Por
Aaron Grieve
,
,
Leer artículo
Te presentamos el nuevo panel de estilos
Te presentamos el nuevo panel de estilos

Te presentamos el nuevo panel de estilos

Te presentamos el nuevo panel de estilos

Dentro de Webflow
Por
Linda Pham
,
,
Leer artículo

verifone logomonday.com logospotify logoted logogreenhouse logoclear logocheckout.com logoreddit logothe new york times logoideo logoupwork logodiscord logo
verifone logomonday.com logospotify logoted logogreenhouse logoclear logocheckout.com logoreddit logothe new york times logoideo logoupwork logodiscord logo

Empieza gratis

Prueba Webflow todo el tiempo que quieras con nuestro plan Starter gratuito. Compra un plan de sitio de pago para publicar, alojar y desbloquear funciones adicionales.

Empieza, es gratis
Ver demostración

Prueba Webflow todo el tiempo que quieras con nuestro plan Starter gratuito. Compra un plan de sitio de pago para publicar, alojar y desbloquear funciones adicionales.