This commit is contained in:
Simon Martens
2024-10-17 14:05:01 +02:00
commit 3e06b0af76
54 changed files with 16934 additions and 0 deletions

135
.gitignore vendored Normal file
View File

@@ -0,0 +1,135 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
src/dist
src/assets

4723
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

28
package.json Normal file
View File

@@ -0,0 +1,28 @@
{
"name": "theodor-springmann-stiftung-interim",
"version": "1.0.0",
"description": "Interims-Webseite für die Theodor-Springmann-Stiftung",
"main": "index.js",
"scripts": {
"dev": "vite serve src/",
"build": "vite build src/",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Theodor-Springmann-Stiftung/webseite.git"
},
"author": "Simon Martens",
"license": "MIT",
"bugs": {
"url": "https://github.com/Theodor-Springmann-Stiftung/webseite/issues"
},
"homepage": "https://github.com/Theodor-Springmann-Stiftung/webseite#readme",
"dependencies": {
"autoprefixer": "^10.4.20",
"postcss": "^8.4.47",
"tailwind": "^4.0.0",
"tailwindcss": "^3.4.14",
"vite": "^5.4.9"
}
}

6
postcss.config.js Normal file
View File

@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

344
src/impressum.html Normal file
View File

@@ -0,0 +1,344 @@
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Theodor-Springmann-Stiftung</title>
<link rel="stylesheet" href="css/remixicon.css">
<link rel="stylesheet" href="transform/site.css">
<script src="transform/main.js"></script>
</head>
<body class="font-serif bg-zinc-50">
<div class="mx-4 my-8 md:ml-12 flex flex-col h-full max-w-[48rem]">
<div class="mb-4"><a href="/" class="">&larr;&ensp;Zurück</a></div>
<div class="desktop:pr-72">
<div class="mb-6" style="mso-element:para-border-div;border:solid windowtext 1.0pt;
mso-border-alt:solid windowtext .5pt;padding:12.0pt 4.0pt 1.0pt 12.0pt">
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt"><b style="mso-bidi-font-weight:
normal">Telemedienanbieter im Sinne des § 5 TMG</b></p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt">Theodor Springmann
Stiftung<br>
Hirschgasse 2<br>
69120 Heidelberg</p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt">Telefon +49 6221 436235<br>
Email info@theodor-springmann-stiftung.de</p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt"><b>Rechtsform und Sitz</b></p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt">Die Theodor Springmann
Stiftung ist eine rechtsfähige Stiftung bürgerlichen Rechts.<br>
Sitz der Stiftung ist Heidelberg.</p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt"><b style="mso-bidi-font-weight:
normal">Vorstand der Theodor Springmann Stiftung</b></p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt">Dr. Randolf Straky
(Präsident)</p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt"><b style="mso-bidi-font-weight:
normal">Geschäftsführung</b></p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt">Dr. Randolf Straky<br>
Theodor Springmann Stiftung<br>
Hirschgasse 2<br>
69120 Heidelberg</p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt"><b style="mso-bidi-font-weight:
normal">Zuständige Aufsichtsbehörde</b></p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt">Regierungspräsidium
Karlsruhe<br>
Schlossplatz 13<br>
76131 Karlsruhe</p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt">
https://rp.baden-wuerttemberg.de/Themen/Stiftung/Seiten/Ansprechpartner.aspx</p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt"><b style="mso-bidi-font-weight:
normal">Redaktionelle Verantwortung nach § 55 Abs. 2 RStV</b></p>
<p style="border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt">Ulrich Wittmann<br>
Theodor Springmann Stiftung<br>
Hirschgasse 2<br>
69120 Heidelberg<br>
</p>
<p>Telefon +49 6221 599 6811<br>
E-Mail tss@theodor-springmann-stiftung.de
</p>
</div>
<h2>Datenschutzerklärung</h2>
<h2>Präambel</h2>
<p>Diese Datenschutzerklärung informiert Sie über die Art, den
Umfang und den Zweck der personenbezogenen Daten, die im Rahmen dieser
Onlinepräsenz von Ihnen erhoben und von uns verarbeitet werden, sowie die Ihnen
zustehenden Rechte.</p>
<p>Personenbezogene Daten sind alle Informationen, die sich auf
eine identifizierte oder identifizierbare natürliche Person beziehen. Als
identifizierbar wird eine natürliche Person angesehen, die direkt oder indirekt
identifiziert werden kann. Im Hinblick auf weitere verwendete Begrifflichkeiten
verweisen wir auf die Definitionen der Datenschutz-Grundverordnung (DSGVO),
Artikel 4.</p>
<p>Erfolgt die Verarbeitung personenbezogener Daten auf
Grundlage des Art. 6 Abs. 1 <span class="SpellE">lit</span>. f DSGVO, so besteht
unser berechtigtes Interesse in der Erfüllung unseres satzungsgemäßen
Stiftungszwecks. Zweck der Stiftung ist es, in gemeinnütziger Weise
Wissenschaft und Kunst, Völkerverständigung und Entwicklungshilfe zu fördern
und zum menschlichen Selbstverständnis sowie zum Erkennen und Lindern strukturell
bedingter Not und Bedürftigkeit von Menschen in aller Welt beizutragen.</p>
<h2>Verantwortlicher</h2>
<p>Verantwortlich im Sinne von Art. 4 Abs. 7 DSGVO für die
Verarbeitung personenbezogener Daten ist:</p>
<p>Theodor Springmann Stiftung<br>
Hirschgasse 2<br>
69120 Heidelberg</p>
<p>www.theodor-springmann-stiftung.de<br>
info@theodor-springmann-stiftung.de</p>
<h2>Automatisch bei Nutzung unserer Onlinepräsenz erfasste Daten</h2>
<p>Mit der Nutzung unserer Onlinepräsenz werden automatisch
personenbezogene und allgemeine Daten vom Nutzer übermittelt und von uns
erfasst und gespeichert. Die von uns erhobenen Daten umfassen:</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>die IP-Adresse des ans Internet angeschlossenen
Netzwerkgeräts (Computer oder Router des Nutzers),</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>den verwendeten Browsertyp und dessen Version,</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>das verwendete Betriebssystem und dessen
Version,</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>die Internetseite, die den Nutzer auf unsere
Onlinepräsenz verweist (<span class="SpellE">Referrer</span>),</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>die Unterwebseiten, die der Nutzer auf unserer
Onlinepräsenz aufruft,</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>das Datum und die Uhrzeit des Aufrufs,</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>den Internet-Service-Provider des Nutzers,</p>
<p class="MsoListParagraphCxSpLast"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>sonstige ähnliche Daten.</p>
<p>Die Theodor Springmann Stiftung zieht aus diesen Daten keine
Rückschlüsse auf die betroffenen Nutzer. Diese Informationen werden benötigt,
um</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>die vom Nutzer angeforderten Inhalte korrekt
auszuliefern,</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>technische Probleme zu diagnostizieren, unsere
IT-Systeme vor Angriffen zu schützen und im Falle eines Angriffs den
zuständigen Behörden notwendige Informationen zur Strafverfolgung bereitstellen
zu können,</p>
<p class="MsoListParagraphCxSpLast"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>die Inhalte und die Bedienung unserer
Onlinepräsenz zu optimieren.</p>
<p>Die oben genannten Verarbeitungszwecke werden von Subsystemen
erfüllt, die unabhängig von anderen Subsystemen ihre jeweils eigene Kopie der
vom Nutzer erhobenen Daten erhalten, verarbeiten und löschen. Dabei werden den
Subsystemen lediglich die zur Ausführung ihrer Aufgabe erforderlichen Daten übergeben.
Alle Subsysteme befinden sich auf Servern der Theodor Springmann Stiftung.</p>
<h3>Auslieferung der vom Nutzer angeforderten Inhalte</h3>
<p>Mit der Anforderung einer Seite dieser Onlinepräsenz
übermittelt der Browser des Nutzers automatisch die IP-Adresse seines ans
Internet angeschlossenen Netzwerkgeräts (Computer oder Router) und andere Daten.
Ohne diese IP-Adresse können die Inhalte dieser Online-Präsenz nicht an den
Nutzer zurückgesendet werden. Daher ist die Speicherung und Verarbeitung der
IP-Adresse für den Betrieb dieser Onlinepräsenz notwendig. Ebenfalls
übermittelte Daten über den verwendeten Browser usw. werden gegebenenfalls
verwendet, um die Anzeige der Webseite an das Anzeigegerät oder den Browser
anzupassen. Die zum Zwecke der Auslieferung von Inhalten gesammelten Daten
werden direkt nach Übertragung der Inhalte vom Subsystem gelöscht. Die
Verarbeitung dieser Daten erfolgt auf der Grundlage eines berechtigten
Interesses nach Art. 6 Abs. 1 <span class="SpellE">lit</span>. f DSGVO.</p>
<h3>Diagnose und Schutz der IT-Systeme</h3>
<p>Daneben erfolgt eine Speicherung der oben genannten Daten in
Diagnose-Protokollen. Die Protokollierung ist notwendig, um etwaige technische
Probleme analysieren oder Angriffe erkennen und abwehren zu können. Bei
Angriffen auf unsere IT-Systeme übergeben wir die Diagnose-Protokolle den
zuständigen Strafverfolgungsbehörden. Die Diagnose-Protokolle werden nach 14
Tagen automatisch gelöscht. Die Speicherung und Verarbeitung dieser Daten
erfolgt auf Grundlage eines berechtigten Interesses nach Art. 6 Abs. 1 <span class="SpellE">lit</span>. f DSGVO.
</p>
<h3>Analyse zur Optimierung der Inhalte und der Bedienung</h3>
<p>Die oben genannten Daten werden von einem Webanalyseprogramm
verarbeitet. Dabei werden die Daten pseudonymisiert und aggregiert, so dass sie
einzelnen Nutzern nicht mehr zugeordnet werden können. Das Analyseprogramm wird
auf einem von uns betriebenen Server ausgeführt, daher werden keine Daten an
Dritte übermittelt. Der Zweck dieser Erfassung besteht in der Analyse der
Nutzung unseres Angebots, durch die eine Verbesserung unserer Webseiten, der
Inhalte und der Bedienung ermöglicht wird. Das Analyseprogramm speichert die
anonymisierten Daten ohne zeitliche Begrenzung. Die Verarbeitung dieser Daten
erfolgt auf der Grundlage eines berechtigten Interesses (Art. 6 Abs. 1 <span class="SpellE">lit</span>. f
DSGVO).</p>
<h2>Weitere auf der Onlinepräsenz erfasste Daten</h2>
<p>Neben den oben aufgeführten Daten können weitere Daten von
uns erfasst, gespeichert und verarbeitet werden.</p>
<h3>Sonstige Daten</h3>
<p>Sämtliche Daten, die mit dem Aufruf einer Webseite von
unserer Onlinepräsenz an den Nutzer übertragen werden, werden von unseren
Servern bereitgestellt. Wir nutzen kein von Dritten bereitgestelltes Content <span
class="SpellE">Delivery</span> Network (CDN), um Teile unserer Onlinepräsenz (z.
B. <span class="SpellE">Javascript</span>- oder <span class="SpellE">Webfont</span>-Dateien)
von dort an den Nutzer zu übermitteln. Wir verlinken auch nicht in soziale
Netzwerke. Insofern können von Dritten keine personenbezogenen Daten über
unsere Onlinepräsenz erhoben werden, es sei denn, die Datenerfassung durch
Dritte basiert auf einer gesetzlichen Grundlage und/oder wurde behördlich
angeordnet.</p>
<p>In unseren Inhalten können sich jedoch Hyperlinks („Links“)
auf fremde Onlineangebote befinden. Mit dem Anklicken eines solchen Links
verlässt der Nutzer unsere Onlinepräsenz und damit den Geltungsbereich dieser
Datenschutzerklärung.</p>
<h2>Erhobene Daten bei Kontakt</h2>
<p>Unsere Onlinepräsenz hält unter anderem aufgrund gesetzlicher
Vorgaben verschiedene Möglichkeiten bereit, mit uns in Kontakt zu treten. Sofern
eine betroffene Person Kontakt zu uns aufnimmt, werden die von der betroffenen
Person übermittelten personenbezogenen Daten automatisch gespeichert (z. B.
Telefonnummer, E-Mail-Adresse). Diese Angaben werden zum Zwecke der Bearbeitung
sowie für sich möglicherweise anschließende Kommunikation von uns gespeichert. Sobald
die Speicherung dieser Daten nicht mehr erforderlich ist und keine gesetzlichen
Archivierungsgründe vorliegen, werden die Daten gelöscht.ie Erforderlichkeit
wird alle zwei Jahre überprüft. Es erfolgt keine Weitergabe dieser
personenbezogenen Daten an Dritte.</p>
<p>Von betroffenen Personen übermittelte Informationen zur
Bearbeitung einer Kontaktanfrage werden gemäß Art. 6 Abs. 1 <span class="SpellE">lit</span>.
b (vertragliche und vorvertragliche Beziehungen) oder <span class="SpellE">lit</span>.
f (andere Anfragen) der DSGVO verarbeitet.</p>
<h2>Speicherung und Löschung von personenbezogenen Daten</h2>
<p>Personenbezogene Daten werden von uns für die Dauer der
entsprechenden gesetzlichen Aufbewahrungspflichten oder für den zur
Vertragserfüllung erforderlichen Zeitraum gespeichert. Liegen solche Gründe
nicht vor, werden personenbezogene Daten für den Zeitraum, der zur Erreichung
des Speicherzwecks erforderlich ist, verarbeitet und gespeichert, sofern in
dieser Datenschutzerklärung nicht ausdrücklich anderes angegeben ist. Sobald die
Daten für ihre Zweckbestimmung nicht mehr erforderlich sind oder der
Speicherungszweck entfällt, werden sie nach Maßgabe der gesetzlichen Vorschriften
gelöscht oder in ihrer Verarbeitung eingeschränkt.</p>
<p>Sollten die Daten nicht gelöscht werden dürfen, weil sie
einer gesetzlichen Aufbewahrungspflicht unterliegen, wird deren Verarbeitung durch
Archivierung eingeschränkt. Die Daten werden erst nach Ablauf der gesetzlich vorgeschriebenen
Speicherfrist gelöscht.</p>
<p>Alle sechs Monate wird routinemäßig geprüft, ob der Speicherungszweck
weggefallen bzw. die Aufbewahrungspflicht abgelaufen ist. Anschließend wird gegebenenfalls
die Löschung durchgeführt.</p>
<h2>Rechte der betroffenen Personen</h2>
<p>Unter den angegebenen Kontaktdaten können betroffene
Personen jederzeit nachgenannte Rechte ausüben. Eine betroffene Person kann von
uns verlangen, dass</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>Auskunft über sie betreffende, bei uns
gespeicherte Daten und deren Verarbeitung erteilt wird (Art. 15 DSGVO),</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>sie betreffende unrichtige personenbezogene
Daten berichtigt werden (Art. 16 DSGVO),</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>sie betreffende, bei uns gespeicherte
personenbezogene Daten gelöscht werden (Art. 17 DSGVO),</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>die Verarbeitung sie betreffender, bei uns gespeicherter
Daten, die aufgrund gesetzlicher Vorschriften oder anderer Gründe nicht
gelöscht werden dürfen, eingeschränkt wird (Art. 18 DSGVO),</p>
<p class="MsoListParagraphCxSpMiddle"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>sie betreffende Daten übertragbar sind, soweit
sie in die Datenverarbeitung eingewilligt oder einen Vertrag mit uns
geschlossen hat (Art. 20 DSGVO)</p>
<p class="MsoListParagraphCxSpLast"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>sie betreffende Daten nach einem Widerspruch
nicht weiter von uns verarbeitet werden (Art. 21 DSGVO),</p>
<p>Eine betroffene Person hat ferner jederzeit das Recht,</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>eine erteilte Einwilligung in die Erhebung und
Verarbeitung personenbezogener Daten nach Art. 6 Abs. 1 <span class="SpellE">lit</span>.
a oder Art. 9 Abs. 2 lit. a DSGVO für die Zukunft zu widerrufen (Art. 7 Abs. 3
DSGVO),</p>
<p class="MsoListParagraphCxSpLast"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>sich mit einer Beschwerde an eine
Aufsichtsbehörde zu wenden (Art. 15 Abs. 1 <span class="SpellE">lit</span>. f
DSGVO). Eine Liste der Aufsichtsbehörden lässt sich unter <a
href="https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html"
target="blank">https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html</a>
abrufen.</p>
<h2>Änderung unserer Datenschutzerklärung</h2>
<p>Wir behalten uns vor, diese Datenschutzerklärung ohne vorherige
Ankündigung an neue rechtliche oder technische Sachverhalte sowie an Änderungen
unserer Leistungen oder Prozesse anzupassen. Es gilt die jeweils auf der
Onlinepräsenz veröffentlichte Version der Datenschutzerklärung.</p>
</div>
</body>
</html>

