import { defineBlock, unsplash } from "../../lib/content" // Bausteine des Baukastens: Felder und Standardinhalte. Die Komponenten dazu stehen in registry.tsx. // Alle Bausteine nutzen nur die Paletten-Farben (t-bg, t-fg, t-accent …) und passen so zu jeder Palette. // Das Feld „menu“ macht einen Baustein zum Menüpunkt; sein Anker entsteht aus dem Text (z. B. #kontakt). export const BLOCK_CATEGORIES = [ "Navigation", "Start", "Über uns", "Leistungen", "Projekte & Galerie", "Ablauf", "Vertrauen", "Stimmen", "Team", "Angebot", "FAQ", "Kontakt", "Akzente", "Abschluss", ] as const // ── Navigation ─────────────────────────────────────────────────────────────── export const navLeiste = defineBlock({ type: "nav-leiste", label: "Leiste", category: "Navigation", description: "Klassische Navigation über die volle Breite: transparent über dem Startbild, beim Scrollen mit Milchglas, auf dem Handy als Vollbild-Menü.", defaults: { cta: "Kontakt", href: "#kontakt" }, }) export const navGlas = defineBlock({ type: "nav-glas", label: "Glas-Pille", category: "Navigation", description: "Schwebende Navigation als Glas-Pille mit gleitender Hervorhebung – modern und leicht.", defaults: { cta: "Gespräch buchen", href: "#kontakt" }, }) export const navMasthead = defineBlock({ type: "nav-masthead", label: "Magazin-Kopf", category: "Navigation", description: "Großer Schriftzug wie auf einem Magazin-Cover; beim Scrollen erscheint eine schmale Leiste.", defaults: { edition: "Ausgabe Nº 12 · Herbst/Winter", cta: "Termin vereinbaren", href: "#kontakt" }, }) // ── Start ──────────────────────────────────────────────────────────────────── export const heroKino = defineBlock({ type: "hero-kino", label: "Kino-Fenster", category: "Start", description: "Ein Bildfenster öffnet sich beim Scrollen zum Vollbild – filmisch und eindrucksvoll.", defaults: { eyebrow: "Seit 1998 · Hamburg", title: "Ideen, die\n*bleiben.*", text: "Wir verbinden Erfahrung mit Neugier – und schaffen Lösungen, die heute begeistern und morgen noch tragen.", cta: "Mehr erfahren", href: "#leistungen", image: unsplash("1506905925346-21bda4d32df4", 2400), }, }) export const heroVollbild = defineBlock({ type: "hero-vollbild", label: "Vollbild", category: "Start", description: "Großes Bild über die ganze Höhe mit langsamem Zoom, Überschrift und zwei Buttons.", defaults: { eyebrow: "Willkommen", title: "Wir bringen Ideen\n*ans Licht.*", text: "Persönlich, verlässlich und mit Liebe zum Detail – seit über 25 Jahren an der Seite unserer Kundinnen und Kunden.", cta: "Kontakt aufnehmen", href: "#kontakt", ctaSecondary: "Unsere Leistungen", hrefSecondary: "#leistungen", image: unsplash("1519681393784-d120267933ba", 2400), }, }) export const heroAurora = defineBlock({ type: "hero-aurora", label: "Aurora", category: "Start", description: "Leuchtender Farbverlauf, Glas-Effekte und Schlagworte, die eine Lichtkugel umkreisen.", defaults: { badge: "Neu: Erstberatung in 48 Stunden", title: "Die Zukunft beginnt\nmit *einer Idee.*", text: "Wir verbinden Strategie, Design und Technologie – für Unternehmen, die nicht abwarten, sondern gestalten.", cta: "Gespräch vereinbaren", href: "#kontakt", ctaSecondary: "Leistungen", hrefSecondary: "#leistungen", keywords: "Strategie, Design, Technologie, Wachstum, Service", }, }) export const heroEditorial = defineBlock({ type: "hero-editorial", label: "Editorial", category: "Start", description: "Wie ein Magazin: große Serifenschrift, das Bild öffnet sich wie Jalousien.", defaults: { eyebrow: "Ausgabe Nº 01", title: "Schönheit\nliegt im *Detail.*", text: "Wir glauben an Dinge, die mit Sorgfalt gemacht sind – und an Räume, die Geschichten erzählen.", cta: "Entdecken", href: "#projekte", image: unsplash("1600607687939-ce8a6c25118c", 1600), caption: "Wohnraum, Hamburg-Eppendorf", }, }) export const heroKinetik = defineBlock({ type: "hero-kinetik", label: "Kinetik", category: "Start", description: "Riesiger Schriftzug, dessen Buchstaben auf die Maus reagieren – auf dem Handy wogt er von selbst.", defaults: { eyebrow: "Studio für Gestaltung & Strategie", word: "", text: "Wir gestalten Marken, Räume und Erlebnisse, die Menschen bewegen – präzise im Detail, mutig im Ganzen.", cta: "Projekte ansehen", href: "#projekte", image: unsplash("1479839672679-a46483c0e7c8", 1600), }, }) // ── Über uns ───────────────────────────────────────────────────────────────── export const statement = defineBlock({ type: "statement", label: "Leitsatz", category: "Über uns", description: "Großer Text, dessen Wörter beim Scrollen nacheinander aufleuchten.", defaults: { menu: "", eyebrow: "Über uns", text: "Gute Arbeit beginnt mit Zuhören. Wir nehmen uns Zeit, verstehen, was Sie bewegt – und entwickeln daraus Lösungen, die nicht nur funktionieren, sondern begeistern.", author: "Anna Lindberg", role: "Gründerin", }, }) export const storyKapitel = defineBlock({ type: "story-kapitel", label: "Kapitel", category: "Über uns", description: "Erzählt eine Geschichte in Kapiteln; das Bild wechselt beim Scrollen mit.", defaults: { menu: "Geschichte", eyebrow: "Unsere Geschichte", title: "Vom ersten Tag\nbis *heute.*", items: [ { year: "1998", title: "Der Anfang", text: "Mit zwei Schreibtischen und einer großen Idee gründen wir unser Studio in einem Hinterhof in Hamburg.", image: unsplash("1497366811353-6870744d04b2", 1400) }, { year: "2010", title: "Das Wachstum", text: "Aus dem kleinen Team werden 40 Menschen, aus Aufträgen werden langjährige Partnerschaften.", image: unsplash("1521737604893-d14cc237f11d", 1400) }, { year: "2026", title: "Die Zukunft", text: "Heute verbinden wir Erfahrung mit neuen Ideen – und bleiben dabei, was uns ausmacht: nah, ehrlich, leidenschaftlich.", image: unsplash("1556761175-5973dc0f32e7", 1400) }, ], }, items: { items: "Kapitel" }, }) export const textBild = defineBlock({ type: "text-bild", label: "Text & Bild", category: "Über uns", description: "Editorial mit Initiale, Zitat und Unterschrift; das Bild färbt sich beim Darüberfahren von der Maus aus ein.", defaults: { menu: "Über uns", eyebrow: "Über uns", title: "Mit Herz\nund *Haltung.*", text: "Seit über 25 Jahren begleiten wir Menschen und Unternehmen auf ihrem Weg. Wir hören zu, denken mit und packen an – mit einem Team, das seine Arbeit liebt und für jedes Projekt brennt.", quote: "Wir messen uns nicht an Aufträgen, sondern an Beziehungen, die bleiben.", signature: "Anna Lindberg", image: unsplash("1522071820081-009f0129c71c", 1400), caption: "Unser Team im Hamburger Studio", }, }) // ── Leistungen ─────────────────────────────────────────────────────────────── export const leistungenPanels = defineBlock({ type: "leistungen-panels", label: "Panels", category: "Leistungen", description: "Bildpaneele, die sich beim Darüberfahren aufziehen – ideal für drei bis fünf Leistungen.", defaults: { menu: "Leistungen", eyebrow: "Leistungen", title: "Was wir *für Sie* tun.", items: [ { title: "Beratung", text: "Wir analysieren, wo Sie stehen, und zeigen, wohin es gehen kann – klar, ehrlich und umsetzbar.", image: unsplash("1552664730-d307ca884978", 1400) }, { title: "Gestaltung", text: "Von der Idee zum Entwurf: Wir geben Ihren Vorhaben eine Form, die begeistert.", image: unsplash("1497366811353-6870744d04b2", 1400) }, { title: "Umsetzung", text: "Wir setzen um – termingerecht, im Budget und mit einem Auge für jedes Detail.", image: unsplash("1531297484001-80022131f5a1", 1400) }, { title: "Betreuung", text: "Auch nach dem Projekt sind wir für Sie da – persönlich und auf kurzem Weg.", image: unsplash("1521737604893-d14cc237f11d", 1400) }, ], }, items: { items: "Leistung" }, }) export const leistungenBento = defineBlock({ type: "leistungen-bento", label: "Bento mit Lichtkegel", category: "Leistungen", description: "Kacheln im Bento-Raster; ein Lichtkegel folgt der Maus über alle Kacheln. Die erste Kachel ist groß, ein Bild ist optional.", defaults: { menu: "Leistungen", eyebrow: "Leistungen", title: "Alles aus\n*einer Hand.*", text: "Von der ersten Idee bis zum fertigen Ergebnis – wir begleiten Sie auf dem ganzen Weg.", items: [ { title: "Strategie", text: "Wir finden heraus, was Sie wirklich weiterbringt, und machen daraus einen klaren Plan.", image: unsplash("1552664730-d307ca884978", 1200) }, { title: "Design", text: "Gestaltung, die Ihre Marke unverwechselbar macht.", image: "" }, { title: "Technologie", text: "Moderne Lösungen, die zuverlässig laufen.", image: "" }, { title: "Service", text: "Persönliche Betreuung – schnell, freundlich und kompetent.", image: "" }, { title: "Wachstum", text: "Maßnahmen, die messbar mehr Kundschaft bringen.", image: "" }, { title: "Qualität", text: "Sorgfalt bis ins Detail – geprüft und dokumentiert.", image: "" }, ], }, items: { items: "Leistung" }, }) export const leistungenKarten = defineBlock({ type: "leistungen-karten", label: "3D-Karten", category: "Leistungen", description: "Karten, die sich zur Maus neigen und einen Glanz werfen – mit Aufzählung je Leistung.", defaults: { menu: "Leistungen", eyebrow: "Leistungen", title: "Was wir *können.*", items: [ { title: "Beratung", text: "Klarheit über Ziele, Wege und Möglichkeiten.", features: "Analyse & Workshop\nStrategie & Fahrplan\nFördermöglichkeiten" }, { title: "Planung", text: "Durchdachte Konzepte bis ins Detail.", features: "Konzept & Entwurf\nKosten & Zeitplan\nAbstimmung mit Partnern" }, { title: "Umsetzung", text: "Wir machen aus Plänen Wirklichkeit.", features: "Projektsteuerung\nQualitätssicherung\nTransparente Berichte" }, { title: "Betreuung", text: "Langfristig an Ihrer Seite.", features: "Feste Ansprechperson\nWartung & Pflege\nSchnelle Hilfe" }, ], }, items: { items: "Leistung" }, }) // ── Projekte & Galerie ─────────────────────────────────────────────────────── export const projekteQuerlauf = defineBlock({ type: "projekte-querlauf", label: "Querlauf", category: "Projekte & Galerie", description: "Beim Scrollen gleiten große Bilder seitlich vorbei – mit Fortschrittsleiste.", defaults: { menu: "Projekte", eyebrow: "Projekte", title: "Ausgewählte\n*Arbeiten*", items: [ { title: "Haus am Wasser", category: "Wohnen", year: "2026", image: unsplash("1613490493576-7fde63acd811", 1600) }, { title: "Pavillon", category: "Kultur", year: "2025", image: unsplash("1518005020951-eccb494ad742", 1600) }, { title: "Studio Ost", category: "Arbeiten", year: "2024", image: unsplash("1497366811353-6870744d04b2", 1600) }, { title: "Villa Sol", category: "Wohnen", year: "2023", image: unsplash("1512917774080-9991f1c4c750", 1600) }, { title: "Haus Weiß", category: "Wohnen", year: "2022", image: unsplash("1487958449943-2429e8be8625", 1600) }, ], }, items: { items: "Projekt" }, }) export const projekteIndex = defineBlock({ type: "projekte-index", label: "Index mit Bildspur", category: "Projekte & Galerie", description: "Projektliste im Swiss-Stil; die Maus hinterlässt eine Spur aus Projektbildern.", defaults: { menu: "Projekte", eyebrow: "Index", title: "Ausgewählte *Projekte*", items: [ { title: "Haus Weiß", location: "Hamburg", category: "Wohnen", year: "2026", image: unsplash("1487958449943-2429e8be8625", 800) }, { title: "Pavillon Blau", location: "Berlin", category: "Kultur", year: "2025", image: unsplash("1518005020951-eccb494ad742", 800) }, { title: "Kubus", location: "Köln", category: "Arbeiten", year: "2024", image: unsplash("1479839672679-a46483c0e7c8", 800) }, { title: "Villa Sol", location: "Mallorca", category: "Wohnen", year: "2023", image: unsplash("1512917774080-9991f1c4c750", 800) }, { title: "Atelier Licht", location: "München", category: "Innenraum", year: "2022", image: unsplash("1517705008128-361805f42e86", 800) }, ], }, items: { items: "Projekt" }, }) export const galerieKarussell = defineBlock({ type: "galerie-karussell", label: "3D-Karussell", category: "Projekte & Galerie", description: "Bilder auf einem drehenden Zylinder – dreht sich beim Scrollen und lässt sich mit der Maus oder dem Finger ziehen.", defaults: { menu: "Galerie", eyebrow: "Galerie", title: "Einblicke in\n*Bewegung.*", text: "Ziehen oder scrollen Sie, um die Galerie zu drehen.", images: [ { src: unsplash("1487958449943-2429e8be8625", 900), caption: "Haus Weiß" }, { src: unsplash("1518005020951-eccb494ad742", 900), caption: "Pavillon" }, { src: unsplash("1479839672679-a46483c0e7c8", 900), caption: "Kubus" }, { src: unsplash("1613490493576-7fde63acd811", 900), caption: "Haus am Wasser" }, { src: unsplash("1517705008128-361805f42e86", 900), caption: "Atelier" }, { src: unsplash("1512917774080-9991f1c4c750", 900), caption: "Villa Sol" }, { src: unsplash("1592078615290-033ee584e267", 900), caption: "Objekt" }, { src: unsplash("1431576901776-e539bd916ba2", 900), caption: "Fassade" }, ], }, items: { images: "Bild" }, }) // ── Ablauf ─────────────────────────────────────────────────────────────────── export const ablaufLinie = defineBlock({ type: "ablauf-linie", label: "Zeitstrahl", category: "Ablauf", description: "Eine Linie zeichnet sich beim Scrollen und lässt die Schritte nacheinander aufleuchten.", defaults: { menu: "Ablauf", eyebrow: "Ablauf", title: "So einfach geht's\n*mit uns.*", items: [ { title: "Kennenlernen", text: "In einem ersten Gespräch erfahren wir, was Sie vorhaben – kostenlos und unverbindlich.", duration: "Tag 1" }, { title: "Konzept", text: "Wir entwickeln einen klaren Plan mit Zeitrahmen und transparentem Angebot.", duration: "1–2 Wochen" }, { title: "Umsetzung", text: "Wir setzen um und halten Sie in jeder Phase auf dem Laufenden.", duration: "nach Plan" }, { title: "Übergabe", text: "Sie erhalten das Ergebnis – und uns als Ansprechpartner auch danach.", duration: "Ziel erreicht" }, ], }, items: { items: "Schritt" }, }) export const ablaufSpalten = defineBlock({ type: "ablauf-spalten", label: "Spalten", category: "Ablauf", description: "Schritte nebeneinander mit römischen Ziffern und Linien, die sich zeichnen.", defaults: { menu: "Ablauf", eyebrow: "Ablauf", title: "In vier *Schritten.*", items: [ { title: "Zuhören", text: "Wir lernen Sie und Ihr Vorhaben kennen – in Ruhe und ohne Verpflichtung." }, { title: "Entwerfen", text: "Wir entwickeln Ideen und einen klaren Plan, den Sie mitgestalten." }, { title: "Umsetzen", text: "Wir setzen sorgfältig und termingerecht um – mit festen Ansprechpartnern." }, { title: "Begleiten", text: "Wir bleiben an Ihrer Seite – auch lange nach dem Abschluss." }, ], }, items: { items: "Schritt" }, }) // ── Vertrauen ──────────────────────────────────────────────────────────────── export const zahlen = defineBlock({ type: "zahlen", label: "Kennzahlen", category: "Vertrauen", description: "Zahlen zählen beim Erscheinen hoch, feine Linien zeichnen sich. Überschrift optional.", defaults: { eyebrow: "", title: "", items: [ { value: "25", suffix: "+", label: "Jahre Erfahrung" }, { value: "1.200", suffix: "", label: "zufriedene Kunden" }, { value: "40", suffix: "", label: "Menschen im Team" }, { value: "4,9", suffix: "/5", label: "Bewertung im Schnitt" }, ], }, items: { items: "Kennzahl" }, }) export const logos = defineBlock({ type: "logos", label: "Logo-Laufband", category: "Vertrauen", description: "Kunden oder Partner als endloses Laufband – mit Logo-Bild oder als Schriftzug.", defaults: { title: "Partner und Kunden, die uns vertrauen", items: [ { name: "Nordwerk", logo: "" }, { name: "Velora", logo: "" }, { name: "Kraftbau", logo: "" }, { name: "Brightfield", logo: "" }, { name: "Okuma", logo: "" }, { name: "Lumio", logo: "" }, ], }, items: { items: "Kunde" }, }) // ── Stimmen ────────────────────────────────────────────────────────────────── export const stimmenZitat = defineBlock({ type: "stimmen-zitat", label: "Großes Zitat", category: "Stimmen", description: "Ein Zitat groß in Szene gesetzt; wechselt automatisch, mit Fortschrittsanzeige.", defaults: { menu: "", eyebrow: "Stimmen", items: [ { quote: "Vom ersten Gespräch bis zum Ergebnis haben wir uns bestens aufgehoben gefühlt. Ehrlich, schnell und mit großem Gespür für das, was uns wichtig ist.", author: "Julia Hartmann", role: "Geschäftsführerin, Hartmann & Co." }, { quote: "Selten so ein engagiertes Team erlebt. Jede Frage wurde sofort beantwortet, jeder Termin eingehalten.", author: "Markus Weber", role: "Inhaber, Weber Logistik" }, { quote: "Das Ergebnis hat unsere Erwartungen übertroffen – und unsere Kunden sehen es genauso.", author: "Dr. Sophie Klein", role: "Praxis Dr. Klein" }, ], }, items: { items: "Stimme" }, }) export const stimmenWand = defineBlock({ type: "stimmen-wand", label: "Stimmen-Wand", category: "Stimmen", description: "Spalten mit Kundenstimmen, die endlos gegenläufig laufen und beim Darüberfahren sanft anhalten.", defaults: { menu: "Stimmen", eyebrow: "Stimmen", title: "Was unsere Kunden *sagen.*", items: [ { quote: "Unkompliziert, schnell und richtig gut. Wir haben uns vom ersten Tag an verstanden gefühlt.", author: "Lena Brandt", role: "Inhaberin, Studio Brandt", image: unsplash("1494790108377-be9c29b29330", 300) }, { quote: "Endlich ein Partner, der mitdenkt, statt nur abzuarbeiten. Klare Empfehlung!", author: "Tobias Lehmann", role: "Geschäftsführer, Lehmann Bau", image: unsplash("1560250097-0b93528c311a", 300) }, { quote: "Die Zusammenarbeit war professionell und herzlich zugleich. Das Ergebnis spricht für sich.", author: "Mira Schulz", role: "Marketing, Velora", image: unsplash("1534528741775-53994a69daeb", 300) }, { quote: "Wir haben unsere Ziele in der Hälfte der Zeit erreicht. Das hätten wir nie gedacht.", author: "Jonas Becker", role: "Gründer, Kraftbau", image: unsplash("1472099645785-5658abf4ff4e", 300) }, { quote: "Jede Frage wurde geduldig beantwortet. Man merkt, dass hier Menschen mit Leidenschaft arbeiten.", author: "Amara Okafor", role: "Praxis am Park", image: unsplash("1531123897727-8f129e1688ce", 300) }, { quote: "Termingerecht, im Budget und mit Liebe zum Detail – so wünscht man sich das.", author: "Felix Wagner", role: "Wagner & Söhne", image: unsplash("1539571696357-5a69c17a67c6", 300) }, ], }, items: { items: "Stimme" }, }) // ── Team ───────────────────────────────────────────────────────────────────── export const team = defineBlock({ type: "team", label: "Team", category: "Team", description: "Porträts in Schwarzweiß, die sich beim Darüberfahren von der Maus aus einfärben.", defaults: { menu: "Team", eyebrow: "Team", title: "Die Menschen\n*dahinter.*", text: "Ein Team aus Expertinnen und Experten, das für jedes Projekt brennt.", members: [ { name: "Anna Lindberg", role: "Gründerin & Geschäftsführung", image: unsplash("1438761681033-6461ffad8d80", 700) }, { name: "David Moreno", role: "Projektleitung", image: unsplash("1507003211169-0a1dd7228f2d", 700) }, { name: "Sophie Wagner", role: "Gestaltung", image: unsplash("1508214751196-bcfd4ca60f91", 700) }, { name: "Lukas Brenner", role: "Technik", image: unsplash("1506794778202-cad84cf45f1d", 700) }, ], }, items: { members: "Person" }, }) // ── Angebot ────────────────────────────────────────────────────────────────── export const pakete = defineBlock({ type: "pakete", label: "Pakete", category: "Angebot", description: "Pakete im Vergleich; das hervorgehobene bekommt einen umlaufenden Lichtrand.", defaults: { menu: "Pakete", eyebrow: "Pakete", title: "Klar, fair und\n*transparent.*", text: "Wählen Sie das Paket, das zu Ihnen passt. Alle Preise zzgl. MwSt.", href: "#kontakt", plans: [ { name: "Basis", price: "990 €", period: "einmalig", text: "Für den Einstieg", features: "Erstgespräch & Analyse\nKonzept mit Empfehlungen\nSupport per E-Mail", ribbon: "", cta: "Anfragen" }, { name: "Plus", price: "2.490 €", period: "einmalig", text: "Unser Klassiker", features: "Alles aus Basis\nUmsetzung durch unser Team\nPersönliche Ansprechperson\n3 Monate Betreuung", ribbon: "Beliebt", cta: "Anfragen" }, { name: "Premium", price: "Individuell", period: "", text: "Für große Vorhaben", features: "Alles aus Plus\nPriorisierte Umsetzung\nRegelmäßige Strategie-Termine\n12 Monate Betreuung", ribbon: "", cta: "Gespräch vereinbaren" }, ], }, items: { plans: "Paket" }, }) // ── FAQ ────────────────────────────────────────────────────────────────────── export const faq = defineBlock({ type: "faq", label: "FAQ", category: "FAQ", description: "Häufige Fragen zum Aufklappen, daneben Überschrift und Kontakt-Hinweis.", defaults: { menu: "FAQ", eyebrow: "FAQ", title: "Häufige\n*Fragen*", text: "Ihre Frage ist nicht dabei? Wir antworten gern persönlich.", items: [ { question: "Wie läuft die Zusammenarbeit ab?", answer: "Nach einem kostenlosen Erstgespräch erhalten Sie ein transparentes Angebot. Danach begleitet Sie eine feste Ansprechperson durch alle Schritte." }, { question: "Was kostet ein Projekt?", answer: "Das hängt vom Umfang ab. Nach dem Erstgespräch nennen wir Ihnen einen verbindlichen Festpreis – ohne versteckte Kosten." }, { question: "Wie schnell können Sie starten?", answer: "In der Regel innerhalb von zwei Wochen. Bei dringenden Anliegen finden wir fast immer eine Lösung." }, { question: "Arbeiten Sie auch überregional?", answer: "Ja. Wir arbeiten deutschlandweit – vor Ort oder digital, ganz wie es für Sie am besten passt." }, ], }, items: { items: "Frage" }, }) // ── Kontakt ────────────────────────────────────────────────────────────────── export const ctaPortal = defineBlock({ type: "cta-portal", label: "Leuchtender Aufruf", category: "Kontakt", description: "Große Fläche mit pulsierendem Leuchten und magnetischem Button – der letzte Anstoß.", defaults: { menu: "", eyebrow: "Bereit?", title: "Lassen Sie uns\netwas *Großes* starten.", text: "Ein kurzes Gespräch genügt – kostenlos und unverbindlich.", cta: "Jetzt Kontakt aufnehmen", href: "#kontakt", }, }) export const kontaktFormular = defineBlock({ type: "kontakt-formular", label: "Kontakt mit Formular", category: "Kontakt", description: "Überschrift, Kontaktdaten aus „Marke & Kontakt“ und ein elegantes Formular mit Themen-Auswahl.", defaults: { menu: "Kontakt", eyebrow: "Kontakt", title: "Lassen Sie\nuns *sprechen.*", text: "Erzählen Sie uns von Ihrem Vorhaben – wir melden uns innerhalb von 24 Stunden.", topics: "Anfrage, Beratung, Zusammenarbeit, Sonstiges", button: "Nachricht senden", success: "Vielen Dank! Wir melden uns in Kürze bei Ihnen.", hours: "Mo–Fr, 9–18 Uhr", }, }) // ── Akzente ────────────────────────────────────────────────────────────────── export const laufband = defineBlock({ type: "laufband", label: "Text-Laufband", category: "Akzente", description: "Großer Text als Laufband, das beim schnellen Scrollen Tempo aufnimmt und sich neigt.", defaults: { text: "Ideen · Gestaltung · Umsetzung · Begeisterung ·", secondary: "Mit Herz und Verstand ·", }, }) export const wortmaske = defineBlock({ type: "wortmaske", label: "Bild im Schriftzug", category: "Akzente", description: "Ein Bild scheint durch riesige Buchstaben und wandert beim Scrollen mit.", defaults: { menu: "", eyebrow: "Was uns antreibt", word: "Neugier", text: "Neugier ist der Anfang von allem. Sie lässt uns Fragen stellen, Gewohntes hinterfragen und Lösungen finden, an die vorher niemand gedacht hat.", image: unsplash("1501785888041-af3ef285b470", 2000), }, }) // ── Abschluss ──────────────────────────────────────────────────────────────── export const footerWortmarke = defineBlock({ type: "footer-wortmarke", label: "Riesen-Schriftzug", category: "Abschluss", description: "Abschluss mit Navigation, Kontaktdaten und dem Namen als Schriftzug über die volle Breite.", defaults: { text: "Ideen, die bleiben.", cta: "Kontakt aufnehmen", href: "#kontakt" }, }) export const footerSchlicht = defineBlock({ type: "footer-schlicht", label: "Schlicht", category: "Abschluss", description: "Klarer Abschluss in Spalten mit Navigation, Kontakt und Ortszeit.", defaults: { city: "Hamburg", note: "Mit Sorgfalt gemacht." }, }) // Reihenfolge = Reihenfolge im Bausteine-Dialog export const blockLibrary = [ navLeiste, navGlas, navMasthead, heroKino, heroVollbild, heroAurora, heroEditorial, heroKinetik, statement, storyKapitel, textBild, leistungenPanels, leistungenBento, leistungenKarten, projekteQuerlauf, projekteIndex, galerieKarussell, ablaufLinie, ablaufSpalten, zahlen, logos, stimmenZitat, stimmenWand, team, pakete, faq, ctaPortal, kontaktFormular, laufband, wortmaske, footerWortmarke, footerSchlicht, ] export type NavLeisteData = typeof navLeiste.defaults export type NavGlasData = typeof navGlas.defaults export type NavMastheadData = typeof navMasthead.defaults export type HeroKinoData = typeof heroKino.defaults export type HeroVollbildData = typeof heroVollbild.defaults export type HeroAuroraData = typeof heroAurora.defaults export type HeroEditorialData = typeof heroEditorial.defaults export type HeroKinetikData = typeof heroKinetik.defaults export type StatementData = typeof statement.defaults export type StoryKapitelData = typeof storyKapitel.defaults export type TextBildData = typeof textBild.defaults export type LeistungenPanelsData = typeof leistungenPanels.defaults export type LeistungenBentoData = typeof leistungenBento.defaults export type LeistungenKartenData = typeof leistungenKarten.defaults export type ProjekteQuerlaufData = typeof projekteQuerlauf.defaults export type ProjekteIndexData = typeof projekteIndex.defaults export type GalerieKarussellData = typeof galerieKarussell.defaults export type AblaufLinieData = typeof ablaufLinie.defaults export type AblaufSpaltenData = typeof ablaufSpalten.defaults export type ZahlenData = typeof zahlen.defaults export type LogosData = typeof logos.defaults export type StimmenZitatData = typeof stimmenZitat.defaults export type StimmenWandData = typeof stimmenWand.defaults export type TeamData = typeof team.defaults export type PaketeData = typeof pakete.defaults export type FaqData = typeof faq.defaults export type CtaPortalData = typeof ctaPortal.defaults export type KontaktFormularData = typeof kontaktFormular.defaults export type LaufbandData = typeof laufband.defaults export type WortmaskeData = typeof wortmaske.defaults export type FooterWortmarkeData = typeof footerWortmarke.defaults export type FooterSchlichtData = typeof footerSchlicht.defaults