{"id":28701,"date":"2024-07-17T12:37:08","date_gmt":"2024-07-17T10:37:08","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=28701"},"modified":"2024-09-03T12:09:41","modified_gmt":"2024-09-03T10:09:41","slug":"glassmorphism-con-css-un-nuovo-approccio","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/","title":{"rendered":"Glassmorphism con CSS: un nuovo approccio!"},"content":{"rendered":"\n<p>Il Glassmorphism \u00e8 una tendenza nel design che mira a replicare l&#8217;aspetto e le propriet\u00e0 del vetro negli elementi dell&#8217;interfaccia o di un contenuto. Questo stile si caratterizza per l&#8217;uso di <strong>trasparenza, sfocatura e effetti di luce<\/strong> per creare l&#8217;illusione di superfici vetrose.<\/p>\n\n\n\n<p><strong>Diciamoci la verit\u00e0: un vetro trasparente non \u00e8 la cosa pi\u00f9 pratica dove scrivere<\/strong>, e scrivere un tutorial evidenzia subito quanto non sia facile generalizzare un design perch\u00e9 sia adatto in tutti gli scenari e soprattutto a tutti gli utenti. Tuttavia, mettiamo da parte le best-practice e esploriamo diversi modi interessanti per ottenere un effetto vetro solo con CSS!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-un-approccio-diverso\">Un approccio diverso<\/h2>\n\n\n\n<p>Nella mia esperienza l&#8217;aspetto pi\u00f9 frustrante nell&#8217;implementare un design basato sul glassmorphism \u00e8 che le <a href=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/creiamo-una-ui-alla-fallout-usando-modern-css\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">possibilit\u00e0 date dal CSS sembrano infinite<\/a> e nei vari snippet che troviamo o che generano i nostri assistenti virtuali non si capisce la relazione tra propriet\u00e0 CSS e effetto realistico!<\/p>\n\n\n\n<p><strong>Ci sono mille ricette e tutte danno effetti fantastici: ma come si arriva a quegli effetti senza procedere a caso?<\/strong><\/p>\n\n\n\n<p>Per creare un effetto vetro convincente, dobbiamo chiederci: cosa rende un vetro tale? Cosa &#8220;vende l&#8217;effetto&#8221;?<\/p>\n\n\n\n<p>Pensiamo a questi elementi chiave:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Trasparenza: Il vetro permette di vedere attraverso, anche se non sempre in modo completamente chiaro.<\/li>\n\n\n\n<li>Blur: Gli oggetti dietro il vetro appaiono sfocati, non nitidi.<\/li>\n\n\n\n<li>Smussatura dei bordi: I bordi del vetro spesso hanno una leggera smussatura che riflette la luce in modo particolare.<\/li>\n\n\n\n<li>Spessore: Il vetro ha una certa profondit\u00e0, che si pu\u00f2 percepire osservando i suoi bordi.<\/li>\n<\/ol>\n\n\n\n<p>Il nostro approccio seguir\u00e0 quindi alcune regole d&#8217;oro:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Riflettiamo su quale propriet\u00e0 vogliamo dare al nostro elemento prima di lasciarci andare con numeri a caso nelle formule<\/li>\n\n\n\n<li>Procediamo per &#8220;baby step&#8221;<\/li>\n\n\n\n<li>Organizziamo le nostre classi per rappresentare chiaramente i materiali e la loro logica<\/li>\n<\/ol>\n\n\n\n<p>Pronti a creare la vostra collezione di materiali vetrosi?<\/p>\n\n\n\n<p>Iniziamo con uno scenario simpatico e versatile: una web app per mostrare il meteo e l&#8217;orario, magari da installare come PWA sul vostro vecchio tablet per trasformarlo in un simpatico regalo! <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-layout-base-una-app-con-orario-temperatura-e-meteo\">Layout base: una app con orario, temperatura e meteo<\/h2>\n\n\n\n<p>Iniziamo con un layout base per la nostra app meteo:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-meta\">&lt;!DOCTYPE <span class=\"hljs-meta-keyword\">html<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span> <span class=\"hljs-attr\">lang<\/span>=<span class=\"hljs-string\">\"en\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">charset<\/span>=<span class=\"hljs-string\">\"UTF-8\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">name<\/span>=<span class=\"hljs-string\">\"viewport\"<\/span> <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"width=device-width, initial-scale=1.0\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">title<\/span>&gt;<\/span>Glass Meteo and Clock<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">title<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span> <span class=\"hljs-attr\">rel<\/span>=<span class=\"hljs-string\">\"stylesheet\"<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"styles.css\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span> <span class=\"hljs-attr\">rel<\/span>=<span class=\"hljs-string\">\"manifest\"<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"manifest.json\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">name<\/span>=<span class=\"hljs-string\">\"theme-color\"<\/span> <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"#ffffff\"<\/span>&gt;<\/span>\n<\/span><\/span><mark class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span> <span class=\"hljs-attr\">rel<\/span>=<span class=\"hljs-string\">\"stylesheet\"<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"https:\/\/fonts.googleapis.com\/css2?family=Material+Symbols+Outlined&amp;display=block\"<\/span> \/&gt;<\/span>\n<\/span><\/mark><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span> <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"module\"<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"app.js\"<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">script<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">main<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"room\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"dashboard\"<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"glass meteo-info\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>              <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"time\"<\/span>&gt;<\/span>20:30<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>              <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"weather\"<\/span>&gt;<\/span>\n<\/span><\/span><mark class='shcb-loc'><span>                <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">span<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"material-symbols-outlined\"<\/span>&gt;<\/span>clear_day<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">span<\/span>&gt;<\/span>\n<\/span><\/mark><span class='shcb-loc'><span>              <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"meteo\"<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>              <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"temperature\"<\/span>&gt;<\/span>35.5<span class=\"hljs-symbol\">&amp;deg;<\/span>C<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"location\"<\/span>&gt;<\/span>Rome, Italy<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>            <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">main<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Nel nostro <code>index.html<\/code> stiamo caricando un CSS dal Google Fonts Icons &amp; Symbols<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"666\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/google-symbols-for-meteo-1024x666.png\" alt=\"Google Icons Symbols per le condizioni meteo\" class=\"wp-image-28702 size-full\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/google-symbols-for-meteo-1024x666.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/google-symbols-for-meteo-300x195.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/google-symbols-for-meteo-768x500.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/google-symbols-for-meteo.png 1456w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Nel nostro index.html stiamo caricando un CSS dal Google Fonts Icons &amp; Symbols che ci permetter\u00e0 di avere una icona per ogni condizione meteo!<\/p>\n\n\n\n<p>Se preferite potete anche usare delle emoji \ud83c\udf24\ufe0f\u2600\ufe0f\ud83c\udf27\ufe0f<\/p>\n<\/div><\/div>\n\n\n\n<p>Diamo un po&#8217; di struttura e per facilitare la nostra esplorazione con un po&#8217; di CSS che centra le informazioni meteo nella nostra schermata:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css shcb-wrap-lines\"><span class=\"hljs-selector-pseudo\">:root<\/span> {\n    <span class=\"hljs-attribute\">font-family<\/span>: system-ui, sans-serif;\n    <span class=\"hljs-attribute\">font-size<\/span>: <span class=\"hljs-built_in\">clamp<\/span>(<span class=\"hljs-number\">1rem<\/span>, <span class=\"hljs-number\">10vw<\/span>, <span class=\"hljs-number\">5rem<\/span>);\n}\n\n* {\n    <span class=\"hljs-attribute\">margin<\/span>: <span class=\"hljs-number\">0<\/span>;\n    <span class=\"hljs-attribute\">padding<\/span>: <span class=\"hljs-number\">0<\/span>;\n    <span class=\"hljs-attribute\">line-height<\/span>: <span class=\"hljs-number\">1<\/span>;\n}\n\n<span class=\"hljs-selector-tag\">main<\/span> {\n    <span class=\"hljs-attribute\">block-size<\/span>: <span class=\"hljs-number\">100vh<\/span>;\n    <span class=\"hljs-attribute\">margin<\/span>: <span class=\"hljs-number\">0<\/span>;\n    <span class=\"hljs-attribute\">display<\/span>: flex;\n    <span class=\"hljs-attribute\">justify-content<\/span>: center;\n    <span class=\"hljs-attribute\">align-items<\/span>: center;\n}\n\n<span class=\"hljs-selector-class\">.meteo-info<\/span> {\n    <span class=\"hljs-attribute\">display<\/span>: grid;\n    <span class=\"hljs-attribute\">grid-template-columns<\/span>: <span class=\"hljs-number\">1<\/span>fr <span class=\"hljs-number\">2<\/span>fr;\n    <span class=\"hljs-attribute\">grid-template-areas<\/span>: <span class=\"hljs-string\">\"time time\"<\/span> <span class=\"hljs-string\">\"weather meteo\"<\/span>;\n    <span class=\"hljs-attribute\">gap<\/span>: <span class=\"hljs-number\">1rem<\/span>;\n    <span class=\"hljs-attribute\">transition<\/span>: font-size <span class=\"hljs-number\">0.2s<\/span> <span class=\"hljs-built_in\">cubic-bezier<\/span>(<span class=\"hljs-number\">0.6<\/span>, -<span class=\"hljs-number\">0.28<\/span>, <span class=\"hljs-number\">0.74<\/span>, <span class=\"hljs-number\">0.05<\/span>), opacity <span class=\"hljs-number\">0.5s<\/span> linear;\n}\n\n<span class=\"hljs-selector-class\">.meteo-info<\/span>&gt;<span class=\"hljs-selector-tag\">div<\/span> {\n    <span class=\"hljs-attribute\">display<\/span>: flex;\n    <span class=\"hljs-attribute\">justify-content<\/span>: center;\n    <span class=\"hljs-attribute\">align-items<\/span>: center;\n}\n\n<span class=\"hljs-selector-id\">#time<\/span> {\n    <span class=\"hljs-attribute\">grid-area<\/span>: time;\n    <span class=\"hljs-attribute\">font-size<\/span>: <span class=\"hljs-number\">200%<\/span>;\n    <span class=\"hljs-attribute\">font-weight<\/span>: <span class=\"hljs-number\">900<\/span>;\n}\n\n<span class=\"hljs-selector-tag\">span<\/span><span class=\"hljs-selector-class\">.material-symbols-outlined<\/span> {\n    <span class=\"hljs-attribute\">font-size<\/span>: inherit;\n    <span class=\"hljs-attribute\">max-width<\/span>: <span class=\"hljs-number\">1ch<\/span>;\n}\n\n<span class=\"hljs-selector-id\">#weather<\/span> {\n    <span class=\"hljs-attribute\">grid-area<\/span>: weather;\n    <span class=\"hljs-attribute\">font-size<\/span>: <span class=\"hljs-number\">120%<\/span>;\n}\n\n<span class=\"hljs-selector-id\">#meteo<\/span> {\n    <span class=\"hljs-attribute\">grid-area<\/span>: meteo;\n    <span class=\"hljs-attribute\">display<\/span>: flex;\n    <span class=\"hljs-attribute\">flex-direction<\/span>: column;\n    <span class=\"hljs-attribute\">align-items<\/span>: flex-start;\n}\n\n<span class=\"hljs-selector-id\">#location<\/span> {\n    <span class=\"hljs-attribute\">font-size<\/span>: <span class=\"hljs-number\">50%<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_0-1024x801.png\" alt=\"Simulazione di Google Nest Hub con dentro orario e condizioni meteo\" class=\"wp-image-28703 size-full\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_0-1024x801.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_0-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_0-768x601.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_0-1536x1201.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_0-2048x1601.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Tra i device che possiamo simulare in Google Chrome c&#8217;\u00e8 anche un Nest Hub Max che \u00e8 perfetto per il nostro esercizio!<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-lo-sfondo-da-problema-a-punto-di-forza-del-nostro-design\">Lo sfondo: da problema a punto di forza del nostro design!<\/h2>\n\n\n\n<p>Come possiamo apprezzare il nostro effetto vetro senza qualcosa dietro?<\/p>\n\n\n\n<p>\u00c8 evidente che non tutte le foto sono adatte a fare da sfondo e sar\u00e0 necessario adattare il colore del testo perch\u00e9 sia visibile. Questo \u00e8 il punto debole del <em>glassmorphism<\/em> che ne limita l&#8217;uso a specifici scenari. Tuttavia questo tutorial vuole proprio abbattere il taboo che se una tecnica non \u00e8 universale allora non merita essere studiata!<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_1-1024x801.png\" alt=\"Simulazione di Google Nest Hub con dentro orario e condizioni meteo\" class=\"wp-image-28705 size-full\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_1-1024x801.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_1-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_1-768x601.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_1.png 1463w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Abbracciamo la specificit\u00e0 e scegliamo una bella foto in Public Domain (CC-Zero by Gray Wooden Sideboard)<\/p>\n<\/div><\/div>\n\n\n\n<p>Aggiungiamo quindi una classe <code>room<\/code> al nostro <code>main<\/code> e mettiamo un elegante bianco come colore per il nostro font (e simbolo), carichiamo il nostro sfondo e impostiamo la propriet\u00e0 <code>background-size<\/code> a <code>cover<\/code> per fare in modo che sia ben visibile su diversi display:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css shcb-code-table\"><span class='shcb-loc'><span><span class=\"hljs-selector-tag\">main<\/span><span class=\"hljs-selector-class\">.room<\/span> {\n<\/span><\/span><mark class='shcb-loc'><span>    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">url<\/span>(.\/backgrounds\/pexels-pixabay-<span class=\"hljs-number\">271816<\/span>.jpg);\n<\/span><\/mark><span class='shcb-loc'><span>    <span class=\"hljs-attribute\">background-size<\/span>: cover;\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attribute\">background-position<\/span>: center;\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attribute\">color<\/span>: white;\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-effetto-vetro-base\">Effetto Vetro Base<\/h2>\n\n\n\n<p>Se il nostro elemento di vetro fosse perfettamente liscio e trasparente la luce e quindi quello che c&#8217;\u00e8 dietro si vedrebbe senza interferenza ma cosa succede se il vetro \u00e8 poroso? Come possiamo renderlo con il CSS?<\/p>\n\n\n\n<p>La base dell&#8217;effetto vetro \u00e8 senza dubbio la propriet\u00e0 <code>backdrop-filter<\/code> che ci permette di usare diverse funzioni per alterare i pixel che &#8220;attraversano il nostro elemento&#8221;&#8230; proprio come i fotoni con il vetro! Quale migliore funzione se non il classico <code>blur<\/code> per sfocare lo sfondo?<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.glass<\/span> {\n    <span class=\"hljs-attribute\">background-color<\/span>: <span class=\"hljs-built_in\">rgba<\/span>(<span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">0.2<\/span>);\n    <span class=\"hljs-attribute\">backdrop-filter<\/span>: <span class=\"hljs-built_in\">blur<\/span>(<span class=\"hljs-number\">0.2rem<\/span>);\n    <span class=\"hljs-attribute\">border-radius<\/span>: <span class=\"hljs-number\">1rem<\/span>;\n    <span class=\"hljs-attribute\">padding<\/span>: <span class=\"hljs-number\">1rem<\/span>;\n    <span class=\"hljs-attribute\">color<\/span>: white;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>L&#8217;effetto blur \u00e8 normalmente espresso in px ma in questo esercizio sfrutteremo l&#8217;unit\u00e0 rem per ragionare in termini di valori in proporzione tra loro piuttosto che pixel in quantit\u00e0 fisse.<\/p>\n\n\n\n<p>Oltre al <code>backdrop-filter<\/code> che definisce quanto l&#8217;immagine dietro verr\u00e0 sfocata (simulando la rifrazione della luce nel vetro) possiamo giocare con il colore del vetro <code>background-color<\/code> ed in questo caso opteremo sempre per un bianco ed usando la funzione <code>rgba()<\/code> specificheremo un valore tra <code>0.0<\/code> e <code>1.0<\/code> dove <strong><code>0.0<\/code> \u00e8 totalmente trasparente<\/strong> e <strong><code>1.0<\/code> \u00e8 un materiale opaco bianco<\/strong> (quindi sicuramente non vetro).<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_2.png\" alt=\"Simulazione di Google Nest Hub con dentro orario e condizioni meteo\" class=\"wp-image-28709 size-full\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_2.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_2-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_2-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Vediamo il risultato di questo effetto vetro base dove possiamo controllare la sfocatura, il colore e l&#8217;opacit\u00e0! In questo screenshot vediamo <code>blur(0.2rem)<\/code> e <code>rgba(255, 255, 255, 0.2)<\/code><\/p>\n<\/div><\/div>\n\n\n\n<p>A questo livello possiamo quindi giocare con la scelta di immagini di sfondo ben selezionate, il colore del font e della base e la sfocatura del nostro vetro: complimenti avete sbloccato una nuova abilit\u00e0 per i vostri personali design e le vostre interfacce futuristiche!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-il-bordo-del-vetro\">Il bordo del vetro<\/h2>\n\n\n\n<p>Se osserviamo un vero vetro vedremo che sui bordi tende ad essere pi\u00f9 opaco (meno trasparente) ed in alcuni casi pu\u00f2 essere anche pi\u00f9 luminoso: la luce dello sfondo non ci arriva diretta ma rifratta dal vetro stesso e, poich\u00e9 il vetro non \u00e8 mai perfettamente puro, perturbata maggiormente della superficie a noi perpendicolare.<\/p>\n\n\n\n<p>Questa caratteristica pu\u00f2 essere riprodotta dalla propriet\u00e0 <code>border<\/code> e controllata da spessore, colore e opacit\u00e0:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css shcb-code-table\"><span class='shcb-loc'><span><span class=\"hljs-selector-class\">.with-border<\/span> {\n<\/span><\/span><mark class='shcb-loc'><span>    <span class=\"hljs-attribute\">--border-width<\/span>: <span class=\"hljs-number\">0.1rem<\/span>;\n<\/span><\/mark><mark class='shcb-loc'><span>    <span class=\"hljs-attribute\">--border-color<\/span>: <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">255<\/span>;\n<\/span><\/mark><mark class='shcb-loc'><span>    <span class=\"hljs-attribute\">--border-opacity<\/span>: <span class=\"hljs-number\">0.1<\/span>;\n<\/span><\/mark><span class='shcb-loc'><span>    <span class=\"hljs-attribute\">border<\/span>: <span class=\"hljs-built_in\">var<\/span>(--border-width) solid <span class=\"hljs-built_in\">rgba<\/span>(var(--border-color), <span class=\"hljs-built_in\">var<\/span>(--border-opacity));\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Approfittiamo dell&#8217;occasione per specificare i nostri parametri come variabili in modo da poter cambiare i parametri &#8220;fisici&#8221; del vetro invece di manipolare e cambiare continuamente l&#8217;implementazione CSS. \u00c8 un modo per imporsi maggiore chiarezza mentale se volete \u262f\ufe0f<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" data-id=\"28731\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border.png\" alt=\"\" class=\"wp-image-28731\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" data-id=\"28733\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border2.png\" alt=\"\" class=\"wp-image-28733\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border2.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border2-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border2-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" data-id=\"28732\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border3.png\" alt=\"\" class=\"wp-image-28732\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border3.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border3-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border3-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>Abbiamo ora l&#8217;abilit\u00e0 di rendere l&#8217;effetto del bordo e questo ci permette di fare facilmente un upgrade al nostro design specificando bordi differenti ad ogni lato ed ottenendo una direzione alla luce. Se ad esempio immaginiamo che la luce provenga da in basso a destra e si rifletta nei lati opposti del vetro potremo rendere questo effetto con 4 differenti opacitit\u00e0:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"> <span class=\"hljs-selector-class\">.with-border-and-reflection<\/span> {\n    <span class=\"hljs-attribute\">--border-width<\/span>: <span class=\"hljs-number\">0.1rem<\/span>;\n    <span class=\"hljs-attribute\">--border-color<\/span>: <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">255<\/span>;\n    \n    <span class=\"hljs-attribute\">--border-opacity-top<\/span>: <span class=\"hljs-number\">0.7<\/span>;\n    <span class=\"hljs-attribute\">--border-opacity-right<\/span>: <span class=\"hljs-number\">0.7<\/span>;\n    <span class=\"hljs-attribute\">--border-opacity-bottom<\/span>: <span class=\"hljs-number\">0.3<\/span>;\n    <span class=\"hljs-attribute\">--border-opacity-left<\/span>: <span class=\"hljs-number\">0.2<\/span>;\n\n    <span class=\"hljs-attribute\">border-top<\/span>: <span class=\"hljs-built_in\">var<\/span>(--border-width) solid <span class=\"hljs-built_in\">rgba<\/span>(var(--border-color), <span class=\"hljs-built_in\">var<\/span>(--border-opacity-top));\n    <span class=\"hljs-attribute\">border-right<\/span>: <span class=\"hljs-built_in\">var<\/span>(--border-width) solid <span class=\"hljs-built_in\">rgba<\/span>(var(--border-color), <span class=\"hljs-built_in\">var<\/span>(--border-opacity-right));\n    <span class=\"hljs-attribute\">border-bottom<\/span>: <span class=\"hljs-built_in\">var<\/span>(--border-width) solid <span class=\"hljs-built_in\">rgba<\/span>(var(--border-color), <span class=\"hljs-built_in\">var<\/span>(--border-opacity-bottom));\n    <span class=\"hljs-attribute\">border-left<\/span>: <span class=\"hljs-built_in\">var<\/span>(--border-width) solid <span class=\"hljs-built_in\">rgba<\/span>(var(--border-color), <span class=\"hljs-built_in\">var<\/span>(--border-opacity-left));\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border4.png\" alt=\"\" class=\"wp-image-28734\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border4.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border4-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_4_border4-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Ma perch\u00e9 fermarsi qui? E se provassimo a simulare diversi materiali giocando con altre fantastiche propriet\u00e0 del CSS moderno?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creiamo-la-nostra-collezioni-di-effetti-vetro\">Creiamo la nostra collezioni di effetti vetro!<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-vetro-ondulato\">Vetro ondulato<\/h3>\n\n\n\n<p>Per realizzare un effetto che dia l&#8217;impressione di un vetro ondulato dobbiamo ricorrere ad una propriet\u00e0 potente ma non cos\u00ec conosciuta: <code>background-image<\/code> viene infatti utilizzata il pi\u00f9 delle volte con dei file grazie alla funzione <code>url()<\/code> ma in realt\u00e0 il vero potere viene dall&#8217;uso di gradienti ed in questo caso per ottenere il nostro effetto sfrutteremo proprio questa capacit\u00e0 di &#8220;compositing&#8221; del CSS!<\/p>\n\n\n\n<p>Il pattern di un&#8217;onda si pu\u00f2 ottenere in tanti modi e qui entra in gioco la vostra creativit\u00e0 unita alla capacit\u00e0 (che va allenata) di tradurre idee in codice. Un modo per farlo \u00e8 con un gradiente lineare che parte da 0.0 e torna a 0.0 passando per 1.0 e -1.0&#8230; vi ricorda qualcosa?<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_waevy.png\" alt=\"\" class=\"wp-image-28736 size-full\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_waevy.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_waevy-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_waevy-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Questa volta definiamo base, minimo e massimo nelle variabili CSS e ricordiamoci di specificare la direzione in angoli (<code>0deg<\/code> \u00e8 in verticale) e la in base a questa dobbiamo &#8220;schiacciare&#8221; il nostro background-size sull&#8217;asse corrispettivo (in questo caso la Y):<\/p>\n<\/div><\/div>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.waved<\/span> {\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">0deg<\/span>, var(--base), <span class=\"hljs-built_in\">var<\/span>(--maximum), <span class=\"hljs-built_in\">var<\/span>(--base), <span class=\"hljs-built_in\">var<\/span>(--minimum), <span class=\"hljs-built_in\">var<\/span>(--base));\n    <span class=\"hljs-attribute\">background-size<\/span>: <span class=\"hljs-number\">100%<\/span> <span class=\"hljs-number\">10%<\/span>;\n    <span class=\"hljs-attribute\">--base<\/span>: <span class=\"hljs-number\">#fff3<\/span>;\n    <span class=\"hljs-attribute\">--minimum<\/span>: <span class=\"hljs-number\">#fff0<\/span>;\n    <span class=\"hljs-attribute\">--maximum<\/span>: <span class=\"hljs-number\">#fff6<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-vetro-con-pattern\">Vetro con pattern<\/h2>\n\n\n\n<p>Abbiamo visto come usare background-image per un effetto che si ripete in orizzontale o verticale come l&#8217;ondulato, ma cosa succede se si ripetesse in entrambe le direzioni?<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.pattern-brushed<\/span> {\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">45deg<\/span>, #fff0, #fff3, #fff0);\n    <span class=\"hljs-attribute\">background-size<\/span>: <span class=\"hljs-number\">10%<\/span> <span class=\"hljs-number\">10%<\/span>;\n}\n\n<span class=\"hljs-selector-class\">.pattern-grid<\/span> {\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">0deg<\/span>, #fff3, #fff0 <span class=\"hljs-number\">0.1rem<\/span>), <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">90deg<\/span>, #fff3, #fff0 <span class=\"hljs-number\">0.1rem<\/span>);\n    <span class=\"hljs-attribute\">background-size<\/span>: <span class=\"hljs-number\">5%<\/span> <span class=\"hljs-number\">5%<\/span>;\n}\n\n<span class=\"hljs-selector-class\">.pattern-triangles<\/span> {\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">153deg<\/span>, #fff3 <span class=\"hljs-number\">0.2rem<\/span>, #fff0 <span class=\"hljs-number\">0.1rem<\/span>);\n    <span class=\"hljs-attribute\">background-size<\/span>: <span class=\"hljs-number\">5%<\/span> <span class=\"hljs-number\">5%<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"wp-block-uagb-image-gallery uagb-block-3b714ea9     \"\n\t\t\t\t\t\tstyle=\"\"\n\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery spectra-image-gallery__layout--grid spectra-image-gallery__layout--grid-col-3 spectra-image-gallery__layout--grid-col-tab-3 spectra-image-gallery__layout--grid-col-mob-3\">\n\t\t\t\t\t\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper' data-spectra-gallery-image-id='28759' tabindex=\"0\">\n\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media spectra-image-gallery__media--grid\">\n\t\t\t\t<picture>\n\t\t\t\t\t<source media=\"(min-width: 1024px)\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-triangles.png\">\n\t\t\t\t\t<source media=\"(min-width: 768px)\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-triangles.png\">\n\t\t\t\t\t<img decoding=\"async\" class=\"spectra-image-gallery__media-thumbnail spectra-image-gallery__media-thumbnail--grid\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-triangles-300x235.png\" alt=\"Glassmorphism con pattern\" loading=\"lazy\" \/>\n\t\t\t\t<\/picture>\n\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-blurrer\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption-wrapper spectra-image-gallery__media-thumbnail-caption-wrapper--overlay\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption spectra-image-gallery__media-thumbnail-caption--overlay\">\n\t\t\t\t\t.pattern-triangles\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper' data-spectra-gallery-image-id='28760' tabindex=\"0\">\n\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media spectra-image-gallery__media--grid\">\n\t\t\t\t<picture>\n\t\t\t\t\t<source media=\"(min-width: 1024px)\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-gird.png\">\n\t\t\t\t\t<source media=\"(min-width: 768px)\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-gird.png\">\n\t\t\t\t\t<img decoding=\"async\" class=\"spectra-image-gallery__media-thumbnail spectra-image-gallery__media-thumbnail--grid\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-gird-300x235.png\" alt=\"Glassmorphism con pattern\" loading=\"lazy\" \/>\n\t\t\t\t<\/picture>\n\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-blurrer\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption-wrapper spectra-image-gallery__media-thumbnail-caption-wrapper--overlay\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption spectra-image-gallery__media-thumbnail-caption--overlay\">\n\t\t\t\t\t.pattern-grid\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper' data-spectra-gallery-image-id='28761' tabindex=\"0\">\n\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media spectra-image-gallery__media--grid\">\n\t\t\t\t<picture>\n\t\t\t\t\t<source media=\"(min-width: 1024px)\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern.png\">\n\t\t\t\t\t<source media=\"(min-width: 768px)\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern.png\">\n\t\t\t\t\t<img decoding=\"async\" class=\"spectra-image-gallery__media-thumbnail spectra-image-gallery__media-thumbnail--grid\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-300x235.png\" alt=\"Glassmorphism con pattern\" loading=\"lazy\" \/>\n\t\t\t\t<\/picture>\n\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-blurrer\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption-wrapper spectra-image-gallery__media-thumbnail-caption-wrapper--overlay\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption spectra-image-gallery__media-thumbnail-caption--overlay\">\n\t\t\t\t\t.pattern-brushed\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class='spectra-image-gallery__control-lightbox' tabindex='0'>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper spectra-image-gallery__control-lightbox--main\" dir=\"\">\n\t\t\t\t\t<div class=\"swiper-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t<img class=\"swiper-lazy\" data-src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-triangles.png\" alt=\"Glassmorphism con pattern\"\/>\n\t\t\t\t\t\t\t\t<div class=\"swiper-lazy-preloader swiper-lazy-preloader-white\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t<img class=\"swiper-lazy\" data-src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern-gird.png\" alt=\"Glassmorphism con pattern\"\/>\n\t\t\t\t\t\t\t\t<div class=\"swiper-lazy-preloader swiper-lazy-preloader-white\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t<img class=\"swiper-lazy\" data-src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_5_pattern.png\" alt=\"Glassmorphism con pattern\"\/>\n\t\t\t\t\t\t\t\t<div class=\"swiper-lazy-preloader swiper-lazy-preloader-white\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"swiper-button-next\"><\/div>\n\t\t\t\t\t<div class=\"swiper-button-prev\"><\/div>\n\t\t\t\t<\/div>\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button class='spectra-image-gallery__control-lightbox--close' aria-label=\"Close\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox= \"0 0 320 512\"><path d=\"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z\"><\/path><\/svg>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\n\n\n<h2 class=\"wp-block-heading\" id=\"h-vetro-con-riflessi\">Vetro con riflessi<\/h2>\n\n\n\n<p>Ora che abbiamo preso dimestichezza con background-image e l&#8217;uso della funzione linear-gradient possiamo sfruttarla per un ulteriore effetto!<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.reflected-light<\/span> {\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">45deg<\/span>, #fff0, #fff0 <span class=\"hljs-number\">70%<\/span>, #fff6 <span class=\"hljs-number\">60%<\/span>, #fff6 <span class=\"hljs-number\">90%<\/span>, #fff0 <span class=\"hljs-number\">90%<\/span>), <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">45deg<\/span>, #fff0, #fff0 <span class=\"hljs-number\">20%<\/span>, #fff6 <span class=\"hljs-number\">50%<\/span>, #fff6 <span class=\"hljs-number\">60%<\/span>, #fff0 <span class=\"hljs-number\">60%<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_light.png\" alt=\"\" class=\"wp-image-28768\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_light.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_light-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_light-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-vetro-colorato\">Vetro colorato<\/h2>\n\n\n\n<p>Per concentrarci sugli altri parametri non abbiamo cambiato colore mai al vetro lasciando tutto basato sul bianco. Ma \u00e8 evidente che con il colore possiamo davvero dare un tocco di personalit\u00e0 in pi\u00f9!<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.aqua-marine<\/span> {\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">0deg<\/span>, #<span class=\"hljs-number\">00<\/span>f7ff9e <span class=\"hljs-number\">30%<\/span>, #<span class=\"hljs-number\">0072<\/span>ff99);\n}\n\n<span class=\"hljs-selector-class\">.color-from-half<\/span> {\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">0deg<\/span>, #fff0 <span class=\"hljs-number\">45%<\/span>, #ff03 <span class=\"hljs-number\">30%<\/span>, #f009);\n}\n\n<span class=\"hljs-selector-class\">.color-points<\/span> {\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">radial-gradient<\/span>(#f096 <span class=\"hljs-number\">20%<\/span>, transparent <span class=\"hljs-number\">50%<\/span>);\n    <span class=\"hljs-attribute\">background-size<\/span>: <span class=\"hljs-number\">2%<\/span> <span class=\"hljs-number\">2%<\/span>;\n    <span class=\"hljs-attribute\">background-color<\/span>: <span class=\"hljs-number\">#f096<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-12 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" data-id=\"28773\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color2.png\" alt=\"Glassmorphism con vetro colorato\" class=\"wp-image-28773\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color2.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color2-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color2-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">.aqua-marine<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" data-id=\"28774\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color3.png\" alt=\"Glassmorphism con vetro colorato\" class=\"wp-image-28774\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color3.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color3-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color3-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">-color-points<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" data-id=\"28775\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color1.png\" alt=\"Glassmorphism con vetro colorato\" class=\"wp-image-28775\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color1.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color1-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glass_6_color1-768x601.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">-color-from-half<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-effetto-lente\">Effetto lente<\/h2>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"326\" height=\"329\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/zoom_lens.gif\" alt=\"\" class=\"wp-image-28957 size-full\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Per ottenere un simpatico effetto lente e giocare con l&#8217;ingrandimento causato dal vetro dobbiamo ricorrere ad un piccolo stratagemma in quanto non possiamo infatti usare <code>backdrop-filter<\/code> per la funzione <code>blur()<\/code>: sfruttiamo uno pseudo-elemento <code>::before<\/code> ed ereditiamo lo sfondo del contenitore per poter poi cambiare la propriet\u00e0 filter anzich\u00e9 <code>backdrop-filter<\/code>!<\/p>\n<\/div><\/div>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.lens<\/span> {\n    <span class=\"hljs-attribute\">--zoom<\/span>: <span class=\"hljs-number\">100%<\/span>;\n    <span class=\"hljs-attribute\">transition<\/span>: background-size <span class=\"hljs-number\">1s<\/span> ease-in;\n    <span class=\"hljs-attribute\">background-image<\/span>: inherit;\n    <span class=\"hljs-attribute\">overflow<\/span>: hidden;\n    <span class=\"hljs-attribute\">background-size<\/span>: <span class=\"hljs-built_in\">var<\/span>(--zoom);\n    <span class=\"hljs-attribute\">background-attachment<\/span>: fixed;\n    <span class=\"hljs-attribute\">background-position<\/span>: center;\n}\n\n<span class=\"hljs-selector-class\">.lens<\/span><span class=\"hljs-selector-pseudo\">::before<\/span> {\n    <span class=\"hljs-attribute\">content<\/span>: <span class=\"hljs-string\">''<\/span>;\n    <span class=\"hljs-attribute\">background<\/span>: inherit;\n    <span class=\"hljs-attribute\">position<\/span>: absolute;\n    <span class=\"hljs-attribute\">inset<\/span>: -<span class=\"hljs-number\">0.5rem<\/span>;\n    <span class=\"hljs-attribute\">filter<\/span>: <span class=\"hljs-built_in\">blur<\/span>(<span class=\"hljs-number\">0.1rem<\/span>);\n    <span class=\"hljs-attribute\">z-index<\/span>: -<span class=\"hljs-number\">1<\/span>;\n    <span class=\"hljs-attribute\">background-blend-mode<\/span>: overlay;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusioni\">Conclusioni<\/h2>\n\n\n\n<p>L&#8217;obiettivo di questo tutorial non era promuovere l&#8217;uso universale del glassmorphism. Ne tanto meno promuovere pratiche che possano ridurre l&#8217;accessibilit\u00e0 per alcuni utenti: scrivere su un vetro comporta fare i conti con tante difficolt\u00e0 ma nel giusto contesto pu\u00f2 aggiungere un tocco futuristico ai nostri design e soprattutto \u00e8 estremamente divertente da implementare!<\/p>\n\n\n\n<p>E voi cosa aspettate a creare il vostro effetto vetro e condividerlo sulla <a href=\"https:\/\/t.me\/CodemotionIT\" class=\"ek-link\">Codemotion Community su Telegram<\/a>: ti aspettiamo!!! \ud83d\udc40<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il Glassmorphism \u00e8 una tendenza nel design che mira a replicare l&#8217;aspetto e le propriet\u00e0 del vetro negli elementi dell&#8217;interfaccia o di un contenuto. Questo stile si caratterizza per l&#8217;uso di trasparenza, sfocatura e effetti di luce per creare l&#8217;illusione di superfici vetrose. Diciamoci la verit\u00e0: un vetro trasparente non \u00e8 la cosa pi\u00f9 pratica&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/\">Read more<\/a><\/p>\n","protected":false},"author":255,"featured_media":28780,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10299],"tags":[11736,12388,12391,12394,12397],"collections":[12402],"class_list":{"0":"post-28701","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ux-design","8":"tag-css-it","9":"tag-glass-it","10":"tag-glassmorphism-it","11":"tag-trendy-design-it","12":"tag-vetro-it","13":"collections-codemotion-guides-it","14":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Glassmorphism con CSS: un nuovo approccio! - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Scopri come creare un buon effetto glassmorphism con CSS. Questa guida passo-passo copre tutto, dalla configurazione di base alle tecniche avanzate!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Glassmorphism con CSS: un nuovo approccio!\" \/>\n<meta property=\"og:description\" content=\"Scopri come creare un buon effetto glassmorphism con CSS. Questa guida passo-passo copre tutto, dalla configurazione di base alle tecniche avanzate!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-17T10:37:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-03T10:09:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Massimo Avvisati\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MassimoAvvisati\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Massimo Avvisati\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/\"},\"author\":{\"name\":\"Massimo Avvisati\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7d033c17576f9bdfec9dab783e58976a\"},\"headline\":\"Glassmorphism con CSS: un nuovo approccio!\",\"datePublished\":\"2024-07-17T10:37:08+00:00\",\"dateModified\":\"2024-09-03T10:09:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/\"},\"wordCount\":1356,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg\",\"keywords\":[\"CSS\",\"glass\",\"glassmorphism\",\"trendy design\",\"vetro\"],\"articleSection\":[\"UX\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/\",\"name\":\"Glassmorphism con CSS: un nuovo approccio! - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg\",\"datePublished\":\"2024-07-17T10:37:08+00:00\",\"dateModified\":\"2024-09-03T10:09:41+00:00\",\"description\":\"Scopri come creare un buon effetto glassmorphism con CSS. Questa guida passo-passo copre tutto, dalla configurazione di base alle tecniche avanzate!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg\",\"width\":1280,\"height\":720,\"caption\":\"Glassmorphism example\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"UX\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Glassmorphism con CSS: un nuovo approccio!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7d033c17576f9bdfec9dab783e58976a\",\"name\":\"Massimo Avvisati\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/massimo-100x100.jpeg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/massimo-100x100.jpeg\",\"caption\":\"Massimo Avvisati\"},\"description\":\"I am a full-stack developer, digital artist, maker, and educator with a passion for Artificial Intelligence. I create immersive installations and develop educational software, pushing the boundaries of technology. I believe in Free Software and Creative Commons licensing as a foundation for knowledge sharing. My goal is to craft unique and engaging educational experiences using cutting-edge technology, showcasing the potential of AI in education. Currently, my focus is on Educational Technology, where I strive to create innovative software and hardware tools that engage and inspire learners. I firmly believe in the power of Free Software and Creative Commons, utilizing these open platforms to ensure my work is accessible and reusable by others. I actively reject restrictive platforms that limit creativity and collaboration. By combining my artistic vision with cutting-edge technology, I aim to develop unique educational experiences that spark curiosity and foster a love of learning. Through my work, I strive to demonstrate the incredible potential of AI in education and the arts.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/massimo-avvisati-7220312\/\",\"https:\/\/x.com\/MassimoAvvisati\"],\"knowsAbout\":[\"Javascript\",\"Node.js\",\"PHP\",\"AI\",\"Machine Learning\",\"Web Development\",\"Free Software\"],\"knowsLanguage\":[\"English\",\"Spanish\",\"Italian\"],\"jobTitle\":\"Head of EdTech R&D\",\"worksFor\":\"Codemotion spa\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/massimo-avvisati\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Glassmorphism con CSS: un nuovo approccio! - Codemotion Magazine","description":"Scopri come creare un buon effetto glassmorphism con CSS. Questa guida passo-passo copre tutto, dalla configurazione di base alle tecniche avanzate!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/","og_locale":"en_US","og_type":"article","og_title":"Glassmorphism con CSS: un nuovo approccio!","og_description":"Scopri come creare un buon effetto glassmorphism con CSS. Questa guida passo-passo copre tutto, dalla configurazione di base alle tecniche avanzate!","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-07-17T10:37:08+00:00","article_modified_time":"2024-09-03T10:09:41+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg","type":"image\/jpeg"}],"author":"Massimo Avvisati","twitter_card":"summary_large_image","twitter_creator":"@MassimoAvvisati","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Massimo Avvisati","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/"},"author":{"name":"Massimo Avvisati","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7d033c17576f9bdfec9dab783e58976a"},"headline":"Glassmorphism con CSS: un nuovo approccio!","datePublished":"2024-07-17T10:37:08+00:00","dateModified":"2024-09-03T10:09:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/"},"wordCount":1356,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg","keywords":["CSS","glass","glassmorphism","trendy design","vetro"],"articleSection":["UX"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/","name":"Glassmorphism con CSS: un nuovo approccio! - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg","datePublished":"2024-07-17T10:37:08+00:00","dateModified":"2024-09-03T10:09:41+00:00","description":"Scopri come creare un buon effetto glassmorphism con CSS. Questa guida passo-passo copre tutto, dalla configurazione di base alle tecniche avanzate!","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg","width":1280,"height":720,"caption":"Glassmorphism example"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/glassmorphism-con-css-un-nuovo-approccio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Frontend","item":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/"},{"@type":"ListItem","position":3,"name":"UX","item":"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/ux-design\/"},{"@type":"ListItem","position":4,"name":"Glassmorphism con CSS: un nuovo approccio!"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7d033c17576f9bdfec9dab783e58976a","name":"Massimo Avvisati","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/massimo-100x100.jpeg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/massimo-100x100.jpeg","caption":"Massimo Avvisati"},"description":"I am a full-stack developer, digital artist, maker, and educator with a passion for Artificial Intelligence. I create immersive installations and develop educational software, pushing the boundaries of technology. I believe in Free Software and Creative Commons licensing as a foundation for knowledge sharing. My goal is to craft unique and engaging educational experiences using cutting-edge technology, showcasing the potential of AI in education. Currently, my focus is on Educational Technology, where I strive to create innovative software and hardware tools that engage and inspire learners. I firmly believe in the power of Free Software and Creative Commons, utilizing these open platforms to ensure my work is accessible and reusable by others. I actively reject restrictive platforms that limit creativity and collaboration. By combining my artistic vision with cutting-edge technology, I aim to develop unique educational experiences that spark curiosity and foster a love of learning. Through my work, I strive to demonstrate the incredible potential of AI in education and the arts.","sameAs":["https:\/\/www.linkedin.com\/in\/massimo-avvisati-7220312\/","https:\/\/x.com\/MassimoAvvisati"],"knowsAbout":["Javascript","Node.js","PHP","AI","Machine Learning","Web Development","Free Software"],"knowsLanguage":["English","Spanish","Italian"],"jobTitle":"Head of EdTech R&D","worksFor":"Codemotion spa","url":"https:\/\/www.codemotion.com\/magazine\/author\/massimo-avvisati\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-600x600.jpg","author_info":{"display_name":"Massimo Avvisati","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/massimo-avvisati\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg",1280,720,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-300x169.jpg",300,169,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-768x432.jpg",768,432,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg",1280,720,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism.jpg",1280,720,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-100x100.jpg",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/07\/glassmorphism-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Massimo Avvisati","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/massimo-avvisati\/"},"uagb_comment_info":0,"uagb_excerpt":"Il Glassmorphism \u00e8 una tendenza nel design che mira a replicare l&#8217;aspetto e le propriet\u00e0 del vetro negli elementi dell&#8217;interfaccia o di un contenuto. Questo stile si caratterizza per l&#8217;uso di trasparenza, sfocatura e effetti di luce per creare l&#8217;illusione di superfici vetrose. Diciamoci la verit\u00e0: un vetro trasparente non \u00e8 la cosa pi\u00f9 pratica&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/28701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/255"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=28701"}],"version-history":[{"count":4,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/28701\/revisions"}],"predecessor-version":[{"id":29469,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/28701\/revisions\/29469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/28780"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=28701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=28701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=28701"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=28701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}