72
src/index.html Normal file
View File

@@ -0,0 +1,72 @@
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Meine Webseite</title>
<link rel="stylesheet" href="css/remixicon.css">
<link rel="stylesheet" href="transform/site.css">
<script src="transform/main.js"></script>
</head>
<body class="font-serif bg-zinc-50">
<div class="mx-4 md:ml-12 flex flex-col h-full">
<div class="mt-4 lg:mt-40">
<h1 class="font-bold text-2xl md:text-3xl">
Theodor Springmann Stiftung
</h1>
<p class="italic mt-1"> Gemeinnützige Stiftung bürgerlichen Rechts
</div>
<div class="hidden mt-4 italic">
Editionsphilologie, Literatur und Kunst<br>
Hospizforschung und Förderung der palliativer Einrichtungen<br>
Erforschung der seelischen, geistigen und körperlichen Entwicklung des Menschen<br>
Förderung des Wissens über strukturelle Gesellschaftskonflikte und Hilde für Betroffene<br>
</div>
<div class="mt-4">
Hirschgasse 2<br>
69120 Heidelberg<br>
[&VeryThinSpace;<a class="text-sm" href="https://maps.app.goo.gl/DcD7wFjHM6XrPwFNA" target="_blank">Google
Maps&thinsp;</a>&thinsp;<i class="text-sm relative top-0.5 ri-arrow-right-line"></i>]
</div>
<div class="mt-4">
06221 / 599 6811<br>
<a class="" href="mailto:tss@theodor-springmann-stiftung.de">
tss@theodor-springmann-stiftung.de
</a>
</div>
<div class="grow"></div>
<div class="mt-8 flex flex-col md:flex-row md:divide-x md:divide-solid text-sm divide-zinc-400">
<div class="md:pr-3">
<a class="" href="https://musenalm.de" target="_blank">
Musenalm
</a>
</div>
<div class="md:px-3">
Johann Georg Hamann:
<a class="ml-1" href="https://musenalm.de/hamann" target="_blank">
Werkausgabe
</a>
<div class="inline-block text-xs px-1">&middot;</div>
<a href="https://musenalm.de/hamann/hamann-briefe" target="_blank">
Briefausgabe
</a>
</div>
<div class="md:px-3">
<a class="" href="https://musenalm.de/hamann/hamann-briefe" target="_blank">
Lenz-Archiv
</a>
</div>
</div>
<div class="mt-4 mb-4">
<a class="text-sm" href="impressum.html">Impressum &amp; Datenschutz</a>
</div>
</body>
</html>

