first draft
All checks were successful
/ build (pull_request) Successful in 53s

This commit is contained in:
kritzl 2026-10-04 14:19:19 +02:00
commit 975f2cd9bc
Signed by: kritzl
SSH key fingerprint: SHA256:5BmINP9VjZWaUk5Z+2CTut1KFhwLtd0ZynMekKbtViM
26 changed files with 1303 additions and 993 deletions

View file

@ -16,6 +16,7 @@
"@tailwindcss/typography": "^0.5.20",
"@tailwindcss/vite": "^4.3.3",
"astro": "^7.3.5",
"sharp": "^0.35.5",
"tailwindcss": "^4.3.3"
},
"devDependencies": {

10
pnpm-lock.yaml generated
View file

@ -20,6 +20,9 @@ importers:
astro:
specifier: ^7.3.5
version: 7.3.5(jiti@2.7.0)
sharp:
specifier: ^0.35.5
version: 0.35.5
tailwindcss:
specifier: ^4.3.3
version: 4.3.3
@ -1884,8 +1887,7 @@ snapshots:
'@esbuild/win32-x64@0.28.2':
optional: true
'@img/colour@1.1.0':
optional: true
'@img/colour@1.1.0': {}
'@img/sharp-darwin-arm64@0.35.5':
optionalDependencies:
@ -2833,8 +2835,7 @@ snapshots:
sax@1.6.1: {}
semver@7.8.5:
optional: true
semver@7.8.5: {}
sharp@0.35.5:
dependencies:
@ -2867,7 +2868,6 @@ snapshots:
'@img/sharp-win32-arm64': 0.35.5
'@img/sharp-win32-ia32': 0.35.5
'@img/sharp-win32-x64': 0.35.5
optional: true
shiki@4.4.3:
dependencies:

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 363 KiB

After

Width:  |  Height:  |  Size: 363 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before After
Before After

View file

@ -0,0 +1,287 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 232.51806 82.699088"
width="232.51807pt"
height="82.699089pt"
version="1.1"
id="svg1734"
sodipodi:docname="social.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1734"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt">
<inkscape:page
x="-1.7632415e-38"
y="0"
width="232.51807"
height="82.699089"
id="page2"
margin="0"
bleed="0" />
</sodipodi:namedview>
<g
transform="matrix(0.8,0,0,0.8,5.7736079,0.92522993)"
id="g1719">
<g
transform="matrix(1,0,0,-1,-7.2170079,67.464567)"
id="g1703">
<use
xlink:href="#g235EE6022D045F3B1180C0D88D8B0DDC"
x="0"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1702" />
<use
xlink:href="#g39F49CB5E19E9CF4058E21CAA6301665"
x="69.777641"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1703" />
</g>
<g
transform="matrix(1,0,0,-1,91.672441,67.464567)"
id="g1707">
<use
xlink:href="#g3318BDD63D77FA2107464675D9F5DCCF"
x="0"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1704" />
<use
xlink:href="#gBDFC9AD08B6F962467A9573CE1CD1760"
x="51.550865"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1705" />
<use
xlink:href="#gC891A3D19973D46EDEF95A9D0B4D9335"
x="96.837166"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1706" />
<use
xlink:href="#gA5D8B46AC0A159D14552D0EB9DCE384F"
x="142.70174"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1707" />
</g>
<g
transform="matrix(1,0,0,-1,-2.1174803,101.79213)"
id="g1711">
<use
xlink:href="#g1205DB5C1EB00AB1DA1D0763B3AB3A8A"
x="0"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1708" />
<use
xlink:href="#g68238015C7D207E5078F5F81501F2AA0"
x="21.564568"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1709" />
<use
xlink:href="#g1205DB5C1EB00AB1DA1D0763B3AB3A8A"
x="45.113384"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1710" />
<use
xlink:href="#g5EBC7036348A474003124BFFDC93DE13"
x="66.677956"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1711" />
</g>
<g
transform="matrix(1,0,0,-1,98.23748,101.79213)"
id="g1718">
<use
xlink:href="#g8E6AC688CFBB70D6CEB1963ECE61AA69"
x="0"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1712" />
<use
xlink:href="#g6B3B76D2B8234CCD7F07A6CD6863832C"
x="26.844095"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1713" />
<use
xlink:href="#gD10F42B71E2B533345799A04029B23B5"
x="52.944096"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1714" />
<use
xlink:href="#gC65321C9DA712852DAE01AC9A48A0B93"
x="84.748817"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1715" />
<use
xlink:href="#gA45DD5D235CAC36E29E13763D4715334"
x="110.84882"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1716" />
<use
xlink:href="#g55E1EBD5D776423A04474C777635C9A3"
x="138.01181"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1717" />
<use
xlink:href="#g53690710312B481980D246EB3348FCF5"
x="164.14725"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1718" />
</g>
</g>
<defs
id="defs1734">
<symbol
id="g235EE6022D045F3B1180C0D88D8B0DDC"
overflow="visible">
<path
d="M 0,0 M 7.2283465,67.464567 V 0 H 31.708346 c 24.769134,0 33.346772,18.408189 33.346772,33.732283 0,16.866142 -9.348661,33.732284 -32.96126,33.732284 z M 33.250394,13.974803 H 21.877795 v 39.611339 h 12.432756 c 10.697953,0 15.516851,-10.312441 15.516851,-19.853859 0,-9.155905 -4.529764,-19.75748 -16.577008,-19.75748 z"
id="path1719" />
</symbol>
<symbol
id="g39F49CB5E19E9CF4058E21CAA6301665"
overflow="visible">
<path
d="M 0,0 M 7.7102362,0 H 22.359685 V 67.464567 H 7.7102362 Z"
id="path1720" />
</symbol>
<symbol
id="g3318BDD63D77FA2107464675D9F5DCCF"
overflow="visible">
<path
d="M 0,0 M 10.408819,67.464567 V 0 h 16.287874 c 23.99811,0 30.551811,18.215433 30.551811,33.732283 0,16.673386 -7.613858,33.732284 -30.166299,33.732284 z M 26.889449,4.8188976 H 15.51685 V 62.742047 h 12.143622 c 17.733544,0 24.190867,-14.553071 24.190867,-29.009764 0,-13.492913 -5.493544,-28.9133854 -24.96189,-28.9133854 z"
id="path1721" />
</symbol>
<symbol
id="gBDFC9AD08B6F962467A9573CE1CD1760"
overflow="visible">
<path
d="m 0,0 m 51.273071,0 h 5.300787 L 33.154016,67.464567 H 29.298898 L 6.071811,0 h 5.397165 l 6.168189,18.215433 H 44.912126 Z M 43.466457,22.648819 H 19.082835 l 9.541417,27.853228 c 0.48189,1.44567 2.120315,6.360945 2.602205,8.48126 0.481889,-2.120315 2.120315,-6.842835 2.698582,-8.48126 z"
id="path1722" />
</symbol>
<symbol
id="gC891A3D19973D46EDEF95A9D0B4D9335"
overflow="visible">
<path
d="m 0,0 m 26.793071,0 h 5.108031 V 26.793071 L 53.875276,67.464567 H 48.47811 L 29.298898,31.515591 10.408819,67.464567 H 4.8188976 L 26.793071,26.600315 Z"
id="path1723" />
</symbol>
<symbol
id="gA5D8B46AC0A159D14552D0EB9DCE384F"
overflow="visible">
<path
d="m 0,0 m 28.624252,-1.1565354 c 11.950866,0 20.432126,6.6500787 20.432126,18.3118114 0,12.432755 -10.119685,18.119055 -18.890079,21.588661 -8.192126,3.27685 -16.095118,6.746457 -16.095118,14.649449 0,6.457323 5.011654,10.505197 13.492913,10.505197 6.939213,0 11.565355,-3.180473 13.589292,-7.710237 l 4.818897,1.542048 c -2.023937,6.457323 -8.963149,10.890708 -18.119055,10.890708 -12.143622,0 -19.0828343,-6.746456 -19.0828343,-15.227716 0,-11.179843 10.0233073,-15.99874 19.2755903,-19.564725 8.192126,-3.084094 15.709607,-7.99937 15.709607,-16.769763 0,-8.7703941 -5.879056,-13.4929137 -15.034961,-13.4929137 -7.902992,0 -13.974803,4.4333858 -16.96252,10.9870867 L 6.7464567,12.818268 C 9.7341732,5.3007874 17.733543,-1.1565354 28.624252,-1.1565354 Z"
id="path1724" />
</symbol>
<symbol
id="g1205DB5C1EB00AB1DA1D0763B3AB3A8A"
overflow="visible">
<path
d="M 0,0 M 2.1614173,0 H 19.38189 V 5.1732283 H 8.4685039 c 0.8149607,1.8425197 2.1259841,2.8700788 5.4566931,4.8543307 3.047244,1.771654 5.244094,3.57874 5.244094,7.866142 0,4.03937 -2.940945,7.334645 -8.114173,7.334645 -3.57874,0 -6.9803149,-2.019685 -8.5039369,-5.421259 l 4.8188976,-2.161418 c 0.8149607,1.559055 2.1259843,2.480315 3.8622043,2.480315 1.629922,0 2.622048,-0.744094 2.622048,-2.444882 0,-1.700787 -1.559055,-2.692913 -3.188977,-3.57874 C 5.8464567,11.444882 2.1614173,7.6181102 2.1614173,0 Z"
id="path1725" />
</symbol>
<symbol
id="g68238015C7D207E5078F5F81501F2AA0"
overflow="visible">
<path
d="m 0,0 m 11.834646,-0.42519685 c 7.15748,0 9.283464,6.51968505 9.283464,12.82677185 0,6.271653 -2.019685,12.826771 -9.283464,12.826771 -7.1929137,0 -9.318898,-6.448818 -9.318898,-12.826771 0,-6.0590553 2.0196851,-12.82677185 9.318898,-12.82677185 z m 0,5.10236225 c -3.0472444,0 -4.0039373,3.8622047 -4.0039373,7.7244096 0,4.03937 1.027559,7.724409 4.0039373,7.724409 3.011811,0 3.968504,-3.826771 3.968504,-7.724409 0,-4.0393703 -0.992126,-7.7244096 -3.968504,-7.7244096 z"
id="path1726" />
</symbol>
<symbol
id="g5EBC7036348A474003124BFFDC93DE13"
overflow="visible">
<path
d="m 0,0 m 11.444882,-0.42519685 c 5.279527,0 9.035433,3.29527555 9.035433,8.11417325 0,4.8188976 -3.543307,8.1141736 -8.362205,8.1141736 -1.488189,0 -2.6574801,-0.389764 -3.5078738,-0.92126 1.4881888,3.295275 5.2795278,4.748031 8.6102358,5.244094 v 5.102362 C 6.484252,23.562992 2.1614173,17.007874 2.1614173,9.1062992 c 0,-5.4212598 3.2598425,-9.53149605 9.2834647,-9.53149605 z m 0,5.10236225 c -2.1614174,0 -3.7204726,1.0984252 -3.7204726,3.011811 0,1.7716535 1.5590552,3.0472436 3.7204726,3.0472436 2.090551,0 3.685039,-1.2047239 3.685039,-3.0472436 0,-1.9133858 -1.594488,-3.011811 -3.685039,-3.011811 z"
id="path1727" />
</symbol>
<symbol
id="g8E6AC688CFBB70D6CEB1963ECE61AA69"
overflow="visible">
<path
d="M 0,0 M 18.425197,0 H 20.30315 V 24.80315 H 18.425197 V 13.783465 H 5.7047244 V 24.80315 H 3.8267717 V 0 H 5.7047244 V 12.011811 H 18.425197 Z"
id="path1728" />
</symbol>
<symbol
id="g6B3B76D2B8234CCD7F07A6CD6863832C"
overflow="visible">
<path
d="m 0,0 m 18.850394,0 h 1.948819 L 12.188976,24.80315 H 10.771654 L 2.2322835,0 H 4.2165354 L 6.484252,6.6968504 H 16.511811 Z M 15.980315,8.3267717 H 7.015748 l 3.507874,10.2401573 c 0.177165,0.531496 0.779528,2.338583 0.956693,3.11811 0.177165,-0.779527 0.779528,-2.515748 0.992126,-3.11811 z"
id="path1729" />
</symbol>
<symbol
id="gD10F42B71E2B533345799A04029B23B5"
overflow="visible">
<path
d="M 0,0 M 24.555118,0 V 24.80315 H 22.889764 L 14.811024,5.7755906 C 14.598425,5.2440945 14.385827,4.7125984 14.137795,4.1811024 13.925197,4.7125984 13.712598,5.2440945 13.464567,5.7755906 L 5.4566929,24.80315 H 3.8267717 V 0 h 1.8779527 v 18.212598 1.488189 C 5.8818898,19.204724 6.0944882,18.708661 6.3070866,18.212598 L 14.031496,-0.42519685 22.003937,18.212598 c 0.212598,0.531496 0.46063,1.027559 0.673228,1.523622 V 18.212598 0 Z"
id="path1730" />
</symbol>
<symbol
id="gC65321C9DA712852DAE01AC9A48A0B93"
overflow="visible">
<path
d="M 0,0 M 3.8267717,24.80315 V 0 h 8.4685043 c 5.881889,0 7.61811,3.507874 7.61811,6.8031496 0,3.5078744 -2.196851,5.7401574 -5.208662,6.2007874 2.657481,0.779528 4.322835,2.870079 4.322835,5.492126 0,3.153543 -1.700787,6.307087 -7.299213,6.307087 z M 11.090551,13.712598 H 5.7047244 v 9.425197 h 6.2007876 c 4.358268,0 5.350394,-2.374015 5.350394,-4.570866 0,-2.940945 -2.090552,-4.854331 -6.165355,-4.854331 z M 12.685039,1.7007874 H 5.7047244 V 12.047244 h 5.8110236 c 5.279528,0 6.625984,-2.6220471 6.625984,-5.4566928 0,-2.480315 -1.204724,-4.8897638 -5.456693,-4.8897638 z"
id="path1731" />
</symbol>
<symbol
id="gA45DD5D235CAC36E29E13763D4715334"
overflow="visible">
<path
d="m 0,0 m 11.870079,-0.42519685 c 5.102362,0 8.185039,2.69291335 8.185039,9.46062995 V 24.80315 H 18.177165 V 9.0708661 c 0,-6.2362204 -2.976378,-7.7598425 -6.307086,-7.7598425 -3.366142,0 -6.3425199,1.5236221 -6.3425199,7.7598425 V 24.80315 H 3.6496063 V 9.0354331 c 0,-6.7677166 3.0826772,-9.46062995 8.2204727,-9.46062995 z"
id="path1732" />
</symbol>
<symbol
id="g55E1EBD5D776423A04474C777635C9A3"
overflow="visible">
<path
d="M 0,0 M 3.8267717,0 H 5.7047244 V 11.374016 H 11.76378 L 17.220472,0 h 2.090552 l -5.598426,11.444882 c 4.5,0.531496 6.307087,3.57874 6.307087,6.732283 0,3.259843 -1.771654,6.625985 -7.405512,6.625985 H 3.8267717 Z m 1.8779527,13.074803 v 10.027559 h 6.9448816 c 4.322835,0 5.492126,-2.870079 5.492126,-4.996063 0,-2.409449 -1.346456,-5.031496 -5.492126,-5.031496 z"
id="path1733" />
</symbol>
<symbol
id="g53690710312B481980D246EB3348FCF5"
overflow="visible">
<path
d="m 0,0 m 12.720472,-0.42519685 c 4.677166,0 8.18504,3.15354335 8.18504,9.88582675 V 11.409449 H 14.031496 V 9.7086614 H 18.92126 V 8.7519685 c 0,-4.7834646 -2.409449,-7.4055118 -6.200788,-7.4055118 -5.6338578,0 -7.9724405,5.3503937 -7.9724405,11.0551183 0,5.173228 2.0905512,11.090551 7.9724405,11.090551 2.870079,0 4.429134,-1.417323 5.527559,-2.976378 l 1.665355,1.027559 c -1.240158,1.807087 -3.188977,3.685039 -7.192914,3.685039 -6.9448814,0 -9.9566925,-6.059055 -9.9566925,-12.826771 0,-6.4842522 2.7992126,-12.82677185 9.9566925,-12.82677185 z"
id="path1734" />
</symbol>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

View file

@ -1,174 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 232.51806 82.699088"
width="232.51807pt"
height="82.699089pt"
viewBox="0 0 226.73577 55.822265"
width="226.73578pt"
height="55.822266pt"
version="1.1"
id="svg1734"
sodipodi:docname="social.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1734"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt">
<inkscape:page
x="-1.7632415e-38"
y="0"
width="232.51807"
height="82.699089"
id="page2"
margin="0"
bleed="0" />
</sodipodi:namedview>
<g
transform="matrix(0.8,0,0,0.8,5.7736079,0.92522993)"
id="g1719">
<g
transform="matrix(1,0,0,-1,-7.2170079,67.464567)"
id="g1703">
<use
xlink:href="#g235EE6022D045F3B1180C0D88D8B0DDC"
x="0"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1702" />
<use
xlink:href="#g39F49CB5E19E9CF4058E21CAA6301665"
x="69.777641"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1703" />
</g>
<g
transform="matrix(1,0,0,-1,91.672441,67.464567)"
id="g1707">
<use
xlink:href="#g3318BDD63D77FA2107464675D9F5DCCF"
x="0"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1704" />
<use
xlink:href="#gBDFC9AD08B6F962467A9573CE1CD1760"
x="51.550865"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1705" />
<use
xlink:href="#gC891A3D19973D46EDEF95A9D0B4D9335"
x="96.837166"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1706" />
<use
xlink:href="#gA5D8B46AC0A159D14552D0EB9DCE384F"
x="142.70174"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1707" />
</g>
<g
transform="matrix(1,0,0,-1,-2.1174803,101.79213)"
id="g1711">
<use
xlink:href="#g1205DB5C1EB00AB1DA1D0763B3AB3A8A"
x="0"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1708" />
<use
xlink:href="#g68238015C7D207E5078F5F81501F2AA0"
x="21.564568"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1709" />
<use
xlink:href="#g1205DB5C1EB00AB1DA1D0763B3AB3A8A"
x="45.113384"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1710" />
<use
xlink:href="#g5EBC7036348A474003124BFFDC93DE13"
x="66.677956"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1711" />
</g>
<g
transform="matrix(1,0,0,-1,98.23748,101.79213)"
id="g1718">
<use
xlink:href="#g8E6AC688CFBB70D6CEB1963ECE61AA69"
x="0"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1712" />
<use
xlink:href="#g6B3B76D2B8234CCD7F07A6CD6863832C"
x="26.844095"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1713" />
<use
xlink:href="#gD10F42B71E2B533345799A04029B23B5"
x="52.944096"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1714" />
<use
xlink:href="#gC65321C9DA712852DAE01AC9A48A0B93"
x="84.748817"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1715" />
<use
xlink:href="#gA45DD5D235CAC36E29E13763D4715334"
x="110.84882"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1716" />
<use
xlink:href="#g55E1EBD5D776423A04474C777635C9A3"
x="138.01181"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1717" />
<use
xlink:href="#g53690710312B481980D246EB3348FCF5"
x="164.14725"
y="0"
fill="#563b07"
fill-rule="nonzero"
id="use1718" />
</g>
</g>
<path
id="path6"
style="fill:#563b07;fill-rule:nonzero;stroke-width:0.8"
d="M 209.77295,2.4422778e-8 C 200.05805,2.4422778e-8 194.50634,5.396633 194.50634,12.181641 c 0,8.943875 8.01858,12.799067 15.42041,15.651855 6.5537,2.467275 12.56836,6.400189 12.56836,13.416504 0,7.016315 -4.7031,10.794434 -12.02783,10.794434 -6.32239,0 -11.18014,-3.547567 -13.57031,-8.790528 l -4.00928,1.388672 c 2.39017,6.013984 8.78939,11.179688 17.50196,11.179688 9.56069,0 16.34619,-5.320517 16.34619,-14.649903 0,-9.946204 -8.09649,-14.494823 -15.1128,-17.270508 -6.5537,-2.62148 -12.87597,-5.39782 -12.87597,-11.720214 0,-5.165858 4.00942,-8.403809 10.79443,-8.403809 5.55137,0 9.25292,2.544646 10.87207,6.168458 l 3.85547,-1.233399 C 222.64989,3.547033 217.09768,2.4422778e-8 209.77295,2.4422778e-8 Z M -3.0889907e-7,0.92578202 V 54.896484 H 19.584961 c 19.815307,0 26.676269,-14.726076 26.676269,-26.985351 0,-13.492914 -7.478572,-26.98535098 -26.368652,-26.98535098 z m 56.20751930889907,0 V 54.896484 H 67.927734 V 0.92578202 Z m 25.448731,0 V 54.896484 h 13.029785 c 19.198485,0 24.442375,-14.571871 24.442375,-26.985351 0,-13.338709 -6.09134,-26.98535098 -24.133295,-26.98535098 z m 56.35254,0 -18.58155,53.97070198 h 4.31836 l 4.9336,-14.572265 h 21.82031 l 5.08887,14.572265 h 4.24072 L 141.09375,0.92578202 Z m 16.64502,0 17.57959,32.69091698 v 21.279785 h 4.08691 V 33.462891 L 193.8999,0.92578202 h -4.31836 L 174.23877,29.685059 159.12597,0.92578202 Z M 85.743165,4.703614 h 9.71484 c 14.186835,0 19.352055,11.642164 19.352055,23.207519 0,10.79433 -4.39407,23.131347 -19.968755,23.131347 h -9.09814 z m 53.808105,3.007324 c 0.38551,1.696252 1.69657,5.472951 2.15918,6.783691 l 7.6333,22.283203 h -19.50733 l 7.6333,-22.283203 c 0.38551,-1.156536 1.69603,-5.087439 2.08155,-6.783691 z M 11.720215,12.027832 h 9.946289 c 8.558362,0 12.413086,8.250166 12.413086,15.883301 0,7.324724 -3.623435,15.805664 -13.261231,15.805664 h -9.098144 z" />
<defs
id="defs1734">
<symbol

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

View file

@ -17,23 +17,11 @@ const {white = false} = Astro.props
eine Email an <a class="link" href="mailto:orga@didays.de">orga@didays.de</a>.<br><br>
</p>
</div>
<div class="container px-8 mx-auto max-w-4xl grid grid-cols-1 md:grid-cols-3 items-center gap-12">
<div class="container px-8 mx-auto max-w-4xl grid grid-cols-1 items-center gap-12">
<div class="flex flex-col items-center">
<a class="link" href="https://hamburg.ccc.de/imprint/">Kontakt & Impressum</a>
<a class="link" href="https://hamburg.ccc.de/privacy-notice/">Datenschutzerklärung</a>
<a class="link" rel="me" href="https://chaos.social/@didays">Fediverse</a>
</div>
<div class="flex flex-col items-center">
<a href="https://hamburg.ccc.de">
<img alt="Logo des Chaos Computer Club Hamburg e.V." src={path(import.meta.env.BASE_URL, "/ccchh.svg")}
class="max-w-40 invert"/>
</a>
</div>
<div class="flex flex-col items-center">
<a href="https://www.wauland.de">
<img alt="Logo der Wau-Holland-Stiftung" src={path(import.meta.env.BASE_URL, "/wauland.svg")}
class="max-w-40 invert"/>
</a>
</div>
</div>
</footer>

View file

@ -1,9 +1,48 @@
---
import path from "../utils/path.ts"
import {Users, List, Info} from "@lucide/astro"
import {Users, List, Info, CalendarDays, type AstroComponent} from "@lucide/astro"
const route = Astro.url.pathname
const events: Record<string, Array<{
name: string,
path: string,
icon: AstroComponent,
}>> = {
"fallback": [
{
name: "Hamburg 2026",
path: "/hamburg/2026/",
icon: CalendarDays,
},
],
"/meta": [],
"/hamburg/2026": [
{
name: "Wann & Wo",
path: "/hamburg/2026/",
icon: Info,
},
{
name: "Programm",
path: "/hamburg/2026/programm",
icon: List,
},
{
name: "Wer",
path: "/hamburg/2026/wer",
icon: Users,
},
],
}
const currentEventPath = Object.keys(events).filter(event => route.startsWith(event))[0]
const event = events[currentEventPath] ?? events["fallback"]
---
<div class="navbar bg-base-100 shadow-sm z-30 sticky top-0 left-0 w-screen">
<div class="navbar bg-base-100 shadow-sm z-50 h-20 sticky top-0 left-0 w-screen">
<div class="navbar-start w-fit max-h-14">
<div class="dropdown">
<div tabindex="0" role="button" class="btn btn-ghost sm:hidden">
@ -14,18 +53,16 @@ import {Users, List, Info} from "@lucide/astro"
<ul
tabindex="-1"
class="menu menu-sm dropdown-content bg-base-100 rounded-box z-1 mt-3 w-52 p-4 gap-4 shadow-xl border">
<li><a class="text-xl" href={path(import.meta.env.BASE_URL, "/")}>
<Info/>
Wann & Wo
</a></li>
<li><a class="text-xl" href={path(import.meta.env.BASE_URL, "/hamburg/2026/programm/")}>
<List/>
Programm
</a></li>
<li><a class="text-xl" href={path(import.meta.env.BASE_URL, "/hamburg/2026/wer/")}>
<Users/>
Wer
</a></li>
{
event.map(item =>
<li>
<a class="text-xl" href={path(import.meta.env.BASE_URL, item.path)}>
<item.icon />
{item.name}
</a>
</li>,
)
}
</ul>
</div>
<a class="btn btn-link text-xl max-h-14" href={path(import.meta.env.BASE_URL, "/")}>
@ -37,18 +74,16 @@ import {Users, List, Info} from "@lucide/astro"
</div>
<div class="navbar-center hidden sm:flex">
<ul class="menu menu-horizontal px-1 gap-2">
<li><a href={path(import.meta.env.BASE_URL, "/")}>
<Info/>
Wann & Wo
</a></li>
<li><a href={path(import.meta.env.BASE_URL, "/hamburg/2026/programm/")}>
<List/>
Programm
</a></li>
<li><a href={path(import.meta.env.BASE_URL, "/hamburg/2026/wer/")}>
<Users/>
Wer
</a></li>
{
event.map(item =>
<li>
<a href={path(import.meta.env.BASE_URL, item.path)}>
<item.icon />
{item.name}
</a>
</li>,
)
}
</ul>
</div>
</div>

View file

@ -0,0 +1,193 @@
---
import Footer from "../../../components/Footer.astro"
import Layout from "../../../layouts/Layout.astro"
import {File} from "@lucide/astro"
import path from "../../../utils/path.ts"
import {Picture} from "astro:assets"
import traumweh_1 from "../../../assets/media/hamburg/2026/traumweh_1.png"
const impressions = [
{
image: traumweh_1,
alt: "Ein Foto der Veranstaltung. Eine Speakerin steht auf einer Bühe. Auf einer Leinwand ist eine Präsentation zu sehen. Auf Bannern steht DIDAYS 2026 Hamburg.",
attribution: "CC-4.0 BY-SA traumweh",
},
{
image: traumweh_1,
alt: "Ein Foto der Veranstaltung. Eine Speakerin steht auf einer Bühe. Auf einer Leinwand ist eine Präsentation zu sehen. Auf Bannern steht DIDAYS 2026 Hamburg.",
attribution: "CC-4.0 BY-SA traumweh",
},
{
image: traumweh_1,
alt: "Ein Foto der Veranstaltung. Eine Speakerin steht auf einer Bühe. Auf einer Leinwand ist eine Präsentation zu sehen. Auf Bannern steht DIDAYS 2026 Hamburg.",
attribution: "CC-4.0 BY-SA traumweh",
},
{
image: traumweh_1,
alt: "Ein Foto der Veranstaltung. Eine Speakerin steht auf einer Bühe. Auf einer Leinwand ist eine Präsentation zu sehen. Auf Bannern steht DIDAYS 2026 Hamburg.",
attribution: "CC-4.0 BY-SA traumweh",
},
{
image: traumweh_1,
alt: "Ein Foto der Veranstaltung. Eine Speakerin steht auf einer Bühe. Auf einer Leinwand ist eine Präsentation zu sehen. Auf Bannern steht DIDAYS 2026 Hamburg.",
attribution: "CC-4.0 BY-SA traumweh",
},
]
const slides = [
{
name: "Vortragstitel",
path: "/hamburg/2026/slides/vortrag.pdf",
},
{
name: "Vortragstitel",
path: "/hamburg/2026/slides/vortrag.pdf",
},
{
name: "Vortragstitel",
path: "/hamburg/2026/slides/vortrag.pdf",
},
{
name: "Vortragstitel",
path: "/hamburg/2026/slides/vortrag.pdf",
},
]
---
<Layout>
<div class="flex flex-col">
<h1 class="text-6xl font-bold mt-8 mb-4 flex justify-center">
<img src={path(import.meta.env.BASE_URL, "/hamburg/2026/logo.svg")} alt="Logo von den DiDays 2026 in Hamburg"
class="h-full"/>
</h1>
<div class="mask-[url(/transitions/big.svg)] bg-base-200 h-30 mask-repeat-x mask-[auto_100%]"/>
</div>
<div class="bg-base-200 pt-8 pb-16">
<div class="container p-8 max-w-5xl mx-auto flex flex-col md:flex-row gap-10 items-center md:items-start">
<p class="text-xl/8 text-center">
[Platzhaltertext Rückblick Event]
</p>
</div>
</div>
<div class="bg-white relative">
<div
class="mask-[url(/transitions/small.svg)] bg-base-200 h-10 mask-repeat-x mask-[auto_100%] absolute top-0 w-full"/>
<Picture
formats={["avif", "webp", "jpg"]}
widths={[540, 720, traumweh_1.width]}
src={traumweh_1}
class="w-full"
alt="Ein Foto der Veranstaltung. Eine Speakerin steht auf einer Bühe. Auf einer Leinwand ist eine Präsentation zu sehen. Auf Bannern steht DIDAYS 2026 Hamburg."
/>
<span class="absolute px-3 text-xs py-1 bg-white/50 bottom-11 right-0 rounded-l text-black">
CC-4.0 BY-SA traumweh
</span>
<div
class="mask-[url(/transitions/small.svg)] bg-base-200 h-10 mask-repeat-x mask-[auto_100%] rotate-180 absolute bottom-0 w-full"/>
</div>
<div class="bg-base-200 pb-20 w-screen overflow-x-hidden">
<div class="container p-8 max-w-2xl mx-auto">
<h2 class="text-4xl font-semibold mb-8">
[Platzhaltertext Titel]
</h2>
<p>
[Platzhaltertext Inhalt]
</p>
</div>
</div>
<div class="bg-base-100 pb-20 w-screen overflow-x-hidden">
<div class="mask-[url(/transitions/small.svg)] bg-base-200 h-10 mask-repeat-x mask-[auto_100%]"/>
<div class="container p-8 max-w-2xl mx-auto">
<h2 class="text-4xl font-semibold mb-8">
[Platzhaltertext Titel]
</h2>
<p>
[Platzhaltertext Inhalt]
</p>
</div>
</div>
<div class="bg-base-200 pb-20 w-screen overflow-x-hidden">
<div class="mask-[url(/transitions/small.svg)] bg-base-100 h-10 mask-repeat-x mask-[auto_100%]"/>
<div class="container p-8 mx-auto">
<h2 class="text-4xl font-semibold my-8 mx-auto text-center">
Eindrücke vom Event
</h2>
<div class="flex gap-4 overflow-x-auto w-full justify-start py-4">
{impressions.map((impression, index) =>
<button command="show-modal" commandfor={`impression-${index}`}
class="mx-auto shrink-0 w-lg overflow-hidden shadow-lg rounded-xl relative">
<Picture
formats={["avif", "webp", "jpg"]}
widths={[540, 720, impression.image.width]}
src={impression.image}
alt={impression.alt}
layout="full-width"
/>
{impression.attribution &&
<span class="absolute px-3 text-xs py-1 bg-white/50 bottom-0 right-0 rounded-tl text-black">
{impression.attribution}
</span>}
</button>
<dialog id={`impression-${index}`}
class="mx-auto my-auto rounded-xl max-w-6xl bg-base-100 backdrop:bg-black/50"
closedby="any">
<Picture
src={impression.image}
alt={impression.alt}
/>
<div class="p-2 flex justify-between items-center">
{
impression.attribution &&
<span class="px-3 text-xs py-1">
{impression.attribution}
</span>
}
<button commandfor={`impression-${index}`} command="close" class="btn btn-base-200 ml-auto">
Schließen
</button>
</div>
</dialog>
,
)}
</div>
</div>
</div>
<div class="bg-base-100 pb-20 w-screen overflow-x-hidden">
<div class="mask-[url(/transitions/small.svg)] bg-base-200 h-10 mask-repeat-x mask-[auto_100%]"/>
<div class="container p-8 max-w-4xl mx-auto">
<h2 class="text-4xl font-semibold mb-8">
[Platzhaltertitel Vortragsfolien]
</h2>
<p>
[Platzhaltertext Inhalt]
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 w-full py-6">
{slides.map(slide =>
<a href={path(import.meta.env.BASE_URL, slide.path)}
class="card shrink-0 bg-base-100 card-md shadow-lg border-base-200 border-2">
<div class="card-body">
<h2 class="card-title">{slide.name}</h2>
<div class="justify-end card-actions">
<button class="btn btn-base-200">
<File/>
Folien Ansehen
</button>
</div>
</div>
</a>,
)}
</div>
</div>
</div>
<Footer/>
</Layout>

View file

@ -12,7 +12,7 @@ import Layout from "../../../layouts/Layout.astro"
</div>
<div class="bg-white">
<pretalx-schedule event-url="https://pretalx.hamburg.ccc.de/didays-hamburg-2026/" locale="de" format="grid"
style="--pretalx-clr-primary: #ffad12; --pretalx-sticky-top-offset: 68px;">
style="--pretalx-clr-primary: #ffad12; --pretalx-sticky-top-offset: 80px;">
</pretalx-schedule>
<noscript>
<div class="pretalx-widget">

View file

@ -7,7 +7,7 @@ import path from "../../../utils/path.ts"
const orgs = [
{
url: "https://hamburg.ccc.de",
image: "/ccchh.svg",
image: "/hamburg/2026/ccchh.svg",
alt: "Logo des Chaos Computer Club Hamburg e.V.",
name: "Chaos Computer Club Hamburg",
info: "Wir sind die lokale Gruppe des Chaos Computer Club in Hamburg: Eine Gruppe von Menschen, die ein Interesse am kreativen Umgang mit Technik teilen. Unsere Gesprächsthemen und Projekte reichen von Soft- und Hardware zu Datenschutz und Netzpolitik.",
@ -17,7 +17,7 @@ const orgs = [
const support = [
{
url: "https://www.wauland.de",
image: "/wauland.svg",
image: "/hamburg/2026/wauland.svg",
alt: "Logo der Wau-Holland-Stiftung",
name: "Wau-Holland-Stiftung",
info: "Unser Anliegen ist es, die freidenkerischen Ansätze Wau Hollands zu bewahren und weiterzuführen.",
@ -27,77 +27,77 @@ const support = [
const partners = [
{
url: "https://digitalcourage.de/treffen-vor-ort/hamburg",
image: "/digitalcourage.svg",
image: "/hamburg/2026/digitalcourage.svg",
alt: "Logo der Digitalcourage e.V. Ortsgruppe Hamburg",
name: "Digitalcourage e.V. Ortsgruppe Hamburg",
info: "Wir engagieren uns in Hamburg gegen Digitalzwang und für digitale Souveränität.",
},
{
url: "https://wiki.openstreetmap.org/w/index.php?title=Hamburg",
image: "/osm.svg",
image: "/hamburg/2026/osm.svg",
alt: "Logo der Hamburger OpenStreetMap Community",
name: "Hamburger OpenStreetMap Community",
info: "Wir sind keine feste Organisation aber eine Gruppe von Menschen, die gemeinsam in Hamburg und Umgebung Daten zum OpenStreetMap Projekt beitragen.",
},
{
url: "https://mastodon.online/@citydata",
image: "/citydataexplosion.svg",
image: "/hamburg/2026/citydataexplosion.svg",
alt: "Logo von city/data/explosion",
name: "city/data/explosion",
info: "Projekte und Veranstaltungen zu Stadt, Öffentlichkeit und Digitalisierung",
},
{
url: "https://ogrbund.de/",
image: "/ogr.svg",
image: "/hamburg/2026/ogr.svg",
alt: "Logo der OMAS GEGEN RECHTS",
name: "OMAS GEGEN RECHTS",
info: "Zivilgesellschaftliche Initiative zum Schutz der Demokratie",
},
{
url: "https://endof10hh.de/",
image: "/endof10.svg",
image: "/hamburg/2026/endof10.svg",
alt: "Logo von End of 10",
name: "End of 10 Hamburg",
info: "Wir veranstalten regelmäßig an unterschiedlichen Orten in Hamburg Linux-Workshops, wo wir Interessierte beim Umstieg von Windows zu Linux unterstützen.",
},
{
url: "https://www.vhs-hamburg.de/",
image: "/vhs.svg",
image: "/hamburg/2026/vhs.svg",
alt: "Logo der Hamburger Volkshochschule",
name: "Hamburger Volkshochschule",
info: "Hamburgs größter Weiterbildungsanbieter mit über 9000 Kursen im Jahr - darunter ein breites digitales Angebot von der Computer-Einführung bis Programmieren.",
},
{
url: "https://www.bezahlkarte-nein.de/",
image: "/bezahlkarte.png",
image: "/hamburg/2026/bezahlkarte.png",
alt: "Logo von NEIN zur Bezahlkarte",
name: "NEIN zur Bezahlkarte",
info: "",
},
{
url: "https://www.vzhh.de/",
image: "vzhh.png",
image: "/hamburg/2026/vzhh.png",
alt: "Logo der Verbraucherzentrale Hamburg",
name: "Verbraucherzentrale Hamburg",
info: "",
},
{
url: "https://annaelbe.net/",
image: "annaelbe.svg",
image: "/hamburg/2026/annaelbe.svg",
alt: "Logo von anna elbe",
name: "anna elbe",
info: "Wir sagen NEIN zum Ausverkauf von öffentlichen Räumen",
},
{
url: "https://repaircafe-eidelstedt.de/",
image: "repaircafe.svg",
image: "/hamburg/2026/repaircafe.svg",
alt: "Logo vom Repair Café Eidelstedt",
name: "Repair Café Eidelstedt",
info: "Wegwerfen? Denkste! Wir haben die Nachhaltigkeit im Blick.",
},
{
url: "https://www.instagram.com/teeplushamburg/",
image: "teeplus.png",
image: "/hamburg/2026/teeplus.png",
alt: "Logo von Tee& Hamburg",
name: "Tee& Hamburg",
info: "Ein Blick unter die Oberfläche, Tee im Dialog mit Kunst, Kultur und Philosophie. Von Mai bis September im japanischen Teehaus Planten un Blomen",
@ -109,17 +109,13 @@ const partners = [
<div class="bg-base-100">
<div class="container p-8 max-w-2xl mx-auto">
<h2 class="text-4xl text-center font-semibold">Veranstaltet von</h2>
</div>
</div>
<div class="bg-base-200 pb-20 w-screen overflow-x-hidden">
<div class="mask-[url(/transitions/small.svg)] bg-base-100 h-10 mask-repeat-x mask-[auto_100%]"/>
<div class="container p-8 mx-auto">
<h2 class="text-4xl text-center font-semibold mb-6">Veranstaltet von</h2>
<div class="grid grid-cols-1 place-content-center place-items-center">
{orgs.map(org => (
<a href={org.url} class="flex flex-col items-center text-center h-full transition-colors max-w-md hover:bg-white/20 p-4 rounded-xl">
<a href={org.url}
class="flex flex-col items-center text-center h-full transition-colors max-w-md hover:bg-white/20 p-4 rounded-xl">
<img alt={org.alt} src={path(import.meta.env.BASE_URL, org.image)}
class="max-w-60 h-40 mb-4 invert"/>
class="max-w-60 h-20 mb-4 invert"/>
<h3 class="font-bold link">{org.name}</h3>
<p>
{org.info}
@ -130,18 +126,14 @@ const partners = [
</div>
</div>
<div class="bg-base-100">
<div class="mask-[url(/transitions/small.svg)] bg-base-200 h-10 mask-repeat-x mask-[auto_100%]"/>
<div class="container p-8 max-w-2xl mx-auto">
<h2 class="text-4xl text-center font-semibold">In Zusammenarbeit mit</h2>
</div>
</div>
<div class="bg-base-200 pb-20 w-screen overflow-x-hidden">
<div class="bg-base-200">
<div class="mask-[url(/transitions/small.svg)] bg-base-100 h-10 mask-repeat-x mask-[auto_100%]"/>
<div class="container p-8 mx-auto">
<div class="container p-8 max-w-2xl mx-auto">
<h2 class="text-4xl text-center font-semibold mb-6">In Zusammenarbeit mit</h2>
<div class="grid grid-cols-1 place-content-center place-items-center">
{support.map(org => (
<a href={org.url} class="flex flex-col items-center text-center h-full transition-colors max-w-md hover:bg-white/20 p-4 rounded-xl">
<a href={org.url}
class="flex flex-col items-center text-center h-full transition-colors max-w-md hover:bg-white/20 p-4 rounded-xl">
<img alt={org.alt} src={path(import.meta.env.BASE_URL, org.image)}
class="max-w-60 h-40 mb-4 invert"/>
<h3 class="font-bold link">{org.name}</h3>

View file

@ -3,6 +3,14 @@ import Footer from "../components/Footer.astro"
import Layout from "../layouts/Layout.astro"
import {Calendar, ChevronDown} from "@lucide/astro"
import path from "../utils/path.ts"
const events = [
{
name: "DIDAYS 2026 Hamburg",
path: "/hamburg/2026/",
text: "02.-04. Oktober 2026, Kultur Palast Harburg",
},
]
---
<Layout>
@ -16,55 +24,40 @@ import path from "../utils/path.ts"
<div class="bg-base-200 pt-8 pb-16">
<div class="container p-8 max-w-5xl mx-auto flex flex-col md:flex-row gap-10 items-center md:items-start">
<div class="bg-black/20 text-white rounded-2xl min-w-fit p-4 flex flex-col items-center gap-4">
<div class="flex flex-col items-center gap-2">
<span class="text-xl leading-10 text-center font-bold">
02.-04.10.2026
</span>
<span class="text-lg leading-5 text-center">
Freitag 16-21:30 Uhr<br>
Samstag 12-21:30 Uhr<br>
Sonntag 12-17:30 Uhr<br>
</span><br>
<a class="link text-xl" href="https://www.kulturpalast-harburg.com">Kultur Palast Harburg</a><br>
<span class="text-xl">
Eintritt frei
</span>
</div>
<div class="motion-safe:aura motion-safe:aura-rainbow">
<a href={path(import.meta.env.BASE_URL, "didays2026.ics")}
class="btn btn-lg motion-reduce:btn-outline shrink-0"
target="_blank">
<Calendar/>
Im Kalender speichern
</a>
</div>
</div>
<p class="text-xl/8 text-center">
Ein Wochenende digitale Selbstbestimmung: Handy, Tablet und Laptop: längst geht ohne nichts mehr. Und die Apps
sammeln Daten und tun ihr Möglichstes, um uns nicht mehr loszulassen.
In <a class="link" href={path(import.meta.env.BASE_URL, "/hamburg/2026/programm")}>
Vorträgen und Workshops </a> erklären wir, wie man einen alternativen Messenger, ein freies Office oder eine
sichere Passwortverwaltung nutzen kann. Und wir informieren über Chancen und Gefahren der digitalen Welt. Kommt
vorbei, lernt etwas und diskutiert mit uns!
In Vorträgen und Workshops erklären wir, wie man einen alternativen Messenger, ein freies Office oder eine
sichere Passwortverwaltung nutzen kann. Und wir informieren über Chancen und Gefahren der digitalen Welt.<br>
Kommt vorbei, lernt etwas und diskutiert mit uns!
</p>
</div>
</div>
<div class="bg-base-100 pb-20 w-screen overflow-x-hidden">
<div class="mask-[url(/transitions/small.svg)] bg-base-200 h-10 mask-repeat-x mask-[auto_100%]"/>
<div class="container p-8 max-w-2xl mx-auto text-center text-xl/8">
<p>
Der <a class="link" href="https://hamburg.ccc.de">CCC Hansestadt Hamburg e.V.</a>
veranstaltet vom 2. bis 4. Oktober zusammen mit der <a class="link" href="https://www.wauland.de">Wau Holland Stiftung</a>,
Hamburger Stadtteilinitiativen,
Maker- und Hackerspaces und weiteren zivilgesellschaftlichen Organisationen aus der Region die ersten Digital
Independence Days in Hamburg.<br><br>
Euch erwartet ein Programm rund um digitale Unabhängigkeit: Messenger,
Office-Programme, Datenschutz oder die eigene Cloud.
</p>
<div class="container p-8 mx-auto text-center text-xl/8">
<h2 class="text-4xl font-semibold mb-8">
Kommende Events
</h2>
<p>Hier veröffentlichen wir, sobald weitere Events geplant sind</p>
<h2 class="text-4xl font-semibold my-8">
Vergangene Events
</h2>
<div class="flex gap-4 overflow-x-auto w-full justify-start py-6">
{events.map(event =>
<a href={path(import.meta.env.BASE_URL, event.path)}
class="card mx-auto shrink-0 w-96 bg-base-100 card-md shadow-lg border-base-200 border-2">
<div class="card-body">
<h2 class="card-title">{event.name}</h2>
<p>{event.text}</p>
<div class="justify-end card-actions">
<button class="btn btn-base-200">Ansehen</button>
</div>
</div>
</a>,
)}
</div>
</div>
</div>
@ -91,31 +84,6 @@ import path from "../utils/path.ts"
</div>
</div>
<div class="bg-base-100 pb-20">
<div class="mask-[url(/transitions/small.svg)] bg-base-200 h-10 mask-repeat-x mask-[auto_100%]"/>
<div class="container p-8 max-w-2xl mx-auto">
<h2 class="text-4xl font-semibold mb-8">
DIDAYS - Ein Wochenende digitale Selbstbestimmung
</h2>
<p>
Am Wochenende vom 2. bis 4. Oktober gibt es diese und noch mehr Themen kompakt: Vorträge, Workshops und
Austausch
zwischen Interessierten. Neben dem praktischen „Wie“ wollen wir auch über gesellschaftliche und politische
Themen
reden, wie z.B. den Einfluss von Künstlicher Intelligenz oder die Digitalisierung von Stadt und Verwaltung in
Hamburg.
Wir haben dazu den Kultur Palast Harburg (ehem. Rieckhof) als Location gewinnen können. Von Freitagnachmittag
bis
Sonntagnachmittag haben Besucher*innen die Möglichkeit, in Vorträgen und Workshops zu erfahren, wie sie sich
unabhängiger machen können. Natürlich ist der Eintritt frei.
Das Programm ist abgestimmt auf Menschen, die mehr oder minder spontan für ein paar Stunden vorbeikommen und
„mal schauen“ möchten.
</p>
</div>
</div>
<Footer/>
</Layout>