Compare commits

..

No commits in common. "542b8e241476750f48c8f135039e0a1ee6ee92ee" and "b8643204e00e47e758a457732a941da7c1493d30" have entirely different histories.

11 changed files with 119 additions and 356 deletions

View file

@ -8,12 +8,7 @@ const { text, source } = Astro.props;
--- ---
<blockquote> <blockquote>
<svg <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" class="icon" style="height: 36px; width: auto; fill: currentcolor;"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 36 36"
class="icon"
style="height: 36px; width: auto; fill: currentcolor;"
aria-hidden="true"
><path ><path
d="M28 18L28 10 20 10 20 18 26 18C26 21.3137085 23.3137085 24 20 24L20 26C24.418278 26 28 22.418278 28 18L28 18zM26 12L26 16 22 16 22 12 26 12 26 12zM16 18L16 10 8 10 8 18 14 18C14 21.3137085 11.3137085 24 8 24L8 26C12.418278 26 16 22.418278 16 18L16 18zM14 12L14 16 10 16 10 12 14 12 14 12z" d="M28 18L28 10 20 10 20 18 26 18C26 21.3137085 23.3137085 24 20 24L20 26C24.418278 26 28 22.418278 28 18L28 18zM26 12L26 16 22 16 22 12 26 12 26 12zM16 18L16 10 8 10 8 18 14 18C14 21.3137085 11.3137085 24 8 24L8 26C12.418278 26 16 22.418278 16 18L16 18zM14 12L14 16 10 16 10 12 14 12 14 12z"
fill-rule="evenodd"></path></svg fill-rule="evenodd"></path></svg
@ -38,9 +33,7 @@ const { text, source } = Astro.props;
margin-top: 4rem; margin-top: 4rem;
margin-bottom: 4rem; margin-bottom: 4rem;
font-size: 1.2rem; font-size: 1.2rem;
box-shadow: box-shadow: 0.25rem 0.25rem 2rem var(--neumorph-shadow-darker), -0.5rem -0.5rem 1rem var(--neumorph-shadow-lighter);
0.25rem 0.25rem 2rem var(--neumorph-shadow-darker),
-0.5rem -0.5rem 1rem var(--neumorph-shadow-lighter);
background: var(--bg-color); background: var(--bg-color);
--spacing: 2rem 2.5rem 2rem 2rem; --spacing: 2rem 2.5rem 2rem 2rem;
padding: 2rem 2.5rem 2rem 2rem; padding: 2rem 2.5rem 2rem 2rem;

View file

@ -1,10 +1,7 @@
<article class="contact-links"> <article class="contact-links">
<hgroup> <hgroup>
<h2 id="contacts">Contact me</h2> <h2 id="contacts">Contact me</h2>
<p> <p>Whether you're willing to work with me, or want a chat with me, feel free to contact me any time! I'll do my best to answer to emails in short time.</p>
Whether you're willing to work with me, or want a chat with me, feel free
to contact me any time! I'll do my best to answer to emails in short time.
</p>
</hgroup> </hgroup>
<div class="grid"> <div class="grid">
@ -18,65 +15,22 @@
stroke-width="2" stroke-width="2"
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
class="feather feather-mail" class="feather feather-mail"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg
aria-hidden="true"
><path
d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"
></path><polyline points="22,6 12,13 2,6"></polyline></svg
> >
<span>Email me</span> <span>Email me</span>
</a> </a>
<a <a role="button" class="" href="https://github.com/nzambello" target="_blank" rel="noopener noreferrer">
role="button" <svg height="32" aria-hidden="true" viewBox="0 0 16 16" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github v-align-middle color-fg-default">
class=""
href="https://github.com/nzambello"
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window"
>
<svg
height="32"
aria-hidden="true"
viewBox="0 0 16 16"
version="1.1"
width="32"
data-view-component="true"
class="octicon octicon-mark-github v-align-middle color-fg-default"
aria-hidden="true"
>
<path <path
d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z" d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"
></path> ></path>
</svg> </svg>
<span>GitHub</span> <span>GitHub</span>
</a> </a>
<a <a role="button" class="" href="https://cal.nzambello.dev" target="_blank" rel="noopener noreferrer">
role="button" <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar"
class="" ><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"
href="https://cal.nzambello.dev" ></line></svg
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window"
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="feather feather-calendar"
aria-hidden="true"
><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line
x1="16"
y1="2"
x2="16"
y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line
x1="3"
y1="10"
x2="21"
y2="10"></line></svg
> >
<span>Book a meeting</span> <span>Book a meeting</span>
</a> </a>

