Merge branch 'redesign' into i18n-lang-selection

This commit is contained in:
Francesca Giannino
2026-02-25 09:33:14 +01:00
17 changed files with 453 additions and 7 deletions

View File

@@ -0,0 +1 @@
<svg width="114" height="50" viewBox="0 0 114 50" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#a)"><path fill="#0C2A2A" d="M0 0h114v51H0z"/><g clip-path="url(#b)"><path d="M44.445 40.302v-7.695l.153-.16h1.853l.154.16v7.695l-.154.16h-1.853l-.153-.16ZM44.445 17.855v-7.696l.153-.159h1.853l.154.16v7.695l-.154.16h-1.853l-.153-.16ZM38.068 34.892h-.254l-1.275-1.323v-.264l2.388-2.482 1.349.002.18.185v1.4l-2.388 2.482ZM36.54 17.227v-.267l1.274-1.32h.254l2.388 2.479v1.398l-.18.19h-1.349l-2.388-2.48ZM28.154 24.107h10.5l.153.16v1.926l-.153.16h-10.5l-.154-.16v-1.927l.154-.16ZM99.844 24.11l.154.159v1.924l-.154.16H89.19l-.153-.16.77-1.924.154-.16h9.883Z" fill="#32E6E2"/><path d="M49 29.24h-1.853l-.153-.16v-4.502c0-.802-.303-1.423-1.234-1.443a24.2 24.2 0 0 0-1.613.025l-.089.092v5.826l-.153.16h-1.853l-.154-.16v-7.695l.154-.16h4.169c1.62 0 2.933 1.364 2.933 3.046v4.81l-.154.159v.002ZM57.974 25.871l-.154.16h-4.79l-.154.16c0 .32.31 1.283 1.546 1.283.463 0 .926-.16 1.082-.481l.154-.16h1.852l.154.16c-.154.962-.926 2.407-3.245 2.407-2.625 0-3.861-1.924-3.861-4.172 0-2.248 1.236-4.171 3.708-4.171 2.472 0 3.708 1.924 3.708 4.171v.643Zm-2.319-1.605c0-.16-.153-1.283-1.39-1.283-1.235 0-1.389 1.124-1.389 1.283l.154.16h2.472l.153-.16ZM62.298 26.833c0 .322.154.481.464.481h1.39l.153.16v1.604l-.154.16h-1.39c-1.389 0-2.625-.643-2.625-2.407v-3.529l-.154-.16H58.9l-.154-.159v-1.605l.154-.16h1.082l.154-.159v-1.443l.154-.16h1.852l.154.16v1.443l.154.16h1.699l.153.16v1.604l-.153.16h-1.7l-.153.159v3.529l.002.002ZM68.015 29.24h-1.853l-.153-.16V18.172l.153-.16h1.853l.154.16v10.907l-.154.16v.002ZM72.186 19.935h-1.852l-.154-.16v-1.604l.154-.16h1.852l.154.16v1.605l-.154.16Zm0 9.305h-1.852l-.154-.16v-7.7l.154-.159h1.852l.154.16v7.7l-.154.16ZM79.449 18.171v1.605l-.154.16h-1.39c-.309 0-.463.159-.463.48v.643l.154.16h1.546l.153.16v1.604l-.153.16h-1.546l-.154.159v5.774l-.153.16h-1.853l-.154-.16v-5.774l-.153-.16h-1.083l-.153-.159v-1.605l.153-.16h1.083l.153-.159v-.643c0-1.764 1.236-2.407 2.626-2.407h1.39l.153.16-.002.002ZM85.163 29.4c-.619 1.605-1.236 2.567-3.398 2.567h-.773l-.154-.16v-1.605l.154-.16h.773c.773 0 .926-.159 1.082-.64v-.16l-2.472-6.257v-1.604l.154-.16h1.39l.153.16 1.853 5.455h.153l1.853-5.455.154-.16h1.39l.153.16v1.604l-2.472 6.417.007-.002Z" fill="#fff"/></g><path fill="#32E6E2" d="M0 0v51h15V0z"/><path d="M5.518 45.367v-.774H10v.774H5.518Zm0-1.746c0-.44.098-.784.294-1.032.196-.248.474-.372.834-.372.348 0 .622.13.822.39.2.26.3.628.3 1.104l-.336.018c.004-.608.114-1.062.33-1.362.212-.3.524-.45.936-.45.424 0 .748.146.972.438.22.288.33.686.33 1.194v1.242h-.738v-1.152c0-.268-.05-.488-.15-.66a.498.498 0 0 0-.462-.258c-.224 0-.39.088-.498.264-.108.172-.162.39-.162.654v1.146h-.738V43.68c0-.192-.04-.36-.12-.504a.426.426 0 0 0-.396-.216c-.192 0-.33.068-.414.204a.955.955 0 0 0-.126.51v1.116h-.678v-1.17Zm0-2.925v-.774H8.17c.256 0 .472-.04.648-.12a.88.88 0 0 0 .39-.336.926.926 0 0 0 .126-.486.926.926 0 0 0-.126-.486.845.845 0 0 0-.39-.33 1.497 1.497 0 0 0-.648-.126H5.518v-.75h2.664c.604 0 1.068.146 1.392.438.324.288.486.71.486 1.266 0 .56-.162.984-.486 1.272-.324.288-.788.432-1.392.432H5.518Zm0-5.048v-.774H10v.774H5.518Zm0-2.475V32.4H10v.774H5.518Zm3.75-.546v-2.412H10v2.412h-.732Zm-3.69-3.903v-.773H10v.773H5.578Zm-.06 1.41v-3.6h.732v3.6h-.732Zm0-6.98v-.827l3.684-1.056v.318L5.518 20.43v-.888l3.684-1.122v.318L5.518 17.64v-.798L10 18.18v.81l-4.086 1.254v-.438L10 21.097v.756l-4.482 1.302Zm0-7.385v-.774H10v.774H5.518Zm.06-3.283v-.774H10v.774H5.578Zm-.06 1.41v-3.6h.732v3.6h-.732Zm0-4.7v-.773H10v.774H5.518Zm1.572-.545V6.179h.732V8.65H7.09ZM5.518 6.407v-.774H10v.774H5.518Z" fill="#0C2A2A"/></g><rect x="1" y="1" width="112" height="48" rx="3" stroke="#32E6E2" stroke-width="2"/><defs><clipPath id="a"><rect width="114" height="50" rx="4" fill="#fff"/></clipPath><clipPath id="b"><path fill="#fff" d="M28 10h72v30.462H28z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="ARTWORK" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1000 314.4" style="enable-background:new 0 0 1000 314.4;" xml:space="preserve">
<g>
<path d="M271.4,78.1L137,0.5L136.1,0l-0.9,0.5L1.6,77.7l-0.7,0.4L0,78.6v157.2l0.9,0.5l134.4,77.6l0.9,0.5l0.9-0.5l132.6-76.5
l1.8-1l0.9-0.5V78.6L271.4,78.1z M122.7,20.1L89.8,77H24.1L122.7,20.1z M84.4,86.4L69,113.1L22.8,86.4H84.4z M72.4,125.8l54.3,31.4
l-54.3,31.4l-18.1-31.4L72.4,125.8z M64.4,121.2l-15.4,26.7L18.1,94.5L64.4,121.2z M10.7,100.3l32.9,56.9l-32.9,56.9V100.3z
M48.9,166.6l15.4,26.7l-46.2,26.7L48.9,166.6z M69,201.3L84.4,228H22.8L69,201.3z M24.1,237.4h65.7l32.9,56.9L24.1,237.4z
M131.5,290.8l-30.8-53.4h30.8V290.8z M131.5,228H95.2l-18.1-31.4l54.3-31.4V228z M131.5,149.1l-54.3-31.4l18.1-31.4h36.2V149.1z
M131.5,77h-30.8l30.8-53.4V77z M207.9,121.2l46.2-26.7l-30.8,53.4L207.9,121.2z M217.9,157.2l-18.1,31.4l-54.3-31.4l54.3-31.4
L217.9,157.2z M203.2,113.1l-15.4-26.7h61.6L203.2,113.1z M248.1,77h-65.7l-32.8-56.9L248.1,77z M140.8,23.6L171.6,77h-30.8V23.6z
M140.8,86.4H177l18.1,31.4l-54.3,31.4V86.4z M140.8,165.3l54.3,31.4L177,228h-36.2V165.3z M140.8,237.4h30.8l-30.8,53.4V237.4z
M149.6,294.3l32.8-56.9h65.7L149.6,294.3z M187.8,228l15.4-26.7l46.2,26.7H187.8z M207.9,193.2l15.4-26.7l30.8,53.4L207.9,193.2z
M261.6,214.1l-32.9-56.9l32.9-56.9V214.1z"/>
<polygon points="308.4,202.7 372.6,202.7 372.6,208.5 315,208.5 315,257 367.2,257 367.2,263 315,263 315,312.9 308.4,312.9 "/>
<path d="M383.8,279.7c0-19,15.2-34.4,34.5-34.4c19.3,0,34.2,15.4,34.2,34.4c0,19-14.9,34.5-34.2,34.5
C399,314.2,383.8,298.7,383.8,279.7 M446,279.7c0-16.4-11.2-28.7-27.7-28.7c-16.5,0-28,12.3-28,28.7c0,16.4,11.5,28.9,28,28.9
C434.8,308.6,446,296.1,446,279.7"/>
<path d="M469.9,288.5v-41.7h6.3v40.7c0,13.5,6.3,21.1,19,21.1c14.3,0,24.3-9.6,24.3-24.8v-37h6.3v66.2h-6.3l0.2-14.6
c-4.4,9.9-13.5,16-25.1,16C479.8,314.4,469.9,304.7,469.9,288.5"/>
<path d="M543,246.8h6.3l-0.2,14.8c4.4-10,13.6-16.2,25.3-16.2c14.8,0,24.6,9.9,24.6,26.3v41.3h-6.3v-40.2
c0-13.6-6.3-21.6-19.1-21.6c-14.3,0-24.3,9.4-24.3,24.8v37H543V246.8z"/>
<path d="M616.3,279.7c0-19.5,13.8-34.4,32.8-34.4c13.5,0,23.2,7.3,28,17.2v-66.6h6.3v117.1h-6.3l0.3-16.5
c-4.7,10.2-15.6,17.8-28.4,17.8C630.1,314.2,616.3,299.2,616.3,279.7 M677.6,279.7c0-16.4-11-28.7-27.7-28.7
c-16.4,0-26.9,12.3-26.9,28.7c0,16.4,10.5,28.9,26.9,28.9C666.6,308.6,677.6,296.1,677.6,279.7"/>
<path d="M748,271.4c0-14.9-6.8-20.6-17.7-20.6c-10.1,0-16.9,4.2-21.6,11.4l-4.5-3.2c5.5-8.6,14.9-13.6,26.3-13.6
c13.6,0,23.8,8.3,23.8,25.5v42.2H748l0.3-10.2c-4.2,6.3-11.5,11.5-22.9,11.5c-15.1,0-25-7-25-20.3c0-13.1,11.5-19.3,24.2-19.3H748
V271.4z M725.4,279.9c-10.1,0-18.6,3.9-18.6,13.9c0,10.1,6.6,14.8,19.3,14.8c11,0,21.9-6.5,21.9-16.7v-12H725.4z"/>
<path d="M782.5,295.4v-43.3h-10.4v-5.4h10.4v-23.2h6.3v23.2h19.1v5.4h-19.1v43.1c0,9.7,3.4,13.3,8.9,13.3c5.8,0,8.1-2.3,10.5-4.9
l4.1,3.9c-3.2,3.7-7.1,6.6-14.6,6.6C789.3,314.2,782.5,308.9,782.5,295.4"/>
<path d="M829.5,218.2c0-3.1,2.6-5.4,5.4-5.4c2.8,0,5.4,2.3,5.4,5.4c0,3.2-2.6,5.3-5.4,5.3C832.1,223.6,829.5,221.5,829.5,218.2
M831.8,246.8h6.3v66.2h-6.3V246.8z"/>
<path d="M857.1,279.7c0-19,15.2-34.4,34.5-34.4c19.3,0,34.2,15.4,34.2,34.4c0,19-14.9,34.5-34.2,34.5
C872.4,314.2,857.1,298.7,857.1,279.7 M919.4,279.7c0-16.4-11.2-28.7-27.7-28.7c-16.5,0-28,12.3-28,28.7c0,16.4,11.5,28.9,28,28.9
C908.2,308.6,919.4,296.1,919.4,279.7"/>
<path d="M943.9,246.8h6.3l-0.2,14.8c4.4-10,13.6-16.2,25.3-16.2c14.8,0,24.6,9.9,24.6,26.3v41.3h-6.3v-40.2
c0-13.6-6.3-21.6-19.1-21.6c-14.3,0-24.3,9.4-24.3,24.8v37h-6.3V246.8z"/>
<path d="M308.4,73.1c0-41.4,31.8-71.3,71.7-71.3c39.6,0,71.5,29.8,71.5,71.3c0,41.4-31.9,71.3-71.5,71.3
C340.2,144.3,308.4,114.5,308.4,73.1 M429.4,73.1c0-29.6-20.4-51.9-49.4-51.9c-29,0-49.6,22.3-49.6,51.9
c0,29.6,20.6,51.9,49.6,51.9C409,124.9,429.4,102.7,429.4,73.1"/>
<path d="M473.9,56.8h20.8l-0.6,15.9c5.5-10.6,15.7-17.8,30.4-17.8c22,0,39.8,18.6,39.8,44.5c0,25.9-18,44.9-40.2,44.9
c-14.3,0-24.5-6.9-29.4-16.5v58h-20.8V56.8z M543.1,99.4c0-15.5-9.4-26.1-24.3-26.1c-15.1,0-24.9,10.6-24.9,26.1
c0,16.1,9.8,26.7,24.9,26.7C533.8,126.2,543.1,115.6,543.1,99.4"/>
<path d="M635,127c11.2,0,19.4-4.5,24.3-9.2l12,12.7c-8,8-19,13.9-36.1,13.9c-29.4,0-48.4-19-48.4-44.7c0-25.5,20-44.7,45.7-44.7
c29.2,0,45.7,21.6,44.3,51.7h-69C610.3,119,619.3,127,635,127 M656.1,92.3c-1.8-11.6-9-20.2-23.3-20.2c-13.3,0-22.5,7.3-24.9,20.2
H656.1z"/>
<path d="M699.7,56.8h20.6l-0.4,15.9c5.3-11.2,16.1-17.8,29-17.8c19,0,32.1,13.5,32.1,36.7v50.8h-20.6V93.3
c0-12.3-5.7-19.4-17.8-19.4c-13.5,0-22.3,8.2-22.3,22v46.5h-20.6V56.8z"/>
<path d="M803.5,120.9l17.6-10.8c4.9,8.8,10.6,14.9,20.8,14.9c11.6,0,19.2-5.5,19.2-21.6V3.7h21.6v100c0,27.6-16.5,40.6-39.8,40.6
C822.3,144.3,810.1,133.7,803.5,120.9"/>
<path d="M904.9,115.6l17.8-9.8c6.5,10.8,14.9,19.4,31.8,19.4c14.1,0,24.1-7.6,24.1-19c0-12-8.2-17.4-23.3-24.1l-9.2-4.1
c-20.2-9-32.5-19.2-32.5-40.6c0-20.6,15.9-35.3,39-35.3C971,2,983.5,9,991.8,23.9l-16.9,10.4c-5.3-9.2-11.4-13.5-22.3-13.5
c-11,0-18,6.7-18,16.1c0,10.4,5.9,15.1,20,21.2l9,4.1c23.7,10.4,36.3,21.4,36.3,43.7c0,24.3-19,38.4-45.1,38.4
C928.5,144.3,912.6,131.3,904.9,115.6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="ARTWORK" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1000 314.4" style="enable-background:new 0 0 1000 314.4;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<g>
<path class="st0" d="M271.4,78.1L137,0.5L136.1,0l-0.9,0.5L1.6,77.7l-0.7,0.4L0,78.6v157.2l0.9,0.5l134.4,77.6l0.9,0.5l0.9-0.5
l132.6-76.5l1.8-1l0.9-0.5V78.6L271.4,78.1z M122.7,20.1L89.8,77H24.1L122.7,20.1z M84.4,86.4L69,113.1L22.8,86.4H84.4z
M72.4,125.8l54.3,31.4l-54.3,31.4l-18.1-31.4L72.4,125.8z M64.4,121.2l-15.4,26.7L18.1,94.5L64.4,121.2z M10.7,100.3l32.9,56.9
l-32.9,56.9V100.3z M48.9,166.6l15.4,26.7l-46.2,26.7L48.9,166.6z M69,201.3L84.4,228H22.8L69,201.3z M24.1,237.4h65.7l32.9,56.9
L24.1,237.4z M131.5,290.8l-30.8-53.4h30.8V290.8z M131.5,228H95.2l-18.1-31.4l54.3-31.4V228z M131.5,149.1l-54.3-31.4l18.1-31.4
h36.2V149.1z M131.5,77h-30.8l30.8-53.4V77z M207.9,121.2l46.2-26.7l-30.8,53.4L207.9,121.2z M217.9,157.2l-18.1,31.4l-54.3-31.4
l54.3-31.4L217.9,157.2z M203.2,113.1l-15.4-26.7h61.6L203.2,113.1z M248.1,77h-65.7l-32.8-56.9L248.1,77z M140.8,23.6L171.6,77
h-30.8V23.6z M140.8,86.4H177l18.1,31.4l-54.3,31.4V86.4z M140.8,165.3l54.3,31.4L177,228h-36.2V165.3z M140.8,237.4h30.8
l-30.8,53.4V237.4z M149.6,294.3l32.8-56.9h65.7L149.6,294.3z M187.8,228l15.4-26.7l46.2,26.7H187.8z M207.9,193.2l15.4-26.7
l30.8,53.4L207.9,193.2z M261.6,214.1l-32.9-56.9l32.9-56.9V214.1z"/>
<polygon class="st0" points="308.4,202.7 372.6,202.7 372.6,208.5 315,208.5 315,257 367.2,257 367.2,263 315,263 315,312.9
308.4,312.9 "/>
<path class="st0" d="M383.8,279.7c0-19,15.2-34.4,34.5-34.4c19.3,0,34.2,15.4,34.2,34.4c0,19-14.9,34.5-34.2,34.5
C399,314.2,383.8,298.7,383.8,279.7 M446,279.7c0-16.4-11.2-28.7-27.7-28.7c-16.5,0-28,12.3-28,28.7c0,16.4,11.5,28.9,28,28.9
C434.8,308.6,446,296.1,446,279.7"/>
<path class="st0" d="M469.9,288.5v-41.7h6.3v40.7c0,13.5,6.3,21.1,19,21.1c14.3,0,24.3-9.6,24.3-24.8v-37h6.3v66.2h-6.3l0.2-14.6
c-4.4,9.9-13.5,16-25.1,16C479.8,314.4,469.9,304.7,469.9,288.5"/>
<path class="st0" d="M543,246.8h6.3l-0.2,14.8c4.4-10,13.6-16.2,25.3-16.2c14.8,0,24.6,9.9,24.6,26.3v41.3h-6.3v-40.2
c0-13.6-6.3-21.6-19.1-21.6c-14.3,0-24.3,9.4-24.3,24.8v37H543V246.8z"/>
<path class="st0" d="M616.3,279.7c0-19.5,13.8-34.4,32.8-34.4c13.5,0,23.2,7.3,28,17.2v-66.6h6.3v117.1h-6.3l0.3-16.5
c-4.7,10.2-15.6,17.8-28.4,17.8C630.1,314.2,616.3,299.2,616.3,279.7 M677.6,279.7c0-16.4-11-28.7-27.7-28.7
c-16.4,0-26.9,12.3-26.9,28.7c0,16.4,10.5,28.9,26.9,28.9C666.6,308.6,677.6,296.1,677.6,279.7"/>
<path class="st0" d="M748,271.4c0-14.9-6.8-20.6-17.7-20.6c-10.1,0-16.9,4.2-21.6,11.4l-4.5-3.2c5.5-8.6,14.9-13.6,26.3-13.6
c13.6,0,23.8,8.3,23.8,25.5v42.2H748l0.3-10.2c-4.2,6.3-11.5,11.5-22.9,11.5c-15.1,0-25-7-25-20.3c0-13.1,11.5-19.3,24.2-19.3H748
V271.4z M725.4,279.9c-10.1,0-18.6,3.9-18.6,13.9c0,10.1,6.6,14.8,19.3,14.8c11,0,21.9-6.5,21.9-16.7v-12H725.4z"/>
<path class="st0" d="M782.5,295.4v-43.3h-10.4v-5.4h10.4v-23.2h6.3v23.2h19.1v5.4h-19.1v43.1c0,9.7,3.4,13.3,8.9,13.3
c5.8,0,8.1-2.3,10.5-4.9l4.1,3.9c-3.2,3.7-7.1,6.6-14.6,6.6C789.3,314.2,782.5,308.9,782.5,295.4"/>
<path class="st0" d="M829.5,218.2c0-3.1,2.6-5.4,5.4-5.4c2.8,0,5.4,2.3,5.4,5.4c0,3.2-2.6,5.3-5.4,5.3
C832.1,223.6,829.5,221.5,829.5,218.2 M831.8,246.8h6.3v66.2h-6.3V246.8z"/>
<path class="st0" d="M857.1,279.7c0-19,15.2-34.4,34.5-34.4c19.3,0,34.2,15.4,34.2,34.4c0,19-14.9,34.5-34.2,34.5
C872.4,314.2,857.1,298.7,857.1,279.7 M919.4,279.7c0-16.4-11.2-28.7-27.7-28.7c-16.5,0-28,12.3-28,28.7c0,16.4,11.5,28.9,28,28.9
C908.2,308.6,919.4,296.1,919.4,279.7"/>
<path class="st0" d="M943.9,246.8h6.3l-0.2,14.8c4.4-10,13.6-16.2,25.3-16.2c14.8,0,24.6,9.9,24.6,26.3v41.3h-6.3v-40.2
c0-13.6-6.3-21.6-19.1-21.6c-14.3,0-24.3,9.4-24.3,24.8v37h-6.3V246.8z"/>
<path class="st0" d="M308.4,73.1c0-41.4,31.8-71.3,71.7-71.3c39.6,0,71.5,29.8,71.5,71.3c0,41.4-31.9,71.3-71.5,71.3
C340.2,144.3,308.4,114.5,308.4,73.1 M429.4,73.1c0-29.6-20.4-51.9-49.4-51.9c-29,0-49.6,22.3-49.6,51.9
c0,29.6,20.6,51.9,49.6,51.9C409,124.9,429.4,102.7,429.4,73.1"/>
<path class="st0" d="M473.9,56.8h20.8l-0.6,15.9c5.5-10.6,15.7-17.8,30.4-17.8c22,0,39.8,18.6,39.8,44.5c0,25.9-18,44.9-40.2,44.9
c-14.3,0-24.5-6.9-29.4-16.5v58h-20.8V56.8z M543.1,99.4c0-15.5-9.4-26.1-24.3-26.1c-15.1,0-24.9,10.6-24.9,26.1
c0,16.1,9.8,26.7,24.9,26.7C533.8,126.2,543.1,115.6,543.1,99.4"/>
<path class="st0" d="M635,127c11.2,0,19.4-4.5,24.3-9.2l12,12.7c-8,8-19,13.9-36.1,13.9c-29.4,0-48.4-19-48.4-44.7
c0-25.5,20-44.7,45.7-44.7c29.2,0,45.7,21.6,44.3,51.7h-69C610.3,119,619.3,127,635,127 M656.1,92.3c-1.8-11.6-9-20.2-23.3-20.2
c-13.3,0-22.5,7.3-24.9,20.2H656.1z"/>
<path class="st0" d="M699.7,56.8h20.6l-0.4,15.9c5.3-11.2,16.1-17.8,29-17.8c19,0,32.1,13.5,32.1,36.7v50.8h-20.6V93.3
c0-12.3-5.7-19.4-17.8-19.4c-13.5,0-22.3,8.2-22.3,22v46.5h-20.6V56.8z"/>
<path class="st0" d="M803.5,120.9l17.6-10.8c4.9,8.8,10.6,14.9,20.8,14.9c11.6,0,19.2-5.5,19.2-21.6V3.7h21.6v100
c0,27.6-16.5,40.6-39.8,40.6C822.3,144.3,810.1,133.7,803.5,120.9"/>
<path class="st0" d="M904.9,115.6l17.8-9.8c6.5,10.8,14.9,19.4,31.8,19.4c14.1,0,24.1-7.6,24.1-19c0-12-8.2-17.4-23.3-24.1
l-9.2-4.1c-20.2-9-32.5-19.2-32.5-40.6c0-20.6,15.9-35.3,39-35.3C971,2,983.5,9,991.8,23.9l-16.9,10.4
c-5.3-9.2-11.4-13.5-22.3-13.5c-11,0-18,6.7-18,16.1c0,10.4,5.9,15.1,20,21.2l9,4.1c23.7,10.4,36.3,21.4,36.3,43.7
c0,24.3-19,38.4-45.1,38.4C928.5,144.3,912.6,131.3,904.9,115.6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,128 @@
---
/**
* Footer Component
*
* Main site footer with copyright and additional information
*/
import './Footer.css';
import { Icon } from 'astro-icon/components';
import { BodyMd, Col, Container, Grid } from '@/components/primitives';
---
<footer class="footer">
<div class="footer-top">
<Container>
<BodyMd color="secondary" center as="p">
Copyright <a href="https://openjsf.org">OpenJS Foundation</a> and Express.js contributors. All
rights reserved. The <a href="https://openjsf.org">OpenJS Foundation</a> has registered trademarks
and uses trademarks. For a list of trademarks of the <a href="https://openjsf.org"
>OpenJS Foundation</a
>, please see our <a href="https://trademark-policy.openjsf.org">Trademark Policy</a> and <a
href="https://trademark-list.openjsf.org">Trademark List</a
>. Trademarks and logos not indicated on the <a href="https://trademark-list.openjsf.org"
>list of OpenJS Foundation trademarks</a
> are trademarks&trade; or registered&reg; trademarks of their respective holders. Use of them
does not imply any affiliation with or endorsement by them.
</BodyMd>
<ul class="footer__links">
<li><a href="https://openjsf.org">The OpenJS Foundation</a></li>
<li><a href="https://terms-of-use.openjsf.org">Terms of Use</a></li>
<li><a href="https://privacy-policy.openjsf.org">Privacy Policy</a></li>
<li><a href="https://bylaws.openjsf.org">Bylaws</a></li>
<li><a href="https://code-of-conduct.openjsf.org">Code of Conduct</a></li>
<li><a href="https://trademark-policy.openjsf.org">Trademark Policy</a></li>
<li><a href="https://trademark-list.openjsf.org">Trademark List</a></li>
<li><a href="https://www.linuxfoundation.org/cookies">Cookie Policy</a></li>
</ul>
</Container>
</div>
<div class="footer-bottom">
<Container>
<Grid gap="2" align="center">
<Col xs={12} md={6} lg={6}>
<ul class="footer__logo">
<li>
<a href="https://openjsf.org" aria-label="OpenJS Foundation" target="_blank">
<img
class="footer-logo-light"
src="/openjs-logo-black.svg"
alt="OpenJS Foundation Logo"
width="80"
height="auto"
loading="lazy"
/>
<img
class="footer-logo-dark"
src="/openjs-logo-white.svg"
alt="OpenJS Foundation Logo"
width="80"
height="auto"
loading="lazy"
/>
</a>
</li>
<li>
<a
href="https://www.netlify.com"
aria-label="Preview Deploys by Netlify"
target="_blank"
>
<img
src="/netlify-logo.svg"
alt="Netlify Logo"
width="80"
height="auto"
loading="lazy"
/>
</a>
</li>
</ul>
</Col>
<Col xs={12} md={6} lg={6}>
<ul class="footer__socials">
<li>
<a
href="https://github.com/expressjs/express"
aria-label="Go to the repository on GitHub"
>
<Icon name="github" />
</a>
</li>
<li>
<a
href="https://www.youtube.com/channel/UCYjxjAeH6TRik9Iwy5nXw7g"
aria-label="Go to the channel on Youtube"
target="_blank"
>
<Icon name="youtube" />
</a>
</li>
<li>
<a href="https://x.com/UseExpressJS" aria-label="Go to the X account">
<Icon name="x" />
</a>
</li>
<li>
<a href="https://slack-invite.openjsf.org" aria-label="Join Slack group">
<Icon name="slack" />
</a>
</li>
<li>
<a href="https://opencollective.com/express" aria-label="Go to Open Collective">
<Icon name="open-collective" />
</a>
</li>
<li>
<a
href="https://bsky.app/profile/expressjs.bsky.social"
aria-label="Go to the Bluesky"
>
<Icon name="bsky" />
</a>
</li>
</ul>
</Col>
</Grid>
</Container>
</div>
</footer>

