added imprint and data privacy page
parent
fd1d16ccb7
commit
622f5a5ca9
|
@ -0,0 +1,7 @@
|
|||
git add *
|
||||
|
||||
read -p "Commit message: " commit_message
|
||||
|
||||
git commit -m "$commit_message"
|
||||
|
||||
git push -u origin master
|
|
@ -2,31 +2,33 @@ npm run build
|
|||
|
||||
# create zip file of build folder
|
||||
|
||||
zip -r build.zip build
|
||||
zip -r build.zip .next
|
||||
|
||||
# conncect to server to clear folder
|
||||
# connect to server to clear folder
|
||||
|
||||
ssh root@93.177.67.38 << EOF
|
||||
cd /var/www/html/navilearn-landingpage/
|
||||
rm -rf *
|
||||
cd /home/navilearn-landingpage/
|
||||
rm -rf .next/
|
||||
exit
|
||||
EOF
|
||||
|
||||
# copy zip file to server
|
||||
|
||||
scp build.zip root@93.177.67.38:/var/www/html/navilearn-landingpage/
|
||||
scp build.zip root@93.177.67.38:/home/navilearn-landingpage/
|
||||
|
||||
# connect to server
|
||||
|
||||
ssh root@93.177.67.38 << EOF
|
||||
cd /var/www/html/navilearn-landingpage/
|
||||
cd /home/navilearn-landingpage/
|
||||
unzip build.zip
|
||||
mv /var/www/html/navilearn-landingpage/build/* /var/www/html/navilearn-landingpage/
|
||||
rm -rf /var/www/html/navilearn-landingpage/build
|
||||
rm build.zip
|
||||
exit
|
||||
EOF
|
||||
|
||||
# remove zip file from local machine
|
||||
|
||||
rm build.zip
|
||||
rm build.zip
|
||||
|
||||
echo " "
|
||||
echo " "
|
||||
echo "Deployment Done. Dont forget to restart the service!"
|
|
@ -14,7 +14,7 @@ export default function Login() {
|
|||
return (
|
||||
<SlimLayout>
|
||||
<div className="flex">
|
||||
<Link href="/" aria-label="Home">
|
||||
<Link href="/" aria-label="Startseite">
|
||||
<Logo className="h-10 w-auto" />
|
||||
</Link>
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@ export default function RegisterForm() {
|
|||
event.preventDefault()
|
||||
|
||||
const response = await fetch(
|
||||
'https://navilearnapi.ex.umbach.dev/api/v1/organization',
|
||||
`https://${process.env.NODE_ENV === 'production' ? window.location.host : 'navilearnapi.ex.umbach.dev'}/api/v1/organization`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
|
|
@ -6,13 +6,17 @@ import { SlimLayout } from '@/components/SlimLayout'
|
|||
import RegisterForm from './form'
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Sign Up',
|
||||
title: 'Registrierung',
|
||||
}
|
||||
|
||||
export default function Register() {
|
||||
return (
|
||||
<SlimLayout>
|
||||
<Link href="/" aria-label="Home" className="flex items-center text-sm">
|
||||
<Link
|
||||
href="/"
|
||||
aria-label="Startseite"
|
||||
className="flex items-center text-sm"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
|
@ -30,7 +34,7 @@ export default function Register() {
|
|||
</Link>
|
||||
|
||||
<div className="mt-4 flex">
|
||||
<Link href="/" aria-label="Home">
|
||||
<Link href="/" aria-label="Startseite">
|
||||
<Logo className="h-10 w-auto" />
|
||||
</Link>
|
||||
</div>
|
||||
|
@ -38,7 +42,7 @@ export default function Register() {
|
|||
Jetzt kostenlos registrieren
|
||||
</h2>
|
||||
<p className="mt-2 text-sm text-gray-700">
|
||||
Testen Sie 30 Tage lang kostenlos NaviLearn.
|
||||
Testen Sie NaviLearn kostenlos.
|
||||
</p>
|
||||
|
||||
<RegisterForm />
|
||||
|
|
|
@ -0,0 +1,520 @@
|
|||
import { Container } from '@/components/Container'
|
||||
import {
|
||||
Anchor,
|
||||
BaseBoldText,
|
||||
BoldText,
|
||||
List,
|
||||
ListItem,
|
||||
Text,
|
||||
} from '@/components/Typography'
|
||||
|
||||
export default function Datenschutz() {
|
||||
return (
|
||||
<Container className="pb-12">
|
||||
<h1 className="text-xl font-bold text-gray-900 sm:text-3xl">
|
||||
Datenschutzerklärung
|
||||
</h1>
|
||||
|
||||
<BoldText>1. Datenschutz auf einen Blick</BoldText>
|
||||
<BaseBoldText>Allgemeine Hinweise</BaseBoldText>
|
||||
<Text>
|
||||
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit
|
||||
Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen.
|
||||
Personenbezogene Daten sind alle Daten, mit denen Sie persönlich
|
||||
identifiziert werden können. Ausführliche Informationen zum Thema
|
||||
Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten
|
||||
Datenschutzerklärung.
|
||||
</Text>
|
||||
|
||||
<BoldText>Datenerfassung auf dieser Website</BoldText>
|
||||
<BoldText>
|
||||
Wer ist verantwortlich für die Datenerfassung auf dieser Website?
|
||||
</BoldText>
|
||||
<Text>
|
||||
Die Datenverarbeitung auf dieser Website erfolgt durch den
|
||||
Websitebetreiber. Dessen Kontaktdaten können Sie dem Abschnitt „Hinweis
|
||||
zur Verantwortlichen Stelle“ in dieser Datenschutzerklärung entnehmen.
|
||||
</Text>
|
||||
<BoldText>Wie erfassen wir Ihre Daten?</BoldText>
|
||||
<Text>
|
||||
Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese
|
||||
mitteilen. Hierbei kann es sich z. B. um Daten handeln, die Sie in ein
|
||||
Kontaktformular eingeben.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Andere Daten werden automatisch oder nach Ihrer Einwilligung beim Besuch
|
||||
der Website durch unsere IT-Systeme erfasst. Das sind vor allem
|
||||
technische Daten (z. B. Internetbrowser, Betriebssystem oder Uhrzeitdes
|
||||
Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald
|
||||
Sie diese Website betreten.
|
||||
</Text>
|
||||
|
||||
<BoldText>Wofür nutzen wir Ihre Daten?</BoldText>
|
||||
<Text>
|
||||
Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der
|
||||
Website zu gewährleisten. Andere Daten können zur Analyse Ihres
|
||||
Nutzerverhaltens verwendet werden.
|
||||
</Text>
|
||||
<BoldText>Welche Rechte haben Sie bezüglich Ihrer Daten?</BoldText>
|
||||
<Text>
|
||||
Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft,
|
||||
Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu
|
||||
erhalten. Sie haben außerdem ein Recht, die Berichtigung oder Löschung
|
||||
dieser Daten zu verlangen. Wenn Sie eine Einwilligung zur
|
||||
Datenverarbeitung erteilt haben, können Sie diese Einwilligung jederzeit
|
||||
für die Zukunft widerrufen. Außerdem haben Sie das Recht, unter
|
||||
bestimmten Umständen die Einschränkung der Verarbeitung Ihrer
|
||||
personenbezogenen Daten zu verlangen. Des Weiteren steht Ihnen ein
|
||||
Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Hierzu sowie zu
|
||||
weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit an uns
|
||||
wenden.
|
||||
</Text>
|
||||
<BoldText>Analyse-Tools und Tools von Drittanbietern</BoldText>
|
||||
<Text>
|
||||
Beim Besuch dieser Website kann Ihr Surf-Verhalten statistisch
|
||||
ausgewertet werden. Das geschieht vor allem mit sogenannten
|
||||
Analyseprogrammen.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Detaillierte Informationen zu diesen Analyseprogrammen finden Sie in der
|
||||
folgenden Datenschutzerklärung.
|
||||
</Text>
|
||||
|
||||
<BaseBoldText>2. Hosting</BaseBoldText>
|
||||
<Text>
|
||||
Diese Website wird extern gehostet. Die personenbezogenen Daten, die auf
|
||||
dieser Website erfasst werden, werden auf den Servern des Hosters / der
|
||||
Hoster gespeichert. Hierbei kann es sich v. a. um IP-Adressen,
|
||||
Kontaktanfragen, Meta- und Kommunikationsdaten, Vertragsdaten,
|
||||
Kontaktdaten, Namen, Websitezugriffe und sonstige Daten, die über eine
|
||||
Website generiert werden, handeln.
|
||||
</Text>
|
||||
<BoldText>Externes Hosting</BoldText>
|
||||
<Text>
|
||||
Diese Website wird extern gehostet. Die personenbezogenen Daten, die auf
|
||||
dieser Website erfasst werden, werden auf den Servern des Hosters / der
|
||||
Hoster gespeichert. Hierbei kann es sich v. a. um IP-Adressen,
|
||||
Kontaktanfragen, Meta- und Kommunikationsdaten, Vertragsdaten,
|
||||
Kontaktdaten, Namen, Websitezugriffe und sonstige Daten, die über eine
|
||||
Website generiert werden, handeln.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Das externe Hosting erfolgt zum Zwecke der Vertragserfüllung gegenüber
|
||||
unseren potenziellen und bestehenden Kunden (Art. 6 Abs. 1 lit. b DSGVO)
|
||||
und im Interesse einer sicheren, schnellen und effizienten
|
||||
Bereitstellung unseres Online-Angebots durch einen professionellen
|
||||
Anbieter (Art. 6 Abs. 1 lit. f DSGVO). Sofern eine entsprechende
|
||||
Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich
|
||||
auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG,
|
||||
soweit die Einwilligung die Speicherung von Cookies oder den Zugriff auf
|
||||
Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im
|
||||
Sinne des TTDSG umfasst. Die Einwilligung ist jederzeit widerrufbar.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Unser Hoster wird Ihre Daten nur insoweit verarbeiten, wie dies zur
|
||||
Erfüllung seiner Leistungspflichten erforderlich ist und unsere
|
||||
Weisungen in Bezug auf diese Daten befolgen.
|
||||
</Text>
|
||||
<Text className="mt-4">Wir setzen folgenden Hoster ein:</Text>
|
||||
<Text className="mt-4">
|
||||
netcup GmbH
|
||||
<br /> Daimlerstraße 25
|
||||
<br />
|
||||
76185 Karlsruhe
|
||||
</Text>
|
||||
<BaseBoldText>
|
||||
3. Allgemeine Hinweise und Pflichtinformationen
|
||||
</BaseBoldText>
|
||||
<BoldText>Datenschutz</BoldText>
|
||||
<Text>
|
||||
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten
|
||||
sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und
|
||||
entsprechend den gesetzlichen Datenschutzvorschriften sowie dieser
|
||||
Datenschutzerklärung.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Wenn Sie diese Website benutzen, werden verschiedene personenbezogene
|
||||
Daten erhoben. Personenbezogene Daten sind Daten, mit denen Sie
|
||||
persönlich identifiziert werden können. Die vorliegende
|
||||
Datenschutzerklärung erläutert, welche Daten wir erheben und wofür wir
|
||||
sie nutzen. Sie erläutert auch, wie und zu welchem Zweck das geschieht.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Wir weisen darauf hin, dass die Datenübertragung im Internet (z. B. bei
|
||||
der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein
|
||||
lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht
|
||||
möglich.
|
||||
</Text>
|
||||
|
||||
<BoldText>Hinweis zur verantwortlichen Stelle</BoldText>
|
||||
<Text>
|
||||
Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website
|
||||
ist:
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Jan Umbach
|
||||
<br /> Tannenwäldchen 20
|
||||
<br /> 34212 Melsungen
|
||||
</Text>
|
||||
|
||||
<Text className="mt-4">
|
||||
Telefon: <Anchor href="tel:+49 160 95040430">+49 160 95040430</Anchor>
|
||||
<br /> E-Mail:{' '}
|
||||
<Anchor href="mailto:navilearn@jannex.de">navilearn@jannex.de</Anchor>
|
||||
</Text>
|
||||
|
||||
<Text className="mt-4">
|
||||
Verantwortliche Stelle ist die natürliche oder juristische Person, die
|
||||
allein oder gemeinsam mit anderen über die Zwecke und Mittel der
|
||||
Verarbeitung von personenbezogenen Daten (z. B. Namen, E-Mail-Adressen
|
||||
o. Ä.) entscheidet.
|
||||
</Text>
|
||||
|
||||
<BoldText>Speicherdauer</BoldText>
|
||||
<Text>
|
||||
Soweit innerhalb dieser Datenschutzerklärung keine speziellere
|
||||
Speicherdauer genannt wurde, verbleiben Ihre personenbezogenen Daten bei
|
||||
uns, bis der Zweck für die Datenverarbeitung entfällt. Wenn Sie ein
|
||||
berechtigtes Löschersuchen geltend machen oder eine Einwilligung zur
|
||||
Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, sofern wir
|
||||
keine anderen rechtlich zulässigen Gründe für die Speicherung Ihrer
|
||||
personenbezogenen Daten haben (z. B. steuer- oder handelsrechtliche
|
||||
Aufbewahrungsfristen); im letztgenannten Fall erfolgt die Löschung nach
|
||||
Fortfall dieser Gründe.
|
||||
</Text>
|
||||
|
||||
<BoldText>
|
||||
Allgemeine Hinweise zu den Rechtsgrundlagen der Datenverarbeitung auf
|
||||
dieser Website
|
||||
</BoldText>
|
||||
<Text>
|
||||
Sofern Sie in die Datenverarbeitung eingewilligt haben, verarbeiten wir
|
||||
Ihre personenbezogenen Daten auf Grundlage von Art. 6 Abs. 1 lit. a
|
||||
DSGVO bzw. Art. 9 Abs. 2 lit. a DSGVO, sofern besondere Datenkategorien
|
||||
nach Art. 9 Abs. 1 DSGVO verarbeitet werden. Im Falle einer
|
||||
ausdrücklichen Einwilligung in die Übertragung personenbezogener Daten
|
||||
in Drittstaaten erfolgt die Datenverarbeitung außerdem auf Grundlage von
|
||||
Art. 49 Abs. 1 lit. a DSGVO. Sofern Sie in die Speicherung von Cookies
|
||||
oder in den Zugriff auf Informationen in Ihr Endgerät (z. B. via
|
||||
Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung
|
||||
zusätzlich auf Grundlage von § 25 Abs. 1 TTDSG. Die Einwilligung ist
|
||||
jederzeit widerrufbar. Sind Ihre Daten zur Vertragserfüllung oder zur
|
||||
Durchführung vorvertraglicher Maßnahmen erforderlich, verarbeiten wir
|
||||
Ihre Daten auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO. Des Weiteren
|
||||
verarbeiten wir Ihre Daten, sofern diese zur Erfüllung einer rechtlichen
|
||||
Verpflichtung erforderlich sind auf Grundlage von Art. 6 Abs. 1 lit. c
|
||||
DSGVO. Die Datenverarbeitung kann ferner auf Grundlage unseres
|
||||
berechtigten Interesses nach Art. 6 Abs. 1 lit. f DSGVO erfolgen. Über
|
||||
die jeweils im Einzelfall einschlägigen Rechtsgrundlagen wird in den
|
||||
folgenden Absätzen dieser Datenschutzerklärung informiert.
|
||||
</Text>
|
||||
|
||||
<BoldText>Empfänger von personenbezogenen Daten</BoldText>
|
||||
<Text>
|
||||
Sofern Sie in die Datenverarbeitung eingewilligt haben, verarbeiten wir
|
||||
Ihre personenbezogenen Daten auf Grundlage von Art. 6 Abs. 1 lit. a
|
||||
DSGVO bzw. Art. 9 Abs. 2 lit. a DSGVO, sofern besondere Datenkategorien
|
||||
nach Art. 9 Abs. 1 DSGVO verarbeitet werden. Im Falle einer
|
||||
ausdrücklichen Einwilligung in die Übertragung personenbezogener Daten
|
||||
in Drittstaaten erfolgt die Datenverarbeitung außerdem auf Grundlage von
|
||||
Art. 49 Abs. 1 lit. a DSGVO. Sofern Sie in die Speicherung von Cookies
|
||||
oder in den Zugriff auf Informationen in Ihr Endgerät (z. B. via
|
||||
Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung
|
||||
zusätzlich auf Grundlage von § 25 Abs. 1 TTDSG. Die Einwilligung ist
|
||||
jederzeit widerrufbar. Sind Ihre Daten zur Vertragserfüllung oder zur
|
||||
Durchführung vorvertraglicher Maßnahmen erforderlich, verarbeiten wir
|
||||
IhrIm Rahmen unserer Geschäftstätigkeit arbeiten wir mit verschiedenen
|
||||
externen Stellen zusammen. Dabei ist teilweise auch eine Übermittlung
|
||||
von personenbezogenen Daten an diese externen Stellen erforderlich. Wir
|
||||
geben personenbezogene Daten nur dann an externe Stellen weiter, wenn
|
||||
dies im Rahmen einer Vertragserfüllung erforderlich ist, wenn wir
|
||||
gesetzlich hierzu verpflichtet sind (z. B. Weitergabe von Daten an
|
||||
Steuerbehörden), wenn wir ein berechtigtes Interesse nach Art. 6 Abs. 1
|
||||
lit. f DSGVO an der Weitergabe haben oder wenn eine sonstige
|
||||
Rechtsgrundlage die Datenweitergabe erlaubt. Beim Einsatz von
|
||||
Auftragsverarbeitern geben wir personenbezogene Daten unserer Kunden nur
|
||||
auf Grundlage eines gültigen Vertrags über Auftragsverarbeitung weiter.
|
||||
Im Falle einer gemeinsamen Verarbeitung wird ein Vertrag über gemeinsame
|
||||
Verarbeitung geschlossen.e Daten auf Grundlage des Art. 6 Abs. 1 lit. b
|
||||
DSGVO. Des Weiteren verarbeiten wir Ihre Daten, sofern diese zur
|
||||
Erfüllung einer rechtlichen Verpflichtung erforderlich sind auf
|
||||
Grundlage von Art. 6 Abs. 1 lit. c DSGVO. Die Datenverarbeitung kann
|
||||
ferner auf Grundlage unseres berechtigten Interesses nach Art. 6 Abs. 1
|
||||
lit. f DSGVO erfolgen. Über die jeweils im Einzelfall einschlägigen
|
||||
Rechtsgrundlagen wird in den folgenden Absätzen dieser
|
||||
Datenschutzerklärung informiert.
|
||||
</Text>
|
||||
<BoldText>Widerruf Ihrer Einwilligung zur Datenverarbeitung</BoldText>
|
||||
<Text>
|
||||
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen
|
||||
Einwilligung möglich. Sie können eine bereits erteilte Einwilligung
|
||||
jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten
|
||||
Datenverarbeitung bleibt vom Widerruf unberührt.
|
||||
</Text>
|
||||
<BoldText>
|
||||
Widerspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie
|
||||
gegen Direktwerbung (Art. 21 DSGVO)
|
||||
</BoldText>
|
||||
<Text>
|
||||
WENN DIE DATENVERARBEITUNG AUF GRUNDLAGE VON ART. 6 ABS. 1 LIT. E ODER F
|
||||
DSGVO ERFOLGT, HABEN SIE JEDERZEIT DAS RECHT, AUS GRÜNDEN, DIE SICH AUS
|
||||
IHRER BESONDEREN SITUATION ERGEBEN, GEGEN DIE VERARBEITUNG IHRER
|
||||
PERSONENBEZOGENEN DATEN WIDERSPRUCH EINZULEGEN; DIES GILT AUCH FÜR EIN
|
||||
AUF DIESE BESTIMMUNGEN GESTÜTZTES PROFILING. DIE JEWEILIGE
|
||||
RECHTSGRUNDLAGE, AUF DENEN EINE VERARBEITUNG BERUHT, ENTNEHMEN SIE
|
||||
DIESER DATENSCHUTZERKLÄRUNG. WENN SIE WIDERSPRUCH EINLEGEN, WERDEN WIR
|
||||
IHRE BETROFFENEN PERSONENBEZOGENEN DATEN NICHT MEHR VERARBEITEN, ES SEI
|
||||
DENN, WIR KÖNNEN ZWINGENDE SCHUTZWÜRDIGE GRÜNDE FÜR DIE VERARBEITUNG
|
||||
NACHWEISEN, DIE IHRE INTERESSEN, RECHTE UND FREIHEITEN ÜBERWIEGEN ODER
|
||||
DIE VERARBEITUNG DIENT DER GELTENDMACHUNG, AUSÜBUNG ODER VERTEIDIGUNG
|
||||
VON RECHTSANSPRÜCHEN (WIDERSPRUCH NACH ART. 21 ABS. 1 DSGVO).
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
WERDEN IHRE PERSONENBEZOGENEN DATEN VERARBEITET, UM DIREKTWERBUNG ZU
|
||||
BETREIBEN, SO HABEN SIE DAS RECHT, JEDERZEIT WIDERSPRUCH GEGEN DIE
|
||||
VERARBEITUNG SIE BETREFFENDER PERSONENBEZOGENER DATEN ZUM ZWECKE
|
||||
DERARTIGER WERBUNG EINZULEGEN; DIES GILT AUCH FÜR DAS PROFILING, SOWEIT
|
||||
ES MIT SOLCHER DIREKTWERBUNG IN VERBINDUNG STEHT. WENN SIE
|
||||
WIDERSPRECHEN, WERDEN IHRE PERSONENBEZOGENEN DATEN ANSCHLIESSEND NICHT
|
||||
MEHR ZUM ZWECKE DER DIREKTWERBUNG VERWENDET (WIDERSPRUCH NACH ART. 21
|
||||
ABS. 2 DSGVO).
|
||||
</Text>
|
||||
<BoldText>Beschwerderecht bei der zuständigen Aufsichtsbehörde</BoldText>
|
||||
<Text>
|
||||
Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein
|
||||
Beschwerderecht bei einer Aufsichtsbehörde, insbesondere in dem
|
||||
Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres Arbeitsplatzes oder
|
||||
des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht besteht
|
||||
unbeschadet anderweitiger verwaltungsrechtlicher oder gerichtlicher
|
||||
Rechtsbehelfe.
|
||||
</Text>
|
||||
<BoldText>Recht auf Datenübertragbarkeit</BoldText>
|
||||
<Text>
|
||||
Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung
|
||||
oder in Erfüllung eines Vertrags automatisiert verarbeiten, an sich oder
|
||||
an einen Dritten in einem gängigen, maschinenlesbaren Format aushändigen
|
||||
zu lassen. Sofern Sie die direkte Übertragung der Daten an einen anderen
|
||||
Verantwortlichen verlangen, erfolgt dies nur, soweit es technisch
|
||||
machbar ist.
|
||||
</Text>
|
||||
<BoldText>Auskunft, Berichtigung und Löschung</BoldText>
|
||||
<Text>
|
||||
Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit
|
||||
das Recht auf unentgeltliche Auskunft über Ihre gespeicherten
|
||||
personenbezogenen Daten, deren Herkunft und Empfänger und den Zweck der
|
||||
Datenverarbeitung und ggf. ein Recht auf Berichtigung oder Löschung
|
||||
dieser Daten. Hierzu sowiezu weiteren Fragen zum Thema personenbezogene
|
||||
Daten können Sie sich jederzeit an uns wenden.
|
||||
</Text>
|
||||
<BoldText>Recht auf Einschränkung der Verarbeitung</BoldText>
|
||||
<Text>
|
||||
Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer
|
||||
personenbezogenen Daten zu verlangen. Hierzu können Sie sich jederzeit
|
||||
an uns wenden. Das Recht auf Einschränkung der Verarbeitung besteht in
|
||||
folgenden Fällen:
|
||||
</Text>
|
||||
|
||||
<List>
|
||||
<ListItem>
|
||||
Wenn Sie die Richtigkeit Ihrer bei uns gespeicherten personenbezogenen
|
||||
Daten bestreiten, benötigen wir in der Regel Zeit, um dies zu
|
||||
überprüfen. Für die Dauer der Prüfung haben Sie das Recht, die
|
||||
Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu
|
||||
verlangen.
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
Wenn die Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig
|
||||
geschah/geschieht, können Sie statt der Löschung die Einschränkung der
|
||||
Datenverarbeitung verlangen.
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie
|
||||
jedoch zur Ausübung, Verteidigung oder Geltendmachung von
|
||||
Rechtsansprüchen benötigen, haben Sie das Recht, statt der Löschung
|
||||
die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu
|
||||
verlangen.
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben,
|
||||
muss eine Abwägung zwischen Ihren und unseren Interessen vorgenommen
|
||||
werden. Solange noch nicht feststeht, wessen Interessen überwiegen,
|
||||
haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer
|
||||
personenbezogenen Daten zu verlangen.
|
||||
</ListItem>
|
||||
</List>
|
||||
|
||||
<Text className="mt-4">
|
||||
Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten eingeschränkt
|
||||
haben, dürfen diese Daten – von ihrer Speicherung abgesehen – nur mit
|
||||
Ihrer Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung
|
||||
von Rechtsansprüchen oder zum Schutz der Rechte einer anderen
|
||||
natürlichen oder juristischen Person oder aus Gründen eines wichtigen
|
||||
öffentlichen Interesses der Europäischen Union oder eines Mitgliedstaats
|
||||
verarbeitet werden.
|
||||
</Text>
|
||||
|
||||
<BoldText>SSL- bzw. TLS-Verschlüsselung</BoldText>
|
||||
<Text>
|
||||
Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der Übertragung
|
||||
vertraulicher Inhalte, wie zumBeispiel Bestellungen oder Anfragen, die
|
||||
Sie an uns als Seitenbetreiber senden, eine SSL- bzw. TLS-
|
||||
Verschlüsselung. Eine verschlüsselte Verbindung erkennen Sie daran, dass
|
||||
die Adresszeile des Browsers von„http://“ auf „https://“ wechselt und an
|
||||
dem Schloss-Symbol in Ihrer Browserzeile.
|
||||
</Text>
|
||||
|
||||
<Text className="mt-4">
|
||||
Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die Daten,
|
||||
die Sie an uns übermitteln, nicht von Dritten mitgelesen werden.
|
||||
</Text>
|
||||
|
||||
<BoldText>4. Datenerfassung auf dieser Website</BoldText>
|
||||
<BaseBoldText>Cookies</BaseBoldText>
|
||||
<Text className="mt-4">
|
||||
Unsere Internetseiten verwenden so genannte „Cookies“. Cookies sind
|
||||
kleine Datenpakete und richten auf Ihrem Endgerät keinen Schaden an. Sie
|
||||
werden entweder vorübergehend für die Dauer einer Sitzung
|
||||
(Session-Cookies) oder dauerhaft (permanente Cookies) auf Ihrem Endgerät
|
||||
gespeichert. Session-Cookies werden nach Ende Ihres Besuchs automatisch
|
||||
gelöscht. Permanente Cookies bleiben auf Ihrem Endgerät gespeichert, bis
|
||||
Sie diese selbst löschen oder eine automatische Löschung durch Ihren
|
||||
Webbrowser erfolgt.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Cookies können von uns (First-Party-Cookies) oder von Drittunternehmen
|
||||
stammen (sog. Third-Party- Cookies). Third-Party-Cookies ermöglichen die
|
||||
Einbindung bestimmter Dienstleistungen vonDrittunternehmen innerhalb von
|
||||
Webseiten (z. B. Cookies zur Abwicklung von Zahlungsdienstleistungen).
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Cookies haben verschiedene Funktionen. Zahlreiche Cookies sind technisch
|
||||
notwendig, da bestimmte Webseitenfunktionen ohne diese nicht
|
||||
funktionieren würden (z. B. die Warenkorbfunktion oder die Anzeige von
|
||||
Videos). Andere Cookies können zur Auswertung des Nutzerverhaltens oder
|
||||
zu Werbezwecken verwendet werden.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Cookies, die zur Durchführung des elektronischen Kommunikationsvorgangs,
|
||||
zur Bereitstellung bestimmter, von Ihnen erwünschter Funktionen (z. B.
|
||||
für die Warenkorbfunktion) oder zur Optimierung der Website (z. B.
|
||||
Cookies zur Messung des Webpublikums) erforderlich sind (notwendige
|
||||
Cookies), werden auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO
|
||||
gespeichert, sofern keine andere Rechtsgrundlage angegeben wird.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Der Websitebetreiber hat ein berechtigtes Interesse an der Speicherung
|
||||
von notwendigen Cookies zur technisch fehlerfreien und optimierten
|
||||
Bereitstellung seiner Dienste. Sofern eine Einwilligung zur Speicherung
|
||||
von Cookies und vergleichbaren Wiedererkennungstechnologien abgefragt
|
||||
wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage dieser
|
||||
Einwilligung (Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG); die
|
||||
Einwilligung ist jederzeit widerrufbar.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Sie können Ihren Browser so einstellen, dass Sie über das Setzen von
|
||||
Cookies informiert werden und Cookies nur im Einzelfall erlauben, die
|
||||
Annahme von Cookies für bestimmte Fälle oder generell ausschließen sowie
|
||||
das automatische Löschen der Cookies beim Schließen des Browsers
|
||||
aktivieren. Bei der Deaktivierung von Cookies kann die Funktionalität
|
||||
dieser Website eingeschränkt sein.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Welche Cookies und Dienste auf dieser Website eingesetzt werden, können
|
||||
Sie dieser Datenschutzerklärung entnehmen.
|
||||
</Text>
|
||||
|
||||
<BoldText>5. Plugins und Tools</BoldText>
|
||||
<BaseBoldText>Google Fonts</BaseBoldText>
|
||||
<Text>
|
||||
Diese Seite nutzt zur einheitlichen Darstellung von Schriftarten so
|
||||
genannte Google Fonts, die von Google bereitgestellt werden. Beim Aufruf
|
||||
einer Seite lädt Ihr Browser die benötigten Fonts in ihren Browsercache,
|
||||
um Texte und Schriftarten korrekt anzuzeigen.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Zu diesem Zweck muss der von Ihnen verwendete Browser Verbindung zu den
|
||||
Servern von Google aufnehmen. Hierdurch erlangt Google Kenntnis darüber,
|
||||
dass über Ihre IP-Adresse diese Website aufgerufen wurde. Die Nutzung
|
||||
von Google Fonts erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO.
|
||||
Der Websitebetreiber hat ein berechtigtes Interesse an der einheitlichen
|
||||
Darstellung des Schriftbildes auf seiner Website. Sofern eine
|
||||
entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung
|
||||
ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25
|
||||
Abs. 1 TTDSG, soweit die Einwilligung die Speicherung von Cookies oder
|
||||
den Zugriff auf Informationen im Endgerät des Nutzers (z. B.
|
||||
Device-Fingerprinting) im Sinne des TTDSG umfasst. Die Einwilligung ist
|
||||
jederzeit widerrufbar.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Wenn Ihr Browser Google Fonts nicht unterstützt, wird eine
|
||||
Standardschrift von Ihrem Computer genutzt.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Weitere Informationen zu Google Fonts finden Sie unter
|
||||
<br />
|
||||
<Anchor href="https://developers.google.com/fonts/faq">
|
||||
https://developers.google.com/fonts/faq
|
||||
</Anchor>{' '}
|
||||
und in der Datenschutzerklärung von Google: <br />
|
||||
<Anchor href="https://policies.google.com/privacy">
|
||||
https://policies.google.com/privacy
|
||||
</Anchor>
|
||||
.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Das Unternehmen verfügt über eine Zertifizierung nach dem „EU-US Data
|
||||
Privacy Framework“ (DPF). Der DPF ist ein Übereinkommen zwischen der
|
||||
Europäischen Union und den USA, der die Einhaltung europäischer
|
||||
Datenschutzstandards bei Datenverarbeitungen in den USA gewährleisten
|
||||
soll. Jedes nach dem DPF zertifizierte Unternehmen verpflichtet sich,
|
||||
diese Datenschutzstandards einzuhalten. Weitere Informationen hierzu
|
||||
erhalten Sie vom Anbieter unter folgendem Link:
|
||||
</Text>
|
||||
<Anchor href="https://www.dataprivacyframework.gov/s/participant-search/participant- detail?contact=true&id=a2zt000000001L5AAI&status=Active">
|
||||
https://www.dataprivacyframework.gov/s/participant-search/participant-
|
||||
detail?contact=true&id=a2zt000000001L5AAI&status=Active
|
||||
</Anchor>
|
||||
|
||||
<BoldText>Microsoft Clarity</BoldText>
|
||||
<Text>
|
||||
Diese Website nutzt den Webanalysedienst des folgenden Anbieters:
|
||||
Microsoft Corporation, One Microsoft Way, Redmond, WA 98052-6399 USA
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Mithilfe von Cookies und/oder vergleichbaren Technologien
|
||||
(Tracking-Pixel, Web-Beacons, Algorithmen zum Auslesen von Endgeräte-
|
||||
und Browserinformationen) erhebt und speichert der Dienst
|
||||
pseudonymisierte Besucherdaten, darunter Informationen des verwendeten
|
||||
Endgeräts wie die IP-Adresse und Browserinformationen, um sie für
|
||||
statistische Analysen des Nutzungsverhaltens auf unserer Website
|
||||
auszuwerten und pseudonymisierte Nutzungsprofile zu erstellen. Unter
|
||||
anderem ist so die Auswertung von Bewegungsmustern (sog. Heatmaps)
|
||||
möglich, welche die Dauer von Seitenbesuchen sowie Interaktionen mit
|
||||
Seiteninhalten (z. B. Texteingaben, Scrollen, Klicks und Mouse-Overs)
|
||||
aufzeigen. Die Pseudonymisierung schließt eine direkte
|
||||
Personenbeziehbarkeit grundsätzlich aus. Eine Zusammenführung mit auf
|
||||
andere Weise erhobenen Klardaten zu Ihrer Person findet nicht statt.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Alle oben beschriebenen Verarbeitungen, insbesondere das Auslesen oder
|
||||
Speichern von Informationen auf dem verwendeten Endgerät, werden nur
|
||||
dann vollzogen, wenn Sie uns gemäß Art. 6 Abs. 1 lit. a DSGVO dazu Ihre
|
||||
ausdrückliche Einwilligung erteilt haben. Sie können Ihre erteilte
|
||||
Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen, indem Sie
|
||||
diesen Dienst in dem auf der Webseite bereitgestellten
|
||||
„Cookie-Consent-Tool“ deaktivieren.
|
||||
</Text>
|
||||
<Text className="mt-4">
|
||||
Für Datenübermittlungen in die USA hat sich der Anbieter dem
|
||||
EU-US-Datenschutzrahmen (EU-US Data Privacy Framework) angeschlossen,
|
||||
das auf Basis eines Angemessenheitsbeschlusses der Europäischen
|
||||
Kommission die Einhaltung des europäischen Datenschutzniveaus
|
||||
sicherstellt.
|
||||
</Text>
|
||||
|
||||
<Text className="mt-4">
|
||||
Quelle: <Anchor href="https://www.e-recht24.de">eRecht24</Anchor>
|
||||
</Text>
|
||||
</Container>
|
||||
)
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,50 @@
|
|||
import { Container } from '@/components/Container'
|
||||
import { Anchor, BoldText, Text } from '@/components/Typography'
|
||||
|
||||
export default function Impressum() {
|
||||
return (
|
||||
<Container className="pb-12">
|
||||
<h1 className="text-xl font-bold text-gray-900 sm:text-3xl">IMPRESSUM</h1>
|
||||
|
||||
<BoldText>Angaben gemäß § 5 TMG</BoldText>
|
||||
<Text>Jan Umbach</Text>
|
||||
<Text>Tannenwäldchen 20</Text>
|
||||
<Text>34212 Melsungen</Text>
|
||||
|
||||
<BoldText>Kontakt</BoldText>
|
||||
<Text>
|
||||
Telefon: <Anchor href="tel:+49 160 95040430">+49 160 95040430</Anchor>
|
||||
</Text>
|
||||
<Text>
|
||||
E-Mail:{' '}
|
||||
<Anchor href="mailto:navilearn@jannex.de">navilearn@jannex.de</Anchor>
|
||||
</Text>
|
||||
|
||||
<BoldText>Umsatzsteuer-ID</BoldText>
|
||||
<Text>USt. wird nicht ausgewiesen (Kleinunternehmerregelung)</Text>
|
||||
|
||||
<BoldText>EU-Streitschlichtung</BoldText>
|
||||
<Text>
|
||||
Die Europäische Kommission stellt eine Plattform zur
|
||||
Online-Streitbeilegung (OS) bereit:
|
||||
</Text>
|
||||
<Anchor href="https://ec.europa.eu/consumers/odr/">
|
||||
https://ec.europa.eu/consumers/odr/
|
||||
</Anchor>
|
||||
{'.'}
|
||||
<Text>Unsere E-Mail-Adresse finden Sie oben im Impressum.</Text>
|
||||
|
||||
<BoldText>
|
||||
Verbraucherstreitbeilegung/Universalschlichtungsstelle
|
||||
</BoldText>
|
||||
<Text>
|
||||
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren
|
||||
vor einer Verbraucherschlichtungsstelle teilzunehmen.
|
||||
</Text>
|
||||
|
||||
<Text className="mt-4">
|
||||
Quelle: <Anchor href="https://www.e-recht24.de">eRecht24</Anchor>
|
||||
</Text>
|
||||
</Container>
|
||||
)
|
||||
}
|
|
@ -3,6 +3,8 @@ import { Inter, Lexend } from 'next/font/google'
|
|||
import clsx from 'clsx'
|
||||
|
||||
import '@/styles/tailwind.css'
|
||||
import { Footer } from '@/components/Footer'
|
||||
import { Header } from '@/components/Header'
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: {
|
||||
|
@ -39,7 +41,12 @@ export default function RootLayout({
|
|||
lexend.variable,
|
||||
)}
|
||||
>
|
||||
<body className="flex h-full flex-col">{children}</body>
|
||||
<body className="flex h-full flex-col">
|
||||
<Header />
|
||||
{children}
|
||||
|
||||
<Footer />
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -8,19 +8,19 @@ export default function NotFound() {
|
|||
return (
|
||||
<SlimLayout>
|
||||
<div className="flex">
|
||||
<Link href="/" aria-label="Home">
|
||||
<Link href="/" aria-label="Startseite">
|
||||
<Logo className="h-10 w-auto" />
|
||||
</Link>
|
||||
</div>
|
||||
<p className="mt-20 text-sm font-medium text-gray-700">404</p>
|
||||
<h1 className="mt-3 text-lg font-semibold text-gray-900">
|
||||
Page not found
|
||||
Seite nicht gefunden
|
||||
</h1>
|
||||
<p className="mt-3 text-sm text-gray-700">
|
||||
Sorry, we couldn’t find the page you’re looking for.
|
||||
Wir konnten die Seite, die Sie suchen, nicht finden.
|
||||
</p>
|
||||
<Button href="/" className="mt-10">
|
||||
Go back home
|
||||
Zurück zur Startseite
|
||||
</Button>
|
||||
</SlimLayout>
|
||||
)
|
||||
|
|
|
@ -1,17 +1,36 @@
|
|||
import { CallToAction } from '@/components/CallToAction'
|
||||
import { Faqs } from '@/components/Faqs'
|
||||
import { Footer } from '@/components/Footer'
|
||||
import { Header } from '@/components/Header'
|
||||
import { Hero } from '@/components/Hero'
|
||||
import { Pricing } from '@/components/Pricing'
|
||||
import { PrimaryFeatures } from '@/components/PrimaryFeatures'
|
||||
import { SecondaryFeatures } from '@/components/SecondaryFeatures'
|
||||
import { Testimonials } from '@/components/Testimonials'
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<>
|
||||
<Header />
|
||||
{process.env.NODE_ENV === 'production' && (
|
||||
<>
|
||||
<script
|
||||
defer
|
||||
data-domain="navilearn.io"
|
||||
src="https://anal.jannex.de/js/script.js"
|
||||
></script>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
(function(c,l,a,r,i,t,y){
|
||||
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
|
||||
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
|
||||
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
|
||||
})(window, document, "clarity", "script", "${process.env.CLARITY_ID}");
|
||||
`,
|
||||
}}
|
||||
></script>
|
||||
</>
|
||||
)}
|
||||
|
||||
<main>
|
||||
<Hero />
|
||||
<PrimaryFeatures />
|
||||
|
@ -21,7 +40,6 @@ export default function Home() {
|
|||
<Faqs />
|
||||
<CallToAction />
|
||||
</main>
|
||||
<Footer />
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { Buffer } from 'buffer'
|
||||
|
||||
export const Constants = {
|
||||
API_URL: '.ex.umbach.dev',
|
||||
API_URL: process.env.NEXT_PUBLIC_API_URL,
|
||||
ROUTES: {
|
||||
REGISTER: '/register',
|
||||
},
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
import { Container } from '@/components/Container'
|
||||
import { Logo } from '@/components/Logo'
|
||||
import { NavLink } from '@/components/NavLink'
|
||||
import Link from 'next/link'
|
||||
|
||||
export function Footer() {
|
||||
return (
|
||||
<footer className="bg-slate-50">
|
||||
<Container>
|
||||
<div className="py-16">
|
||||
<Logo className="mx-auto h-10 w-auto" />
|
||||
<Link href="/" aria-label="Startseite">
|
||||
<Logo className="mx-auto h-10 w-auto" />
|
||||
</Link>
|
||||
<nav className="mt-10 text-center text-sm" aria-label="quick links">
|
||||
<div className="-my-1 flex flex-col justify-center gap-x-6 sm:flex-row">
|
||||
<NavLink href="#features">Funktionen</NavLink>
|
||||
|
@ -15,9 +18,18 @@ export function Footer() {
|
|||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div className="flex flex-col items-center border-t border-slate-400/10 py-10">
|
||||
<div className="flex flex-col items-center border-t border-slate-400/10 pt-10">
|
||||
<p className="mt-6 text-sm text-slate-500 sm:mt-0">NaviLearn</p>
|
||||
</div>
|
||||
<nav
|
||||
className="pb-10 pt-2 text-center text-sm"
|
||||
aria-label="quick links"
|
||||
>
|
||||
<div className="-my-1 flex flex-col justify-center gap-x-6 sm:flex-row">
|
||||
<NavLink href="/impressum">Impressum</NavLink>
|
||||
<NavLink href="/datenschutz">Datenschutzerklärung</NavLink>
|
||||
</div>
|
||||
</nav>
|
||||
</Container>
|
||||
</footer>
|
||||
)
|
||||
|
|
|
@ -91,12 +91,12 @@ export function Header() {
|
|||
<Container>
|
||||
<nav className="relative z-50 flex justify-between">
|
||||
<div className="flex items-center md:gap-x-12">
|
||||
<Link href="#" aria-label="Home">
|
||||
<Link href="/" aria-label="Startseite">
|
||||
<Logo className="h-5 w-auto sm:h-10" />
|
||||
</Link>
|
||||
<div className="hidden md:flex md:gap-x-6">
|
||||
<NavLink href="#features">Funktionen</NavLink>
|
||||
<NavLink href="#pricing">Preise</NavLink>
|
||||
<NavLink href="/#features">Funktionen</NavLink>
|
||||
<NavLink href="/#pricing">Preise</NavLink>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-center gap-x-5 md:gap-x-8">
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
import { ReactNode } from 'react'
|
||||
import { clsx } from 'clsx'
|
||||
|
||||
interface TextProps {
|
||||
children: ReactNode
|
||||
className?: string
|
||||
href?: string
|
||||
type?: 'p' | 'span'
|
||||
}
|
||||
|
||||
export const Text: React.FC<TextProps> = ({
|
||||
children,
|
||||
className = '',
|
||||
type = 'p',
|
||||
}) => {
|
||||
const Component = type === 'p' ? 'p' : 'span'
|
||||
|
||||
return (
|
||||
<Component className={`text-gray-600 ${className}`}>{children}</Component>
|
||||
)
|
||||
}
|
||||
|
||||
export const BoldText: React.FC<TextProps> = ({ children, className = '' }) => (
|
||||
<p className={`mt-5 pb-2 text-lg font-bold text-gray-600 ${className}`}>
|
||||
{children}
|
||||
</p>
|
||||
)
|
||||
|
||||
export const BaseBoldText: React.FC<TextProps> = ({
|
||||
children,
|
||||
className = '',
|
||||
}) => (
|
||||
<p className={`mt-5 pb-2 font-bold text-gray-600 ${className}`}>{children}</p>
|
||||
)
|
||||
|
||||
export const Anchor: React.FC<TextProps> = ({
|
||||
children,
|
||||
className = '',
|
||||
href = '',
|
||||
}) => (
|
||||
<a
|
||||
className={`text-gray-600 hover:underline ${className} break-all`}
|
||||
href={href}
|
||||
target="_blank"
|
||||
>
|
||||
{children}
|
||||
</a>
|
||||
)
|
||||
|
||||
export const List: React.FC<TextProps> = ({ children, className = '' }) => (
|
||||
<ul className={`ml-4 list-outside list-disc ${className}`}>{children}</ul>
|
||||
)
|
||||
|
||||
export const ListItem: React.FC<TextProps> = ({ children, className = '' }) => (
|
||||
<li className={`text-gray-600 ${className}`}>{children}</li>
|
||||
)
|
||||
|
||||
type HeadingProps = {
|
||||
as?: 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'
|
||||
dark?: boolean
|
||||
} & React.ComponentPropsWithoutRef<
|
||||
'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'
|
||||
>
|
||||
|
||||
export function Heading({
|
||||
className,
|
||||
as: Element = 'h2',
|
||||
dark = false,
|
||||
...props
|
||||
}: HeadingProps) {
|
||||
return (
|
||||
<Element
|
||||
{...props}
|
||||
data-dark={dark ? 'true' : undefined}
|
||||
className={clsx(
|
||||
className,
|
||||
'text-pretty text-4xl font-medium tracking-tighter text-gray-950 data-[dark]:text-white sm:text-6xl',
|
||||
)}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export function Subheading({
|
||||
className,
|
||||
as: Element = 'h2',
|
||||
dark = false,
|
||||
...props
|
||||
}: HeadingProps) {
|
||||
return (
|
||||
<Element
|
||||
{...props}
|
||||
data-dark={dark ? 'true' : undefined}
|
||||
className={clsx(
|
||||
className,
|
||||
'font-mono text-xs/5 font-semibold uppercase tracking-widest text-gray-500 data-[dark]:text-gray-400',
|
||||
)}
|
||||
/>
|
||||
)
|
||||
}
|
Loading…
Reference in New Issue