View file

@ -3,31 +3,10 @@ const today = new Date();
--- ---
<footer> <footer>
<p> &copy; {today.getFullYear()} Nicola Zambello. <em data-tooltip="😉">No rights reserved</em>.
&copy; {today.getFullYear()} Nicola Zambello. <em data-tooltip="😉"
>No rights reserved</em
>.
</p>
<p class="subfooter">
Hosted on <a
href="https://www.hetzner.com/unternehmen/umweltschutz/"
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window">green energy</a
> in Europe.
</p>
</footer> </footer>
<style> <style>
footer { footer {
text-align: center; text-align: center;
} }
footer p {
margin: 0 0 0.5em;
}
footer p.subfooter {
font-size: 0.75em;
margin-bottom: 0;
}
</style> </style>

View file

@ -1,5 +1,5 @@
--- ---
const messages = ['Hi', 'Hello', 'Hey', 'Welcome', 'Ciao']; const messages = ['Hi', 'Hello', 'Hey', 'Welcome', 'Ciao', 'Xin chào'];
const emojis = ['🍻', '🧑‍💻', '👋', '😎']; const emojis = ['🍻', '🧑‍💻', '👋', '😎'];
const randomMessage = messages[Math.floor(Math.random() * messages.length)]; const randomMessage = messages[Math.floor(Math.random() * messages.length)];
const randomEmoji = emojis[Math.floor(Math.random() * emojis.length)]; const randomEmoji = emojis[Math.floor(Math.random() * emojis.length)];
@ -10,7 +10,7 @@ const randomEmoji = emojis[Math.floor(Math.random() * emojis.length)];
<span role="presentation">{randomEmoji}</span> <span role="presentation">{randomEmoji}</span>
</h1> </h1>
<script is:inline> <script is:inline>
const messages = ['Hi', 'Hello', 'Hey', 'Welcome', 'Ciao']; const messages = ['Hi', 'Hello', 'Hey', 'Welcome', 'Ciao', 'Xin chào'];
const emojis = ['🍻', '🧑‍💻', '👋', '😎']; const emojis = ['🍻', '🧑‍💻', '👋', '😎'];
const randomMessage = messages[Math.floor(Math.random() * messages.length)]; const randomMessage = messages[Math.floor(Math.random() * messages.length)];
const randomEmoji = emojis[Math.floor(Math.random() * emojis.length)]; const randomEmoji = emojis[Math.floor(Math.random() * emojis.length)];

View file

@ -12,11 +12,7 @@ import Logo from './Logo.astro';
</HeaderLink> </HeaderLink>
</ul> </ul>
<input type="checkbox" id="mobile-checkbox" /> <input type="checkbox" id="mobile-checkbox" />
<label <label for="mobile-checkbox" class="mobile-icon-button" title="Toggle navigation">
for="mobile-checkbox"
class="mobile-icon-button"
title="Toggle navigation"
>
<div class="mobile-icon-button-icon icon-open"> <div class="mobile-icon-button-icon icon-open">
<span class="line"></span> <span class="line"></span>
<span class="line"></span> <span class="line"></span>
@ -29,22 +25,8 @@ import Logo from './Logo.astro';
<div class="menu-backdrop"></div> <div class="menu-backdrop"></div>
</label> </label>
<ul class="menu"> <ul class="menu">
<HeaderLink <HeaderLink href="https://app.memorytwin.com/en/nzambello/Nicola" target="_blank" rel="noopener noreferrer">Twin</HeaderLink>
href="https://github.com/nzambello" <HeaderLink href="https://github.com/nzambello" target="_blank" rel="noopener noreferrer">GitHub</HeaderLink>
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window"
>
GitHub
</HeaderLink>
<HeaderLink
href="https://slides.nzambello.dev"
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window"
>
Slides
</HeaderLink>
<HeaderLink href="/#contacts">Contacts</HeaderLink> <HeaderLink href="/#contacts">Contacts</HeaderLink>
</ul> </ul>
<ul class="theme-button-container"> <ul class="theme-button-container">
@ -87,9 +69,7 @@ import Logo from './Logo.astro';
max-width: 0; max-width: 0;
overflow: hidden; overflow: hidden;
font-size: 1.3em; font-size: 1.3em;
transition: transition: all 0.3s ease, padding 0.2s ease-out;
all 0.3s ease,
padding 0.2s ease-out;
} }
nav ul.menu li a { nav ul.menu li a {
@ -167,9 +147,7 @@ import Logo from './Logo.astro';
z-index: 10; z-index: 10;
} }
#mobile-checkbox:checked #mobile-checkbox:checked ~ .mobile-icon-button .mobile-icon-button-icon.icon-close {
~ .mobile-icon-button
.mobile-icon-button-icon.icon-close {
display: inline-block; display: inline-block;
} }