View File

@@ -0,0 +1,126 @@
@layer patterns {
.footer {
background-color: var(--color-bg-primary);
text-align: center;
color: var(--color-text-secondary);
border-top: 1px solid var(--color-border-secondary);
a {
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
.footer__links {
list-style: none;
padding: 0;
margin: var(--space-4) 0;
li {
display: inline;
margin: 0 var(--space-2);
}
a {
color: var(--color-text-secondary);
font-size: var(--font-size-sm);
}
}
.footer-top {
padding: var(--space-6) 0;
}
.footer-bottom {
background-color: var(--color-bg-secondary);
padding: var(--space-6) 0;
}
.footer__logo {
list-style: none;
padding: 0;
margin: 0;
@media (--xs-only) {
li {
display: block;
text-align: center;
a {
display: inline-block;
padding: var(--space-4) 0;
}
}
}
@media (--md-up) {
display: flex;
align-items: center;
gap: var(--space-8);
}
}
.footer__socials {
list-style: none;
padding: 0;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
gap: var(--space-8);
li {
display: inline;
}
svg {
color: var(--color-icon-primary);
}
svg path {
fill: currentColor;
}
@media (--xs-only) {
padding: var(--space-4) 0 var(--space-6);
}
@media (--md-up) {
justify-content: right;
gap: var(--space-10);
}
}
.footer-logo-dark {
display: none;
}
@media (prefers-color-scheme: dark) {
.footer-logo-light {
display: none;
}
.footer-logo-dark {
display: block;
}
}
[data-theme='dark'] .footer-logo-light {
display: none;
}
[data-theme='dark'] .footer-logo-dark {
display: block;
}
[data-theme='light'] .footer-logo-light {
display: block;
}
[data-theme='light'] .footer-logo-dark {
display: none;
}
}

View File

@@ -11,3 +11,4 @@ export { default as ThemeSwitcher } from './ThemeSwitcher/ThemeSwitcher.astro';
export { default as VersionSwitcher } from './VersionSwitcher/VersionSwitcher.astro';
export { default as SearchTrigger } from './SearchTrigger/SearchTrigger.astro';
export { default as LanguageSelect } from './LanguageSelect/LanguageSelect.astro';
export { default as Footer } from './Footer/Footer.astro';

View File

@@ -6,7 +6,7 @@
* Use with <Col> children for responsive column layouts.
*
* @example
* <Grid gap="4">
* <Grid gap="4" align="center" justify="center">
* <Col xs={12} md={6} lg={4}>Content</Col>
* </Grid>
*/
@@ -17,7 +17,7 @@ import type { GridProps } from './types';
type Props = GridProps & HTMLAttributes<'div'>;
const { gap, rowGap, columnGap, class: className, ...rest } = Astro.props;
const { gap, rowGap, columnGap, align, justify, class: className, ...rest } = Astro.props;
---
<div
@@ -26,6 +26,8 @@ const { gap, rowGap, columnGap, class: className, ...rest } = Astro.props;
gap && `grid--gap-${gap}`,
rowGap && `grid--row-gap-${rowGap}`,
columnGap && `grid--col-gap-${columnGap}`,
align && `grid--align-${align}`,
justify && `grid--justify-${justify}`,
className,
]}
{...rest}

