Fundamentos de JavaScript: Sintaxis y estructura

Fundamentos de JavaScript: Sintaxis y estructura

 

Fundamentos de JavaScript: Sintaxis y estructura. Como con cualquier otro lenguaje, los lenguajes de programación se definen por conjuntos de reglas. Las reglas (o sintaxis) son las que seguimos cuando escribimos nuestro código, que forman la estructura lógica de nuestros programas.

Este artículo marca el comienzo de una serie que voy a escribir sobre el aprendizaje de los fundamentos de JavaScript. Asegúrate de seguirme si quieres seguir la pista!

Vamos a sumergirnos en los bloques de construcción de JavaScript. Estaremos buscando valores (literales y variables), camel casing, unicode, semicolores, sangría, espaciado blanco, comentarios, sensibilidad a las mayúsculas y minúsculas, palabras clave, operadores y expresiones! 😅

Al tomarnos el tiempo para aprender los fundamentos, estaremos en camino hacia la construcción de un código más funcional y legible!

Comencemos con los fundamentos de JavaScript: Sintaxis y estructura.

Valores de JavaScript

En JavaScript hay dos tipos de valores: Valores fijos (o literales) y Valores variables (variables).

Literales

Los literales se definen como valores que están escritos en nuestro código, como números, cadenas, booleanos (verdadero o falso), así como objetos y matrices (no se preocupe demasiado por ellos todavía). Algunos ejemplos incluyen:

10          // A number (can be a decimal eg. 10.5)
'Boat'      // A string (can be in double "" or single '' quotes)
true        // A boolean (true or false)
['a', 'b']                           // An array
{color: 'blue', shape: 'Circle'}     // An object

Nota: Estaré mirando los tipos de datos en detalle en mi próximo artículo, ¡manténte en sintonía!

Variables

Las variables se denominan valores que almacenan datos. En JavaScript declaramos nuestras variables con las palabras clave var, let o const, y asignamos valores con el signo igual =.

Por ejemplo, la clave se define como una variable. Al que se le asigna el valor abc123:

let key;
key = abc123;

¿Cuándo usar var? No lo hagas. En realidad, sólo debería utilizarse cuando se trabaja con código heredado. Es la antigua sintaxis pre-ES6.

¿Cuándo usar let? Utilízalo si tu variable necesita ser actualizada dentro del programa (puede ser reasignada).

¿Cuándo usar const? Úsalo si tu variable tiene un valor constante. Debe asignarse en el momento de la declaración y no puede reasignarse.

Camel Case

¿Qué pasa si nuestro nombre de variable consiste en más de una palabra? Por ejemplo, ¿cómo declararíamos una variable que deseamos llamar «first name»?

¿Podríamos usar guiones? Ejemplo first-name, No, están reservados para las sustracciones en JavaScript.

¿Qué hay de los subrayados? Ejemplo first-name, Podríamos, pero tiene una tendencia a hacer que nuestro código parezca desordenado y confuso.

¿La solución? Camel Case!Ejemplo firstName. La primera palabra es minúscula, la primera letra de cualquier palabra subsiguiente es mayúscula. Esta es la convención dentro de la comunidad.

Nota: Sin embargo, es bastante aceptable nombrar tus variables const en mayúsculas con guiones bajos, por ejemplo, const DEFAULT_PLAYBACK_SPEED = 1; esto dejaría claro a los demás que el valor es fijo. De lo contrario, sólo tienes que seguir con camelCase!

Unicode

JavaScript utiliza el juego de caracteres unicode. Unicode cubre casi todos los caracteres, puntuaciones y símbolos que hay! Comprueba la referencia completa. Esto es genial, ya que podemos escribir nuestros nombres en cualquier idioma, e incluso podríamos usar emojis como nombres de variables (¿por qué no? 🤷🏻).

Semicolores

Los programas JavaScript se componen de una serie de instrucciones conocidas como sentencias. Como por ejemplo:

// These are all examples of JavaScript statements:
let a = 1000;
a = b + c;
const time = Date.now();

Las sentencias JavaScript a menudo terminan en punto y coma.

Sin embargo, los puntos y coma no siempre son obligatorios. JavaScript no tiene ningún problema si no los utiliza.

// Still perfectly valid!
let a = 1000
a = b + c
const time = Date.now()

Sin embargo, hay algunas situaciones en las que son obligatorias. Por ejemplo, cuando usamos un bucle para un bucle, así:

for (i = 0; i < .length; i++) { 
  // code to execute
}

Sin embargo, cuando se utiliza una expresión en bloque, no se deben incluir los puntos y comas después de los refuerzos rizados, por ejemplo:

if (name == "Samantha") {
  // code
}                           // <- no ';'
//o,
function people(name) {
  // code
}                           // <- no ';'

Sin embargo, si estamos usando un objeto, como:

const person = {
  firstName: "Samantha",
  lastName: "Doe",
  age: 30,
  eyeColor: "blue"
};                          // el ';' es obligatorio

Entonces se requieren nuestros ;’s

Con el tiempo comenzarás a memorizar dónde pueden y dónde no pueden usarse los puntos y coma. Hasta entonces, es aconsejable usarlas al final de todas las frases (¡con la excepción de las frases en bloque!).

Además, es una convención común utilizarlos de todas formas, se considera una buena práctica, ya que reduce la probabilidad de errores.

