{"id":1413,"date":"2024-08-01T19:48:56","date_gmt":"2024-08-01T17:48:56","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=1413"},"modified":"2024-08-01T19:48:56","modified_gmt":"2024-08-01T17:48:56","slug":"12-animaciones-css","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/css3\/css3-avanzado\/12-animaciones-css\/","title":{"rendered":"12. Animaciones CSS"},"content":{"rendered":"\n<p><strong>CSS<\/strong> permite animaciones <strong>HTML<\/strong> sin usar <strong>Javascript<\/strong> o <strong>Flash<\/strong>. En este cap\u00edtulo veremos como hacerlo utilizando las siguientes propiedades:<\/p>\n\n\n\n<!--more-->\n\n\n\n<ul class=\"wp-block-list\">\n<li>@keyframes<\/li>\n\n\n\n<li>animation-name<\/li>\n\n\n\n<li>animation-duration<\/li>\n\n\n\n<li>animation-delay<\/li>\n\n\n\n<li>animation-iteration-count<\/li>\n\n\n\n<li>animation-direction<\/li>\n\n\n\n<li>animation-timing-function<\/li>\n\n\n\n<li>animation-fill-mode<\/li>\n\n\n\n<li>animation<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Que son las animaciones CSS<\/h2>\n\n\n\n<p>Una animaci\u00f3n permite que un elemento cambie gradualmente de un estilo a otro. Puedes cambiar tantas propiedades CSS como desees, tantas veces como desees. Para usar la animaci\u00f3n CSS, primero debes especificar algunos <strong>fotogramas clave<\/strong> para la animaci\u00f3n. Los <strong>fotogramas clave<\/strong> contienen los estilos que tendr\u00e1 el elemento en determinados momentos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La regla @keyframes<\/h2>\n\n\n\n<p>Cuando especificas estilos CSS dentro de la regla <strong><em>@keyframes<\/em><\/strong>, la animaci\u00f3n cambiar\u00e1 gradualmente del estilo actual al nuevo estilo en ciertos momentos. Para que una animaci\u00f3n funcione, debe vincular la animaci\u00f3n a un elemento. El siguiente ejemplo vincula la animaci\u00f3n \u00ab<em>example<\/em>\u00bb al elemento <strong><em>&lt;div&gt;<\/em><\/strong>. La animaci\u00f3n durar\u00e1 4 segundos y cambiar\u00e1 gradualmente el color de fondo del elemento <strong><em>&lt;div&gt;<\/em><\/strong> de \u00abrojo\u00bb a \u00abamarillo\u00bb.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;!DOCTYPE html><br>&lt;html lang=\"es\"><br>  &lt;head><br>    &lt;style><br>      div {<br>        width: 100px;<br>        height: 100px;<br>        background-color: red;<br>        animation-name: example;<br>        animation-duration: 4s;<br>      }<br><br>      @keyframes example {<br>        from {<br>          background-color: red;<br>        }<br>        to {<br>          background-color: yellow;<br>        }<br>      }<br>    &lt;\/style><br>  &lt;\/head><br>  &lt;body><br>    &lt;h1>Animaciones CSS&lt;\/h1><br>    &lt;div>&lt;\/div><br>    &lt;p><br>      &lt;b>Observaci\u00f3n: &lt;\/b>cuando una animaci\u00f3n termina vuelve a su estado<br>      original<br>    &lt;\/p><br>  &lt;\/body><br>&lt;\/html><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Nota<\/strong>: La propiedad <strong><em>animation-duration<\/em><\/strong> define cu\u00e1nto tiempo debe tardar en completarse una animaci\u00f3n. Si no se especificas la propiedad <strong><em>animation-duration<\/em><\/strong>, no se producir\u00e1 ninguna animaci\u00f3n porque el valor predeterminado es 0s (0 segundos).<\/p>\n<\/blockquote>\n\n\n\n<p>En el ejemplo anterior, hemos especificado cu\u00e1ndo cambiar\u00e1 el estilo usando las palabras clave <strong><em>from<\/em><\/strong>&nbsp;y <strong><em>to<\/em><\/strong> (que representa 0 % (inicio) y 100 % (completado)).<\/p>\n\n\n\n<p>Tambi\u00e9n es posible utilizar porcentaje. Al usar el porcentaje, puedes agregar tantos cambios de estilo como desees. El siguiente ejemplo cambiar\u00e1 el color de fondo del elemento <strong><em>&lt;div&gt;<\/em><\/strong> cuando la animaci\u00f3n est\u00e9 completa en un 25 %, en un 50 % y nuevamente cuando la animaci\u00f3n est\u00e9 completa en un 100 %.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/* El c\u00f3digo de animaci\u00f3n *\/\n@keyframes example&nbsp;{\n&nbsp;&nbsp;0%&nbsp;&nbsp;&nbsp;{background-color:&nbsp;red;}\n&nbsp; 25%&nbsp;&nbsp;{background-color:&nbsp;yellow;}\n&nbsp;&nbsp;50%&nbsp;&nbsp;{background-color:&nbsp;blue;}\n&nbsp;&nbsp;100%&nbsp;{background-color:&nbsp;green;}\n}\n\n\/* El elemento al que se le aplica la animaci\u00f3n *\/\ndiv&nbsp;{\n&nbsp; width:&nbsp;100px;\n&nbsp; height:&nbsp;100px;\n&nbsp;&nbsp;background-color:&nbsp;red;\n&nbsp;&nbsp;animation-name:&nbsp;example;\n&nbsp;&nbsp;animation-duration:&nbsp;4s;\n}<\/pre>\n\n\n\n<p>El siguiente ejemplo cambiar\u00e1 tanto el color de fondo como la posici\u00f3n del elemento <strong><em>&lt;div&gt;<\/em><\/strong> cuando la animaci\u00f3n est\u00e9 completa en un 25 %, en un 50 % y nuevamente cuando la animaci\u00f3n est\u00e9 completa en un 100 %.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/* El c\u00f3digo de animaci\u00f3n *\/\n@keyframes example&nbsp;{\n&nbsp;&nbsp;0%&nbsp;&nbsp;&nbsp;{background-color:red;&nbsp;left:0px;&nbsp;top:0px;}\n&nbsp; 25%&nbsp;&nbsp;{background-color:yellow;&nbsp;left:200px;&nbsp;top:0px;}\n&nbsp; 50%&nbsp;&nbsp;{background-color:blue;&nbsp;left:200px;&nbsp;top:200px;}\n&nbsp; 75%&nbsp;&nbsp;{background-color:green;&nbsp;left:0px;&nbsp;top:200px;}\n&nbsp; 100%&nbsp;{background-color:red;&nbsp;left:0px;&nbsp;top:0px;}\n}\n\n\/* El elemento al que se le aplica la animaci\u00f3n *\/\ndiv&nbsp;{\n&nbsp; width:&nbsp;100px;\n&nbsp; height:&nbsp;100px;\n&nbsp; position:&nbsp;relative;\n&nbsp;&nbsp;background-color:&nbsp;red;\n&nbsp;&nbsp;animation-name:&nbsp;example;\n&nbsp;&nbsp;animation-duration:&nbsp;4s;\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Retrasar una animaci\u00f3n<\/h2>\n\n\n\n<p>La propiedad <strong><em>animation-delay<\/em><\/strong> especifica un retraso para el inicio de una animaci\u00f3n. El siguiente ejemplo tiene un retraso de 2 segundos antes de iniciar la animaci\u00f3n.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">div&nbsp;{\n&nbsp; width:&nbsp;100px;\n&nbsp; height:&nbsp;100px;\n&nbsp; position:&nbsp;relative;\n&nbsp;&nbsp;background-color:&nbsp;red;\n&nbsp;&nbsp;animation-name:&nbsp;example;\n&nbsp; animation-duration:&nbsp;4s;\n&nbsp; animation-delay:&nbsp;2s;\n}<\/pre>\n\n\n\n<p>Tambi\u00e9n se permiten valores negativos. Si usas valores negativos, la animaci\u00f3n comenzar\u00e1 como si ya se hubiera estado reproduciendo durante N segundos. En el siguiente ejemplo, la animaci\u00f3n comenzar\u00e1 como si ya se hubiera estado reproduciendo durante 2 segundos.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">div&nbsp;{\n&nbsp; width:&nbsp;100px;\n&nbsp; height:&nbsp;100px;\n&nbsp; position:&nbsp;relative;\n&nbsp; background-color:&nbsp;red;\n&nbsp; animation-name:&nbsp;example;\n&nbsp; animation-duration:&nbsp;4s;\n&nbsp; animation-delay:&nbsp;-2s;\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Establecer cu\u00e1ntas veces debe ejecutarse una animaci\u00f3n<\/h2>\n\n\n\n<p>La propiedad <strong><em>animation-iteration-count<\/em><\/strong> especifica el n\u00famero de veces que se debe ejecutar una animaci\u00f3n. El siguiente ejemplo ejecutar\u00e1 la animaci\u00f3n 3 veces antes de que se detenga.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">div&nbsp;{\n&nbsp;&nbsp;width:&nbsp;100px;\n&nbsp;&nbsp;height:&nbsp;100px;\n&nbsp;&nbsp;position:&nbsp;relative;\n&nbsp;&nbsp;background-color:&nbsp;red;\n&nbsp;&nbsp;animation-name:&nbsp;example;\n&nbsp;&nbsp;animation-duration:&nbsp;4s;\n&nbsp;&nbsp;animation-iteration-count:&nbsp;3;\n}<\/pre>\n\n\n\n<p>El siguiente ejemplo usa el valor \u00abinfinito\u00bb para hacer que la animaci\u00f3n contin\u00fae para siempre.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">div&nbsp;{\n&nbsp; width:&nbsp;100px;\n&nbsp; height:&nbsp;100px;\n&nbsp; position:&nbsp;relative;\n&nbsp;&nbsp;background-color:&nbsp;red;\n&nbsp;&nbsp;animation-name:&nbsp;example;\n&nbsp;&nbsp;animation-duration:&nbsp;4s;\n&nbsp; animation-iteration-count:&nbsp;infinite;\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Ejecutar animaci\u00f3n en direcci\u00f3n inversa o ciclos alternativos<\/h2>\n\n\n\n<p>La propiedad <strong><em>animation-direction<\/em><\/strong> especifica si una animaci\u00f3n debe reproducirse hacia adelante, hacia atr\u00e1s o en ciclos alternos. Dicha propiedad puede tener los siguientes valores:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>normal<\/em><\/strong>: la animaci\u00f3n se reproduce normalmente (hacia adelante). este es el valor por defecto<\/li>\n\n\n\n<li><strong><em>reverse<\/em><\/strong>: La animaci\u00f3n se reproduce en direcci\u00f3n inversa (hacia atr\u00e1s)<\/li>\n\n\n\n<li><strong><em>alternate<\/em><\/strong>: La animaci\u00f3n se reproduce primero hacia delante y luego hacia atr\u00e1s.<\/li>\n\n\n\n<li><strong><em>alternate-reverse<\/em><\/strong>: La animaci\u00f3n se reproduce primero hacia atr\u00e1s y luego hacia adelante.<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">div&nbsp;{\n&nbsp; width:&nbsp;100px;\n&nbsp; height:&nbsp;100px;\n&nbsp; position:&nbsp;relative;\n&nbsp;&nbsp;background-color:&nbsp;red;\n&nbsp; animation-name:&nbsp;example;\n&nbsp; animation-duration:&nbsp;4s;\n&nbsp; animation-direction:&nbsp;reverse;\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Especificar la curva de velocidad de la animaci\u00f3n<\/h2>\n\n\n\n<p>La propiedad <strong><em>animation-timing-function<\/em><\/strong> especifica la curva de velocidad de la animaci\u00f3n. Dicha propiedad puede tener los siguientes valores:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ease:<\/li>\n\n\n\n<li>linear:<\/li>\n\n\n\n<li>ease-in:<\/li>\n\n\n\n<li>ease-out:<\/li>\n\n\n\n<li>ease-in-out:<\/li>\n\n\n\n<li>cubic-bezier(n,n,n,n):<\/li>\n<\/ul>\n\n\n\n<p>El siguiente ejemplo muestra algunas de las diferentes curvas de velocidad que se pueden utilizar.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#div1&nbsp;{animation-timing-function:&nbsp;linear;}\n#div2&nbsp;{animation-timing-function:&nbsp;ease;}\n#div3&nbsp;{animation-timing-function:&nbsp;ease-in;}\n#div4&nbsp;{animation-timing-function:&nbsp;ease-out;}\n#div5&nbsp;{animation-timing-function:&nbsp;ease-in-out;}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Especificar el modo de relleno (fill-mode) para una animaci\u00f3n<\/h2>\n\n\n\n<p>Las animaciones CSS no afectan a un elemento antes de que se reproduzca el primer fotograma clave o despu\u00e9s de que se reproduzca el \u00faltimo fotograma clave. La propiedad <strong><em>animation-fill-mode<\/em><\/strong> puede anular este comportamiento. La propiedad <strong><em>animation-fill-mode<\/em><\/strong> especifica un estilo para el elemento de destino cuando la animaci\u00f3n no se est\u00e1 reproduciendo (antes de que comience, despu\u00e9s de que finalice o ambos). Dicha propiedad puede tener los siguientes valores:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>none<\/em><\/strong>: valor por defecto. La animaci\u00f3n no aplicar\u00e1 ning\u00fan estilo al elemento antes o despu\u00e9s de que se ejecute<\/li>\n\n\n\n<li><strong><em>forwards<\/em><\/strong>: el elemento conservar\u00e1 los valores de estilo establecidos por el \u00faltimo fotograma clave (depende de la direcci\u00f3n de la animaci\u00f3n y el n\u00famero de iteraciones de la animaci\u00f3n)<\/li>\n\n\n\n<li><strong><em>backwards<\/em><\/strong>: el elemento obtendr\u00e1 los valores de estilo establecidos por el primer fotograma clave (depende de la direcci\u00f3n de la animaci\u00f3n) y los conservar\u00e1 durante el per\u00edodo de retraso de la animaci\u00f3n.<\/li>\n\n\n\n<li><strong><em>both<\/em><\/strong>: la animaci\u00f3n seguir\u00e1 las reglas tanto para avanzar como para retroceder, extendiendo las propiedades de la animaci\u00f3n en ambas direcciones.<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">div&nbsp;{\n&nbsp; width:&nbsp;100px;\n&nbsp; height:&nbsp;100px;\n&nbsp;&nbsp;background:&nbsp;red;\n&nbsp;&nbsp;position:&nbsp;relative;\n&nbsp;&nbsp;animation-name:&nbsp;example;\n&nbsp; animation-duration:&nbsp;3s;\n&nbsp; animation-fill-mode:&nbsp;forwards;\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Propiedad resumida<\/h2>\n\n\n\n<p>El siguiente ejemplo utiliza seis de las propiedades de animaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">div&nbsp;{\n&nbsp; animation-name:&nbsp;example;\n&nbsp; animation-duration:&nbsp;5s;\n&nbsp; animation-timing-function:&nbsp;linear;\n&nbsp; animation-delay:&nbsp;2s;\n&nbsp; animation-iteration-count:&nbsp;infinite;\n&nbsp; animation-direction:&nbsp;alternate;\n}<\/pre>\n\n\n\n<p>El mismo efecto de animaci\u00f3n que el anterior se puede lograr usando la propiedad de animaci\u00f3n abreviada:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">div&nbsp;{\n&nbsp; animation:&nbsp;example 5s linear 2s infinite alternate;\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Resumen<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Propiedad<\/th><th>Descripci\u00f3n<\/th><\/tr><tr><td><strong><em>@keyframes<\/em><\/strong><\/td><td>Especifica el c\u00f3digo de animaci\u00f3n.<\/td><\/tr><tr><td><strong><em>animation<\/em><\/strong><\/td><td>Una propiedad abreviada para establecer todas las propiedades de animaci\u00f3n.<\/td><\/tr><tr><td><strong><em>animation-delay<\/em><\/strong><\/td><td>Especifica un retraso para el inicio de una animaci\u00f3n.<\/td><\/tr><tr><td><strong><em>animation-direction<\/em><\/strong><\/td><td>Especifica si una animaci\u00f3n debe reproducirse hacia adelante, hacia atr\u00e1s o en ciclos alternos<\/td><\/tr><tr><td><strong><em>animation-duration<\/em><\/strong><\/td><td>Especifica cu\u00e1nto tiempo debe tomar una animaci\u00f3n para completar un ciclo<\/td><\/tr><tr><td><strong><em>animation-fill-mode<\/em><\/strong><\/td><td>Especifica un estilo para el elemento cuando la animaci\u00f3n no se est\u00e1 reproduciendo (antes de que comience, despu\u00e9s de que finalice o ambos)<\/td><\/tr><tr><td><strong><em>animation-iteration-count<\/em><\/strong><\/td><td>Especifica el n\u00famero de veces que se debe reproducir una animaci\u00f3n.<\/td><\/tr><tr><td><strong><em>animation-name<\/em><\/strong><\/td><td>Especifica el nombre de la animaci\u00f3n @keyframes<\/td><\/tr><tr><td><strong><em>animation-play-state<\/em><\/strong><\/td><td>Especifica si la animaci\u00f3n se est\u00e1 ejecutando o est\u00e1 en pausa.<\/td><\/tr><tr><td><strong><em>animation-timing-function<\/em><\/strong><\/td><td>Especifica la curva de velocidad de la animaci\u00f3n.<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>CSS permite animaciones HTML sin usar Javascript o Flash. En este cap\u00edtulo veremos como hacerlo utilizando las siguientes propiedades:<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1367,"menu_order":11,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1413","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"CSS permite animaciones HTML sin usar Javascript o Flash. En este cap\u00edtulo veremos como hacerlo utilizando las siguientes propiedades:","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1413"}],"version-history":[{"count":2,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1413\/revisions"}],"predecessor-version":[{"id":1415,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1413\/revisions\/1415"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1367"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}