View file

@ -5,7 +5,6 @@
height="94" height="94"
viewBox="0 0 435 94" viewBox="0 0 435 94"
fill="none" fill="none"
aria-label="nzambello.dev"
> >
<g class="text-container"> <g class="text-container">
<text <text

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -10,7 +10,6 @@
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
preserveAspectRatio="xMidYMid" preserveAspectRatio="xMidYMid"
aria-hidden="true"
> >
<g> <g>
<path <path
@ -32,50 +31,29 @@
</svg> </svg>
<h2 id="opensource">Open Source</h2> <h2 id="opensource">Open Source</h2>
<p> <p>
I believe in open source as a form of sharing, networking between I believe in open source as a form of sharing, networking between companies and training between developers. With open source, developers from all over the world collaborate on shared projects.
companies and training between developers. With open source, developers
from all over the world collaborate on shared projects.
</p> </p>
</hgroup> </hgroup>
<article class="github-banner"> <article class="github-banner">
You can find my open source projects and contributions at <a You can find my open source projects and contributions at <a href="https://github.com/nzambello">github.com/nzambello</a>.
href="https://github.com/nzambello">github.com/nzambello</a
>.
</article> </article>
<details> <details>
<summary tabindex="0">What is open source software?</summary> <summary>What is open source software?</summary>
<p>Open source software is software with source code that anyone can inspect, review, modify, and enhance.</p>
<p> <p>
Open source software is software with source code that anyone can inspect, <a href="https://opensource.org/osd" target="_blank" rel="noopener noreferrer">Open source definition</a>
review, modify, and enhance.
</p>
<p>
<a
href="https://opensource.org/osd"
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window">Open source definition</a
>
</p> </p>
</details> </details>
<details> <details>
<summary tabindex="0">Why open source?</summary> <summary>Why open source?</summary>
<p>Open source software is a great way to learn new technologies, to share knowledge and to collaborate with other developers.</p>
<p> <p>
Open source software is a great way to learn new technologies, to share Building a project using open source software is building it on top of the shoulders of thousands of developers. You get efforts on the subject from all over the world for free, and you can
knowledge and to collaborate with other developers. contribute back to the community by sharing your own code.
</p>
<p>
Building a project using open source software is building it on top of the
shoulders of thousands of developers. You get efforts on the subject from
all over the world for free, and you can contribute back to the community
by sharing your own code.
</p>
<p>
Furthermore, open source software is often more secure than proprietary
software, since tons of developers can review the code. This also enhance
privacy and transparency.
</p> </p>
<p>Furthermore, open source software is often more secure than proprietary software, since tons of developers can review the code. This also enhance privacy and transparency.</p>
</details> </details>
<style> <style>

View file

