font-serif → font-sans (Outfit) familienweit, --font-serif-Token raus
All checks were successful
Deploy Marketing-Site / Build, Test und Deploy (push) Successful in 1m9s
All checks were successful
Deploy Marketing-Site / Build, Test und Deploy (push) Successful in 1m9s
Brand-System hat seit Mai-Update keine Serif mehr (Wechsel zu Outfit single-font). Der Tailwind-Klassen-Alias font-serif → Outfit war ein Backwards-Compat-Hack ohne Grund — entfernt. - Submodule docs/brand-system: Outfit + JBM (e4d9f95) - src/styles/global.css: --font-serif-Token entfernt - Alle Tailwind-font-serif-Klassen → font-sans (~50 Stellen) - CLAUDE.md §5.3: Doc des Alias entfernt Visual identisch (Token zeigte schon vorher auf Outfit), nur Klassen-Namen sind nun semantisch korrekt.
This commit is contained in:
parent
809772ae2f
commit
968945fc86
24 changed files with 69 additions and 72 deletions
|
|
@ -277,7 +277,6 @@ Keine Google Fonts CDN. Alle Fonts liegen in `public/fonts/` und werden über `@
|
|||
/* Font-Stacks — Outfit für Headlines + Body, JetBrains Mono für technische Marker */
|
||||
--font-sans: "Outfit", system-ui, sans-serif;
|
||||
--font-mono: "JetBrains Mono", ui-monospace, monospace;
|
||||
--font-serif: var(--font-sans); /* Legacy-Alias, zeigt auf Outfit */
|
||||
|
||||
/* Type-Scale */
|
||||
--text-eyebrow: 0.6875rem; /* 11px, mono, uppercase, letter-spacing 0.08em */
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit d15c05ee1341a1716be0d5660d30d877d3623962
|
||||
Subproject commit e4d9f9513a836d2628ad3678823fa8df302252a0
|
||||
|
|
@ -118,7 +118,7 @@ export default function ModuleFilter({ modules, labels }: Props) {
|
|||
<span className="font-mono text-[11px] font-medium uppercase tracking-[0.06em] text-[var(--color-text-tertiary)]">
|
||||
{m.pillar} · {m.pillarTitle}
|
||||
</span>
|
||||
<h3 className="mt-1 font-serif text-[1.25rem] font-medium leading-[1.3] text-[var(--color-text-primary)]">
|
||||
<h3 className="mt-1 font-sans text-[1.25rem] font-medium leading-[1.3] text-[var(--color-text-primary)]">
|
||||
{m.name}
|
||||
</h3>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ const ctaClass = (variant: CTA['variant']) => {
|
|||
{eyebrow}
|
||||
</p>
|
||||
)}
|
||||
<h2 class:list={['max-w-[20ch] font-serif text-[2rem] md:text-[2.5rem] font-medium leading-[1.15] tracking-[-0.005em]', headlineColor]}>
|
||||
<h2 class:list={['max-w-[20ch] font-sans text-[2rem] md:text-[2.5rem] font-medium leading-[1.15] tracking-[-0.005em]', headlineColor]}>
|
||||
{headline}
|
||||
</h2>
|
||||
{body && (
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ const { pillarNumber, pillarTitle, modules, lang = 'de', class: className = '' }
|
|||
<span class="font-mono text-[0.8125rem] font-medium tracking-[0.04em] text-[var(--color-text-tertiary)]">
|
||||
{pillarNumber}
|
||||
</span>
|
||||
<h3 class="font-serif text-[1.125rem] font-medium leading-[1.3] text-[var(--color-text-primary)]">
|
||||
<h3 class="font-sans text-[1.125rem] font-medium leading-[1.3] text-[var(--color-text-primary)]">
|
||||
{pillarTitle}
|
||||
</h3>
|
||||
</header>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ const bodyColor = inverse ? 'text-[rgba(245,245,240,0.75)]' : 'text-[var(--color
|
|||
<span class:list={['font-mono text-[0.8125rem] font-medium tracking-[0.04em]', numberColor]}>
|
||||
{number}
|
||||
</span>
|
||||
<h3 class:list={['font-serif text-[1.25rem] font-medium leading-[1.3]', titleColor]}>
|
||||
<h3 class:list={['font-sans text-[1.25rem] font-medium leading-[1.3]', titleColor]}>
|
||||
{title}
|
||||
</h3>
|
||||
<div class:list={['text-[1rem] leading-[1.65]', bodyColor]}>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ const { question, class: className = '' } = Astro.props;
|
|||
---
|
||||
|
||||
<article class:list={['flex flex-col gap-3 border-l-2 border-[var(--color-border-strong)] pl-5', className]}>
|
||||
<blockquote class="font-serif text-[1.125rem] font-medium leading-[1.4] text-[var(--color-text-primary)]">
|
||||
<blockquote class="font-sans text-[1.125rem] font-medium leading-[1.4] text-[var(--color-text-primary)]">
|
||||
„{question}"
|
||||
</blockquote>
|
||||
<p class="text-[1rem] leading-[1.65] text-[var(--color-text-secondary)]">
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ const resolvedEyebrowTone = eyebrowTone ?? (inverse ? 'accent' : 'tertiary');
|
|||
<header class:list={[className]}>
|
||||
{eyebrow && <Eyebrow tone={resolvedEyebrowTone} prefix={eyebrowPrefix}>{eyebrow}</Eyebrow>}
|
||||
<Tag class:list={[
|
||||
'font-serif font-medium leading-[1.2] tracking-[-0.005em]',
|
||||
'font-sans font-medium leading-[1.2] tracking-[-0.005em]',
|
||||
headingSize,
|
||||
textColor,
|
||||
eyebrow ? 'mt-3' : '',
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ const { headlineLines, lead, items, class: className = '' } = Astro.props;
|
|||
|
||||
<section class:list={['grid grid-cols-1 gap-12 md:grid-cols-12 md:gap-16', className]}>
|
||||
<div class="md:col-span-5">
|
||||
<h2 class="font-serif text-[2rem] md:text-[3rem] font-medium leading-[1.05] tracking-[-0.015em] text-[var(--color-text-primary)]">
|
||||
<h2 class="font-sans text-[2rem] md:text-[3rem] font-medium leading-[1.05] tracking-[-0.015em] text-[var(--color-text-primary)]">
|
||||
{headlineLines.map((line, i) => (
|
||||
<>
|
||||
{line}{i < headlineLines.length - 1 && <br />}
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ const DialogTitle = React.forwardRef<
|
|||
>(({ className, ...props }, ref) => (
|
||||
<DialogPrimitive.Title
|
||||
ref={ref}
|
||||
className={cn("text-lg font-medium font-serif", className)}
|
||||
className={cn("text-lg font-medium font-sans", className)}
|
||||
{...props}
|
||||
/>
|
||||
));
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ const processors = [
|
|||
<div class="flex flex-col gap-12 text-[1rem] leading-[1.7] text-[var(--color-text-secondary)]">
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">1. Verantwortlicher</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">1. Verantwortlicher</h2>
|
||||
<p class="mt-3">
|
||||
Verantwortlich im Sinne der DSGVO ist:
|
||||
</p>
|
||||
|
|
@ -50,7 +50,7 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">2. Daten beim Besuch der Webseite</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">2. Daten beim Besuch der Webseite</h2>
|
||||
<p class="mt-3">
|
||||
Beim Aufruf von slimcore.io werden technisch notwendige Daten an den Webserver übertragen — IP-Adresse, User-Agent, Zeitstempel, angeforderte URL, Referrer. Diese Daten werden ausschließlich zur Auslieferung der Seite und zur Abwehr von technischen Angriffen verarbeitet (Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse). Sie werden nicht zu Analyse-Zwecken ausgewertet.
|
||||
</p>
|
||||
|
|
@ -60,28 +60,28 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">3. Cookies</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">3. Cookies</h2>
|
||||
<p class="mt-3">
|
||||
slimcore.io setzt <strong>keine Cookies</strong>. Es gibt keine Tracking-Cookies, keine Werbe-Cookies, keine Drittanbieter-Cookies. Daher entfällt eine Cookie-Banner-Pflicht.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">4. Analytics</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">4. Analytics</h2>
|
||||
<p class="mt-3">
|
||||
Wir nutzen <strong>keine Web-Analytics</strong>. Kein Google Analytics, kein Plausible, kein Pirsch, kein Matomo. Wir wissen nicht, wer wie lange auf welcher Seite war.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">5. Schriften</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">5. Schriften</h2>
|
||||
<p class="mt-3">
|
||||
Schriftarten (Outfit, JetBrains Mono) werden direkt von slimcore.io ausgeliefert (self-hosted). Es findet keine Verbindung zu Google Fonts oder anderen externen Schrift-CDNs statt.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">6. Kontakt per E-Mail</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">6. Kontakt per E-Mail</h2>
|
||||
<p class="mt-3">
|
||||
Wenn Sie uns per E-Mail an hallo@slimcore.io kontaktieren, werden Ihre Mail-Adresse, Ihr Name (sofern angegeben) und der Inhalt Ihrer Nachricht zur Bearbeitung der Anfrage gespeichert (Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO — Vertragsanbahnung — oder lit. f — berechtigtes Interesse an der Beantwortung).
|
||||
</p>
|
||||
|
|
@ -91,7 +91,7 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">7. Auftragsverarbeiter</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">7. Auftragsverarbeiter</h2>
|
||||
<p class="mt-3 mb-6">
|
||||
Folgende Dienstleister verarbeiten in unserem Auftrag personenbezogene Daten:
|
||||
</p>
|
||||
|
|
@ -99,7 +99,7 @@ const processors = [
|
|||
<div class="flex flex-col gap-5">
|
||||
{processors.map((p) => (
|
||||
<div class="border-l-2 border-[var(--color-accent)] pl-4">
|
||||
<p class="font-serif text-[1.125rem] font-medium text-[var(--color-text-primary)]">{p.name}</p>
|
||||
<p class="font-sans text-[1.125rem] font-medium text-[var(--color-text-primary)]">{p.name}</p>
|
||||
<p class="mt-1 font-mono text-[11px] uppercase tracking-[0.06em] text-[var(--color-text-tertiary)]">{p.country}</p>
|
||||
<p class="mt-2 text-[0.9375rem]">{p.purpose}</p>
|
||||
<p class="mt-2 text-[0.9375rem] text-[var(--color-text-tertiary)]">Rechtsgrundlage: {p.basis}</p>
|
||||
|
|
@ -109,7 +109,7 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">8. Ihre Rechte</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">8. Ihre Rechte</h2>
|
||||
<p class="mt-3">
|
||||
Sie haben jederzeit das Recht auf Auskunft (Art. 15 DSGVO), Berichtigung (Art. 16), Löschung (Art. 17), Einschränkung (Art. 18), Datenübertragbarkeit (Art. 20) und Widerspruch (Art. 21) gegen die Verarbeitung Ihrer Daten. Bei einer Verarbeitung auf Grundlage einer Einwilligung können Sie diese jederzeit mit Wirkung für die Zukunft widerrufen.
|
||||
</p>
|
||||
|
|
@ -122,7 +122,7 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">9. Änderungen dieser Erklärung</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">9. Änderungen dieser Erklärung</h2>
|
||||
<p class="mt-3">
|
||||
Diese Datenschutzerklärung wird angepasst, wenn sich Verarbeitungsprozesse ändern. Die jeweils aktuelle Version finden Sie unter slimcore.io/datenschutz.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ const componentLabel = 'mb-6 inline-block bg-[var(--color-text-primary)] px-2 py
|
|||
<BaseLayout title="Component Showcase (Dev)" description="Interne Komponenten-Übersicht für visuelle Regression.">
|
||||
<div class="mx-auto max-w-[1100px] px-6 py-16 md:px-10 md:py-20 xl:px-12">
|
||||
<Eyebrow tone="accent" prefix="▸">Dev · Component Showcase</Eyebrow>
|
||||
<h1 class="mt-3 font-serif text-[2.5rem] font-medium leading-[1.1] text-[var(--color-text-primary)]">
|
||||
<h1 class="mt-3 font-sans text-[2.5rem] font-medium leading-[1.1] text-[var(--color-text-primary)]">
|
||||
Komponenten-Bibliothek
|
||||
</h1>
|
||||
<p class="mt-4 max-w-[60ch] text-[1.0625rem] leading-relaxed text-[var(--color-text-secondary)]">
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
THREE WAYS
|
||||
</p>
|
||||
<h2 class="mt-4 max-w-[18ch] font-serif text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-4 max-w-[18ch] font-sans text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
Mail, call, or post.
|
||||
</h2>
|
||||
</div>
|
||||
|
|
@ -47,7 +47,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
01 · MAIL
|
||||
</p>
|
||||
<p class="mt-2">
|
||||
<a href="mailto:hallo@slimcore.io" class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)] underline underline-offset-4 transition-colors hover:text-[var(--color-accent)]">
|
||||
<a href="mailto:hallo@slimcore.io" class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)] underline underline-offset-4 transition-colors hover:text-[var(--color-accent)]">
|
||||
hallo@slimcore.io
|
||||
</a>
|
||||
</p>
|
||||
|
|
@ -65,7 +65,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
href="https://calendly.com/digiformer/quick-call"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)] underline underline-offset-4 transition-colors hover:text-[var(--color-accent)]"
|
||||
class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)] underline underline-offset-4 transition-colors hover:text-[var(--color-accent)]"
|
||||
>
|
||||
Book 30 minutes online <span aria-hidden="true">↗</span>
|
||||
</a>
|
||||
|
|
@ -79,7 +79,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
03 · POST
|
||||
</p>
|
||||
<address class="mt-2 not-italic font-serif text-[1.125rem] leading-[1.5] text-[var(--color-text-primary)]">
|
||||
<address class="mt-2 not-italic font-sans text-[1.125rem] leading-[1.5] text-[var(--color-text-primary)]">
|
||||
digiFORMER GmbH<br />
|
||||
Buchenstr. 5<br />
|
||||
85661 Forstinning<br />
|
||||
|
|
@ -102,7 +102,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
FOR TESTER REQUESTS
|
||||
</p>
|
||||
<h2 class="mt-4 max-w-[18ch] font-serif text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-4 max-w-[18ch] font-sans text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
Please head to the tester page.
|
||||
</h2>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Provider</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Provider</h2>
|
||||
<address class="mt-3 not-italic">
|
||||
digiFORMER GmbH<br />
|
||||
Buchenstr. 5<br />
|
||||
|
|
@ -48,12 +48,12 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Authorised representative (Geschäftsführung)</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Authorised representative (Geschäftsführung)</h2>
|
||||
<p class="mt-3">Pascal Oelmann</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Contact</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Contact</h2>
|
||||
<p class="mt-3">
|
||||
Phone: <a href="tel:+4981217671700" class="underline underline-offset-2 hover:text-[var(--color-accent)]">+49 (0) 8121 76717-0</a><br />
|
||||
Email: <a href="mailto:hallo@slimcore.io" class="underline underline-offset-2 hover:text-[var(--color-accent)]">hallo@slimcore.io</a>
|
||||
|
|
@ -61,7 +61,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Commercial register</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Commercial register</h2>
|
||||
<p class="mt-3">
|
||||
Registered at the German commercial register (Handelsregister).<br />
|
||||
Court (Registergericht): Amtsgericht München<br />
|
||||
|
|
@ -70,7 +70,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">VAT identification</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">VAT identification</h2>
|
||||
<p class="mt-3">
|
||||
VAT ID per §27 a German VAT Act:<br />
|
||||
DE310218819
|
||||
|
|
@ -78,7 +78,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Editorial responsibility per §55 Abs. 2 RStV</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Editorial responsibility per §55 Abs. 2 RStV</h2>
|
||||
<p class="mt-3">
|
||||
Pascal Oelmann<br />
|
||||
digiFORMER GmbH<br />
|
||||
|
|
@ -88,7 +88,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">EU online dispute resolution</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">EU online dispute resolution</h2>
|
||||
<p class="mt-3">
|
||||
The European Commission provides a platform for online dispute resolution:
|
||||
<a href="https://ec.europa.eu/consumers/odr/" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-[var(--color-accent)]">https://ec.europa.eu/consumers/odr/</a><br />
|
||||
|
|
@ -100,7 +100,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Liability</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Liability</h2>
|
||||
<p class="mt-3">
|
||||
The contents of this website have been compiled with care. However, we cannot assume any liability for the accuracy, completeness, or timeliness of the content.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<span aria-hidden="true">▸</span> Business software for solopreneurs and small teams
|
||||
</p>
|
||||
|
||||
<h1 class="hero-headline mt-6 max-w-[18ch] font-serif font-medium text-[#F5F5F0]">
|
||||
<h1 class="hero-headline mt-6 max-w-[18ch] font-sans font-medium text-[#F5F5F0]">
|
||||
Start lean.<br /><span class="hero-highlight">Infinite</span> growth.
|
||||
</h1>
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">1. Controller</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">1. Controller</h2>
|
||||
<p class="mt-3">Controller in the sense of the GDPR:</p>
|
||||
<address class="mt-3 not-italic">
|
||||
digiFORMER GmbH<br />
|
||||
|
|
@ -56,7 +56,7 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">2. Data on website visit</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">2. Data on website visit</h2>
|
||||
<p class="mt-3">
|
||||
When visiting slimcore.io, technically necessary data is transmitted to our web server — IP address, user agent, timestamp, requested URL, referrer. This data is processed solely to deliver the page and protect against technical attacks (legal basis: Art. 6 (1) (f) GDPR — legitimate interest). It is not analysed for tracking purposes.
|
||||
</p>
|
||||
|
|
@ -66,28 +66,28 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">3. Cookies</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">3. Cookies</h2>
|
||||
<p class="mt-3">
|
||||
slimcore.io sets <strong>no cookies</strong>. No tracking cookies, no advertising cookies, no third-party cookies. Therefore no cookie banner is required.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">4. Analytics</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">4. Analytics</h2>
|
||||
<p class="mt-3">
|
||||
We use <strong>no web analytics</strong>. No Google Analytics, no Plausible, no Pirsch, no Matomo. We do not know who spent how long on which page.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">5. Fonts</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">5. Fonts</h2>
|
||||
<p class="mt-3">
|
||||
Fonts (Outfit, JetBrains Mono) are served directly from slimcore.io (self-hosted). No connection to Google Fonts or other external font CDNs.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">6. Email contact</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">6. Email contact</h2>
|
||||
<p class="mt-3">
|
||||
If you contact us by email at hallo@slimcore.io, your email address, your name (if provided), and the content of your message are stored to handle your request (legal basis: Art. 6 (1) (b) GDPR — pre-contractual measures — or (f) — legitimate interest in answering).
|
||||
</p>
|
||||
|
|
@ -97,14 +97,14 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">7. Processors</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">7. Processors</h2>
|
||||
<p class="mt-3 mb-6">
|
||||
The following service providers process personal data on our behalf:
|
||||
</p>
|
||||
<div class="flex flex-col gap-5">
|
||||
{processors.map((p) => (
|
||||
<div class="border-l-2 border-[var(--color-accent)] pl-4">
|
||||
<p class="font-serif text-[1.125rem] font-medium text-[var(--color-text-primary)]">{p.name}</p>
|
||||
<p class="font-sans text-[1.125rem] font-medium text-[var(--color-text-primary)]">{p.name}</p>
|
||||
<p class="mt-1 font-mono text-[11px] uppercase tracking-[0.06em] text-[var(--color-text-tertiary)]">{p.country}</p>
|
||||
<p class="mt-2 text-[0.9375rem]">{p.purpose}</p>
|
||||
<p class="mt-2 text-[0.9375rem] text-[var(--color-text-tertiary)]">Legal basis: {p.basis}</p>
|
||||
|
|
@ -114,7 +114,7 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">8. Your rights</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">8. Your rights</h2>
|
||||
<p class="mt-3">
|
||||
You have the right to access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction (Art. 18), data portability (Art. 20), and to object (Art. 21) to the processing of your data. Where processing is based on consent, you may withdraw it at any time with effect for the future.
|
||||
</p>
|
||||
|
|
@ -127,7 +127,7 @@ const processors = [
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">9. Changes to this policy</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">9. Changes to this policy</h2>
|
||||
<p class="mt-3">
|
||||
This privacy policy is updated when processing operations change. The current version is always available at slimcore.io/datenschutz.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ const phases: Phase[] = [
|
|||
· {phaseModules.length} {phaseModules.length === 1 ? 'module' : 'modules'}
|
||||
</span>
|
||||
</div>
|
||||
<h2 class="mt-3 max-w-[20ch] font-serif text-[2rem] md:text-[2.5rem] font-medium leading-[1.15] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-3 max-w-[20ch] font-sans text-[2rem] md:text-[2.5rem] font-medium leading-[1.15] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
{getStatusLabel(phase.status, lang)}
|
||||
</h2>
|
||||
<p class="mt-4 max-w-[60ch] text-[1.0625rem] leading-relaxed text-[var(--color-text-secondary)]">
|
||||
|
|
@ -77,7 +77,7 @@ const phases: Phase[] = [
|
|||
{phaseModules.map((m) => (
|
||||
<li class="flex flex-col gap-2 border-l-2 border-[var(--color-border-strong)] pl-4">
|
||||
<div class="flex items-baseline gap-3">
|
||||
<h3 class="font-serif text-[1.125rem] font-medium text-[var(--color-text-primary)]">
|
||||
<h3 class="font-sans text-[1.125rem] font-medium text-[var(--color-text-primary)]">
|
||||
{getModuleName(m, lang)}
|
||||
</h3>
|
||||
<span class="font-mono text-[11px] uppercase tracking-[0.06em] text-[var(--color-text-tertiary)]">
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
{section.eyebrow}
|
||||
</p>
|
||||
<h2 class="mt-4 max-w-[18ch] font-serif text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-4 max-w-[18ch] font-sans text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
{section.heading}
|
||||
</h2>
|
||||
</div>
|
||||
|
|
@ -101,7 +101,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
WHAT TO EXPECT
|
||||
</p>
|
||||
<h2 class="mt-4 max-w-[18ch] font-serif text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-4 max-w-[18ch] font-sans text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
An honest disclaimer.
|
||||
</h2>
|
||||
</div>
|
||||
|
|
@ -117,7 +117,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<section class={sectionPad}>
|
||||
<div class={container}>
|
||||
<blockquote class="border-l-2 border-[var(--color-accent)] pl-6 max-w-[55ch]">
|
||||
<p class="font-serif text-[1.5rem] md:text-[1.75rem] font-medium leading-[1.4] text-[var(--color-text-primary)]">
|
||||
<p class="font-sans text-[1.5rem] md:text-[1.75rem] font-medium leading-[1.4] text-[var(--color-text-primary)]">
|
||||
“You know the gaps in your current software better than any consultant. Help us build a business software that is owned, hosted, and understood in Germany — and that does not belong to a US corporation tomorrow because of an acquisition.”
|
||||
</p>
|
||||
<footer class="mt-4 font-mono text-[11px] uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
<div class="prose-block flex flex-col gap-10 text-[1rem] leading-[1.7] text-[var(--color-text-secondary)]">
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Anbieter</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Anbieter</h2>
|
||||
<address class="mt-3 not-italic">
|
||||
digiFORMER GmbH<br />
|
||||
Buchenstr. 5<br />
|
||||
|
|
@ -40,12 +40,12 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Vertretungsberechtigte Geschäftsführung</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Vertretungsberechtigte Geschäftsführung</h2>
|
||||
<p class="mt-3">Pascal Oelmann</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Kontakt</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Kontakt</h2>
|
||||
<p class="mt-3">
|
||||
Telefon: <a href="tel:+4981217671700" class="underline underline-offset-2 hover:text-[var(--color-accent)]">+49 (0) 8121 76717-0</a><br />
|
||||
E-Mail: <a href="mailto:hallo@slimcore.io" class="underline underline-offset-2 hover:text-[var(--color-accent)]">hallo@slimcore.io</a>
|
||||
|
|
@ -53,7 +53,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Registereintrag</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Registereintrag</h2>
|
||||
<p class="mt-3">
|
||||
Eintragung im Handelsregister.<br />
|
||||
Registergericht: Amtsgericht München<br />
|
||||
|
|
@ -62,7 +62,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Umsatzsteuer-ID</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Umsatzsteuer-ID</h2>
|
||||
<p class="mt-3">
|
||||
Umsatzsteuer-Identifikationsnummer gemäß §27 a Umsatzsteuergesetz:<br />
|
||||
DE310218819
|
||||
|
|
@ -70,7 +70,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Verantwortlich für den Inhalt nach §55 Abs. 2 RStV</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Verantwortlich für den Inhalt nach §55 Abs. 2 RStV</h2>
|
||||
<p class="mt-3">
|
||||
Pascal Oelmann<br />
|
||||
digiFORMER GmbH<br />
|
||||
|
|
@ -80,7 +80,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Streitschlichtung</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Streitschlichtung</h2>
|
||||
<p class="mt-3">
|
||||
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
|
||||
<a href="https://ec.europa.eu/consumers/odr/" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-[var(--color-accent)]">https://ec.europa.eu/consumers/odr/</a><br />
|
||||
|
|
@ -92,7 +92,7 @@ const container = 'mx-auto max-w-[820px] px-6 md:px-10 xl:px-12';
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)]">Haftungsausschluss</h2>
|
||||
<h2 class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)]">Haftungsausschluss</h2>
|
||||
<p class="mt-3">
|
||||
Der Inhalt dieser Webseite wurde mit Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<span aria-hidden="true">▸</span> Geschäftssoftware für Solo-Selbstständige und kleine Teams
|
||||
</p>
|
||||
|
||||
<h1 class="hero-headline mt-6 max-w-[18ch] font-serif font-medium text-[#F5F5F0]">
|
||||
<h1 class="hero-headline mt-6 max-w-[18ch] font-sans font-medium text-[#F5F5F0]">
|
||||
Schlank starten.<br /><span class="hero-highlight">Grenzenlos</span> wachsen.
|
||||
</h1>
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
DREI WEGE
|
||||
</p>
|
||||
<h2 class="mt-4 max-w-[18ch] font-serif text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-4 max-w-[18ch] font-sans text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
Mail, Termin oder Post.
|
||||
</h2>
|
||||
</div>
|
||||
|
|
@ -46,7 +46,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
01 · MAIL
|
||||
</p>
|
||||
<p class="mt-2">
|
||||
<a href="mailto:hallo@slimcore.io" class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)] underline underline-offset-4 transition-colors hover:text-[var(--color-accent)]">
|
||||
<a href="mailto:hallo@slimcore.io" class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)] underline underline-offset-4 transition-colors hover:text-[var(--color-accent)]">
|
||||
hallo@slimcore.io
|
||||
</a>
|
||||
</p>
|
||||
|
|
@ -64,7 +64,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
href="https://calendly.com/digiformer/quick-call"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="font-serif text-[1.5rem] font-medium text-[var(--color-text-primary)] underline underline-offset-4 transition-colors hover:text-[var(--color-accent)]"
|
||||
class="font-sans text-[1.5rem] font-medium text-[var(--color-text-primary)] underline underline-offset-4 transition-colors hover:text-[var(--color-accent)]"
|
||||
>
|
||||
30 Minuten online buchen <span aria-hidden="true">↗</span>
|
||||
</a>
|
||||
|
|
@ -78,7 +78,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
03 · POST
|
||||
</p>
|
||||
<address class="mt-2 not-italic font-serif text-[1.125rem] leading-[1.5] text-[var(--color-text-primary)]">
|
||||
<address class="mt-2 not-italic font-sans text-[1.125rem] leading-[1.5] text-[var(--color-text-primary)]">
|
||||
digiFORMER GmbH<br />
|
||||
Buchenstr. 5<br />
|
||||
85661 Forstinning<br />
|
||||
|
|
@ -101,7 +101,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
FÜR TESTER-ANFRAGEN
|
||||
</p>
|
||||
<h2 class="mt-4 max-w-[18ch] font-serif text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-4 max-w-[18ch] font-sans text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
Bitte direkt zur Tester-Seite.
|
||||
</h2>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ const phases: Phase[] = [
|
|||
· {phaseModules.length} {phaseModules.length === 1 ? 'Modul' : 'Module'}
|
||||
</span>
|
||||
</div>
|
||||
<h2 class="mt-3 max-w-[20ch] font-serif text-[2rem] md:text-[2.5rem] font-medium leading-[1.15] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-3 max-w-[20ch] font-sans text-[2rem] md:text-[2.5rem] font-medium leading-[1.15] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
{getStatusLabel(phase.status, 'de')}
|
||||
</h2>
|
||||
<p class="mt-4 max-w-[60ch] text-[1.0625rem] leading-relaxed text-[var(--color-text-secondary)]">
|
||||
|
|
@ -75,7 +75,7 @@ const phases: Phase[] = [
|
|||
{phaseModules.map((m) => (
|
||||
<li class="flex flex-col gap-2 border-l-2 border-[var(--color-border-strong)] pl-4">
|
||||
<div class="flex items-baseline gap-3">
|
||||
<h3 class="font-serif text-[1.125rem] font-medium text-[var(--color-text-primary)]">
|
||||
<h3 class="font-sans text-[1.125rem] font-medium text-[var(--color-text-primary)]">
|
||||
{m.name}
|
||||
</h3>
|
||||
<span class="font-mono text-[11px] uppercase tracking-[0.06em] text-[var(--color-text-tertiary)]">
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
{section.eyebrow}
|
||||
</p>
|
||||
<h2 class="mt-4 max-w-[18ch] font-serif text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-4 max-w-[18ch] font-sans text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
{section.heading}
|
||||
</h2>
|
||||
</div>
|
||||
|
|
@ -100,7 +100,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<p class="font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
WORAUF EINSTELLEN
|
||||
</p>
|
||||
<h2 class="mt-4 max-w-[18ch] font-serif text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
<h2 class="mt-4 max-w-[18ch] font-sans text-[1.75rem] md:text-[2rem] font-medium leading-[1.2] tracking-[-0.005em] text-[var(--color-text-primary)]">
|
||||
Ein ehrlicher Disclaimer.
|
||||
</h2>
|
||||
</div>
|
||||
|
|
@ -116,7 +116,7 @@ const container = 'mx-auto max-w-[1100px] px-6 md:px-10 xl:px-12';
|
|||
<section class={sectionPad}>
|
||||
<div class={container}>
|
||||
<blockquote class="border-l-2 border-[var(--color-accent)] pl-6 max-w-[55ch]">
|
||||
<p class="font-serif text-[1.5rem] md:text-[1.75rem] font-medium leading-[1.4] text-[var(--color-text-primary)]">
|
||||
<p class="font-sans text-[1.5rem] md:text-[1.75rem] font-medium leading-[1.4] text-[var(--color-text-primary)]">
|
||||
„Sie kennen die Lücken in Ihrer aktuellen Software besser als jeder Berater. Helfen Sie uns, eine Geschäftssoftware zu bauen, die in Deutschland gehört, gehostet und verstanden wird — und die nicht morgen einem US-Konzern gehört, weil eine Übernahme passiert ist."
|
||||
</p>
|
||||
<footer class="mt-4 font-mono text-[11px] uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]">
|
||||
|
|
|
|||
|
|
@ -41,9 +41,7 @@
|
|||
}
|
||||
|
||||
@theme inline {
|
||||
/* — Font Stacks —
|
||||
--font-serif zeigt auf Outfit (kein Serif mehr im SlimCore-Setup), Alias bleibt für Tailwind-Kompatibilität bestehen */
|
||||
--font-serif: "Outfit", system-ui, sans-serif;
|
||||
/* — Font Stacks (siehe brand-system §4.1) — */
|
||||
--font-sans: "Outfit", system-ui, sans-serif;
|
||||
--font-mono: "JetBrains Mono", ui-monospace, monospace;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue