WIP: Update website after the event #36
|
|
@ -16,9 +16,12 @@
|
|||
"@tailwindcss/typography": "^0.5.20",
|
||||
"@tailwindcss/vite": "^4.3.3",
|
||||
"astro": "^7.3.5",
|
||||
"plaiceholder": "^3.0.0",
|
||||
"sharp": "^0.35.5",
|
||||
"tailwindcss": "^4.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^26.6.4",
|
||||
"daisyui": "^5.7.46"
|
||||
}
|
||||
}
|
||||
69
pnpm-lock.yaml
generated
|
|
@ -10,20 +10,29 @@ importers:
|
|||
dependencies:
|
||||
'@lucide/astro':
|
||||
specifier: ^1.48.0
|
||||
version: 1.48.0(astro@7.3.5(jiti@2.7.0))
|
||||
version: 1.48.0(astro@7.3.5(@types/node@26.6.4)(jiti@2.7.0))
|
||||
'@tailwindcss/typography':
|
||||
specifier: ^0.5.20
|
||||
version: 0.5.20(tailwindcss@4.3.3)
|
||||
'@tailwindcss/vite':
|
||||
specifier: ^4.3.3
|
||||
version: 4.3.3(vite@8.3.1(esbuild@0.28.2)(jiti@2.7.0))
|
||||
version: 4.3.3(vite@8.3.1(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0))
|
||||
astro:
|
||||
specifier: ^7.3.5
|
||||
version: 7.3.5(jiti@2.7.0)
|
||||
version: 7.3.5(@types/node@26.6.4)(jiti@2.7.0)
|
||||
plaiceholder:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(sharp@0.35.5(@types/node@26.6.4))
|
||||
sharp:
|
||||
specifier: ^0.35.5
|
||||
version: 0.35.5(@types/node@26.6.4)
|
||||
tailwindcss:
|
||||
specifier: ^4.3.3
|
||||
version: 4.3.3
|
||||
devDependencies:
|
||||
'@types/node':
|
||||
specifier: ^26.6.4
|
||||
version: 26.6.4
|
||||
daisyui:
|
||||
specifier: ^5.7.46
|
||||
version: 5.7.46
|
||||
|
|
@ -810,6 +819,9 @@ packages:
|
|||
'@types/nlcst@2.0.3':
|
||||
resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==}
|
||||
|
||||
'@types/node@26.6.4':
|
||||
resolution: {integrity: sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==}
|
||||
|
||||
'@types/unist@3.0.3':
|
||||
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
|
||||
|
||||
|
|
@ -1331,6 +1343,11 @@ packages:
|
|||
resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
plaiceholder@3.0.0:
|
||||
resolution: {integrity: sha512-jwHxxHPnr1BwRzPCeZgEK2BMsEy2327sWynw3qb6XC/oGgGDUTPtR8pFxFQmNArhMBwhkUbUr5OPhhIJpCa8eQ==}
|
||||
peerDependencies:
|
||||
sharp: '>= 0.30.6'
|
||||
|
||||
postcss-selector-parser@6.0.10:
|
||||
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
|
||||
engines: {node: '>=4'}
|
||||
|
|
@ -1464,6 +1481,9 @@ packages:
|
|||
uncrypto@0.1.3:
|
||||
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
|
||||
|
||||
undici-types@8.9.0:
|
||||
resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==}
|
||||
|
||||
undici@8.11.2:
|
||||
resolution: {integrity: sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==}
|
||||
engines: {node: '>=22.19.0'}
|
||||
|
|
@ -1884,8 +1904,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:
|
||||
|
|
@ -2010,9 +2029,9 @@ snapshots:
|
|||
'@jridgewell/resolve-uri': 3.1.2
|
||||
'@jridgewell/sourcemap-codec': 1.6.0
|
||||
|
||||
'@lucide/astro@1.48.0(astro@7.3.5(jiti@2.7.0))':
|
||||
'@lucide/astro@1.48.0(astro@7.3.5(@types/node@26.6.4)(jiti@2.7.0))':
|
||||
dependencies:
|
||||
astro: 7.3.5(jiti@2.7.0)
|
||||
astro: 7.3.5(@types/node@26.6.4)(jiti@2.7.0)
|
||||
|
||||
'@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)':
|
||||
dependencies:
|
||||
|
|
@ -2185,12 +2204,12 @@ snapshots:
|
|||
postcss-selector-parser: 6.0.10
|
||||
tailwindcss: 4.3.3
|
||||
|
||||
'@tailwindcss/vite@4.3.3(vite@8.3.1(esbuild@0.28.2)(jiti@2.7.0))':
|
||||
'@tailwindcss/vite@4.3.3(vite@8.3.1(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0))':
|
||||
dependencies:
|
||||
'@tailwindcss/node': 4.3.3
|
||||
'@tailwindcss/oxide': 4.3.3
|
||||
tailwindcss: 4.3.3
|
||||
vite: 8.3.1(esbuild@0.28.2)(jiti@2.7.0)
|
||||
vite: 8.3.1(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0)
|
||||
|
||||
'@tybys/wasm-util@0.10.4':
|
||||
dependencies:
|
||||
|
|
@ -2215,6 +2234,10 @@ snapshots:
|
|||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
||||
'@types/node@26.6.4':
|
||||
dependencies:
|
||||
undici-types: 8.9.0
|
||||
|
||||
'@types/unist@3.0.3': {}
|
||||
|
||||
'@ungap/structured-clone@1.4.0': {}
|
||||
|
|
@ -2232,7 +2255,7 @@ snapshots:
|
|||
|
||||
aria-query@5.3.2: {}
|
||||
|
||||
astro@7.3.5(jiti@2.7.0):
|
||||
astro@7.3.5(@types/node@26.6.4)(jiti@2.7.0):
|
||||
dependencies:
|
||||
'@astrojs/compiler-rs': 0.5.1
|
||||
'@astrojs/internal-helpers': 0.11.0
|
||||
|
|
@ -2282,13 +2305,13 @@ snapshots:
|
|||
unifont: 0.7.5
|
||||
unstorage: 1.17.5
|
||||
verkit: 0.4.1
|
||||
vite: 8.3.1(esbuild@0.28.2)(jiti@2.7.0)
|
||||
vitefu: 1.1.3(vite@8.3.1(esbuild@0.28.2)(jiti@2.7.0))
|
||||
vite: 8.3.1(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0)
|
||||
vitefu: 1.1.3(vite@8.3.1(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0))
|
||||
xxhash-wasm: 1.1.0
|
||||
yargs-parser: 22.0.0
|
||||
zod: 4.6.5
|
||||
optionalDependencies:
|
||||
sharp: 0.35.5
|
||||
sharp: 0.35.5(@types/node@26.6.4)
|
||||
transitivePeerDependencies:
|
||||
- '@azure/app-configuration'
|
||||
- '@azure/cosmos'
|
||||
|
|
@ -2754,6 +2777,10 @@ snapshots:
|
|||
|
||||
picomatch@4.0.7: {}
|
||||
|
||||
plaiceholder@3.0.0(sharp@0.35.5(@types/node@26.6.4)):
|
||||
dependencies:
|
||||
sharp: 0.35.5(@types/node@26.6.4)
|
||||
|
||||
postcss-selector-parser@6.0.10:
|
||||
dependencies:
|
||||
cssesc: 3.0.0
|
||||
|
|
@ -2833,10 +2860,9 @@ snapshots:
|
|||
|
||||
sax@1.6.1: {}
|
||||
|
||||
semver@7.8.5:
|
||||
optional: true
|
||||
semver@7.8.5: {}
|
||||
|
||||
sharp@0.35.5:
|
||||
sharp@0.35.5(@types/node@26.6.4):
|
||||
dependencies:
|
||||
'@img/colour': 1.1.0
|
||||
detect-libc: 2.1.2
|
||||
|
|
@ -2867,7 +2893,7 @@ snapshots:
|
|||
'@img/sharp-win32-arm64': 0.35.5
|
||||
'@img/sharp-win32-ia32': 0.35.5
|
||||
'@img/sharp-win32-x64': 0.35.5
|
||||
optional: true
|
||||
'@types/node': 26.6.4
|
||||
|
||||
shiki@4.4.3:
|
||||
dependencies:
|
||||
|
|
@ -2931,6 +2957,8 @@ snapshots:
|
|||
|
||||
uncrypto@0.1.3: {}
|
||||
|
||||
undici-types@8.9.0: {}
|
||||
|
||||
undici@8.11.2: {}
|
||||
|
||||
unified@11.0.5:
|
||||
|
|
@ -2997,7 +3025,7 @@ snapshots:
|
|||
'@types/unist': 3.0.3
|
||||
vfile-message: 4.0.3
|
||||
|
||||
vite@8.3.1(esbuild@0.28.2)(jiti@2.7.0):
|
||||
vite@8.3.1(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0):
|
||||
dependencies:
|
||||
lightningcss: 1.33.0
|
||||
picomatch: 4.0.7
|
||||
|
|
@ -3005,13 +3033,14 @@ snapshots:
|
|||
rolldown: 1.2.11
|
||||
tinyglobby: 0.2.17
|
||||
optionalDependencies:
|
||||
'@types/node': 26.6.4
|
||||
esbuild: 0.28.2
|
||||
fsevents: 2.3.3
|
||||
jiti: 2.7.0
|
||||
|
||||
vitefu@1.1.3(vite@8.3.1(esbuild@0.28.2)(jiti@2.7.0)):
|
||||
vitefu@1.1.3(vite@8.3.1(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0)):
|
||||
optionalDependencies:
|
||||
vite: 8.3.1(esbuild@0.28.2)(jiti@2.7.0)
|
||||
vite: 8.3.1(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0)
|
||||
|
||||
xxhash-wasm@1.1.0: {}
|
||||
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 363 KiB After Width: | Height: | Size: 363 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
287
public/hamburg/2026/logo.svg
Normal 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 |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
55237
public/hamburg/2026/slides/OpenStreetMap - OpenStreetMap.pdf
Normal file
BIN
public/hamburg/2026/slides/Repair Cafe Eidelstedt - Flyer.pdf
Normal file
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
172
public/logo.svg
|
|
@ -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 |
BIN
src/assets/media/hamburg/2026/max_1.jpg
Normal file
|
After Width: | Height: | Size: 292 KiB |
BIN
src/assets/media/hamburg/2026/max_2.jpg
Normal file
|
After Width: | Height: | Size: 169 KiB |
BIN
src/assets/media/hamburg/2026/traumweh_1.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
|
|
@ -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>
|
||||
|
|
@ -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: "Info & Rückblick",
|
||||
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(path(import.meta.env.BASE_URL, 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>
|
||||
260
src/pages/hamburg/2026/index.astro
Normal file
|
|
@ -0,0 +1,260 @@
|
|||
---
|
||||
import Footer from "../../../components/Footer.astro"
|
||||
import Layout from "../../../layouts/Layout.astro"
|
||||
import {File} from "@lucide/astro"
|
||||
import customPath from "../../../utils/path.ts"
|
||||
import {Picture} from "astro:assets"
|
||||
import {readFile} from "node:fs/promises"
|
||||
import {getPlaiceholder} from "plaiceholder"
|
||||
|
||||
import traumweh_1 from "../../../assets/media/hamburg/2026/traumweh_1.png"
|
||||
import max_1 from "../../../assets/media/hamburg/2026/max_1.jpg"
|
||||
import max_2 from "../../../assets/media/hamburg/2026/max_2.jpg"
|
||||
|
||||
type Image = {
|
||||
image: any,
|
||||
alt: string,
|
||||
attribution: string,
|
||||
blur?: string,
|
||||
}
|
||||
|
||||
const images_raw: Record<string, Image> = {
|
||||
traumweh_1: {
|
||||
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",
|
||||
},
|
||||
max_1: {
|
||||
image: max_1,
|
||||
alt: "Ein Foto der einer leeren, bunt erleuchteten Bühnenszene. Auf der Leinwand auf der Bühne ist unscharf ein Programmablauf des Tages zu sehen. Diverse Banner zeigen den Schriftzug DIDAYs 2026.",
|
||||
attribution: "CC-4.0 BY-SA max",
|
||||
},
|
||||
max_2: {
|
||||
image: max_2,
|
||||
alt: "Ein Foto einer Speakerin auf einer Bühne. Hinter ihr ist eine Leinwand auf der auf gelber Folie der eine Definition für Hacking steht. Dies sei 'atypisches Benutzerverhalten' laut der Deutschen Bundespost.",
|
||||
attribution: "CC-4.0 BY-SA max",
|
||||
},
|
||||
}
|
||||
|
||||
const images: Record<string, Image> = {}
|
||||
|
||||
for (const image_name in images_raw) {
|
||||
const image = images_raw[image_name]
|
||||
|
||||
let buffer
|
||||
if (import.meta.env.DEV) {
|
||||
const imagePath = new URL(image.image.src, Astro.url)
|
||||
const imageResponse = await fetch(imagePath)
|
||||
buffer = Buffer.from(await imageResponse.arrayBuffer())
|
||||
} else {
|
||||
const path = image.image.src.substring((import.meta.env.BASE_URL).length).replace(/(^[\/]*|[\/]*$)/g, '')
|
||||
const imagePath = "./dist/" + path
|
||||
buffer = await readFile(imagePath)
|
||||
}
|
||||
|
||||
image["blur"] = (await getPlaiceholder(buffer, {
|
||||
size: 10,
|
||||
})).base64
|
||||
images[image_name] = image
|
||||
}
|
||||
|
||||
const impressions = ["traumweh_1", "max_1", "max_2"]
|
||||
|
||||
const slides = [
|
||||
{
|
||||
name: "Ziemlich gute Privatsphäre",
|
||||
author: "anna elbe",
|
||||
path: "/hamburg/2026/slides/anna elbe - Ziemlich gute Privatsphäre.pdf",
|
||||
},
|
||||
{
|
||||
name: "Datenschutz für Betroffene",
|
||||
author: "CCCHH",
|
||||
path: "/hamburg/2026/slides/CCCHH - Datenschutz für Betroffene.pdf",
|
||||
},
|
||||
{
|
||||
name: "Nutze deinen Computer mit Linux",
|
||||
author: "Endof10",
|
||||
path: "/hamburg/2026/slides/Endof10 - Nutze deinen Computer mit Linux.pdf",
|
||||
},
|
||||
{
|
||||
name: "Einfach, sicher und verantwortungsvoll digital unterwegs",
|
||||
author: "Omas gegen Rechts",
|
||||
path: "/hamburg/2026/slides/Omas gegen Rechts - Einfach, sicher und verantwortungsvoll digital unterwegs.pdf",
|
||||
},
|
||||
{
|
||||
name: "OpenStreetMap",
|
||||
author: "OpenStreetMap",
|
||||
path: "/hamburg/2026/slides/OpenStreetMap - OpenStreetMap.pdf",
|
||||
},
|
||||
{
|
||||
name: "Repair Café Eidelstedt Flyer",
|
||||
author: "Repair Café Eidelstedt",
|
||||
path: "/hamburg/2026/slides/Repair Cafe Eidelstedt - Flyer.pdf",
|
||||
},
|
||||
]
|
||||
---
|
||||
|
||||
<Layout>
|
||||
<div class="flex flex-col">
|
||||
<h1 class="text-6xl font-bold mt-8 mb-4 flex justify-center">
|
||||
<img src={customPath(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 gap-10 items-center md:items-start">
|
||||
<p class="text-xl/8 text-center">
|
||||
Die ersten DIDAYs fanden 2026 das erste Mal mit reger Beteiligung diverser Hamburger Gruppen in Harburg statt.
|
||||
Dort haben wir ausgiebig über Passwort-Manager, sichere Messenger, Verantwortung im digitalen Raum, Medienkompetenz, Linux und vieles Mehr diskutiert und Erfahrungen ausgetauscht.
|
||||
</p>
|
||||
<p class="text-xl/8 text-center">
|
||||
Wir bedanken uns bei <a href="/hamburg/2026/wer" class="font-bold link">allen Partnern</a>, die sich mit Vorträgen, Workshops, Organisation und einer bunten Sammlung kleiner Stände eingebracht haben!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white relative overflow-hidden">
|
||||
<div
|
||||
class="mask-[url(/transitions/small.svg)] bg-base-200 h-10 mask-repeat-x mask-[auto_100%] absolute top-0 w-full z-20"/>
|
||||
<img
|
||||
aria-hidden
|
||||
alt=""
|
||||
src={images["traumweh_1"].blur}
|
||||
class="absolute inset-0 w-full h-full transform scale-150 filter blur-2xl"
|
||||
/>
|
||||
<Picture
|
||||
formats={["avif", "webp", "jpg"]}
|
||||
widths={[540, 720, images["traumweh_1"].image.width]}
|
||||
src={images["traumweh_1"].image}
|
||||
alt={images["traumweh_1"].alt}
|
||||
layout="full-width"
|
||||
class="w-full max-h-[70vh] object-cover"
|
||||
pictureAttributes={{class: "relative z-10 text-transparent"}}
|
||||
/>
|
||||
{images["traumweh_1"].attribution &&
|
||||
<span class="absolute z-10 px-3 text-xs py-1 bg-white/50 bottom-11 right-0 rounded-l text-black">
|
||||
{images["traumweh_1"].attribution}
|
||||
</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 z-20"/>
|
||||
</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(async (impression_name) => {
|
||||
const impression = images[impression_name]
|
||||
return (
|
||||
<button command="show-modal" commandfor={`impression-${impression_name}`}
|
||||
class="mx-auto shrink-0 w-lg overflow-hidden shadow-lg rounded-xl relative">
|
||||
<img
|
||||
aria-hidden
|
||||
alt=""
|
||||
src={impression.blur}
|
||||
class="absolute inset-0 w-full h-full transform scale-150 filter blur-2xl"
|
||||
/>
|
||||
<Picture
|
||||
formats={["avif", "webp", "jpg"]}
|
||||
widths={[540, 720, impression.image.width]}
|
||||
src={impression.image}
|
||||
alt={impression.alt}
|
||||
layout="full-width"
|
||||
pictureAttributes={{class: "relative z-10 text-transparent"}}
|
||||
/>
|
||||
{impression.attribution &&
|
||||
<span
|
||||
class="absolute z-10 px-3 text-xs py-1 bg-white/50 bottom-0 right-0 rounded-tl text-black">
|
||||
{impression.attribution}
|
||||
</span>}
|
||||
</button>
|
||||
|
||||
<dialog id={`impression-${impression_name}`}
|
||||
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-${impression_name}`} 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">
|
||||
Vortragsfolien
|
||||
</h2>
|
||||
<p>
|
||||
Hier findet ihr einige der Folien zu den bei uns gehaltenen Vorträgen einfach zum Download.
|
||||
</p>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 w-full py-6">
|
||||
{slides.map(slide =>
|
||||
<a href={customPath(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>
|
||||
<p>von {slide.author}</p>
|
||||
<div class="justify-end card-actions">
|
||||
<button class="btn btn-base-200">
|
||||
<File/>
|
||||
Folien ansehen
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</a>,
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<Footer/>
|
||||
</Layout>
|
||||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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,106 +24,50 @@ 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>
|
||||
</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 max-w-2xl mx-auto">
|
||||
<div class="container p-8 mx-auto text-center text-xl/8">
|
||||
<h2 class="text-4xl font-semibold mb-8">
|
||||
Digitale Unabhängigkeit
|
||||
Kommende Events
|
||||
</h2>
|
||||
<p>
|
||||
Im Dezember 2025 wurde die Initiative Digital Independence Day ins Leben gerufen, um allen Menschen
|
||||
Möglichkeiten zu zeigen, sich von Big Tech unabhängig zu machen: Bessere Messenger, freie Office-Software,
|
||||
unabhängige Clouds.<br>
|
||||
In über 100 Städten in Deutschland und darüber hinaus gibt es regelmäßig zum ersten Sonntag im Monat
|
||||
Veranstaltungen mit Vorträgen, Workshops und Austauschformaten. Und auf <a
|
||||
class="link"
|
||||
href="https://diday.org">
|
||||
DIDAY.org
|
||||
</a> gibt es viele Informationen,
|
||||
wie man selbst den Wechsel zu offeneren Alternativen hinbekommen kann.<br><br>
|
||||
|
||||
Das Ziel ist es, mehr Kompetenz und Mündigkeit im Umgang mit moderner Technik zu vermitteln.
|
||||
<p class="mb-4">
|
||||
Hier veröffentlichen wir, sobald weitere Events geplant sind.<br>
|
||||
Schau solange gerne bei dem nächsten DIDay vorbei:
|
||||
</p>
|
||||
</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%]"/>
|
||||
<a href="https://diday.org/de/" class="btn btn-secondary">
|
||||
diday.org
|
||||
</a>
|
||||
|
||||
<div class="container p-8 max-w-2xl mx-auto">
|
||||
<h2 class="text-4xl font-semibold mb-8">
|
||||
DIDAYS - Ein Wochenende digitale Selbstbestimmung
|
||||
<h2 class="text-4xl font-semibold my-8">
|
||||
Vergangene Events
|
||||
</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 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>
|
||||
|
||||
|
||||
<Footer/>
|
||||
</Layout>
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@
|
|||
--color-base-content: var(--color-didays-c);
|
||||
--color-primary: oklch(80% 0.114 19.571);
|
||||
--color-primary-content: oklch(39% 0.141 25.723);
|
||||
--color-secondary: oklch(92% 0.084 155.995);
|
||||
--color-secondary-content: oklch(44% 0.119 151.328);
|
||||
--color-secondary: var(--color-diday);
|
||||
--color-secondary-content: #fff;
|
||||
--color-accent: oklch(68% 0.162 75.834);
|
||||
--color-accent-content: oklch(41% 0.112 45.904);
|
||||
--color-neutral: oklch(44% 0.011 73.639);
|
||||
|
|
@ -49,4 +49,5 @@
|
|||
--color-didays-a: #f8c662;
|
||||
--color-didays-b: #ffad12;
|
||||
--color-didays-c: #563b07;
|
||||
--color-diday: #4338ca;
|
||||
}
|
||||
|
|
|
|||