Nota: Una vez que realmente empieces a usar JavaScript, empieza a usar un linter como ESLint. Automáticamente encontrará errores de sintaxis en tu código y te hará la vida mucho más fácil!

Hendiduras

En teoría podríamos escribir todo un programa JavaScript en una sola línea. Sin embargo, esto sería casi imposible de leer y mantener. Es por eso que usamos líneas y sangrados. Usemos una sentencia condicional como ejemplo:

if (loginSuccessful === 1) {
  // code to run if true
} else {
  // code to run if false
}

Aquí podemos ver que cualquier código dentro de un bloque está sangrado. En este caso es nuestro código de comentario // código para ejecutar si es verdadero y luego // código para ejecutar si es falso. Puede elegir entre sangrar las líneas con unos pocos espacios (2 o 4 son comunes) o con una pestaña. Es totalmente su elección, lo principal es ser consistente!

Si estamos anidando nuestro código, lo sangraríamos así:

if (loginAttempts < 5){
  if (loginAttempts < 3){
    alert("< 3");
  } else {
    alert("between 3 and 5");
  }
} else {
  if (loginAttempts > 10){
    alert("> 10");
  } else {
    alert("between 5 and 10");
  }
}

Aplicando la sangría tendrás un código mucho más limpio, más fácil de mantener y más fácil de leer!

Espacio en blanco

JavaScript sólo requiere un espacio entre palabras clave, nombres e identificadores, de lo contrario cualquier espacio en blanco es completamente ignorado. Esto significa que en lo que se refiere a la lengua, no hay diferencia entre las siguientes afirmaciones:

const visitedCities="Melbourne, "+"Montreal, "+"Marrakech";
const visitedCities = "Melbourne, " + "Montreal, " + "Marrakech";

Estoy seguro de que encontrarás la segunda línea mucho más legible. Y otro ejemplo:

let x=1*y;       
let x = 1 * y;

Una vez más, la segunda línea es mucho más fácil de leer y depurar! Así que siéntete libre de espaciar tu código de una manera que tenga sentido! Por esta razón, también es un uso aceptable del espacio en blanco:

const cityName         = "Melbourne";
const cityPopulation   = 5000001;
const cityAirport      = "MEL";

Comentando

Un comentario es un código no ejecutable. Son útiles para proporcionar una explicación de algún código dentro de un programa. Y también para ‘comentar’ una sección de código para prevenir la ejecución – a menudo usada cuando se prueba una pieza de código alternativa.

Hay dos tipos de comentarios en JavaScript:

// Comment goes here
/* Comment goes here */

La primera sintaxis es un comentario de una sola línea. El comentario va a la derecha del //

El segundo es un comentario de varias líneas. El comentario va entre los asteriscos /* aquí *//

Un comentario multilínea más largo:

/* This is 
a comment spanning
multiple lines */

Identificadores

En JavaScript, el nombre de una variable, función o propiedad se conoce como identificador. Los identificadores pueden consistir en letras, números, $ y _. No se permiten otros símbolos y no pueden comenzar con un número.

// Valid :)
Name
name
NAME
_name
Name1
$name
// Invalid :(
1name
n@me
name!

Sensibilidad a las mayúsculas y minúsculas

JavaScript distingue entre mayúsculas y minúsculas! Un identificador llamado test es diferente de Test.

El siguiente paso arrojará un error:

function test() {
  alert("This is a test!");
}
function showAlert() {
  Test();                     // error! test(); is correct
}

Para asegurarnos de que nuestro código es legible, lo mejor es intentar variar nuestros nombres, para que no se encuentren identificadores demasiado similares.

Palabras reservadas

Hay un número de palabras dentro de JavaScript que no pueden ser usadas como identificadores. Esas palabras están reservadas por el idioma, ya que tienen funcionalidad incorporada. Como por ejemplo:

break, do, instanceof, typeof, case, else, new, var, catch, finally, return, void, continue, for, switch, while, debugger, function, this, with, default, if, throw, delete, in, try, class, enum, extends, super, const, export, import.

No necesitas memorizar estas palabras! Si obtienes algún error sintáctico extraño que apunte a una variable, puedes comprobar la lista y cambiar el nombre.

Operadores JavaScript

Los operadores aritméticos + - * y/  se utilizan principalmente cuando se realizan cálculos dentro de JavaScript, como por ejemplo:

(2 + 2) * 100

El operador de asignación = se utiliza para asignar valores a nuestras variables:

let a, b, c;
a = 1;
b = 2;
c = 3;

Expresiones JavaScript

Una expresión es cuando combinamos valores, variables y operadores para calcular un nuevo valor (conocido como evaluación). Como por ejemplo:

10 * 10    // Evalúa a 100
let x = 5
x * 10     // Evalúa a 50
const firstName = "Javi";
const lastName = "Niguez";
firstName + " " + lastName;    //Evalúa a: Javi Niguez

Conclusión sobre fundamentos de JavaScript: Sintaxis y estructura

Y ahí vamos! El objetivo de este artículo (Fundamentos de JavaScript: Sintaxis y estructura) es proporcionar una visión general de la sintaxis y estructura básicas de JavaScript. Hemos analizado muchas de las convenciones comunes, sin embargo, recuerda que puede ser algo flexible, especialmente cuando se trabaja en entornos de colaboración con sus propios estándares particulares.

