This commit is contained in:
Janis
2023-02-10 14:48:59 +01:00
parent 730f33879b
commit 29c97e2c90
10 changed files with 530 additions and 64 deletions

View File

@@ -1,40 +1,36 @@
import React from "react";
import styles from "@/styles/modules/Footer.module.scss";
import Image from "next/image";
import Link from "next/link";
export default function Footer() {
return (
<footer className={styles.footer}>
<div className={styles.adContainer}>Future advertisement</div>
<div className={styles.content}>
<div className={styles.company}>
<Image
src={"/images/logo.svg"}
width={190}
height={52}
alt={"Logo"}
/>
<h1>Simple tutorials for everyone!</h1>
</div>
<div className={styles.links}>
<div className={styles.grid}>
<a href="#">Tutorials</a>
<a href="#">Contact</a>
<a href="#">About</a>
return (
<footer className={styles.footer}>
<div className={styles.adContainer}>Future advertisement</div>
<div className={styles.content}>
<div className={styles.company}>
<Image src={"/images/logo.svg"} width={190} height={52} alt={"Logo"} />
<h1>Simple tutorials for everyone!</h1>
</div>
<div className={styles.links}>
<div className={styles.grid}>
<Link href="/articles">Categories</Link>
<Link href="#">Contact</Link>
<Link href="/about">About</Link>
<a></a>
<a href="#">Report Bug</a>
<a href="#">Legal</a>
<a></a>
<Link href="/bug">Report Bug</Link>
<Link href="/legal">Legal</Link>
<a></a>
<a href="#">Feedback</a>
<a href="#">Privacy</a>
<a></a>
<Link href="/feedback">Feedback</Link>
<Link href="/privacy">Privacy</Link>
<a></a>
<a></a>
<a href="#">Cookies</a>
</div>
</div>
</div>
</footer>
);
<a></a>
<a></a>
<Link href="/cookies">Cookies</Link>
</div>
</div>
</div>
</footer>
);
}

View File