View File

@@ -102,6 +102,43 @@
column-gap: var(--space-16);
}
/* Align Items */
.grid--align-start {
align-items: start;
}
.grid--align-center {
align-items: center;
}
.grid--align-end {
align-items: end;
}
.grid--align-stretch {
align-items: stretch;
}
.grid--align-baseline {
align-items: baseline;
}
/* Justify Items */
.grid--justify-start {
justify-items: start;
}
.grid--justify-center {
justify-items: center;
}
.grid--justify-end {
justify-items: end;
}
.grid--justify-between {
justify-items: stretch;
}
.grid--justify-around {
justify-items: stretch;
}
.grid--justify-evenly {
justify-items: stretch;
}
/* ============================================
COL COMPONENT (Responsive Column Spans)
============================================ */

View File

@@ -13,6 +13,10 @@ export interface GridProps {
rowGap?: GapSize;
/** Horizontal gap override */
columnGap?: GapSize;
/** Align items on block axis */
align?: FlexAlign;
/** Justify items on inline axis */
justify?: FlexJustify;
}
// Col

3
astro/src/icons/bsky.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.51447 0.697231C3.84439 1.70978 5.27487 3.76281 5.80007 4.86458C6.32531 3.76289 7.75571 1.70976 9.08567 0.697231C10.0453 -0.0333841 11.6001 -0.598692 11.6001 1.20015C11.6001 1.5594 11.397 4.21806 11.2778 4.64968C10.8638 6.1503 9.35497 6.53304 8.01285 6.30139C10.3588 6.70632 10.9556 8.04759 9.66679 9.38887C7.21899 11.9362 6.14859 8.74973 5.87419 7.93324C5.82391 7.78356 5.80038 7.71353 5.80003 7.77307C5.79969 7.71353 5.77616 7.78356 5.72588 7.93324C5.4516 8.74973 4.38122 11.9363 1.93328 9.38887C0.6444 8.04759 1.24118 6.70624 3.58722 6.30139C2.24506 6.53304 0.73622 6.1503 0.32222 4.64968C0.203096 4.21802 0 1.55936 0 1.20015C0 -0.598692 1.55484 -0.0333841 2.5144 0.697231H2.51447Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 822 B