9185
src/public/css/remixicon.css Normal file

File diff suppressed because it is too large Load Diff

BIN
src/public/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

37
src/transform/main.js Normal file
View File

@@ -0,0 +1,37 @@
import "./site.css";
function setup() {
let templates = document.querySelectorAll("template[simple]");
templates.forEach((template) => {
let templateId = template.getAttribute("id");
let templateContent = template.content;
customElements.define(
templateId,
class extends HTMLElement {
constructor() {
super();
this.appendChild(templateContent.cloneNode(true));
this.slots = this.querySelectorAll("slot");
}
connectedCallback() {
let toremove = [];
this.slots.forEach((tslot) => {
let slotName = tslot.getAttribute("name");
let slotContent = this.querySelector(`[slot="${slotName}"]`);
if (slotContent) {
tslot.replaceWith(slotContent.cloneNode(true));
toremove.push(slotContent);
}
});
toremove.forEach((element) => {
element.remove();
});
}
},
);
});
}
export { setup };

90
src/transform/site.css Normal file
View File

@@ -0,0 +1,90 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
@font-face {
font-family: "Rancho";
font-style: normal;
font-weight: 500;
font-display: swap;
src: url(/fonts/Rancho-Regular.ttf) format("truetype");
}
@font-face {
font-family: "Merriweather";
font-style: normal;
font-weight: 500;
font-display: swap;
src: url(/fonts/Merriweather-Regular.ttf) format("truetype");
}
@font-face {
font-family: "Merriweather";
font-style: italic;
font-weight: 500;
font-display: swap;
src: url(/fonts/Merriweather-Italic.ttf) format("truetype");
}
@font-face {
font-family: "Merriweather";
font-style: normal;
font-weight: bold;
font-display: swap;
src: url(/fonts/Merriweather-Bold.ttf) format("truetype");
}
@font-face {
font-family: "Merriweather";
font-style: italic;
font-weight: bold;
font-display: swap;
src: url(/fonts/SourceSans3-BoldItalic.ttf) format("truetype");
}
@font-face {
font-family: "Source Sans 3";
font-style: normal;
font-weight: 500;
font-display: swap;
src: url(/fonts/SourceSans3-Medium.ttf) format("truetype");
}
@font-face {
font-family: "Source Sans 3";
font-style: italic;
font-weight: 500;
font-display: swap;
src: url(/fonts/SourceSans3-MediumItalic.ttf) format("truetype");
}
@font-face {
font-family: "Source Sans 3";
font-style: normal;
font-weight: bold;
font-display: swap;
src: url(/fonts/SourceSans3-Bold.ttf) format("truetype");
}
@font-face {
font-family: "Source Sans 3";
font-style: italic;
font-weight: bold;
font-display: swap;
src: url(/fonts/SourceSans3-BoldItalic.ttf) format("truetype");
}
}
@layer components {
a {
@apply underline decoration-dotted hover:decoration-solid text-zinc-800 hover:text-zinc-900;
}
h2 {
@apply font-bold;
}
p {
@apply mt-2 mb-3;
}
}

9
src/vite.config.js Normal file
View File

@@ -0,0 +1,9 @@
import { resolve } from "path";
import { defineConfig } from "vite";
export default defineConfig({
build: {
root: resolve(__dirname, "src"),
outDir: "./dist/",
emptyOutDir: true,
},
});

14
tailwind.config.js Normal file
View File

@@ -0,0 +1,14 @@
/** @type {import('tailwindcss').Config} */
export default {
content: ["./src/**/*.{html,js,svelte,ts,tmpl,liquid}", "./index.html"],
theme: {
extend: {
fontFamily: {
script: ["Rancho", "ui-serif"],
sans: ['"Source Sans 3"', '"Merriweather Sans"', "ui-sans-serif"],
serif: ['"Merriweather"', "ui-serif"],
},
},
},
plugins: [],
};