@@ -12,9 +12,10 @@ function switchTheme(theme: string) {
const bodyElement = document.getElementsByTagName("body")[0];
if (theme == "dark") {
bodyElement.classList.remove("theme-light");
} else {
bodyElement.classList.add("theme-light");
} else {
bodyElement.classList.remove("theme-light");
localStorage.setItem("theme", "light");
}
}
@@ -48,7 +49,7 @@ export default function Nav() {
const [categories, setCategories] = useState<Category[]>([]);
async function handleSearchInput(event: React.ChangeEvent<HTMLInputElement>) {
const query = event.target.value;
const query = event.target.value ?? "";
let result = await fetch(`/api/search?q=${query}`);
let json = await result.json();
@@ -67,10 +68,6 @@ export default function Nav() {
}
}, []);
useEffect(() => {
console.log(searchResults);
}, [searchResults]);
useEffect(() => {
async function getCategories() {
await fetch(urlJoin(apiUrl, "categories"))

View File

@@ -4,7 +4,7 @@ export default function Document() {
return (
<Html lang="en" style={{ scrollBehavior: "smooth" }}>
<Head />
<body>
<body className="theme-dark">
<Main />
<NextScript />
</body>

18
pages/about.tsx Normal file
View File

@@ -0,0 +1,18 @@
import Link from "next/link";
export default function about() {
return (
<div className="flex-center flex-column">
<h1>About us</h1>
<div className="container-text">
<br />
Lorem ipsum dolor sit amet consectetur adipisicing elit. Corrupti dicta quasi itaque similique quisquam dignissimos et cum asperiores, aliquam animi tempore veniam
accusantium reiciendis porro dolores deserunt at sapiente libero? Aut, exercitationem nulla facere harum quidem tenetur aperiam ex corrupti beatae quae similique officia,
suscipit possimus. Tempore, architecto? Deserunt, culpa quibusdam neque placeat optio quisquam eligendi magni ad vero voluptatum. Nobis dignissimos molestiae illo et saepe
impedit neque, aliquid ducimus officiis earum quas aperiam voluptas, culpa quam iusto ipsam vel a. Quod illo dolores facere possimus nesciunt aspernatur error atque? Fugiat
nisi assumenda veritatis accusamus dolorum veniam explicabo quia reprehenderit! Tenetur nesciunt laboriosam quam, doloremque eveniet totam reiciendis maiores, impedit
itaque vel hic expedita ipsum, reprehenderit repudiandae.
</div>
</div>
);
}

View File

@@ -6,9 +6,9 @@ import { Prisma } from '@prisma/client';
type SearchArticle = Prisma.ArticleGetPayload<{ select: { title: true, name: true } }>
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
let query: string = req.query.q?.toString() ?? "";
let query: string = req.query?.q?.toString() ?? "";
query = formatTextToUrlName(query)
if (query.length > 0) {
if (query?.length > 0) {
await prisma.article.findMany({
select: { title: true, name: true },
take: 5,

63
pages/legal.tsx Normal file
View File

@@ -0,0 +1,63 @@
import Link from "next/link";
export default function legal() {
return (
<div className="flex-center flex-column">
<h1>Legal notice</h1>
<div className="container-text">
<h3>Information according to § 5TMG</h3>
<p>
<b>Janis Meister</b>
<br /> Explainegy
<br /> Borsigstrasse 8<br /> 27574 Bremerhaven
<br /> Germany
<br />
</p>
<h3>Contact</h3>
<p>
E-mail: <Link href="mailto:contact@explainegy.com">contact@explainegy.com</Link>
<br />
</p>
<h3>EU Dispute Resolution</h3>
<p>
The European Commission provides a platform for online dispute resolution:
<br /> <Link href="https://ec.europa.eu/consumers/odr/"> https://ec.europa.eu/consumers/odr/ </Link>.<br /> You can find our e-mail address in the legal notice above.
<br />
</p>
<h3>Consumer dispute resolution/universal arbitration board</h3>
<p>
We are not willing or obliged to participate in dispute resolution proceedings
<br /> before a consumer arbitration board.
</p>
<h3>Liability for contents</h3>
<p>
As a service provider, we are responsible for our own content on these pages under pages according to the general laws. According to §§ 8 to 10 TMG as a service provider,
we are not obligated to monitor transmitted or stored to monitor transmitted or stored third-party information or to investigate circumstances or to investigate
circumstances that indicate illegal activity.
<br /> <br /> Obligations to remove or block the use of information according to the general laws remain unaffected. A liability in this respect liability is only
possible from the time of knowledge of a concrete infringement. infringement is possible. If we become aware of any such infringements, we will infringements, we will
remove this content immediately.
</p>
<h3>Liability for links</h3>
<p>
Our offer contains links to external websites of third parties, the contents of which are we have no influence. Therefore, we can for these foreign contents also take
over no guarantee. For the contents of the linked pages is always the provider or operator of the pages is responsible for the content of the linked pages. The linked
pages were checked for possible legal violations at the time of linking. checked. Illegal contents were not recognizable at the time of linking. recognizable at the time
of linking.
<br />
<br /> However, a permanent control of the contents of the linked pages is not reasonable without concrete evidence of a violation of the law is not reasonable. In the
case of infringements become known, we will remove such links immediately. remove them.
</p>
<h3>Copyright</h3>
<p>
The contents and works created by the site operators on these pages are subject to German copyright law. The duplication, processing, distribution and any kind of
exploitation outside the limits of the copyright copyright require the written consent of the author or creator. or creator. Downloads and copies of this site are only
for private, non-commercial use.
<br /> <br /> As far as the contents on this page were not created by the operator, the copyrights of third parties are respected. In particular, the content of third
parties marked as such. Should you nevertheless become aware of a copyright infringement, we ask for an appropriate reference. notice. If we become aware of any
infringements, we will remove the respective content remove immediately.
</p>
</div>
</div>
);
}

351
pages/privacy.tsx Normal file
View File

@@ -0,0 +1,351 @@
import Link from "next/link";
import React from "react";
export default function privacy() {
return (
<div className="flex-center flex-column">
<h1>Privacy</h1>
<div className="container-text">
<h2>1. Data protection at a glance</h2>
<h3>General notes</h3>
<p>
The following notes provide a simple overview of what you need to know happens with your personal data when you visit this website. Personal data is all data with which
you are personally identifiable can be identified. Detailed information on the topic For data protection, please refer to our privacy policy listed below this text
Privacy statement.
</p>
<h3>Data collection on this website</h3> <h4>Who is responsible for data collection on this website?</h4>
<p>
Data processing on this website is carried out by the website operator. You can find their contact details in the section &bdquo;Note on the Responsible body&ldquo; in
this data protection statement.
</p>
<h4>How do we collect your data?</h4>
<p> On the one hand, your data is collected by you providing it to us. This can be e. g. &nbsp;B. data that you have entered into a Enter contact form. </p>
<p>
Other data is collected automatically or after your consent when you visit the Website is recorded by our IT systems. These are mainly technical data (e. g. Internet
browser, operating system or time of page view). The collection of this data takes place automatically as soon as you visit this website enter
</p>
<h4>What do we use your data for?</h4>
<p> Part of the data is collected in order to ensure error-free provision of the Website. Other data can be used for the analysis of your User behavior are used. </p>
<h4>What rights do you have regarding your data?</h4>
<p>
You have the right at any time, free of charge information &uuml;ber origin, Recipient and purpose of your stored personal data to receive You also have the right to
request the rectification or L&ouml;schung of this data to require. When you give consent to You can withdraw this consent at any time for the future. In addition, you
have the right to request information under the restriction of the processing of your personal data in certain circumstances personal data. Furthermore you have a The
right to lodge a complaint with the competent supervisory authority. &quot;
</p>
<p> For this and other questions on the subject of data protection, you can contact us at contact us at any time. </p> <h3>Third-party analytics tools and utilities</h3>
<p> When visiting this website, your surfing behavior may be statistically evaluated be This is done mainly with so-called analysis programs. </p>
<p> Detailed information on these analysis programs can be found in the following data protection declaration. </p> <h2>2. Hosting</h2>
<p>We host the content of our website with the following provider:</p> <h3>External hosting</h3>
<p>
This website is hosted externally. The personal data collected on this website is stored on the servers of the hoster(s). This may include IP addresses, contact requests,
meta and communication data, contractual data, contact data, names, website accesses and other data generated via a website.
</p>
<p>
External hosting is carried out for the purpose of contract fulfillment vis-à-vis our potential and existing customers (Art. 6 para. 1 lit. b DSGVO) and in the interest
of a secure, fast and efficient provision of our online offer by a professional provider (Art. 6 para. 1 lit. f DSGVO). Insofar as a corresponding consent has been
requested, the processing is carried out exclusively on the basis of Art. 6 para. 1 lit. a DSGVO and § 25 para. 1 TTDSG, insofar as the consent includes the storage of
cookies or access to information in the user&apos;s terminal device (e.g. device fingerprinting) as defined by the TTDSG. The consent can be revoked at any time.
</p>
<p>Our hoster(s) will process your data only to the extent necessary to fulfill its performance obligations and follow our instructions with respect to such data.</p>
<p>We use the following hoster(s):</p>
<p>
Google Firebase: <br /> Google Ireland Limited <br /> Gordon House, Barrow Street <br /> Dublin 4<br /> Ireland
</p>
<h2>3. General notes and mandatory information</h2> <h3>Privacy</h3>
<p>
The operators of these pages take the protection of your personal data very seriously. We treat your personal data confidentially and in accordance with the statutory
data protection regulations and this privacy policy.
</p>
<p>
When you use this website, various personal data are collected. Personal data is data with which you can be personally identified. This privacy policy explains what data
we collect and what we use it for. It also explains how and for what purpose this is done.
</p>
<p>
We point out that data transmission over the Internet (e.g. communication by E-mail) security gaps. A complete protection of the data against access by third parties is
not possible.
</p>
<h3>Note on the responsible entity</h3> <p>The entity responsible for data processing on this website is:</p>
<p>
<b>Janis Meister</b>
<br /> Explainegy
<br /> Borsigstraße 8<br /> 27574 Bremerhaven
<br /> Germany
<br />
</p>
<p>
E-mail: <Link href="mailto:contact@explainegy.com">contact@explainegy.com</Link>
</p>
<p>
The controller is the natural or legal person who alone or jointly with others determines the purposes and means of the processing of personal data (e.g. names, e-mail
addresses, etc.).
</p>
<h3>Storage duration</h3>
<p>
Unless a more specific storage period has been specified within this privacy policy, your personal data will remain with us until the purpose for data processing no
longer applies. If you assert a legitimate request for deletion or revoke your consent to data processing, your data will be deleted unless we have other legally
permissible reasons for storing your personal data (e.g. retention periods under tax or commercial law); in the latter case, the data will be deleted once these reasons
no longer apply.
</p>
<h3> General information on the legal basis for data processing on this website </h3>
<p>
If you have consented to data processing, we process your personal data on the basis of Art. 6 (1) a DSGVO or Art. 9 (2) a DSGVO, if special categories of data are
processed according to Art. 9 (1) DSGVO. In the case of explicit consent to the transfer of personal data to third countries, the data processing is also based on Art. 49
(1) a DSGVO. If you have consented to the storage of cookies or to the access to information in your terminal device (e.g. via device fingerprinting), the data processing
is additionally carried out on the basis of Section 25 (1) TTDSG. The consent can be revoked at any time. If your data is required for the performance of a contract or
for the implementation of pre-contractual measures, we process your data on the basis of Art. 6 para. 1 lit. b DSGVO. Furthermore, if your data is required for the
fulfillment of a legal obligation, we process it on the basis of Art. 6 para. 1 lit. c DSGVO. Furthermore, the data processing may be carried out on the basis of our
legitimate interest according to Art. 6 para. 1 lit. f DSGVO. Information about the relevant legal basis in each individual case is provided in the following paragraphs
of this privacy policy.
</p>
<h3>Note on data transfer to the USA and other third countries</h3>
<p>
Among other things, we use tools from companies based in the USA or other third countries that are not secure under data protection law. If these tools are active, your
personal data may be transferred to these third countries and processed there. We would like to point out that no level of data protection comparable to that in the EU
can be guaranteed in these countries. For example, US companies are obliged to hand over personal data to security authorities without you as a data subject being able to
take legal action against this. It can therefore not be ruled out that US authorities (e.g. intelligence services) process, evaluate and permanently store your data
located on US servers for monitoring purposes. We have no influence on these processing activities.
</p>
<h3>Revocation of your consent to data processing</h3>
<p>
Many data processing operations are only possible with your express consent. You can revoke consent you have already given at any time. The legality of the data
processing carried out until the revocation remains unaffected by the revocation.
</p>
<h3> Right to object to data collection in special cases and to direct marketing (Art. 21 DSGVO) </h3>
<p>
IF THE DATA PROCESSING IS CARRIED OUT ON THE BASIS OF ART. 6 ABS. 1 LIT. E OR F DSGVO, YOU HAVE THE RIGHT TO OBJECT TO THE PROCESSING OF YOUR PERSONAL DATA AT ANY TIME
FOR REASONS ARISING FROM YOUR PARTICULAR SITUATION; THIS ALSO APPLIES TO PROFILING BASED ON THESE PROVISIONS. THE RESPECTIVE LEGAL BASIS ON WHICH PROCESSING IS BASED CAN
BE FOUND IN THIS PRIVACY POLICY. IF YOU OBJECT, WE WILL NO LONGER PROCESS YOUR PERSONAL DATA CONCERNED UNLESS WE CAN DEMONSTRATE COMPELLING LEGITIMATE GROUNDS FOR THE
PROCESSING WHICH OVERRIDE YOUR INTERESTS, RIGHTS AND FREEDOMS, OR THE PROCESSING IS FOR THE PURPOSE OF ASSERTING, EXERCISING OR DEFENDING LEGAL CLAIMS (OBJECTION UNDER
ARTICLE 21(1) DSGVO).
</p>
<p>
IF YOUR PERSONAL DATA ARE PROCESSED FOR THE PURPOSE OF DIRECT MARKETING, YOU HAVE THE RIGHT TO OBJECT AT ANY TIME TO THE PROCESSING OF PERSONAL DATA CONCERNING YOU FOR
THE PURPOSE OF SUCH MARKETING; THIS ALSO APPLIES TO PROFILING INSOFAR AS IT IS RELATED TO SUCH DIRECT MARKETING. IF YOU OBJECT, YOUR PERSONAL DATA WILL SUBSEQUENTLY NO
LONGER BE USED FOR THE PURPOSE OF DIRECT MARKETING (OBJECTION PURSUANT TO ARTICLE 21 (2) DSGVO).
</p>
<h3>Right of appeal to the competent supervisory authority</h3>
<p>
In the event of breaches of the GDPR, data subjects shall have a right of appeal to a supervisory authority, in particular in the Member State of their habitual
residence, their place of work or the place of the alleged breach. The right of appeal is without prejudice to other administrative or judicial remedies.
</p>
<h3>Right to data portability</h3>
<p>
You have the right to have data that we process automatically on the basis of your consent or in fulfillment of a contract handed over to you or to a third party in a
common, machine-readable format. If you request the direct transfer of the data to another controller, this will only be done insofar as it is technically feasible.
</p>
<h3>Information, deletion and correction</h3>
<p>
Within the framework of the applicable legal provisions, you have the right at any time to free information about your stored personal data, its origin and recipient and
the purpose of data processing and, if necessary, a right to correction or deletion of this data. For this purpose, as well as for further questions on the subject of
personal data, you can contact us at any time.
</p>
<h3>Right to restriction of processing</h3>
<p>
You have the right to request the restriction of the processing of your personal data. For this purpose, you can contact us at any time. The right to restriction of
processing exists in the following cases:
</p>
<ul>
<li>
If you dispute the accuracy of your personal data stored by us, we usually need time to verify this. For the duration of the review, you have the right to request the
restriction of the processing of your personal data.
</li>
<li> If the processing of your personal data happened/is happening unlawfully, you may request the restriction of data processing instead of erasure. </li>
<li>
If we no longer need your personal data, but you need it to exercise, defend or enforce legal claims, you have the right to request restriction of the processing of
your personal data instead of deletion.
</li>
<li>
If you have lodged an objection pursuant to Art. 21 (1) DSGVO, a balancing of your and our interests must be carried out. As long as it has not yet been determined
whose interests prevail, you have the right to request the restriction of the processing of your personal data.
</li>
</ul>
<p>
If you have restricted the processing of your personal data, this data may - apart from being stored - only be processed with your consent or for the assertion, exercise
or defense of legal claims or for the protection of the rights of another natural or legal person or for reasons of an important public interest of the European Union or
a Member State.
</p>
<h3>SSL or TLS encryption</h3>
<p>
This site uses SSL or TLS encryption for security reasons and to protect the transmission of confidential content, such as orders or requests that you send to us as the
site operator. You can recognize an encrypted connection by the fact that the address line of the browser changes from &quot;http://&quot; to &quot;https://&quot; and by
the lock symbol in your browser line.
</p>
<p> If SSL or TLS encryption is activated, the data you transmit to us cannot be read by third parties. </p> <h2>4. Data collection on this website</h2> <h3>Cookies</h3>
<p>
Our Internet pages use so-called &quot;cookies&quot;. Cookies are small data packets and do not cause any damage to your end device. They are stored either temporarily
for the duration of a session (session cookies) or permanently (permanent cookies) on your end device. Session cookies are automatically deleted at the end of your visit.
Permanent cookies remain stored on your end device until you delete them yourself or until they are automatically deleted by your web browser.
</p>
<p>
In some cases, cookies from third-party companies may also be stored on your terminal device when you enter our site (third-party cookies). These enable us or you to use
certain services of the third-party company (e.g. cookies for processing payment services).
</p>
<p>
Cookies have various functions. Many cookies are technically necessary, as certain website functions would not work without them (e.g. the shopping cart function or the
display of videos). Other cookies are used to evaluate user behavior or display advertising.
</p>
<p>
Cookies are used to evaluate user behavior or display advertising. Cookies that are necessary to carry out the electronic communication process, to provide certain
functions that you have requested (e.g. for the shopping cart function) or to optimize the website (e.g. cookies to measure the web audience) (necessary cookies) are
stored on the basis of Art. 6 (1) lit. f DSGVO, unless another legal basis is specified. The website operator has a legitimate interest in storing necessary cookies for
the technically error-free and optimized provision of its services. If consent to the storage of cookies and comparable recognition technologies has been requested, the
processing is based exclusively on this consent (Art. 6 para. 1 lit. a DSGVO and § 25 para. 1 TTDSG); the consent can be revoked at any time.
</p>
<p>
You can set your browser so that you are informed about the setting of cookies and only allow cookies in individual cases, exclude the acceptance of cookies for certain
cases or in general and activate the automatic deletion of cookies when closing the browser. When deactivating cookies, the functionality of this website may be limited.
</p>
<p>
If cookies are used by third-party companies or for analysis purposes, we will inform you about this separately within the framework of this data protection declaration
and, if necessary, request your consent.
</p>
<h2>5. Social media</h2> <h3>Instagram</h3>
<p>
Functions of the Instagram service are integrated on this website. These functions are offered by Meta Platforms Ireland Limited, 4 Grand Canal Square, Grand Canal
Harbour, Dublin 2, Ireland.
</p>
<p>
When the social media element is active, a direct connection is established between your end device and the Instagram server. Instagram thereby receives information about
your visit to this website.
</p>
<p>
Wenn Sie in Ihrem Instagram-Account eingeloggt sind, k&ouml;nnen Sie durch Anklicken des Instagram-Buttons die Inhalte dieser Website mit Ihrem Instagram-Profil
verlinken. Dadurch kann Instagram den Besuch dieser Website Ihrem Benutzerkonto zuordnen. Wir weisen darauf hin, dass wir als Anbieter der Seiten keine Kenntnis vom
Inhalt der &uuml;bermittelten Daten sowie deren Nutzung durch Instagram erhalten.
</p>
<p>
If you are logged into your Instagram account, you can link the content of this website to your Instagram profile by clicking on the Instagram button. This allows
Instagram to associate your visit to this website with your user account. We would like to point out that we, as the provider of the pages, have no knowledge of the
content of the transmitted data or its use by Instagram.
</p>
<p>
Insofar as consent has been obtained, the above-mentioned service is used on the basis of Art. 6 Para. 1 lit. a DSGVO and § 25 TTDSG. The consent can be revoked at any
time. Insofar as no consent has been obtained, the use of the service is based on our legitimate interest in achieving the greatest possible visibility in social media.
Insofar as personal data is collected on our website with the help of the tool described here and forwarded to Facebook or Instagram, we and Meta Platforms Ireland
Limited, 4 Grand Canal Square, Grand Canal Harbour, Dublin 2, Ireland are jointly responsible for this data processing (Art. 26 DSGVO). The joint responsibility is
limited exclusively to the collection of the data and its forwarding to Facebook or Instagram. The processing by Facebook or Instagram that takes place after the
forwarding is not part of the joint responsibility. The obligations incumbent on us jointly have been set out in a joint processing agreement. You can find the text of
the agreement at:
<Link href="https://www.facebook.com/legal/controller_addendum" target="_blank" rel="noopener noreferrer">
https://www.facebook.com/legal/controller_addendum
</Link>
. According to this agreement, we are responsible for providing the privacy information when using the Facebook or Instagram tool and for the privacy-secure
implementation of the tool on our website. Facebook is responsible for the data security of the Facebook or Instagram products. You can assert data subject rights (e.g.
requests for information) regarding the data processed by Facebook or Instagram directly with Facebook. If you assert the data subject rights with us, we are obliged to
forward them to Facebook.
</p>
<p>
Data transfer to the USA is based on the standard contractual clauses of the EU Commission. Details can be found here:
<Link href="https://www.facebook.com/legal/EU_data_transfer_addendum" target="_blank" rel="noopener noreferrer">
https://www.facebook.com/legal/EU_data_transfer_addendum
</Link>
,
<Link href="https://help.instagram.com/519522125107875" target="_blank" rel="noopener noreferrer">
https://help.instagram.com/519522125107875
</Link>
and
<Link href="https://de-de.facebook.com/help/566994660333381" target="_blank" rel="noopener noreferrer">
https://de-de.facebook.com/help/566994660333381
</Link>
.
</p>
<p>
For more information, please see Instagram&apos;s privacy policy:
<Link href="https://instagram.com/about/legal/privacy/" target="_blank" rel="noopener noreferrer">
https://instagram.com/about/legal/privacy/
</Link>
.
</p>
<h2>6. Plugins and tools</h2> <h3>Google Fonts (locally hosted)</h3>
<p>
This site uses for the uniform representation of fonts so-called Google Fonts, which are provided by Google. The Google Fonts are installed locally. A connection to
Google servers does not take place. take place.
</p>
<p>
For more information about Google Fonts, see
<Link href="https://developers.google.com/fonts/faq" target="_blank" rel="noopener noreferrer">
https://developers.google.com/fonts/faq
</Link>
and in the privacy policy of Google:
<Link href="https://policies.google.com/privacy?hl=de" target="_blank" rel="noopener noreferrer">
https://policies.google.com/privacy?hl=de
</Link>
.
</p>
<h3>Font Awesome (locally hosted)</h3>
<p> This site uses Font Awesome for consistent font rendering. Font Awesome is installed locally. A connection to servers of Fonticons, Inc. does not take place. </p>
<p>
For more information about Font Awesome, please see the Font Awesome Privacy Policy at:
<Link href="https://fontawesome.com/privacy" target="_blank" rel="noopener noreferrer">
https://fontawesome.com/privacy
</Link>
.
</p>
<h3>Google Maps</h3>
<p> This site uses the map service Google Maps. The provider is Google Ireland Limited (&quot;Google&quot;), Gordon House, Barrow Street, Dublin 4, Ireland. </p>
<p>
To use the functions of Google Maps, it is necessary to store your IP address. This information is usually transferred to a Google server in the USA and stored there. The
provider of this site has no influence on this data transmission. If Google Maps is activated, Google may use Google Fonts for the purpose of uniform display of fonts.
When calling up Google Maps, your browser loads the required web fonts into its browser cache in order to display texts and fonts correctly.
</p>
<p>
The use of Google Maps is in the interest of an appealing presentation of our online offers and an easy location of the places indicated by us on the website. This
represents a legitimate interest within the meaning of Art. 6 para. 1 lit. f DSGVO. If a corresponding consent has been requested, the processing is carried out
exclusively on the basis of Art. 6 para. 1 lit. a DSGVO and § 25 para. 1 TTDSG, insofar as the consent includes the storage of cookies or access to information in the
user&apos;s terminal device (e.g. device fingerprinting) within the meaning of the TTDSG. The consent can be revoked at any time.
</p>
<p>
Data transfer to the USA is based on the standard contractual clauses of the EU Commission. Details can be found here:
<Link href="https://privacy.google.com/businesses/gdprcontrollerterms/" target="_blank" rel="noopener noreferrer">
https://privacy.google.com/businesses/gdprcontrollerterms/
</Link>
and
<Link href="https://privacy.google.com/businesses/gdprcontrollerterms/sccs/" target="_blank" rel="noopener noreferrer">
https://privacy.google.com/businesses/gdprcontrollerterms/sccs/
</Link>
.
</p>
<p>
More information on the handling of user data can be found in Google&apos;s privacy policy:
<Link href="https://policies.google.com/privacy?hl=de" target="_blank" rel="noopener noreferrer">
https://policies.google.com/privacy?hl=de
</Link>
.
</p>
<h3>Google reCAPTCHA</h3>
<p>
We use &quot;Google reCAPTCHA&quot; (hereinafter &quot;reCAPTCHA&quot;) on this website. The provider is Google Ireland Limited (&quot;Google&quot;), Gordon House, Barrow
Street, Dublin 4, Ireland.
</p>
<p>
The purpose of reCAPTCHA is to check whether the data input on this website (e.g. in a contact form) is made by a human or by an automated program. For this purpose,
reCAPTCHA analyzes the behavior of the website visitor based on various characteristics. This analysis begins automatically as soon as the website visitor enters the
website. For the analysis, reCAPTCHA evaluates various information (e.g. IP address, time spent by the website visitor on the website or mouse movements made by the
user). The data collected during the analysis is forwarded to Google.
</p>
<p> The reCAPTCHA analyses run completely in the background. Website visitors are not notified that an analysis is taking place. </p>
<p>
The storage and analysis of the data is based on Art. 6 para. 1 lit. f DSGVO. The website operator has a legitimate interest in protecting its web offers from abusive
automated spying and from SPAM. If a corresponding consent has been requested, the processing is carried out exclusively on the basis of Art. 6 para. 1 lit. a DSGVO and §
25 para. 1 TTDSG, insofar as the consent includes the storage of cookies or access to information in the user&apos;s terminal device (e.g. device fingerprinting) as
defined by the TTDSG. The consent can be revoked at any time.
</p>
<p>
For more information about Google reCAPTCHA, please see the Google Privacy Policy and the Google Terms of Service at the following links:
<Link href="https://policies.google.com/privacy?hl=de" target="_blank" rel="noopener noreferrer">
https://policies.google.com/privacy?hl=de
</Link>
and
<Link href="https://policies.google.com/terms?hl=de" target="_blank" rel="noopener noreferrer">
https://policies.google.com/terms?hl=de
</Link>
.
</p>
<p>
Source: <Link href="https://www.e-recht24.de">https://www.e-recht24.de</Link>
</p>
</div>
</div>
);
}

View File

@@ -3,26 +3,62 @@
@import "typography.scss";
* {
box-sizing: border-box;
padding: 0;
margin: 0;
box-sizing: border-box;
padding: 0;
margin: 0;
}
*,
:after,
:before {
box-sizing: border-box;
box-sizing: border-box;
}
html,
body {
max-width: 100vw;
background-color: var(--color-background-body);
min-height: 100vh;
display: flex;
flex-direction: column;
main {
width: 100%;
flex: 1;
}
max-width: 100vw;
background-color: var(--color-background-body);
min-height: 100vh;
display: flex;
flex-direction: column;
main {
width: 100%;
flex: 1;
}
}
.flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.flex-column {
display: flex;
flex-direction: column;
}
.container-text {
padding: 0 120px;
text-align: left;
p,
li,
ul,
ol {
padding-left: 2ch;
}
h1,
h2 {
padding-top: 60px;
padding-bottom: 10px;
}
h3,
h4,
h5,
h6 {
padding-top: 20px;
padding-bottom: 10px;
}
}

View File

@@ -16,34 +16,37 @@ body {
}
/* Headings */
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: bold;
color: var(--color-font-headline);
}
h1 {
font-size: 2rem;
font-weight: bold;
}
h2 {
font-size: 1.7rem;
font-weight: bold;
}
h3 {
font-size: 1.5rem;
font-weight: bold;
font-size: 1.4rem;
}
h4 {
font-size: 1.4rem;
font-weight: bold;
font-size: 1.3rem;
}
h5 {
font-size: 1.2rem;
font-weight: bold;
}
h6 {
font-size: 1.1rem;
font-weight: bold;
}
/* General Texts */

View File

@@ -7,8 +7,9 @@
/* Colors: General */
--color-background-body: #181a1b;
--color-background-secondary: #2c3032;
--color-font: #ffffff;
--color-font: #ebebeb;
--color-font-muted: #929292;
--color-font-headline: #fff;
--color-shadow-nav: #00000033;
--color-danger: #cf000f;
@@ -43,6 +44,7 @@
.theme-light {
--color-background-body: #ffffff;
--color-font: #000000;
--color-font-headline: #000;
--color-shadow-nav: #000c2b0d;
--color-overlay-mix: var(--color-font);