La sintaxis y la estructuración juegan un papel importante tanto en la funcionalidad de nuestros programas como en la legibilidad y mantenibilidad del código.

Espero que este artículo le haya sido útil! Nos vemos en el próximo artículo y recuerda dejar cualquier pregunta en los comentarios de abajo. Estaré encantado de ayudar!

Cómo crear un entorno de desarrollo localhost

entorno de desarrollo local

 

Cómo crear un entorno de desarrollo localhost. Aprende a construir sitios web en tu propio ordenador sin tener que acceder al sitio en vivo.

Un entorno de desarrollo local te permite utilizar tu propia máquina para ejecutar tu sitio web, en lugar de utilizar una proporcionada por una empresa de alojamiento web. Puedes personalizar la configuración sin preocuparse de que afecte a tu sitio en directo, así como realizar y probar el desarrollo del sitio antes de cargarlo. Eliminar el riesgo al construir algo hace que el proceso de desarrollo sea mucho menos estresante.

Otra ventaja de trabajar localmente es que no es necesario estar conectado a Internet. Si tienes un wifi lento, te gusta trabajar en el jardín o estás de viaje, no hay necesidad de buscar una señal wifi todo el tiempo.

El tiempo que se pasa en FTP preparando una pagina web y esperando a que el sitio se actualice realmente se acumula a lo largo de un día de desarrollo. Un entorno local te permitirá centrarte en el código y en las partes divertidas de la construcción de sitios web.

Este tutorial asume que estás en un Mac, y el tutorial para empezar con Valet se enfoca en esto. Para una alternativa de PC, pruebe Homestead.

Un conocimiento básico de Terminal es bueno, aunque debería ser capaz de seguirlo, ya que los comandos son bastante simples. Se trata principalmente de conseguir que se instalen y se pongan en marcha los componentes necesarios.

Comenzar entorno de desarrollo localhost

Después de completar este tutorial, habrás configurado PHP, Homebrew y Composer en tu máquina, instalado Valet y aprendido a configurar sitios locales en entorno de desarrollo localhost.

01. Instalar Homebrew

El primer paso aquí es instalar Homebrew. Escriba el siguiente comando en su Terminal.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

02. Instalar PHP

02. Instalar PHP

A continuación necesitamos instalar/actualizar a PHP7, así que comprueba usando php -v. Si necesitas instalar, puede escribir:

brew install homebrew/php/php70

Si reinicias tu ventana Terminal y escribes php -v de nuevo, debería mostrar v7 instalado.

03. Instalar Composer

Necesitarás descargar Composer, y luego ponerlo en un directorio que sea parte de su PATH.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

04. Muévete a tu PATH (Ruta de acceso)

Ahora mueve Composer a un directorio dentro de tu ruta. Una vez hecho esto, puedes comprobar tu acceso a él escribiendo composer-v.

mv composer.phar /usr/local/bin/composer

05. Comprueba tu PATH (ruta de acceso)

Si escribes echo $PATH, verás lo que contiene. Si no lo hace, escribe lo siguiente para agregarlo.

export PATH=$PATH:~/.composer/vendor/bin

06. Requiere Valet globalmente

Ahora que tenemos las piezas instaladas, podemos continuar con la instalación de Valet. Primero, vamos a verificar que nada esté usando el puerto 80. Escribe lo siguiente, y si no devuelve nada, estamos listos para empezar.

netstat -an | grep "\.80" | grep LISTEN

07. Instalación de Valet

Usamos Composer para instalar el paquete Valet por nosotros, y luego podemos ejecutar la instalación de valet.

Composerglobal require laravel/valet
valet install

08. Directorios Park/unpark

Crea un directorio para tus sitios de desarrollo y díle a Valet que los sirva. Ten en cuenta que las carpetas dentro de este pueden ser accedidas como subdominios.

# move to your projects directory
cd ~/projects/valet/
valet park

09. Olvídate de los directorios

De la misma manera que para estacionar, si ya no deseas que una carpeta sirva a través de Valet, simplemente usa el comando olvidar desde dentro del directorio.

with spaces //
valet forget

10. Enlace/desenlace de directorios

También puedes enlazar a directorios. Esto te permite elegir el nombre que utiliza.

cd ~/projects/valet/subproject/
# link the subproject directory to make it accessible at HYPERLINK "http://subproject.dev" \hhttp://subproject.dev
valet link subproject

11. Comparte tu sitio con el mundo

Puedes compartir tu url de desarrollo local con el mundo exterior. En el directorio de tu proyecto, escriba valet share y se creará una URL que podrás utilizar.

12. Uso de una base de datos

Necesitarás instalar la base de datos de tu elección – para WordPress, podemos seguir adelante e instalar MySQL.

brew install mysql

13. Elija una herramienta de base de datos

Con una base de datos configurada, una herramienta para importar y exportar datos es útil, ya que no tenemos phpMyAdmin o similar con Valet.

14. Descargar Sequel Pro

Descargar Sequel Pro

Estamos utilizando Sequel Pro, ya que ofrece una interfaz sencilla. Puedes descargarlo aquí.

15. Conectar la base de datos

Utilizando la configuración predeterminada de MySQL, agrega los siguientes detalles y prueba tu conexión.

Host: 127.0.0.1
Username: root
Password: (leave blank)

16. Configurar un sitio de WordPress