View File

@@ -0,0 +1,3 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.00496 0C2.68437 0 0 2.70416 0 6.04958C0 8.72375 1.71997 10.9874 4.10603 11.7886C4.40435 11.8488 4.51362 11.6584 4.51362 11.4982C4.51362 11.358 4.50378 10.8773 4.50378 10.3764C2.83335 10.737 2.4855 9.65522 2.4855 9.65522C2.21705 8.9541 1.81929 8.7739 1.81929 8.7739C1.27255 8.40331 1.85911 8.40331 1.85911 8.40331C2.46558 8.44338 2.78381 9.02429 2.78381 9.02429C3.32059 9.94567 4.18555 9.68533 4.53353 9.52505C4.58319 9.13442 4.74237 8.864 4.91138 8.7138C3.57908 8.57355 2.17734 8.05275 2.17734 5.72902C2.17734 5.06797 2.4158 4.52714 2.79365 4.10652C2.73403 3.95631 2.5252 3.33522 2.85338 2.50393C2.85338 2.50393 3.36042 2.34365 4.50366 3.12491C4.99313 2.99248 5.4979 2.92512 6.00496 2.92455C6.512 2.92455 7.02886 2.99474 7.50614 3.12491C8.64951 2.34365 9.15655 2.50393 9.15655 2.50393C9.48473 3.33522 9.27577 3.95631 9.21616 4.10652C9.60396 4.52714 9.83259 5.06797 9.83259 5.72902C9.83259 8.05275 8.43085 8.56347 7.0886 8.7138C7.30739 8.90407 7.49619 9.26459 7.49619 9.83554C7.49619 10.6468 7.48635 11.2979 7.48635 11.4981C7.48635 11.6584 7.59575 11.8488 7.89395 11.7887C10.28 10.9873 12 8.72375 12 6.04958C12.0098 2.70416 9.3156 0 6.00496 0Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,4 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.81465 5.98423C9.81465 6.73985 9.59527 7.46454 9.21877 8.06304L10.7555 9.60616C11.5081 8.59835 11.9786 7.33854 11.9786 5.98404C11.9786 4.62954 11.508 3.36991 10.7555 2.36191L9.21877 3.90504C9.59509 4.50354 9.81465 5.19673 9.81465 5.98423Z" fill="currentColor"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.99006 9.82687C3.88875 9.82687 2.16394 8.09437 2.16394 5.98444C2.16394 3.8745 3.88894 2.142 5.99006 2.142C6.77419 2.142 7.46381 2.3625 8.06006 2.772L9.59681 1.22887C8.59312 0.4725 7.33875 0 5.99006 0C2.69681 0 0 2.67712 0 6.01575C0 9.35437 2.69681 12 5.99006 12C7.37006 12 8.62444 11.5275 9.62812 10.7719L8.09137 9.22875C7.4955 9.60675 6.77419 9.82687 5.99006 9.82687Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 859 B

