Accelerated Mobile Pages
Páginas Móviles Aceleradas
Usuarios felices
Desarrolladores
Editores
Plataformas
Búsqueda en Google
Sitio Original
Sitio AMP
El HTML de toda la vida pero con algunas restricciones y añadiendo algunas vitaminas
No cambia la sintaxis, sino que añade nuevas funciones al formato que ya conocemos.
Una biblioteca JS para la garantizar la rapidez del sitio web
Convierte en asíncrono todo lo que viene de forma externa
Una forma en que se guardan las páginas AMP, se almacenan en caché y se mejora el rendimiento
Todos los archivos JS e imágenes se cargan inmediatamente desde un mismo origen con HTTP 2.0
AMP ⚡️
Código de toda la vida
Velocidad
UX / UI
Publicidad
<!doctype html>
<html amp lang="es">
<head>
<meta charset="utf-8">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<title>Hola, AMP</title>
<link rel="canonical" href="http://example.ampproject.org/article-metadata.html" />
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
</script>
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
</head>
<body>
<h1>Bienvenido a la web móvil</h1>
</body>
</html>
<!-- <html amp > -->
<html ⚡️ lang="es">
<html lang="es>
<script async src="https://cdn.ampproject.org/v0.js"></script>
<style amp-boilerplate> ... </style>
<style amp-custom>
/* Tus estilos */
body {
background-color: red;
}
h1 {
font-size: 20px;
}
</style>
<h1 style="color: red;">Título</h1>
Todos los estilos deben definirse en la etiqueta <style amp-custom>
No podemos poner estilos en las etiquetas que definamos en nuestro HTML
body {
background-color: red !important;
}
El uso de !important en nuestros estilos podría afectar a los estilos que tiene por default AMP
<link rel=”stylesheet”>
Importar archivos CSS a nuestro sitio web esta prohibido a excepción de las fuentes personalizadas.
* {
color: red;
}
Tiene problemas de rendimiento y podría afectar a otros selectores con sus estilos
:not(p) {
color: blue;
}
Al igual que con el selector universal, podría afectar a otros selectores con sus estilos
a:hover {
color: orange;
}
Solo están permitidos en elementos que no comiencen con amp (Ej. amp-image)
.amp-mi-clase {
font-weight: 700;
}
Dicha palabra esta reservada para el uso de AMP (Ej. -amp- & i-amp). Esto se hace para que no haya conflictos entre tu sitio web y AMP
.filtro {
filter: grayscale(20%);
}
Están en la lista negra de AMP por problemas de rendimiento
<img src='img.jpg' height='500' width='500'></img>
<amp-img src='img.jpg' height='500' width='500'></amp-img>
HTML
AMP
<amp-img src="img.jpg" width="527" height="193" layout="responsive">
</amp-img>
AMP (Responsive)
<amp-anim width='400' height='300' src='imagen.gif'></amp-anim>
AMP
<script async custom-element='amp-anim'
src='cdn'></script>
Nota: Necesitamos de un script más en el proyecto para poder usar dicho recurso.
<amp-video width='720' height='480' src='video.mp4'
poster='imagen.jpg'></amp-video>
AMP
<video width='720' height='480' src='video.mp4'></video>
HTML
<amp-audio width='500' height='500' src='audio.mp3'>
<source type='audio/mpeg' src='audio.mp3'>
<source type='audio/ogg' src='audio.ogg'>
</amp-audio>
AMP
<script async custom-element='amp-audio'
src='cdn'></script>
Nota: Necesitamos de un script más en el proyecto para poder usar dicho recurso.
Los atributos placeholder y fallback nos van a ayudar a que el usuario siempre tenga algo que ver, ya sea problemas de conexión o de compatibilidad
Placeholder actúa como un preview de su elemento padre. Este tiene que ser siempre el hijo de alguien
<amp-anim>
<amp-img placeholder>
Placeholder se muestra por defecto, una vez que carga su elemento padre, este desaparece
<amp-anim src='gif.gif' width='466' height='355'>
<amp-img placeholder src='preview.png'></amp-img>
</amp-anim>
Fallback se utiliza para indicarle al usuario cuando su navegador no soporta alguna característica en particular
<amp-video>
<div fallback></div>
<amp-video width='720' height='480' src='video.mp4'>
<div fallback>
<p>Tu navegador no soporta el elemento video de HTML5.</p>
</div>
</amp-video>
Incorporados
Extendidos
Experimentales
Componentes que están por defecto como amp-img o amp-video
Componentes de la biblioteca pero que deben ser añadidos de manera explicita, como amp-anim o amp-audio
Componentes que son liberados, pero que aún no están listos para su uso
amp-accordion
Un acordeón proporciona una manera para que los usuarios tengan un contenido diferente y dinámico
amp-lightbox
Permite una especie de popup para que el usuario interactúe
amp-facebook
Permite incrustar post o videos de Facebook en nuestro sitio AMP
amp-twitter
Permite incrustar Tweets en nuestro sitio AMP
amp-instagram
Permite incrustar fotos o videos de instagram en nuestro sitio AMP
amp-youtube
Permite incrustar videos de Youtube en nuestro sitio AMP
Una serie de bloques que al juntarse son capaces de formar grandes estructuras
<link rel="amphtml" href="https://www.pagina.com/amp.html">
<link rel="canonical" href="https://www.pagina.com/documento-completo.html">
<link rel="amphtml" href="https://www.pagina.com/amp.html">
https://validator.ampproject.org/
Este plugin dolo añade páginas AMP a las entradas de un blog y no te permite personalizar mucho
Te permite más configuraciones funcionando previamente con el plugin anterior
Puedes hacer cambios tanto de estructura como de diseño
Mi sitio web tarda mucho en cargar
¿Yo te dije que no usaras AMP ?
filisantillan.com/agenda