16. Configurar un sitio de WordPress

Con todo en su lugar, configura un sitio de WordPress. Cree una nueva carpeta dentro de su directorio de Valet e instale WordPress Core.

17. Añadir una base de datos

17. Añadir una base de datos en entorno de desarrollo localhost

En Sequel Pro, crea una nueva base de datos con el mismo nombre que la carpeta que creó. Actualiza el archivo wp-config para adaptarlo.

18. Prueba que todo funciona

Pruebe que todo funciona en el entorno de desarrollo localhost

Ahora, si abres tu navegador y navegas a (tu-carpeta).test deberías ver la pantalla de instalación de WordPress. Sigue a partir de aquí como de costumbre.

19. Llegar más lejos

Valet no es sólo para ejecutar instalaciones de WordPress, sino que fue creado originalmente para el desarrollo de Laravel. Ya sea que estés construyendo algo a medida en PHP o usando un framework, puedes crear fácilmente un nuevo sitio creando un nuevo directorio para él en tu carpeta raíz.

Texto con degradado de color en CSS

Texto con degradado en CSS

Como crear un texto con degradado de color en CSS.

Los desarrolladores web conocen la lucha que todos hemos tenido para mejorar las fuentes en la web. Ya se trate del tiempo de carga, de estrategias extrañas para usar fuentes personalizadas, o simplemente de encontrar la fuente correcta, embellecer el texto en una pagina web nunca ha sido fácil.

Eso me hizo pensar en fuentes y degradados CSS, ya que los degradados también tenían una difícil introducción a la web. Veamos cómo podemos usar fuentes degradadas con sólo CSS!

Para mostrar un degradado para una fuente dada, en lugar de un color sólido, necesitará usar algunas propiedades prefijadas de la vieja escuela -webkit-:

.texto-degradado {
  /* standard gradient background */
  background: linear-gradient(red, blue);

  /* clip informático */
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

Aquí te dejo como se vería el código anterior:

ejemplo de texto con degradado en CSS

Esta mezcla de CSS específico de -webkit- y fondo de degradado general se descubrió hace diez años, pero sigue siendo la mejor manera de conseguir un fondo de CSS puro, incluso con fuentes personalizadas. Ten en cuenta que a pesar del prefijo -webkit, Firefox sigue renderizando correctamente la fuente de degradado. También ten en cuenta que la eliminación del prefijo rompe el renderizado correcto.

Con todo lo complicado que pueden llegar a ser las fuentes, es increíble que tengamos un hack CSS bastante simple para lograr texto con degradado de color en CSS. Es una pena que evitar el prefijo -webkit rompa la funcionalidad, pero como siempre digo ¡bienvenido al mundo de CSS!

Si te ha servido este artículo no dudes en dejar un comentario para hacérmelo saber, o si tienes cualquier problema o duda de como implementarlo estaré encantado de poder ayudarte.

Y recuerda, permanece atento a mi blog ya que cada semana traigo mas trucos relacionados sobre diseño web, códigos de programación, tutoriales, cursos e ideas para que mejores tus proyectos, hasta el próximo artículo compañeros 🙂

Y si quieres aprender más sobre diseño, mi canal de Youtube

Si te apasiona el mundo del diseño en general como los degradados en texto, tienes que suscribirte a mi canal en Youtube, verás contenidos tan chulos como este jeje 😉




¿Qué es JavaScript? esto te va a interesar

que es javascript

 

JavaScript («JS» para abreviar) es un lenguaje de programación dinámico que, cuando se aplica a un documento HTML, puede proporcionar interactividad dinámica en páginas web. Fue inventado por Brendan Eich, cofundador del proyecto Mozilla.

JavaScript es increíblemente versátil. Puedes empezar poco a poco, con carruseles, galerías de imágenes, diseños fluctuantes y respuestas a los clics de los botones. Con más experiencia, podrás crear juegos, gráficos animados en 2D y 3D, aplicaciones completas basadas en bases de datos y mucho más.

JS en sí mismo es bastante compacto pero muy flexible. Los desarrolladores han escrito una gran variedad de herramientas sobre el núcleo del lenguaje JavaScript, desbloqueando una gran cantidad de funciones adicionales con el mínimo esfuerzo.

Algunas de las funciones de Javascript

  • Interfaces de Programación de Aplicaciones de Navegadores (APIs) – APIs integradas en los navegadores web, que proporcionan funcionalidades como la creación dinámica de HTML y la configuración de estilos CSS, la recopilación y manipulación de una secuencia de vídeo desde la cámara web del usuario, o la generación de gráficos 3D y muestras de audio.
  • APIs de terceros – Permiten a los desarrolladores incorporar funcionalidad en sus sitios de otros proveedores de contenido, como Twitter o Facebook.
  • Marcos y bibliotecas de terceros – Puede aplicarlos a su HTML para permitirle crear rápidamente sitios y aplicaciones.

Una oportunidad para tu vida laboral

Debido a que este artículo sólo se supone que es una introducción ligera a JavaScript, no voy a confundirte en esta etapa hablando en detalle sobre cuál es la diferencia entre el núcleo del lenguaje JavaScript y las diferentes herramientas listadas anteriormente. Puedes aprender todo eso en detalle más adelante, en esta sección de aprendizaje de JavaScript.

Poco a poco te iré explicando como funciona Javascript, publicaré un artículo desde el nivel más básico a más avanzado, y recuerda, si tienes cualquier duda deja tu comentario.

Por cierto, aqui te dejo una interesante infografía de la mano de mis amigos de intechractive, espero que te guste;)