View File

@@ -0,0 +1,6 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.53036 7.58601C2.53036 8.28346 1.96713 8.84715 1.27026 8.84715C0.573391 8.84715 0.010166 8.28346 0.010166 7.58601C0.010166 6.88857 0.573391 6.32487 1.27026 6.32487H2.53036V7.58601ZM3.16041 7.58601C3.16041 6.88857 3.72363 6.32487 4.4205 6.32487C5.11738 6.32487 5.6806 6.88857 5.6806 7.58601V10.7389C5.6806 11.4363 5.11738 12 4.4205 12C3.72363 12 3.16041 11.4363 3.16041 10.7389V7.58601Z" fill="currentColor"/>
<path d="M4.41988 2.52228C3.72301 2.52228 3.15979 1.95859 3.15979 1.26114C3.15979 0.563691 3.72301 0 4.41988 0C5.11676 0 5.67998 0.563691 5.67998 1.26114V2.52228H4.41988ZM4.41988 3.1624C5.11676 3.1624 5.67998 3.72609 5.67998 4.42354C5.67998 5.12099 5.11676 5.68468 4.41988 5.68468H1.2601C0.563225 5.68468 0 5.12099 0 4.42354C0 3.72609 0.563225 3.1624 1.2601 3.1624H4.41988Z" fill="currentColor"/>
<path d="M9.47026 4.42354C9.47026 3.72609 10.0335 3.1624 10.7304 3.1624C11.4272 3.1624 11.9905 3.72609 11.9905 4.42354C11.9905 5.12099 11.4272 5.68468 10.7304 5.68468H9.47026V4.42354ZM8.84021 4.42354C8.84021 5.12099 8.27699 5.68468 7.58012 5.68468C6.88324 5.68468 6.32002 5.12099 6.32002 4.42354V1.26114C6.32002 0.563691 6.88324 0 7.58012 0C8.27699 0 8.84021 0.563691 8.84021 1.26114V4.42354Z" fill="currentColor"/>
<path d="M7.58012 9.47772C8.27699 9.47772 8.84021 10.0414 8.84021 10.7389C8.84021 11.4363 8.27699 12 7.58012 12C6.88324 12 6.32002 11.4363 6.32002 10.7389V9.47772H7.58012ZM7.58012 8.84715C6.88324 8.84715 6.32002 8.28346 6.32002 7.58601C6.32002 6.88857 6.88324 6.32487 7.58012 6.32487H10.7399C11.4368 6.32487 12 6.88857 12 7.58601C12 8.28346 11.4368 8.84715 10.7399 8.84715H7.58012Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