@ -4,23 +4,8 @@ import Blockquote from './Blockquote.astro';
<section class="plone-section"> <section class="plone-section">
<hgroup class="clearfix"> <hgroup class="clearfix">
<a <a href="https://plone.org" target="_blank" rel="noopener noreferrer">
href="https://plone.org" <svg role="presentation" id="plone-logo" aria-label="Plone" viewBox="0 0 41 41" fill="none" xmlns="http://www.w3.org/2000/svg" width="100px" height="100px">
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window"
>
<svg
role="presentation"
id="plone-logo"
aria-label="Plone"
viewBox="0 0 41 41"
fill="none"
xmlns="http://www.w3.org/2000/svg"
width="100px"
height="100px"
aria-hidden="true"
>
<g clip-path="url(#clip0_1_2)"> <g clip-path="url(#clip0_1_2)">
<path <path
d="M17.717 15.963C20.1482 15.963 22.119 13.9922 22.119 11.561C22.119 9.12984 20.1482 7.159 17.717 7.159C15.2858 7.159 13.315 9.12984 13.315 11.561C13.315 13.9922 15.2858 15.963 17.717 15.963Z" d="M17.717 15.963C20.1482 15.963 22.119 13.9922 22.119 11.561C22.119 9.12984 20.1482 7.159 17.717 7.159C15.2858 7.159 13.315 9.12984 13.315 11.561C13.315 13.9922 15.2858 15.963 17.717 15.963Z"
@ -43,64 +28,35 @@ import Blockquote from './Blockquote.astro';
</svg> </svg>
</a> </a>
<h2 id="plone"> <h2 id="plone">
<a <a href="https://plone.org" target="_blank" rel="noopener noreferrer"> Plone</a>
href="https://plone.org"
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window"
>
Plone</a
>
</h2> </h2>
<p> <p>The world's most secure content management system, with a user-friendly interface and a growing open-source community.</p>
The world's most secure content management system, with a user-friendly
interface and a growing open-source community.
</p>
</hgroup> </hgroup>
<Blockquote <Blockquote text="Plone is backed up by the Plone Foundation, so it will stay open source forever." />
text="Plone is backed up by the Plone Foundation, so it will stay open source forever."
/>
<details> <details>
<summary tabindex="0">Why Plone?</summary> <summary>Why Plone?</summary>
<p> <p>
Plone is an open-source content management system (CMS) with over 20 years Plone is an open-source content management system (CMS) with over 20 years of stability and security wrapped in a modern, powerful user-centric package with Plone 6. It continues to set the
of stability and security wrapped in a modern, powerful user-centric standard for content management systems by offering the most functionality and customization out of the box.
package with Plone 6. It continues to set the standard for content
management systems by offering the most functionality and customization
out of the box.
</p> </p>
<p> <p>
With so many content management systems, why should you choose Plone? It's With so many content management systems, why should you choose Plone? It's simple: Plone is powerful, flexible, secure and true open source! The project has been actively developed since 2001
simple: Plone is powerful, flexible, secure and true open source! The and has the best security track record of any major CMS.
project has been actively developed since 2001 and has the best security
track record of any major CMS.
</p> </p>
</details> </details>
<details> <details>
<summary tabindex="0">What is Plone?</summary> <summary>What is Plone?</summary>
<p> <p>
<a <a href="http://plone.org" target="_blank" rel="noopener noreferrer">Plone</a> is an open-source content management system that is used to create, edit, and manage digital content, like websites,
href="http://plone.org" intranets and custom solutions. It comes with over 20 years of growth, optimisations, and refinements. The result is a system trusted by governments, universities, businesses, and other organisations
target="_blank" all over the world.
rel="noopener noreferrer"
aria-label="Opens in a new tab/window">Plone</a
> is an open-source content management system that is used to create, edit,
and manage digital content, like websites, intranets and custom solutions.
It comes with over 20 years of growth, optimisations, and refinements. The
result is a system trusted by governments, universities, businesses, and other
organisations all over the world.
</p> </p>
<p> <p>
The <a The <a href="https://beta.plone.org/foundation" target="_blank" rel="noopener noreferrer">Plone Foundation</a> protects and promotes Plone by furthering the development, marketing, and legal affairs
href="https://beta.plone.org/foundation" of Plone and the Plone community.
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window">Plone Foundation</a
> protects and promotes Plone by furthering the development, marketing, and
legal affairs of Plone and the Plone community.
</p> </p>
</details> </details>
</section> </section>

View file

@ -1,14 +1,8 @@
--- ---
---
--- <button id="themeToggle" title="Toggle theme">
<svg width="30px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<button id="themeToggle" title="Toggle theme" aria-label="Toggle theme">
<svg
width="30px"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
aria-label="Toggle theme"
>
<path <path
class="sun" class="sun"
fill-rule="evenodd" fill-rule="evenodd"
@ -27,9 +21,7 @@
background: none; background: none;
border: 1px solid var(--item-bg-color-var); border: 1px solid var(--item-bg-color-var);
background: var(--item-bg-color); background: var(--item-bg-color);
box-shadow: box-shadow: 0.25rem 0.25rem 1rem var(--neumorph-shadow-darker), -0.25rem -0.25rem 1rem var(--neumorph-shadow-lighter) !important;
0.25rem 0.25rem 1rem var(--neumorph-shadow-darker),
-0.25rem -0.25rem 1rem var(--neumorph-shadow-lighter) !important;
color: var(--text-color); color: var(--text-color);
padding: 0.5rem; padding: 0.5rem;
aspect-ratio: 1; aspect-ratio: 1;
@ -90,7 +82,5 @@
localStorage.setItem('theme', themeToSet); localStorage.setItem('theme', themeToSet);
}; };
document document.getElementById('themeToggle')?.addEventListener('click', handleToggleClick);
.getElementById('themeToggle')
?.addEventListener('click', handleToggleClick);
</script> </script>