infografía javascript

Crea un formulario de contacto en HTML

Crea un formulario de contacto en html

 

El primer artículo de nuestra serie de html le ofrece tu primera experiencia en la creación de un formulario de contacto en HTML, incluyendo el diseño de un formulario simple, su implementación utilizando los elementos HTML adecuados, la adición de un estilo muy simple a través de CSS, y cómo se envían los datos a un servidor.

¿Qué son los formularios HTML?

Los formularios HTML son uno de los principales puntos de interacción entre un usuario y un sitio web o aplicación. Permiten a los usuarios enviar datos al sitio web. La mayoría de las veces los datos se envían al servidor web, pero la página web también puede interceptarlos para utilizarlos por sí sola.

Un formulario HTML está formado por uno o más widgets. Estos widgets pueden ser campos de texto (de una o varias líneas), casillas de selección, botones, casillas de selección o botones de selección. La mayoría de las veces, estos widgets están emparejados con una etiqueta que describe su propósito – las etiquetas correctamente implementadas son capaces de instruir claramente tanto a los usuarios con visión como a los más ciegos sobre lo que deben introducir en un formulario de entrada de datos.

Diseño de tu formulario

Antes de empezar a codificar, siempre es mejor dar un paso atrás y tomarse el tiempo para pensar en su forma. Diseñar una maqueta rápida te ayudará a definir el conjunto correcto de datos que deseas preguntarle a tu usuario. Desde el punto de vista de la experiencia del usuario (UX), es importante recordar que cuanto mayor sea tu formulario, mayor será el riesgo de perder usuarios. Manténlo sencillo y concéntrate: pide sólo los datos que necesites. El diseño de formularios es un paso importante cuando se está construyendo un sitio o una aplicación.

formulario de contacto

No te voy hacer esperar más, aquí tienes el código HTML y CSS del formulario de contacto para que lo puedas implementar en tu página web de forma sencilla:

See the Pen
JgdaGy
by Javi Niguez (@javiniguez)
on CodePen.

Curso gratis en mi canal de html y CSS

Si te ha gustado este artículo y quieres aprender más sobre html y CSS, te recomiendo que veas mi curso totalmente gratis en Youtube, y de paso, suscríbete que no cuesta nada! jeje 😉




Crea un efecto de burbujas con CSS como 7UP

efecto de burbujas en css

 

La animación del efecto de burbujas con CSS que aparece en 7UP es un bello ejemplo de cómo llevar un imagen de marca hasta el diseño del sitio web. La animación consiste en unos pocos elementos: el SVG ‘dibujo’ de las burbujas y luego dos animaciones aplicadas a cada burbuja.

Puedes ver el efecto aquí.

La primera animación cambia la opacidad de la burbuja y la mueve verticalmente en la caja de visualización; la segunda crea el efecto de bamboleo para añadir realismo. Las compensaciones se manejan apuntando a cada burbuja y aplicando una duración de animación y un retardo diferentes.

Para crear nuestras burbujas usaremos SVG. En nuestro SVG creamos dos capas de burbujas: una para las burbujas más grandes y otra para las más pequeñas. Dentro del SVG colocamos todas nuestras burbujas en la parte inferior de la caja de visualización.

<g class="bubbles-large" stroke-width="7">
  <g transform="translate(10 940)">
  <circle cx="35" cy="35" r="35"/>
  </g>
  ...
</g>
<g class="bubbles-small" stroke-width="4">
  <g transform="translate(147 984)">
  <circle cx="15" cy="15" r="15"/>
  </g>
</g>
  ...
</g>

Para aplicar dos animaciones separadas a nuestros SVGs, ambas utilizando la propiedad de transformación, necesitamos aplicar las animaciones a elementos separados. El elemento <g> en SVG puede ser usado como un div en HTML; necesitamos envolver cada una de nuestras burbujas (que ya están en un grupo) en una etiqueta de grupo.

<g>
  <g transform="translate(10 940)">
  <circle cx="35" cy="35" r="35"/>
  </g>
</g>

CSS tiene un potente motor de animación y un código realmente simple para producir animaciones complejas. Empezaremos moviendo las burbujas hacia arriba de la pantalla y cambiando su opacidad para que se desvanezcan al principio y al final de la animación.

@keyframes up {
  0% {
  opacity: 0;
  }
  10%, 90% {
  opacity: 1;
  }
  100% {
  opacity: 0;
  transform: translateY(-1024px);
  }
}

Para crear un efecto de bamboleo, basta con mover la burbuja hacia la izquierda y hacia la derecha, en la cantidad justa – demasiado hará que la animación se vea demasiado aturdida y desconectada, mientras que muy poco pasará desapercibido en la mayoría de los casos. La experimentación es clave cuando se trabaja con animación.

@keyframes wobble {
  33% {
  transform: translateX(-50px);
  }
  66% {
  transform: translateX(50px);
  } }

Para aplicar la animación a nuestras burbujas, usaremos los grupos que usamos anteriormente y la ayuda de nth-of-type para identificar cada grupo de burbujas individualmente. Comenzamos aplicando un valor de opacidad a las burbujas y a la propiedad de cambio de voluntad para utilizar la aceleración de hardware.