3
astro/src/icons/x.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="11" height="10" viewBox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.66314 0H10.3499L6.66486 4.21175L11 9.94298H7.60562L4.94702 6.46702L1.90497 9.94298H0.217216L4.15872 5.43805L0 0H3.48055L5.8837 3.17717L8.66314 0ZM8.07115 8.93339H9.00579L2.9727 0.956566H1.96973L8.07115 8.93339Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 349 B

View File

@@ -0,0 +1,3 @@
<svg width="12" height="9" viewBox="0 0 12 9" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.8805 1.82109C11.8805 1.82109 11.7633 0.99375 11.4023 0.630469C10.9453 0.152344 10.4344 0.15 10.2 0.121875C8.52188 -6.70552e-08 6.00234 0 6.00234 0H5.99766C5.99766 0 3.47813 -6.70552e-08 1.8 0.121875C1.56563 0.15 1.05469 0.152344 0.597656 0.630469C0.236719 0.99375 0.121875 1.82109 0.121875 1.82109C0.121875 1.82109 0 2.79375 0 3.76406V4.67344C0 5.64375 0.119531 6.61641 0.119531 6.61641C0.119531 6.61641 0.236719 7.44375 0.595312 7.80703C1.05234 8.28516 1.65234 8.26875 1.91953 8.32031C2.88047 8.41172 6 8.43985 6 8.43985C6 8.43985 8.52188 8.43516 10.2 8.31563C10.4344 8.2875 10.9453 8.28516 11.4023 7.80703C11.7633 7.44375 11.8805 6.61641 11.8805 6.61641C11.8805 6.61641 12 5.64609 12 4.67344V3.76406C12 2.79375 11.8805 1.82109 11.8805 1.82109ZM4.76016 5.77734V2.40469L8.00156 4.09688L4.76016 5.77734Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 940 B

View File

@@ -1,7 +1,7 @@
---
import '@styles/main.css';
import { Flex, FlexItem } from '@components/primitives';
import { Sidebar } from '@/components/patterns';
import { Footer, Sidebar } from '@/components/patterns';
import { Header } from '@/components/patterns';
interface Props {
@@ -54,12 +54,15 @@ const {
</head>
<body>
<Header />
<Flex gap="8">
<Flex>
<Sidebar />
<FlexItem grow>
<main id="main-content">
<slot />
</main>
<Flex direction="column" class="h-full">
<main id="main-content">
<slot />
</main>
<Footer />
</Flex>
</FlexItem>
</Flex>
</body>

View File

@@ -231,7 +231,11 @@ ol {
}
main {
flex-grow: 1;
padding-bottom: var(--space-16);
@media (--md-up) {
padding-top: var(--space-16);
padding-bottom: var(--space-32);
}
}