View file

@ -9,7 +9,7 @@ const canonicalURL = new URL(Astro.url.pathname, Astro.site);
--- ---
<!doctype html> <!doctype html>
<html lang="en" data-theme="dark"> <html lang="en">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

View file

@ -19,125 +19,72 @@ import Privacy from '../components/Privacy.astro';
<div id="content" class="container"> <div id="content" class="container">
<div class="contact-links"> <div class="contact-links">
<a <a role="button" class="" href="https://app.memorytwin.com/en/nzambello/Nicola" target="_blank" rel="noopener noreferrer">
role="button"
class=""
href="https://www.aisuru.com/en/nzambello/Nicola"
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window"
>
<svg <svg
class="aisuru-logo"
xmlns="http://www.w3.org/2000/svg"
width="800"
height="760"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 800 760" xmlns="http://www.w3.org/2000/svg"
aria-label="AIsuru" width="32"
> height="32"
<defs> id="screenshot-ee7a4028-0499-8054-8002-d551e0c3ba31"
<style> viewBox="-2 -2 150 150"
.aisuru-cls-1 { style="-webkit-print-color-adjust: exact;"
fill: url(#Sfumatura_senza_nome_2); fill="none"
} version="1.1"
><g id="shape-ee7a4028-0499-8054-8002-d551e0c3ba31" rx="0" ry="0"
.aisuru-cls-1, ><g id="shape-ee7a4028-0499-8054-8002-d551c1b8f59c"
.aisuru-cls-2, ><defs
.aisuru-cls-3 { ><linearGradient
stroke-width: 0px; x1="-139"
fill: currentColor; y1="-42"
} x2="184.376"
y2="9.78136"
/* .aisuru-cls-2 { id="rumext-id-2-paint0_linear_108_7"
fill: #8347ad;
}
.aisuru-cls-3 {
fill: #00abc8;
} */
</style>
<linearGradient
id="Sfumatura_senza_nome_2"
data-name="Sfumatura senza nome 2"
x1="106.24"
y1="-111.84"
x2="573.88"
y2="651.38"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.000000, 0.000000, 0.000000, 1.000000, -48.000000, -2.000000)"
><stop offset="0.572834" stop-color="var(--primary-inverse)"></stop><stop offset="1" stop-color="var(--item-bg-color)"></stop></linearGradient
></defs
><g class="fills" id="fills-ee7a4028-0499-8054-8002-d551c1b8f59c"
><path
fill="url(#rumext-id-2-paint0_linear_108_7)"
rx="0"
ry="0"
d="M31.621,30.914L29.621,30.914L29.621,32.914L29.621,146.000L0.000,146.000L0.000,0.000L146.000,0.000L146.000,146.000L116.379,146.000L116.379,32.914L116.379,30.914L114.379,30.914L31.621,30.914ZZM62.069,60.776L85.224,60.776L85.224,146.000L62.069,146.000L62.069,60.776ZZ"
style='fill: url("#rumext-id-2-paint0_linear_108_7");'></path></g
></g
><g id="shape-ee7a4028-0499-8054-8002-d551c1b906ac"
><g class="fills" id="fills-ee7a4028-0499-8054-8002-d551c1b906ac"
><path
rx="0"
ry="0"
d="M31.621,30.914L29.621,30.914L29.621,32.914L29.621,146.000L0.000,146.000L0.000,0.000L146.000,0.000L146.000,146.000L116.379,146.000L116.379,32.914L116.379,30.914L114.379,30.914L31.621,30.914ZZM62.069,60.776L85.224,60.776L85.224,146.000L62.069,146.000L62.069,60.776ZZ"
style="fill: rgb(255, 255, 255); fill-opacity: 0.18;"></path></g
></g
><g id="shape-ee7a4028-0499-8054-8002-d551c1b9733a" style="mix-blend-mode: overlay;"
><g class="fills" id="fills-ee7a4028-0499-8054-8002-d551c1b9733a"
><path
fill="none"
rx="0"
ry="0"
d="M31.621,30.914L29.621,30.914L29.621,32.914L29.621,146.000L0.000,146.000L0.000,0.000L146.000,0.000L146.000,146.000L116.379,146.000L116.379,32.914L116.379,30.914L114.379,30.914L31.621,30.914ZZM62.069,60.776L85.224,60.776L85.224,146.000L62.069,146.000L62.069,60.776ZZ"
style="fill: none;"></path></g
><g id="strokes-ee7a4028-0499-8054-8002-d551c1b9733a" class="strokes"
><g class="stroke-shape"
><path
rx="0"
ry="0"
d="M31.621,30.914L29.621,30.914L29.621,32.914L29.621,146.000L0.000,146.000L0.000,0.000L146.000,0.000L146.000,146.000L116.379,146.000L116.379,32.914L116.379,30.914L114.379,30.914L31.621,30.914ZZM62.069,60.776L85.224,60.776L85.224,146.000L62.069,146.000L62.069,60.776ZZ"
style="fill: none; stroke-width: 4; stroke: rgb(200, 200, 200);"></path></g
></g
></g
></g
></svg
> >
<stop offset=".18" stop-color="#9ad2d4"></stop>
<stop offset=".32" stop-color="#24b4ca"></stop>
<stop offset=".37" stop-color="#349dbe"></stop>
<stop offset=".46" stop-color="#4b7fb0"></stop>
<stop offset=".55" stop-color="#5c67a4"></stop>
<stop offset=".65" stop-color="#69579c"></stop>
<stop offset=".76" stop-color="#704d97"></stop>
<stop offset=".89" stop-color="#734a96"></stop>
</linearGradient>
</defs>
<path
class="aisuru-cls-1"
d="m795.04,288.24c-7.58-66.97-50.42-134.38-117.54-184.95-59.07-44.5-129.98-71.71-202.76-78.36C434.33,8.9,391.45-.13,348.44-.13,265.35-.13,187.43,32.72,123.1,94.87c-23.92,23.11-56.09,70.2-76.25,132.8-10.86,19.51-20.1,40.02-27.36,61.3-40.23,117.92-12.53,237.33,76,327.61,11.63,11.86,31.75,27.66,58.86,42.82,83.27,85.51,179.5,100.74,237.21,100.74,54.13,0,109.6-13.36,148.38-35.74,33.64-19.42,62.56-42.99,86.67-70.45,129.24-71.74,187.45-197.67,168.43-365.7Zm-87.57,11.37c-9.88-73.15-50.49-142.13-107.86-195.47,44.28,27.7,78.62,64.83,104.24,108.58,32.8,56.02,55.19,170.72.9,277.57,11.25-56.54,12.21-120.33,2.71-190.68Zm-13.4,1.81c12.29,91.02,6.38,166.48-13.41,228.46-28.7,39.99-69.93,77.59-127.65,108.98-37.2,20.23-73.09,34.12-107.3,43.06-9.81-.22-19.76-.82-29.82-1.84,27.27-4.53,54.88-12.55,82.55-24.08,114.97-47.91,162.42-133.31,181.98-196.52,24.52-79.24,16.1-156.55,1.44-198.67-43.34-124.52-140.66-196.49-282.68-209.96,54.98.9,102.85,9.72,144.04,25.32,80.27,54.47,139.07,138.05,150.85,225.24Zm-92.78,350.53c-25.68,12.52-62.52,23.34-104.82,27.84,21.1-8.04,42.12-17.7,63-29.05,41.6-22.63,76.98-49.8,105.63-80.76-12.74,27.52-28.61,51.88-47.14,73.31-5.47,2.99-11,5.9-16.67,8.66Zm-438.51-3.27c-23.43-24.3-45.35-53.95-64.86-89.85C27.65,429.51,32.98,315.85,59.2,233.32c48.48-86.36,131.12-153.22,219.68-172.58-7.2,3.53-14.31,7.27-21.32,11.28-57.85,27.7-111.25,78.19-146.65,142.34-61.56,111.54-58.37,236.63,8.77,343.2,27.54,43.72,113.62,126.2,242.83,126.89,12.25,3.03,24.16,5.32,35.54,6.98-18.43,2.55-36.29,3.76-53.45,3.76-75.65,0-138.21-22.44-181.81-46.52Zm201.1,22.29c-74.5-18.83-149-64.12-201.72-153.75-118.88-202.09,4.55-361.03,52.8-399.82,16.71-13.43,33.86-24.95,51.29-34.81,28.63-13.21,58.47-20.53,87.91-20.53.82,0,1.67,0,2.49.02,176.64,2.48,271.63,85.89,312.45,203.17,30.05,86.34,24.34,294.85-175.85,378.27-46.94,19.56-90.11,27.45-129.11,27.45-.08,0-.17,0-.25,0Zm-59.57-6.43c-93.36-20.31-154.02-83.74-173.2-114.18-75.57-119.96-58.5-248.92.26-344.18-6.96,14.25-13.24,29.55-18.38,45.83-27.98,88.71-15.01,182.79,37.51,272.07,43.18,73.4,99.09,116.04,153.8,140.46ZM415.21,37.7c8.22-.57,16.43-.9,24.6-.9,10.95,0,21.83.51,32.61,1.48,6.89,2.78,13.67,5.81,20.38,9-24.41-5.18-50.28-8.37-77.59-9.58ZM132.49,104.6C199.19,40.15,274.76,13.39,348.44,13.39c26.81,0,53.36,3.58,79.14,10.15-33.24,1.1-65.8,6.64-97.14,16.51-11.25,1.04-22.62,2.26-34.18,3.86-78.91,10.92-155.37,58.68-210.75,126.7,16.56-31.2,34.38-53.84,46.97-66.01Zm-27.35,502.51C11.36,511.47-1.83,396.6,31.27,296.46c-11.76,88.54,6.9,180.71,54.78,268.82,11.53,21.21,23.79,40.17,36.56,57.1-7.1-5.55-13.06-10.78-17.47-15.27Zm428.04,105.57c-32.3,18.64-83.55,33.93-141.62,33.93-61.94,0-131.62-17.44-194.31-66.74,40.62,16.47,90.52,28.85,147.34,28.85,34.17,0,68.45-4.47,102.61-13.23,2.53.05,4.99.07,7.39.07,47.81,0,97-8.83,135.56-24-17.42,15.6-36.48,29.3-56.96,41.12Zm117.12-89.25c11.91-17.41,22.21-36.06,30.81-55.99,4.45-10.31,8.4-20.99,11.94-31.96,20.99-29.67,36.61-62.07,46.28-96.82,26.75-96.11,3.89-185.46-23.81-232.77-39.87-68.08-96.05-115.64-167.67-142.56-9.74-6.47-19.74-12.56-30-18.16,138.09,29.62,251.2,133.76,263.75,244.59,18.39,162.47-37.13,268.85-131.3,333.67Z"
></path>
<g>
<path
class="aisuru-cls-3"
d="m337.76,433.01c-10.33,0-19.27-4.44-24.96-12.53-2.25-3.2-1.48-7.61,1.72-9.86,3.2-2.25,7.61-1.48,9.86,1.72,3.41,4.85,9.06,7.11,15.89,6.37,8.42-.91,11.9-8.19,13.22-12.44,3.7-11.89.49-29.93-12.82-41.41-21-18.12-34.06-31.7-24.72-54.3,3.74-9.05,11.42-14.91,21.07-16.08,9.99-1.21,20.54,2.82,25.65,9.79,2.31,3.15,1.63,7.58-1.52,9.89-3.15,2.31-7.58,1.63-9.89-1.52-1.83-2.49-7.3-4.74-12.54-4.11-4.62.56-7.88,3.06-9.69,7.44-4.99,12.08-1.09,19.21,20.89,38.18,18.75,16.19,22,40.55,17.08,56.34-4.01,12.87-13.2,21-25.21,22.31-1.37.15-2.72.22-4.04.22Z"
></path>
<g>
<path
class="aisuru-cls-2"
d="m257.74,326.24v97.5c0,4.01-3.25,7.26-7.26,7.26s-7.26-3.25-7.26-7.26v-41.29h-28.29v41.29c0,4.01-3.25,7.26-7.26,7.26s-7.26-3.25-7.26-7.26v-97.5c0-19.31,9.94-31.35,28.67-31.35s28.68,12.04,28.68,31.35Zm-14.53,42.82v-40.34c0-14.34-4.97-20.07-14.15-20.07s-14.15,5.73-14.15,20.07v40.34h28.29Z"
></path>
<path
class="aisuru-cls-2"
d="m280.67,423.73v-120.44c0-4.01,3.25-7.26,7.26-7.26s7.26,3.25,7.26,7.26v120.44c0,4.01-3.25,7.26-7.26,7.26s-7.26-3.25-7.26-7.26Z"
></path>
<path
class="aisuru-cls-3"
d="m386.29,400.79v-97.5c0-4.01,3.25-7.26,7.26-7.26s7.26,3.25,7.26,7.26v95.01c0,14.34,4.97,20.07,14.15,20.07s14.15-5.73,14.15-20.07v-95.01c0-4.01,3.25-7.26,7.26-7.26s7.26,3.25,7.26,7.26v97.5c0,19.31-9.94,31.35-28.68,31.35s-28.67-12.04-28.67-31.35Z"
></path>
<path
class="aisuru-cls-3"
d="m509.3,370.39c5.35,3.06,10.9,10.9,10.9,22.18v31.16c0,4.01-3.25,7.26-7.26,7.26s-7.26-3.25-7.26-7.26v-27.15c0-10.9-5.74-19.31-15.1-19.31h-10.13v46.45c0,4.01-3.25,7.26-7.26,7.26s-7.26-3.25-7.26-7.26v-115.47c0-8.03,3.44-11.47,11.66-11.47h12.81c19.12,0,30.2,12.62,30.2,35.75v8.99c0,13.19-3.44,22.94-11.28,28.87Zm-2.87-31.92v-2.87c0-17.2-5.16-25.43-17.4-25.43h-8.6v53.72h8.6c12.23,0,17.4-8.22,17.4-25.43Z"
></path>
<path
class="aisuru-cls-3"
d="m542.26,400.79v-97.5c0-4.01,3.25-7.26,7.26-7.26s7.26,3.25,7.26,7.26v95.01c0,14.34,4.97,20.07,14.15,20.07s14.15-5.73,14.15-20.07v-95.01c0-4.01,3.25-7.26,7.26-7.26s7.26,3.25,7.26,7.26v97.5c0,19.31-9.94,31.35-28.68,31.35s-28.67-12.04-28.67-31.35Z"
></path>
</g>
</g>
</svg>
<span>Digital Twin</span> <span>Digital Twin</span>
</a> </a>
<a <a role="button" class="" href="https://cal.nzambello.dev" target="_blank" rel="noopener noreferrer">
role="button" <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar"
class="" ><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"
href="https://cal.nzambello.dev" ></line></svg
target="_blank"
rel="noopener noreferrer"
aria-label="Opens in a new tab/window"
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
aria-hidden="true"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="feather feather-calendar"
><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line
x1="16"
y1="2"
x2="16"
y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line
x1="3"
y1="10"
x2="21"
y2="10"></line></svg
> >
<span>Book a meeting</span> <span>Book a meeting</span>
</a> </a>
@ -145,24 +92,13 @@ import Privacy from '../components/Privacy.astro';
<section class="bio"> <section class="bio">
<p> <p>
I'm passionate about <strong>frontend</strong> and a CSS lover, developing I'm passionate about <strong>frontend</strong> and a CSS lover, developing usable and <strong>accessible</strong> UIs paying attention to performances and <strong>energy consumption</strong>.
usable and <strong>accessible</strong> UIs paying attention to performances
and <strong>energy consumption</strong>.
<br /> <br />
<ul> <ul>
<li>I'm curious and a perfectionist.</li> <li>I'm curious and a perfectionist.</li>
<li> <li>GitHub-addicted, <strong>Plone CMS</strong> maintainer and foundation member, <strong>Open Source</strong> evangelist.</li>
GitHub-addicted, <strong>Plone CMS</strong> maintainer and foundation <li>Advocate of <strong>privacy</strong> and <strong>social rights</strong>.</li>
member, <strong>Open Source</strong> evangelist. <li>Supporter of <strong>Net Neutrality</strong> and Free Software.</li>
</li>
<li>
Advocate of <strong>privacy</strong> and <strong
>social rights</strong
>.
</li>
<li>
Supporter of <strong>Net Neutrality</strong> and Free Software.
</li>
</ul> </ul>
</p> </p>
</section> </section>