.bubbles-large > g {
  opacity: 0;
will-change: transform, opacity;}
.bubbles-large g:nth-of-type(1) {...}
...
.bubbles-small g:nth-of-type(10) {...}

Queremos mantener todos los tiempos de animación y los retardos dentro de un par de segundos el uno del otro y ajustarlos para que se repitan infinitamente. Por último, aplicamos la función de tiempo de entrada y salida a nuestra animación de bamboleo para que parezca un poco más natural.

.bubbles-large g:nth-of-type(1) {
  animation: up 6.5s infinite; }
.bubbles-large g:nth-of-type(1) circle {
  animation: wobble 3s infinite ease-in-out; }
...
bubbles-small g:nth-of-type(9) circle {
  animation: wobble 3s 275ms infinite ease-in-out; }
.bubbles-small g:nth-of-type(10) {
animation: up 6s 900ms infinite;}

Con esto ya tendrás la animación del efecto de busbujas con CSS como 7UP lista para tu página web. Como siempre, si te ha gustado este artículo, siempre puedes compartirlo o dejar tu comentario 🙂

Cómo crear un efecto parallax con CSS

Cómo crear un efecto parallax con CSS

Crea impacto en tu página de inicio con un efecto parallax con CSS.

El efecto parallax, el concepto de mover capas a diferentes velocidades, se ha utilizado durante años en la animación. El sitio web oficial de Bear Grylls (uno de nuestros sitios favoritos de efecto parallax ), toma el efecto en nuevas e interesantes direcciones. Las montañas de fondo se reducen a su posición, mientras que se desvanecen para que se vuelvan completamente opacas, y en el fondo de la página, el texto ‘aventura’ se eleva en su lugar detrás de las montañas a medida que se desvanece.

Puedes ver  en acción el efecto desde www.beargrylls.com . En este artículo, te voy a explicar cómo recrear el efecto en tu propia pagina web. Comienza por descargar los archivos del tutorial .

01. Crea el efecto de escalado.

La estructura para permitir que todo el contenido animado funcione es relativamente simple. Una envoltura contiene todo, y oculta cualquier contenido de desbordamiento. Luego hay esencialmente tres capas de etiquetas div en la parte superior.

<div class="wrapper">
	<div class="pos text"></div>
	<div class="pos mountain1"></div>
	<div class="pos mountain2"></div>
</div>

02. Inicia el CSS

Para hacer el diseño, la imagen de degradado de fondo se agregará al cuerpo (body) y se configurará para llenar el tamaño de la pantalla. La envoltura contiene todas las capas y el desbordamiento de contenido se oculta para que se puedan aplicar los efectos de escala.

body {
		margin: 0;
		padding: 0;
		height: 100%;
		background: url(img/bg.jpg) 
		center center;
		background-size: cover;
	}
	.wrapper {
		width: 100vw;
		height: 100vh;
		position: relative;
		overflow: hidden;
	}

03. Posiciona cada capa.

El siguiente código asegura que cada capa esté posicionada absolutamente, una sobre la otra, dentro de la envoltura. El tamaño de esto llena el ancho y el alto de la ventana gráfica de modo que las imágenes llenen la pantalla.

.pos {
		position: absolute;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
	}

04. Añadir el texto.

La clase de texto realmente solo agrega la imagen correcta y establece su posición de inicio antes de animarla en su lugar utilizando los fotogramas clave MoveUp que se agregarán en el paso final.

.text {
		background: url(img/text.png) 
		center center;
		background-size: cover;
		transform: translate3d(0, 30px, 0);
		opacity: 0;
		animation: moveUp 1.8s ease-out;
		animation-fill-mode: forwards;
	}

05. Animar la primera montaña.

La primera montaña es la que está más alejada de la pantalla, y esto tendrá una pequeña escala que será animada. La opacidad de todas las capas también se establece baja para que aparezcan en su lugar.

.mountain1 {
		background: url(img/mountain1.png) 
		center center;
		background-size: cover;
		transform: scale3d(1.1, 1.1, 1.1);
		opacity: 0.2;
		animation: scaler 1s ease-out;
		animation-fill-mode: forwards;
	}

06. Animar la montaña de primer plano.

La montaña para el primer plano es casi idéntica a la otra montaña, simplemente hace mucho más de una escala en su lugar. Ambas montañas comparten los fotogramas clave del escalador para su animación.

.mountain2 {
		background: url(img/mountain2.png) 
		center center;
		background-size: cover;
		transform: scale3d(1.3, 1.3, 1.3);
		opacity: 0.1;
		animation: scaler 1.2s ease-out;
		animation-fill-mode: forwards;
	}

07. Añadir animación de fotogramas clave

Ahora se crean los fotogramas clave que especifican eso. en el estado final del movimiento, este estado final se mantendrá en su lugar. El texto se mueve hacia arriba y las montañas se reducen para adaptarse al diseño.

@keyframes moveUp {
		100% {
			transform: translate3d(0, 0, 0);
			opacity: 1;
		}
	}

@keyframes scaler {
		100% {
			transform: scale3d(1, 1, 1);
			opacity: 1;
		}
}

Espero que te haya gustado este pequeño tutorial sobre el efecto parallax con CSS, sigue mi blog y todas las semanas traeré nuevos tutoriales sobre CSS.

Bibliotecas y herramientas de animación CSS

Herramientas online css

 

Crear animaciones CSS de aspecto profesional puede ser difícil y lleva mucho tiempo, pero afortunadamente, existen excelentes herramientas de animación CSS para ayudar a impulsar tu proceso creativo. Esta colección de recursos incluye todas las mejores bibliotecas de animación CSS.

Elige uno que se adapte a tu proyecto y comienza de inmediato, o utilízalo como punto de partida para crear algo personalizado para tu marca. También hay algunas hojas de estilo y atajos útiles para complementar tu aprendizaje.

01. animista

animista biblioteca de animación css

Animista es un parque de animación CSS

Animista es un tipo de área de juegos donde puedes editar y jugar con una colección de animaciones CSS pre-hechas. Luego copia el código de lo que desees, para usar en tus proyectos. Animista comenzó su vida como un proyecto paralelo para la desarrolladora front end Ana Travas, quien aún lo está desarrollando.

02. CSS3 Animation Cheat Sheet

CSS3 Animation Cheat Sheet

Explora esta colección de animaciones CSS3 preestablecidas, plug-and-play

Este útil proyecto ofrece un conjunto de animaciones preestablecidas, plug-and-play para que las uses en tus proyectos web. Hay instrucciones claras para ayudarte a comenzar, pero básicamente, solo tienes que añadir la hoja de estilo a tu sitio web y aplicar las clases de CSS pre-hechas a los elementos que desea animar. Esta hoja de trucos utiliza los fotogramas clave de CSS3, lo que significa que no debes preocuparte por colocar el elemento para dejar espacio para las animaciones.

03. animate.css

biblioteca animate.css

Esta biblioteca incluye 77 animaciones CSS esenciales.

Esta biblioteca reúne nada menos que 77 animaciones, todas creadas en CSS y listas para usar. Simplemente haz referencia al archivo CSS y cuando añadas clases a un elemento, la animación sucederá. Esto funciona mejor al agregar o eliminar clases usando JavaScript.

La biblioteca tiene un tamaño de archivo impresionantemente pequeño cuando está comprimido con gzip, pero si no quieres cargar todo en tu pagina web, el proyecto también es una gran fuente de inspiración. Compilada por Dan Eden, esta biblioteca incluye casi todas las animaciones CSS que puedas necesitar, desde lo básico (rebote, atenuación) hasta algo más emocionante (Jack in the Box, Jello). Usa el menú desplegable en la página de inicio para ver el título de la biblioteca animada en cada uno de los diferentes estilos.

04. Hover.css

biblioteca Hover css

Hover.css se centra en animaciones de interacción de botones

Similar a Animate.css, Hover.css es una colección de efectos CSS que puedes usar en tus proyectos. Esta biblioteca fue creada específicamente para animaciones de interacción de botones. La biblioteca se puede descargar en vainilla CSS, Sass o Less, por lo que encajarán en casi cualquier proyecto. La biblioteca tiene casi todas las animaciones que puedas necesitar para la interacción.

05. CSShake

biblioteca CSShake

CSShake se centra en agitar animaciones.

CSShake es una biblioteca de animaciones CSS dedicada a hacer temblar elementos. La biblioteca tiene una serie de clases que puedes agregar a los elementos para aplicar una de las muchas animaciones diferentes. Las animaciones usan fotogramas clave y utilizan la propiedad de transformación para crear animaciones que a veces parecen locas, pero definitivamente difíciles de ignorar.

06. Obnoxious.css

biblioteca Obnoxious css

¿Quieres saber cómo no hacer animación CSS?

Obnoxious.css fue creado por Tim Holman y es exactamente como su nombre indica. La biblioteca explora lo que es posible con la animación CSS, pero ilustra perfectamente lo que no debes hacer con las animaciones CSS. Si bien se presenta como una biblioteca de animación lista para el producto (y lo es), se pretende que sea irónica. Prepárate.

Espero que te haya gustado este artículo sobre herramientas de animación CSS, si no te es molestia, compártelo y ayuda a que se difunda este mensaje.

 

Botones sociales en CSS3 con efecto hover

Botones sociales en CSS3

Botones sociales con efecto hover

Hoy os traigo un interesante efecto en CSS3 para que podáis incluir en vuestra página web unos botones sociales con efecto hover de una apariencia muy profesional.

A continuación os dejo el código para implementarlo en vuestras páginas web. Como veis tendréis que copiar y pegar los códigos en sus respectivos archivos. Html en el lugar de vuestra web donde queráis que se muestre, el css en vuestra hoja de estilo (ejemplo stule.css) y en javascript para que genere el efecto desarrollado en el ejemplo.

See the Pen
SocialHover buttons
by Mohamed Abo ElGhranek (@midoghranek)
on CodePen.

Este efecto lo ha diseñado Mohamed Abo ElGhranek. Sin duda este diseñador ha conseguido un efecto que seguramente le gustarán a muchos diseñadores que lo incorporarán a su página web.

Si tenéis alguna duda o problema para implementar este código en CSS3, deja un comentario y estaré encantado de ayudarte a solucionarlo.

Introducción a las propiedades personalizadas de CSS

 

Al escribir CSS válido y usar propiedades personalizadas, puede proteger su código en el futuro; Aquí tienes una introducción a las propiedades de CSS.

Una de las mejores características de los procesadores CSS son las variables. Tener la capacidad de declarar una vez y reutilizar la variable en su proyecto no debe ser opcional en ningún sistema.

5 características de CSS y cómo usarlas

Usar un preprocesador como Sass (obtener más información en nuestro artículo sobre ¿qué es Sass? ) Le brinda al menos un paso de compilación adicional, que puede ser una molestia si solo quiere construir algo rápido. CSS ha recorrido un largo camino desde los días oscuros de los trucos de tablas, así que echemos un vistazo a uno de los aspectos más útiles: las propiedades personalizadas.

Comenzaremos con un ejemplo simple.

:root {
–color-red: #fc4752;
}

.site-navigation {
background-color: var(–color-red);
}

.site-footer {
color: var(–color-red);
}

El pseudo-selector root

El pseudo-selector root se dirige al elemento padre de nivel más alto en el DOM, dando acceso a todos los elementos a –color-red . Sí, la definición de las variables CSS debería comenzar con – , y puede acceder a ellas desde cualquier lugar con var () . Bueno, en cualquier lugar que esté en cascada bajo nuestro : selector de raíz .

Con var () también puede definir un valor de reserva, que se utilizará si la variable dada es inalcanzable o no existe

.site-navigation {
background-color: var(–color-red, red);
}
Los valores se heredan del DOM, lo que significa que puede hacerlos más específicos.

:root {
–color: red;
}

.site-navigation {
–color: green;

background-color: var(–color);
}

.site-footer {
color: var(–color);
}

Cada var (- color) es rojo, excepto cada var (- color) en la navegación del sitio . En términos generales, no es una práctica ideal sobrescribir un valor que ya está definido, pero hay casos en que un valor de alcance sigue siendo la solución más adecuada.

Elementos básicos

Estos son los elementos básicos, pero puedes hacer mucho más. Un ejemplo útil para el diseño web sensible es el cambio de diseño según el tamaño de la ventana gráfica.

:root {
–color-red: #fc4752;
–flex-layout: row;
}

@media (max-width: 640px) {
:root {
–flex-layout: column;
}
}

.site-navigation {
display: flex;
flex-direction: var(–flex-layout, row);

background-color: var(–color-red, red);
}

.site-footer {
color: var(–color-red);
}

Bajo 640px, la consulta de medios se activa, cambiando la dirección de flexión a columna en la clase de navegación del sitio, haciendo que su contenido sea vertical (columna) en lugar de la horizontal predeterminada (fila). En este ejemplo, debido a la variable predeterminada dada a la navegación del sitio, ni siquiera necesita la definición inicial : raíz de –flex-layout; en lugar de eso irá directamente a la fila.

Bajo 640px, la consulta de medios se activa, cambiando la dirección de flexión a la columna y haciendo que el contenido sea vertical en lugar de horizontal

Esto es genial, pero no es todo diversión y juegos todavía. Por ejemplo, dado que la consulta de medios no es un elemento, el valor del punto de interrupción no puede provenir de una propiedad personalizada. Si bien el Grupo de Trabajo CSS tiene un borrador del uso de env () para consultas, la implementación del proveedor y el soporte adecuado probablemente estén a muchos años de donde están las cosas hoy en día.

Casos más avanzados de uso

Esta bien. Nos apegaremos a lo que tenemos ahora. Un caso de uso más avanzado para una propiedad personalizada es el cambio de temas. Puede definir un tema base, construir su sitio web a su alrededor y simplemente cambiarlo, con el navegador haciendo el trabajo pesado. Y ni siquiera es tan pesado.

Esencialmente, piense que está en la línea del Modo Nocturno de Twitter, pero sin que usted realmente cambie el CSS (lo veo).

El valor seleccionado del color de entrada reemplaza el valor de color –color del documento , realizando el cambio sin problemas. Puedes jugar con modos de mezcla, colores de canal alfa o pngs: infinitas posibilidades y diversión.

Puedes construir tu sitio web alrededor de un tema base y simplemente cambiarlo, con el navegador haciendo el trabajo pesado

Ahora con su CSS preparado para el futuro, que no depende de ningún desarrollador externo y utiliza solo propiedades personalizadas, es muy probable que esté cubierto y listo para comenzar la producción.

Modulos CSS

Pero, ¿qué pasa si quieres algo más que variables en tu código, digamos módulos CSS? A partir de hoy, para las características de CSS existentes como módulos o anidamiento, no podría prescindir del paso de compilación adicional por más tiempo, pero puede implementarlo con la dulce promesa de no tener que volver a escribir el código cuando los proveedores alcancen la especificación.

En lugar de refactorizar su CSS cada vez que quiera mejorar su salida, debe escribir su código en una especificación alineada de esa manera en primer lugar. Esta es la principal diferencia entre preprocesadores y postprocesadores. Un preprocesador en realidad escribe el CSS por usted (básicamente, desde un archivo de texto), mientras que un postprocesador alinea su CSS ya válido para obtener más soporte para el navegador, este último le brinda más flexibilidad en el proceso.

El uso del método nativo siempre es mejor que la solución, y tener el conocimiento práctico de las tecnologías futuras es la mejor posición en la que puede estar al aprender CSS.

Háblame ;)
¿Necesitas ayuda?
Hola! estás interesado en mis servicios? hablemos por WhatsApp ;)