Alle Komponenten-Inhalte

Bausteine für Komponenten-Inhalte.

Thinkport — Thinkport

AuthorsList

Autor:innen-Liste

Die AuthorsList-Komponente zeigt eine Liste von Autor:innen für Blog-Posts oder Whitepaper an. Sie lädt automatisch Person-Daten und zeigt Avatare, Namen, Job-Titel, Unternehmen und LinkedIn-Links an.

Codebeispiel

<AuthorsList
post={{
authors: ['andre-lademann', 'dominik-fries'],
title: 'Beispiel-Artikel',
excerpt: 'Ein Beispiel-Artikel'
}}
variant="default"
/>

Parameter

BezeichnerTypBeschreibungDefault
postPostBlog-Post mit authors-Array-
whitepaperCollectionEntry<whitepaper>Whitepaper mit authors-Array-
variant'default' | 'large'Größe der Anzeige'default'
Thinkport — Thinkport

BlogCard

Blog-Post Karte

Die BlogCard-Komponente zeigt eine kompakte Karte für einen Blog-Post an. Sie zeigt Bild, Titel, Excerpt und Veröffentlichungsdatum.

Codebeispiel

<BlogCard
post={{
id: 'example-post',
data: {
title: 'Beispiel-Artikel',
excerpt: 'Dies ist ein Beispiel-Artikel',
image: '~/assets/images/blog/2024/default.png',
publishDate: new Date('2024-01-15')
}
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
postCollectionEntry<post>Blog-Post aus Content Collection-
Thinkport — Thinkport

BlogFilter

Tag-Filter

Zeigt alle Blog-Tags als Chips. Auf der Blog-Startseite ohne aktives Tag erscheint die Überschrift „Tag Filter“. Auf einer Tag-Seite wird der aktuelle Tag im Header hervorgehoben; „Alle anzeigen“ führt zurück zur Blog-Übersicht. Der Aufklapp-Zustand wird pro Browser in localStorage (Schlüssel blog-filter-expanded) gespeichert.

Codebeispiel

<BlogFilter
tags={[
{ slug: 'cloud', title: 'Cloud' },
{ slug: 'kafka', title: 'Kafka' },
{ slug: 'data', title: 'Data' },
]}
/>

Parameter

BezeichnerTypBeschreibungDefault
tags{ slug: string; title: string }[]Liste der Tags (slug für URL, title für Anzeige)[]
currentTagstringOptional: Slug des aktiven Tags (z. B. von der Tag-Route)-
Thinkport — Thinkport

PageGrid

Seiten-Grid

Die PageGrid-Komponente zeigt eine Grid-Ansicht von Seiten an. Sie verwendet PageGridItem für die Darstellung einzelner Seiten.

Codebeispiel

<PageGrid
pages={[
{
id: 'example-1',
data: { title: 'Seite 1', excerpt: 'Beschreibung 1' }
},
{
id: 'example-2',
data: { title: 'Seite 2', excerpt: 'Beschreibung 2' }
}
]}
icon="tabler:file"
/>

Parameter

BezeichnerTypBeschreibungDefault
pagesArray<TeaserContentItem>Array von Seiten/Posts/Webinaren/Trainings[]
iconstringOptionales Icon für alle Items-
Thinkport — Thinkport
Blog

Dies ist eine Beispiel-Beschreibung für die PageGridItem-Komponente

PageGridItem

Grid-Item

Die PageGridItem-Komponente zeigt ein einzelnes Item in einem Grid an. Sie unterstützt verschiedene Content-Typen (Seiten, Posts, Webinare, Trainings, Whitepaper) und zeigt automatisch passende Badges an.

Codebeispiel

<PageGridItem
page={{
id: 'example',
data: { title: 'Beispiel', excerpt: 'Beschreibung' }
}}
icon="tabler:file"
/>

Parameter

BezeichnerTypBeschreibungDefault
pageTeaserContentItemSeite/Post/Webinar/Training/Whitepaper-
iconstringOptionales Icon-
Thinkport — Thinkport

Dies ist ein Beispiel-Text für die PostContent-Komponente.

Sie rendert Markdown-Inhalte mit Prose-Styling.

  • Liste Item 1
  • Liste Item 2

PostContent

Post-Inhalt

Die PostContent-Komponente rendert den Inhalt eines Blog-Posts. Sie verwendet Prose-Styling für Markdown-Inhalte.

Codebeispiel

<PostContent
post={{
Content: () => <div>Post-Inhalt hier...</div>,
title: 'Beispiel-Post',
excerpt: 'Beschreibung'
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
postPostBlog-Post mit Content-Component-
Thinkport — Thinkport

Ähnliche Artikel

Blog
Grundlagen von Cloud Computing

Cloud Computing verständlich erklärt: Modelle, Vorteile und Best Practices für Migration, Sicherheit und Kostenoptimierung in modernen IT‑Landschaften.

Blog
Optimizing Kafka

Optimizing Kafka on AWS, Azure and a complex cloud environment As professional cloud consultants, we often recommend Apache Kafka as a scalable, high-throughput messaging system…

PostFooter

Post-Footer

Die PostFooter-Komponente zeigt verwandte Artikel am Ende eines Blog-Posts an. Sie verwendet getRelatedPosts, um ähnliche Artikel zu finden.

Codebeispiel

<PostFooter
post={{
id: 'example-post',
title: 'Beispiel-Post',
tags: ['cloud', 'aws']
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
postPostBlog-Post-
Thinkport — Thinkport

Beispiel-Post

Dies ist ein Beispiel-Post für die PostHeader-Komponente

am

PostHeader

Post-Header

Die PostHeader-Komponente zeigt den Header eines Blog-Posts mit Titel, Bild, Autoren, Veröffentlichungsdatum und Tags an.

Codebeispiel

<PostHeader
post={{
title: 'Beispiel-Post',
excerpt: 'Beschreibung',
image: '/images/example.jpg',
authors: ['max-mustermann'],
publishDate: new Date('2024-01-15'),
tags: [{ slug: 'cloud', title: 'Cloud' }]
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
postPostBlog-Post-
Thinkport — Thinkport

SeriesNav

Serien-Navigation

Die SeriesNav-Komponente zeigt eine Navigation für eine Artikel-Serie an. Sie zeigt alle Artikel der Serie mit Nummerierung und markiert den aktuellen Artikel.

Codebeispiel

<SeriesNav
items={[
{ step: '1', slug: 'serie-teil-1', title: 'Teil 1' },
{ step: '2', slug: 'serie-teil-2', title: 'Teil 2' },
{ step: '3', slug: 'serie-teil-3', title: 'Teil 3' }
]}
currentHref="/blog/serie-teil-2"
title="Meine Serie"
/>

Parameter

BezeichnerTypBeschreibungDefault
itemsArray<SeriesItem>Array von Serien-Items[]
currentHrefstringURL des aktuellen Artikels-
titlestringTitel der Serie'Nomad Setup Series'
Thinkport — Thinkport

Die Analytics-Komponente wird nur in Production-Builds gerendert. In Development-Mode wird sie nicht angezeigt.

Analytics

Analytics-Komponente

Die Analytics-Komponente bindet Google Analytics ein und liest die Tracking-ID automatisch aus der Konfiguration aus. Sie eignet sich besonders für das einfache Aktivieren von Tracking auf der Website.

Codebeispiel

<Analytics />
Thinkport — Thinkport

ApplyColorMode

Farbschema-Umschalter

Die ApplyColorMode-Komponente ermöglicht das Umschalten zwischen Light- und Dark-Mode und eignet sich besonders für barrierearme und moderne Webanwendungen.

Codebeispiel

<ApplyColorMode />
Thinkport — Thinkport

AstroIcon

Einfache SVG-Icons

Die AstroIcon-Komponente stellt einfache SVG-Icons bereit. Sie unterstützt derzeit die Icons 'mail', 'brand-linkedin' und 'arrow-right'.

Codebeispiel

<AstroIcon name="mail" size={24} />
<AstroIcon name="brand-linkedin" size={32} />
<AstroIcon name="arrow-right" size={20} class="text-primary" />

Parameter

BezeichnerTypBeschreibungDefault
namestringName des Icons (mail, brand-linkedin, arrow-right)-
sizenumberGröße des Icons in Pixeln24
classstringZusätzliche CSS-Klassen-

Verschiedene Größen

Icons in unterschiedlichen Größen

Die Größe der Icons kann über die size-Prop angepasst werden.

Codebeispiel

<AstroIcon name="mail" size={16} />
<AstroIcon name="mail" size={24} />
<AstroIcon name="mail" size={32} />
<AstroIcon name="mail" size={48} />
<AstroIcon name="mail" size={64} />

Mit CSS-Klassen stylen

Farben und weitere Styles anwenden

Icons können mit CSS-Klassen gestylt werden, z.B. für Farben oder andere visuelle Anpassungen.

Codebeispiel

<AstroIcon name="mail" size={32} class="text-primary" />
<AstroIcon name="mail" size={32} class="text-red-500" />
<AstroIcon name="mail" size={32} class="text-blue-600" />
<AstroIcon name="mail" size={32} class="text-green-500" />
<AstroIcon name="mail" size={32} class="text-gray-400" />
mail
brand-linkedin
arrow-right

Alle verfügbaren Icons

Übersicht aller unterstützten Icons

Die Komponente unterstützt derzeit drei Icons: mail, brand-linkedin und arrow-right.

Codebeispiel

<AstroIcon name="mail" size={32} />
<AstroIcon name="brand-linkedin" size={32} />
<AstroIcon name="arrow-right" size={32} />

Praktische Anwendungsbeispiele

Icons in verschiedenen Kontexten

Beispiele für die Verwendung der Icons in Buttons, Links und anderen UI-Elementen.

Codebeispiel

<button class="flex items-center gap-2 px-4 py-2 bg-primary text-white rounded">
<AstroIcon name="mail" size={20} />
E-Mail senden
</button>
<a href="#" class="flex items-center gap-2 text-primary hover:underline">
LinkedIn Profil
<AstroIcon name="brand-linkedin" size={18} />
</a>
<a href="#" class="flex items-center gap-2 text-gray-700 hover:text-primary">
Weiterlesen
<AstroIcon name="arrow-right" size={16} class="text-primary" />
</a>
Thinkport — Thinkport

BasicScripts

Basis-Skripte

Die BasicScripts-Komponente bindet grundlegende Skripte für die Website ein und eignet sich besonders für globale Funktionen wie Polyfills oder Tracking.

Codebeispiel

<BasicScripts />
Thinkport — Thinkport

Die CommonMeta-Komponente fügt Meta-Tags zum <head> hinzu. Sie wird nicht visuell angezeigt, sondern nur im HTML-Quellcode sichtbar.

CommonMeta

Meta-Komponente

Minimales Beispiel für die CommonMeta-Komponente.

Codebeispiel

<CommonMeta />
Thinkport — Thinkport

DEBUG: example

Debug Output


{
  "name": "Test",
  "value": 123,
  "nested": {
    "key": "value"
  }
}
    

Debug

Debug-Informationen

Die Debug-Komponente zeigt Debug-Informationen in der Entwicklungsumgebung an. Sie kann Daten im Server-Log, Browser-Log oder als UI-Element anzeigen.

Codebeispiel

<Debug
data={{ name: "Test", value: 123 }}
label="example"
title="Debug Output"
renderUI={true}
logInServer={true}
logInBrowser={false}
stringifySpaces={2}
language="json"
isCopyEnabled={true}
/>

Parameter

BezeichnerTypBeschreibungDefault
dataunknownDie zu debuggenden Daten-
labelstringLabel für die Debug-Ausgabedebug
titlestringTitel der Debug-AusgabeDebug Output
renderUIbooleanUI-Element anzeigentrue (nur in DEV)
logInServerbooleanIm Server-Log ausgebentrue
logInBrowserbooleanIm Browser-Log ausgebenfalse
stringifySpacesnumberAnzahl der Einrückungen für JSON2
languagestringSprache für Syntax-Highlightingjson
isCopyEnabledbooleanKopieren-Button anzeigentrue
Thinkport — Thinkport

FeedbackButtonCompact

Kompakter Feedback-Button

Ein einzelner Icon-Button (Standard: Bug), u. a. im Header. Sichtbarkeit wie beim großen Widget: in Dev standardmäßig an, in Produktion nur mit PUBLIC_ENABLE_FEEDBACK_BUTTON=true oder enabled={true}.

Codebeispiel

<FeedbackButtonCompact />

Parameter

BezeichnerTypBeschreibungDefault
githubRepostringGitHub-Repo für IssuesGITHUB_REPO
iconstringTabler-Icon-Nametabler:bug
enabledbooleanFeature ein-/ausschaltenEnv/Prod
enableScreenshotbooleanScreenshot im Issue-Bodyfalse
Thinkport — Thinkport
Lorem ipsumLorem ipsum

Image

Bild-Komponente

Minimales Beispiel für die Image-Komponente.

Codebeispiel

<Image src="~/assets/images/default.png"
alt="Lorem ipsum"
width={800}
height={600} />

Parameter

BezeichnerTypBeschreibungDefault
srcstring | ImageMetadataBildquelle (lokaler Pfad oder importiertes Asset)-
altstringAlternativtext für Barrierefreiheit (required)-
widthnumberAusgabe-Breite in px (bei imageType/imageSize automatisch)-
heightnumberAusgabe-Höhe in px (bei imageType/imageSize automatisch)-
sizesstringResponsive sizes-Attribut-
widthsnumber[]Explizite responsive Breakpoints-
loading'lazy' | 'eager'Ladeverhaltenlazy
decoding'async' | 'sync' | 'auto'Bild-Decoding-Strategieasync
classstringZusätzliche CSS-Klassen-
stylestringInline-Styles-
inferSizebooleanGröße aus semantischem Typ ableitenfalse
qualitynumberBildqualität (1–100)90 (prod) / 100 (dev)
fallbackSrcstringJPEG-Fallback für Browser ohne WebP-
progressivebooleanProgressive-Fade-In beim Ladenfalse
imageType'hero' | 'thumb' | 'teaser' | 'icon' | 'logo'Semantischer Bildtyp (validiert Namen & Dimensionen)-
imageSize'full' | 'large' | 'medium' | 'small' | 'half' | 'mobile'Größenvariante passend zu imageType-
thresholdnumberIntersectionObserver-Threshold für progressive Bilder0.1
Lorem ipsum

Semantische Größen

imageType + imageSize

Width/Height werden aus dem semantischen Typ abgeleitet.

Codebeispiel

<Image
src="~/assets/images/default.png"
alt="Lorem ipsum"
imageType="hero"
imageSize="full"
/>
Lorem ipsum

Fallback & Progressive

WebP + JPEG Fallback

In Production wird WebP bevorzugt; optionales JPEG-Fallback für ältere Browser.

Codebeispiel

<Image
src="~/assets/images/default.png"
fallbackSrc="~/assets/images/default.png"
alt="Lorem ipsum"
progressive
sizes="(max-width: 768px) 100vw, 600px"
widths={[400, 600, 900]}
/>
Thinkport — Thinkport

LegalNoticeModal

Datenschutz-Modal

Die Komponente wird **einmal** in Layout.astro eingebunden (id legal-notice-modal). Hier testest du nur den **Trigger**: Klick öffnet das globale Modal und lädt den Inhalt von /legal-notice/embed. Keine zweite Modal-Instanz in der Demo.

Codebeispiel

import LegalNoticeModal from '~/components/common/LegalNoticeModal.astro';
<LegalNoticeModal />
{/* Trigger irgendwo auf der Seite: */}
<button type="button" data-open-legal-notice-modal>
Datenschutzerklärung
</button>
Thinkport — Thinkport

Die Metadata-Komponente fügt erweiterte Meta-Tags (Open Graph, Twitter Cards) zum <head> hinzu. Sie wird nicht visuell angezeigt, sondern nur im HTML-Quellcode sichtbar.

Lorem ipsum — Thinkport

Metadata

Meta-Komponente

Minimales Beispiel für die Metadata-Komponente.

Codebeispiel

<Metadata
title="Lorem ipsum"
description="Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
openGraph={{ images: [{ url: '~/assets/images/default.png', alt: 'Lorem ipsum' }] }}
twitter={{ site: '@lorem', creator: '@ipsum' }}
/>
Thinkport — Thinkport

SiteVerification

Site Verification

Minimales Beispiel für die SiteVerification-Komponente.

Codebeispiel

<SiteVerification />
Thinkport — Thinkport
Share:

SocialShare

Social Sharing

Minimales Beispiel für die SocialShare-Komponente.

Codebeispiel

<SocialShare />
Thinkport — Thinkport

Layout

Mehrspaltiger Text

Beispiel für TextGrid

Dies ist ein Beispiel für mehrspaltigen Text. Die TextGrid-Komponente verwendet CSS Columns, um Text automatisch in mehrere Spalten aufzuteilen.

Der Text wird automatisch über die Spalten verteilt, ähnlich wie in einer Zeitung oder einem Magazin.

Sie können zwischen 2 und 6 Spalten wählen. Auf mobilen Geräten wird der Text immer in einer Spalte angezeigt.

TextGrid

Mehrspaltiges Text-Layout

Die TextGrid-Komponente zeigt Text in einem mehrspaltigen Grid-Layout an. Sie unterstützt 2-6 Spalten und verwendet CSS Columns für die Darstellung.

Codebeispiel

<TextGrid
title="Mehrspaltiger Text"
subtitle="Beispiel für TextGrid"
tagline="Layout"
count={2}
isDark={false}
>
<p>Dies ist ein Beispiel für mehrspaltigen Text. Die TextGrid-Komponente verwendet CSS Columns, um Text automatisch in mehrere Spalten aufzuteilen.</p>
<p>Der Text wird automatisch über die Spalten verteilt, ähnlich wie in einer Zeitung oder einem Magazin.</p>
</TextGrid>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
subtitlestringUntertitel-
taglinestringTagline über dem Titel-
idstringWidget-ID für Anchors-
isDarkbooleanDunkles Themefalse
countnumberAnzahl der Spalten (2-6)2
classesobjectCSS-Klassen-Overrides{}
bgstringHintergrund-HTML (Slot)-
Thinkport — Thinkport

ToggleMenu

Menü-Umschalter

Minimales Beispiel für die ToggleMenu-Komponente.

Codebeispiel

<ToggleMenu />
Thinkport — Thinkport

ToggleTheme

Theme-Umschalter

Minimales Beispiel für die ToggleTheme-Komponente.

Codebeispiel

<ToggleTheme />
Thinkport — Thinkport

UsercentricsCmp

Consent Management Platform

Die Komponente wird **einmal** in Layout.astro als **erstes** im head eingebunden. Eine zweite Instanz auf dieser Seite würde den Loader doppelt injizieren — deshalb nur **Codebeispiel** und Konfig-Hinweise. Ausführliche GTM-/View-Transitions-Hinweise: usercentrics-gtm.md im Repo.

Codebeispiel

import UsercentricsCmp from '~/components/common/UsercentricsCmp.astro';
<head>
<UsercentricsCmp />
</head>

Konfiguration (Kurz)

QuelleBedeutung
src/config.yamlusercentrics.settingsIdWenn gesetzt, rendert die Komponente das CMP; sonst kein Output.
PUBLIC_USERCENTRICS_DRAFTIn Dev: Entwurf-Modus (data-draft), außer false.
PUBLIC_USERCENTRICS_NO_AUTOBLOCKERProd: Autoblocker nur bei false; Dev: Autoblocker aus bei true (Details siehe Kommentar in der Komponente).

Auf localhost / 127.0.0.1 lädt das Skript nicht (Allow-List).

Referenz: usercentrics-gtm.md

Thinkport — Thinkport

Video-Komponenten

Die Video-Komponenten ermöglichen es, Videos auf responsive und ansprechende Weise in deine Seite einzubinden. Sie unterstützen YouTube und Vimeo und bieten verschiedene Layout-Optionen.

VideoEmbed

Die VideoEmbed-Komponente ist für einzelne Videos mit begleitendem Text konzipiert.

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

VideoEmbed

Einzelnes Video mit Text

Die VideoEmbed-Komponente zeigt ein Video mit begleitendem Text in einem zweispaltigen Layout an. Sie unterstützt YouTube und Vimeo URLs und bietet flexible Positionierungsoptionen.

Codebeispiel

<VideoEmbed
url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr"
thumbnailPosition="right"
classes={{
container: 'my-custom-container',
content: 'my-custom-content',
video: 'my-custom-video'
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
urlstringYouTube- oder Vimeo-URL des Videos-
titlestringTitel des Videos-
subtitlestringOptionaler Untertitel-
sectionTitlestringTitel der gesamten Sektion-
sectionSubtitlestringUntertitel der gesamten Sektion-
thumbnailPosition'left' | 'right'Position des Videos relativ zum Text'left'
classesobjectAnpassbare CSS-Klassen{}

Fragments

BezeichnerBeschreibungDefault
defaultZusätzlicher Inhalt neben dem Video

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

VideoEmbed - Video rechts

Alternative Positionierung

Das Video kann auch rechts vom Text positioniert werden.

Codebeispiel

<VideoEmbed
url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
title="Consetetur sadipscing"
subtitle="Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
thumbnailPosition="right"
/>

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Sed diam nonumy eirmod

Tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

VideoEmbed - Mit Sektionstitel

Komplette Sektion mit Überschrift

Die Komponente kann auch mit einem Sektionstitel und -untertitel verwendet werden.

Codebeispiel

<VideoEmbed
url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
sectionTitle="Lorem ipsum"
sectionSubtitle="Dolor sit amet, consetetur sadipscing elitr"
title="Sed diam nonumy eirmod"
subtitle="Tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
thumbnailPosition="left"
/>

VideoGallery

Die VideoGallery-Komponente ermöglicht es, mehrere Videos in einem responsiven Grid anzuordnen.

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

VideoGallery

Mehrere Videos im Grid

Die VideoGallery-Komponente zeigt mehrere Videos in einem responsiven Grid an. Sie unterstützt 1-3 Spalten und ist ideal für Video-Sammlungen.

Codebeispiel

<VideoGallery
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr"
videos={[
{
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
title: "Lorem ipsum",
subtitle: "Dolor sit amet"
},
{
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
title: "Consetetur sadipscing",
subtitle: "Elitr, sed diam"
}
]}
columns={2}
classes={{
container: 'my-custom-container',
grid: 'my-custom-grid',
item: 'my-custom-item'
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Galerie-
subtitlestringUntertitel der Galerie-
videosVideoItem[]Array von Video-Objekten[]
columns1 | 2 | 3Anzahl der Spalten2
classesobjectAnpassbare CSS-Klassen{}

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

VideoGallery - Einspaltig

Große Videos in einer Spalte

Für größere Videos oder weniger Inhalt kann ein einspaltiges Layout verwendet werden.

Codebeispiel

<VideoGallery
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr"
videos={videos}
columns={1}
/>

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Lorem ipsum

Dolor sit amet

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Consetetur sadipscing

Elitr, sed diam

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Sed diam nonumy

Eirmod tempor invidunt

VideoGallery - Dreispaltig

Kompakte Darstellung vieler Videos

Für viele Videos kann ein dreispaltiges Layout verwendet werden.

Codebeispiel

<VideoGallery
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr"
videos={videos}
columns={3}
/>
Thinkport — Thinkport

Sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

* Pflichtfelder

Form

Kontaktformular

Die Form-Komponente bietet ein vollständiges Kontaktformular mit verschiedenen Feldern und Validierung. Sie kann für verschiedene Zwecke wie Newsletter-Anmeldung, Kontaktaufnahme oder Feedback verwendet werden.

Codebeispiel

<Form
formName="contact-default"
inputs={[
{ type: 'text', name: 'name', label: 'Name', placeholder: 'Lorem ipsum' },
{ type: 'email', name: 'email', label: 'E-Mail', placeholder: 'Dolor sit amet' },
{ type: 'tel', name: 'phone', label: 'Telefon', placeholder: '+49 123 456789', required: true },
{ type: 'hidden', name: 'context', value: 'docs-demo' }
]}
textarea={{ label: 'Nachricht', name: 'message', placeholder: 'Consetetur sadipscing elitr...', rows: 4 }}
disclaimer={{ useStandardPrivacy: true, required: true }}
button="Lorem ipsum"
description="Sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum."
/>

Parameter

BezeichnerTypBeschreibungDefault
inputsarrayListe der Eingabefelder[]
textareaobjectKonfiguration für das Textfeld-
disclaimerobjectKonfiguration für die Checkbox-
buttonstringText für den Absende-ButtonAbsenden
descriptionstringBeschreibung unter dem Formular-
formNamestringName des Formulars (z. B. für Netlify Forms)-

Hinweis: Versteckte Felder können mit type: 'hidden' und value gesetzt werden. Mit formName wird intern ein form-name Hidden-Feld erzeugt (z. B. für Netlify Forms).

Thinkport — Thinkport

Schreiben Sie uns heute eine Nachricht!

Für schnellere Antworten schauen Sie in unseren FAQ-Bereich. Dort finden Sie vielleicht bereits die Lösung, die Sie suchen! Falls nicht, hilft Ihnen unser Support-Team gerne weiter.

Unser Support-Team antwortet normalerweise innerhalb von 24 Geschäftsstunden.

* Pflichtfelder

FormContact

Kontaktformular

Beispiel für die FormContact-Komponente.

Codebeispiel

<FormContact
id="form"
title="Schreiben Sie uns heute eine Nachricht!"
subtitle="Für schnellere Antworten schauen Sie in unseren FAQ-Bereich. Dort finden Sie vielleicht bereits die Lösung, die Sie suchen! Falls nicht, hilft Ihnen unser Support-Team gerne weiter."
inputs={[
{ type: 'text', name: 'firstname', label: 'Vorname' },
{ type: 'text', name: 'lastname', label: 'Nachname' },
{ type: 'email', name: 'email', label: 'E-Mail' },
{ type: 'tel', name: 'phone', label: 'Telefon', required: false, placeholder: '+49 123 456789' },
{ type: 'text', name: 'company', label: 'Unternehmen', required: false },
{ type: 'select', name: 'position', label: 'Position', required: false, options: [{ value: '', label: '—' }, { value: 'developer', label: 'Entwickler:in' }, { value: 'architect', label: 'Architekt:in' }, { value: 'devops', label: 'DevOps' }, { value: 'manager', label: 'Manager:in' }, { value: 'consultant', label: 'Berater:in' }, { value: 'student', label: 'Student:in' }, { value: 'other', label: 'Sonstiges' }] },
{ type: 'hidden', name: 'contact', label: 'Kontakt', value: 'kontakt-formular', readonly: true, required: false },
]}
textarea={{ label: 'Nachricht', required: true }}
disclaimer={{ useStandardPrivacy: true, required: true }}
description="Unser Support-Team antwortet normalerweise innerhalb von 24 Geschäftsstunden."
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel des Formulars-
subtitlestringUntertitel des Formulars-
taglinestringTagline über dem Titel-
inputsarrayListe der Eingabefelder[]
textareaobjectKonfiguration für das Textfeld-
disclaimerobjectKonfiguration für die Checkbox-
buttonstringText für den Absende-ButtonAbsenden
descriptionstringBeschreibung unter dem Formular-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Training-Anfrage

Training anfragen 📚

Füllen Sie das Formular aus, um eine Anfrage für dieses Training zu stellen. Wir melden uns schnellstmöglich bei Ihnen.

Training

Cloud-Architektur Best Practices

Ein Training über moderne Cloud-Architekturen und Best Practices

Dauer: 2 Tage
Format: Remote oder Vor Ort
Level: Intermediate
Preis: 1.500 €

Ihre Lernziele

Moderne Cloud-Architektur-Patterns verstehen
Best Practices für Skalierbarkeit anwenden
Kostenoptimierung in der Cloud umsetzen
Sicherheitsaspekte berücksichtigen
Monitoring und Observability implementieren

Training anfragen

Füllen Sie das folgende Formular aus, um eine Anfrage für dieses Training zu stellen. Wir melden uns schnellstmöglich bei Ihnen.

* Pflichtfelder. Die Training-Anfrage ist unverbindlich.

TrainingRegistrationForm

Training-Anfrageformular

Die TrainingRegistrationForm-Komponente stellt ein Anfrageformular für Trainings bereit. Sie zeigt Trainingsdetails und ein Registrierungsformular in einem zweispaltigen Layout. Die Trainingsauswahl-Box ermöglicht es, zwischen verschiedenen Trainings zu wählen.

Codebeispiel

<TrainingRegistrationForm
training={{
id: '1',
slug: 'example-training',
title: 'Cloud-Architektur Best Practices',
description: 'Ein Training über moderne Cloud-Architekturen',
duration: '2 Tage',
level: 'Intermediate',
format: ['Remote', 'Vor Ort'],
price: '1.500 ',
learningOutcomes: ['Outcome 1', 'Outcome 2']
}}
allTrainings={[
{ id: '1', slug: 'training-1', title: 'Training 1', ... },
{ id: '2', slug: 'training-2', title: 'Training 2', ... }
]}
/>

Parameter

BezeichnerTypBeschreibungDefault
trainingTrainingTraining-Datenobjekt mit allen notwendigen Informationen-
allTrainingsTraining[]Array aller verfügbaren Trainings für die Auswahlbox (optional, lädt sonst aus trainings.json)trainings.json
classesobjectCSS-Klassen-Overrides{}
Thinkport — Thinkport

Webinar-Aufzeichnung

Zugang zur Aufzeichnung 🎥

Gib deine Details ein, um Zugang zur Aufzeichnung zu erhalten:

Aufgezeichnetes Webinar

Cloud-Architektur Best Practices

Aufgezeichnet am 15. Januar 2024
Ursprünglich live um 14:00 Uhr (Europe/Berlin)
Dauer: 60 Minuten

Das erwartet Sie:

Moderne Cloud-Architektur-Patterns
Best Practices für Skalierbarkeit
Kostenoptimierung in der Cloud

Zugang zur Aufzeichnung

* Pflichtfelder. Der Zugang zur Aufzeichnung ist kostenlos und unverbindlich.

FormWebinarRegistration

Webinar-Registrierungsformular

Die FormWebinarRegistration-Komponente stellt ein Registrierungsformular für Webinar-Aufzeichnungen bereit. Sie wird nur angezeigt, wenn das Webinar bereits aufgezeichnet wurde und eine Aufzeichnungs-URL verfügbar ist.

Codebeispiel

<FormWebinarRegistration
webinar={{
id: '1',
slug: 'example-webinar',
title: 'Cloud-Architektur Best Practices',
duration: '60 Minuten',
liveDate: '2024-01-15',
liveTime: '14:00',
attachments: [{ type: 'url', downloadUrl: 'https://example.com/recording', name: 'Aufzeichnung ansehen' }],
keyTakeaways: ['Takeaway 1', 'Takeaway 2']
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
webinarWebinarPropsWebinar-Datenobjekt mit allen notwendigen Informationen-
classesobjectCSS-Klassen-Overrides{}
Thinkport — Thinkport

Wir senden Ihnen das Whitepaper per E-Mail zu.

* Pflichtfelder

FormWhitepaperRequest

Whitepaper Request Form

Example of the FormWhitepaperRequest component with all fields.

Codebeispiel

<FormWhitepaperRequest
whitepaperSlug="example-whitepaper"
formName="whitepaper-request"
button="Whitepaper anfordern"
description="Wir senden Ihnen das Whitepaper per E-Mail zu."
disclaimer={{ useStandardPrivacy: true, required: true }}
/>

Parameter

BezeichnerTypBeschreibungDefault
whitepaperSlugstringSlug identifier of the whitepaper (hidden field, required)-
formNamestringForm name identifierwhitepaper-request
buttonstringSubmit button textWhitepaper anfordern
descriptionstringDescription text below form-
disclaimerobjectDisclaimer/checkbox configuration-
actionstringForm action URLFORM_ACTIONS.WHITEPAPER_REQUEST

Fragments

BezeichnerBeschreibungDefault
defaultDefault content
Thinkport — Thinkport
Max Mustermann

Max Mustermann

Cloud Architect · Thinkport GmbH · Hamburg

„Cloud ist die Zukunft der IT-Infrastruktur“

LinkedIn

AWS Azure Kubernetes Terraform Docker Architecture Cloud DevOps

Person

Personen-Profil

Die Person-Komponente zeigt eine Personenseite mit Avatar, Name, Job-Titel, Unternehmen, Standort, Zitat, Skills, Tags und LinkedIn-Link an.

Codebeispiel

<Person
person={{
id: 'max-mustermann',
name: 'Max Mustermann',
slug: 'max-mustermann',
image: '/images/people/max-mustermann.jpg',
jobTitle: 'Cloud Architect',
location: 'Hamburg',
worksFor: 'thinkport',
cite: 'Cloud ist die Zukunft',
skills: ['AWS', 'Azure', 'Kubernetes'],
tags: ['Architecture', 'Cloud'],
sameAs: ['https://linkedin.com/in/max-mustermann']
}}
companies={[
{ id: 'thinkport', name: 'Thinkport GmbH' }
]}
isShowSkills={true}
isShowTags={true}
maxSkills={12}
maxTags={12}
/>

Parameter

BezeichnerTypBeschreibungDefault
personPersonPersonen-Daten-
companiesArray<Organization>Array von Unternehmen[]
isShowSkillsbooleanSkills anzeigentrue
isShowTagsbooleanTags anzeigentrue
maxSkillsnumberMaximale Anzahl Skills12
maxTagsnumberMaximale Anzahl Tags12
classesobjectCSS-Klassen-Overrides{}
Thinkport — Thinkport
Max Mustermann

Max Mustermann

Cloud Architect · Thinkport GmbH · Hamburg

„Cloud ist die Zukunft der IT-Infrastruktur“
AWS Azure Kubernetes Architecture Cloud

Kontakt zu Max Mustermann

Schicken Sie mir eine Nachricht – ich melde mich schnellstmöglich.

Wir antworten in der Regel innerhalb eines Werktages.

* Pflichtfelder

PersonContent

Personen-Inhalt

Die PersonContent-Komponente zeigt den vollständigen Inhalt einer Personenseite an, inklusive Person-Komponente, Zertifikate, Kontaktformular und Blog-Artikel der Person.

Codebeispiel

<PersonContent
person={{
id: 'max-mustermann',
name: 'Max Mustermann',
slug: 'max-mustermann'
}}
companies={[]}
posts={[]}
personSlug="max-mustermann"
totalPages={1}
page={1}
/>

Parameter

BezeichnerTypBeschreibungDefault
personPersonPersonen-Daten-
companiesArray<Organization>Array von Unternehmen[]
postsArray<Post>Blog-Artikel der Person[]
personSlugstringSlug der Person-
totalPagesnumberGesamtanzahl Seiten1
pagenumberAktuelle Seite1
Thinkport — Thinkport
Lorem ipsum

Dolor sit amet • 2024

Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

ReferenzenCard

Karte mit Titel, optionalem Bild, Kunde/Jahr und Tags.

Codebeispiel

<ReferenceCard entry={{ id: 'case.mdx', data: { title: 'Lorem ipsum', image: '~/assets/images/default.png', customer: 'Dolor sit amet', year: 2024, excerpt: 'Consetetur sadipscing elitr', tags: ['Lorem'] } }} />
Thinkport — Thinkport
Filter
Alle Referenzen anzeigen
Kategorien

ReferenzenFilter

Multi-Select Filter, der Kategorien per Query-Param (`?categories=`) setzt.

Codebeispiel

<ReferenceFilter categories={["Lorem", "Ipsum"]} selected={["Lorem"]} />
Thinkport — Thinkport
Data Pipeline für Auto-Sensordaten mit Kafka

Data Pipeline für Auto-Sensordaten mit Kafka

Automotive • 2023

Für einen führenden deutschen Premium-Automobilhersteller wurde eine skalierbare Low-Latency-Plattform zum Sammeln, Transformieren und Verteilen von über 1 Mio. Sensordaten pro Sekunde bei nur 1 Sekunde Latenz realisiert. Die Lösung unterstützt vielfältige Anwendungen – von Predictive Maintenance über Flottenkommunikation bis hin zu Notfall-Services – und ist flexibel für neue Sensoren, Empfänger und weltweite Skalierung erweiterbar.

SIMPL: Skalierbare Machine-Learning-Plattform für Pflanzenschutzforschung

SIMPL: Skalierbare Machine-Learning-Plattform für Pflanzenschutzforschung

CropScience • 2024

Für die Bayer AG wurde eine cloud-native Machine-Learning-Plattform entwickelt, die komplexe Forschungsdaten integriert und KI-gestützt auswertete. Moderne Technologien wie AWS Sagemaker, TensorFlow/PyTorch und ein konsequenter MLOps-Ansatz ermöglichten eine Architektur, die Modelle fortlaufend trainierte, validierte und zuverlässig betrieb. So entstand eine skalierbare, wissenschaftlich präzise Analyseumgebung, die Forschungszyklen beschleunigte und mehrfach erfolgreich in der Produktentwicklung eingesetzt wurde.

Daten-, Analytics- und KI-Plattform

Daten-, Analytics- und KI-Plattform

DB InfraGO • seit 2021

Für die DB InfraGO wurde der Aufbau, Betrieb und die Weiterentwicklung von Daten-, Analytics- und KI-Produkten unterstützt. Dabei wurden skalierbare Cloud-Infrastrukturen sowie leistungsfähige Datenarchitekturen konzipiert und umgesetzt. Sicherheits-, Governance- und Compliance-Anforderungen wurden systematisch implementiert und weiterentwickelt. Neue Datenquellen sowie ETL-Strecken wurden entwickelt, angebunden und kontinuierlich optimiert. Für stabile und wiederholbare Rollouts wurden automatisierte Deployment-Prozesse etabliert. Monitoring-, Alarmierungs- und Hochverfügbarkeitsarchitekturen wurden eingerichtet und in den Betrieb überführt. Produktivsetzungen sowie der laufende Betrieb produktiver Systeme wurden fachlich begleitet.

Echtzeit-Datenaustausch mit AWS MSK

Echtzeit-Datenaustausch mit AWS MSK

Transport & Logistik • 2022

Aufbau und Weiterentwicklung einer skalierbaren, eventgetriebenen Kafka-Plattform auf AWS für den Echtzeit-Datenaustausch innerhalb und zwischen Gesellschaften des größten deutschen Verkehrsunternehmens. Ergänzend entstand ein zentrales Interface für konzernweite Datenintegration. Die Lösung basiert auf AWS MSK, Glue Schema Registry und Kafka Streams und gewährleistet hohe Flexibilität sowie Zukunftssicherheit.

24/7 Betrieb der zentralen Intergrationsplattform von EDEKA

24/7 Betrieb der zentralen Intergrationsplattform von EDEKA

EDEKA • seit 2022

Wir stellen den stabilen 24/7-Betrieb der eventgetriebenen Integrationsplattform REDDI in einem dynamischen Retail-Umfeld sicher. Die Plattform verteilt EDEKA-Stammdaten in Echtzeit zwischen SAP und angebundenen Anwendungen und reduziert dabei die Schnittstellenkomplexität. Durch proaktives Monitoring von Kubernetes, Solace und Datadog erkennen wir Störungen frühzeitig. Kontinuierliches Alerting und schnelle Reaktionszeiten gewährleisten hohe Verfügbarkeit und Performance.

Zentrale Intergrationsplattform Solace

Zentrale Intergrationsplattform Solace

EDEKA • 2024

Für EDEKA entstand eine eventgetriebene Plattform zur Echtzeit-Integration zwischen SAP und vielfältigen Anwendungen. Die Lösung reduziert Schnittstellen-Komplexität, ermöglicht schnelle Anbindung neuer Systeme und garantiert hochperformante Kommunikation.

Modernisierung der HR-Datenplattform mit Snowflake und AWS

Modernisierung der HR-Datenplattform mit Snowflake und AWS

Energietechnolgie • 2025

Für den größten deutschen Energietechnikkonzern wurde eine zukunftsorientierte HR-Datenplattform realisiert, die das bestehende HR-System durch moderne Cloud- und Data-Engineering-Technologien ablöste. Automatisierte AWS-ETL-Strecken, eine leistungsstarke Data-Quality-Engine und Snowflake-basierte Datenprodukte ermöglichten eine robuste Architektur für globale, transparente und skalierbare HR-Daten. So entstand eine moderne Datenlandschaft, die Integrationen automatisiert orchestrierte, Prozesse weltweit vereinheitlichte und bereits damals die Datenqualität und Prozesssicherheit messbar steigerte.

Ausbau einer Risiko-Analyse-Plattform

Ausbau einer Risiko-Analyse-Plattform

Finanzdienstleister • seit 2024

Für den führenden Anbieter von Beratungsdienstleistungen für die Bankensteuerung wurde eine cloud-agnostische Risikoanalyse-Plattform für Banken auf Basis einer skalierbaren Big-Data-Architektur mit Kubernetes und Spark weiterentwickelt. In enger Zusammenarbeit mit den Fachbereichen wurden Analyseverfahren erweitert und in einer hochskalierbaren Umgebung produktiv umgesetzt.

Aufbau einer Multi-Cloud-Container-Plattform

Aufbau einer Multi-Cloud-Container-Plattform

Finanzdienstleister • 2023

Für eine deutsche Geschäftsbank entstand eine skalierbare Zielarchitektur auf Basis von Azure und OpenShift. Containerisierte Workloads wurden migriert, externe Plattformen wie eine private IBM Cloud sicher integriert und vollautomatisierte Deployments mit Terraform umgesetzt – unter Einhaltung aller Governance- und Compliance-Vorgaben im hybriden Cloud-Betrieb.

Cloud-Erweiterung einer API-Plattform

Cloud-Erweiterung einer API-Plattform

Finanzdienstleister • seit 2025

Für eine deutsche Großbank erfolgte die Skalierung einer hochverfügbaren API-Plattform in der Cloud unter Einhaltung strenger Governance- und Security-Vorgaben. Unterstützung von bis zu 30 Milliarden Transaktionen pro Monat sowie nahtlose Integration in hybride und Multi-Cloud-Architekturen.

Digitaler Unterricht der Zukunft

Digitaler Unterricht der Zukunft

Hasso-Plattner-Institut • 2023

Für die HPI-Schul-Cloud wurde in IONOS-Cloud eine Plattform entwickelt. Automatisierte Skalierung gewährleistet, dass Lehrkräfte, Schülerinnen und Schüler jederzeit und ortsunabhängig unter höchsten Sicherheits- und Datenschutzstandards auf die Anwendung zugreifen können. Die integrierte Open-Source-Videokonferenzlösung wurde speziell für die Anforderungen digitaler Bildungsszenarien in Deutschland optimiert. Die zentrale Infrastruktur und das Cloud-Hosting reduzieren Betriebsaufwand und Kosten für Schulen nachhaltig.

Cloud-Readiness & Migrationsstrategie

Cloud-Readiness & Migrationsstrategie

Finanzdienstleister • 2023

Für eine deutsche Immobilien- und Geschäftsbank erfolgte die Analyse bestehender IT-Services, die Definition von Migrationspfaden und die Bewertung regulatorischer Anforderungen. Ergänzend wurden organisatorische, technische und kulturelle Voraussetzungen für die Cloud-Readiness definiert. Das Ergebnis war ein realisierbarer Umsetzungsplan, der eine strukturierte und compliancekonforme Cloud-Einführung ermöglicht.

Zentrale Integrationsplattform basierend auf Confluent

Zentrale Integrationsplattform basierend auf Confluent

Telekommunikation • 2025

Für einen führenden Telekommunikationsanbieter in Baden-Württemberg entstand eine zentrale Kommunikationsplattform, die bestehende und künftige Schnittstellen bündelt. Die Lösung reduziert Komplexität, schafft Standardisierung und steigert Datenqualität sowie Effizienz in den Geschäftsprozessen.

Store Retail Plattform

Store Retail Plattform

OBI • seit 2024

Thinkport unterstützt OBI bei der Konzeption und Umsetzung einer cloudbasierten Event-Driven-Architektur für die Store Retail Platform. Dazu entwickelte Thinkport gemeinsam mit OBI die Basisplattform auf AWS und Confluent Cloud und isolierte erste Module aus der monolithischen Warenwirtschaft als Cloud-Services. Thinkport implementierte erste Microservices in Java mit Spring Boot und definierte Architekturprinzipien sowie wiederverwendbare Blueprints.

24/7-Betrieb einer zentralen Integrationsplattform im KRITIS-Umfeld

24/7-Betrieb einer zentralen Integrationsplattform im KRITIS-Umfeld

Telekommunikation • seit 2025

Für einen führenden Telekommunikationsanbieter in Baden-Württemberg übernehmen wir den 24/7-Betrieb einer zentralen Integrationsplattform für kritische IT-Services. Die Plattform bündelt Benutzermanagement, Zertifikatsverwaltung und die Überwachung der CI/CD-Buildstrecken. Durch den hochverfügbaren Betrieb stellen wir Sicherheit, Compliance und Stabilität in geschäftskritischen Prozessen sicher. Die zentrale Plattform reduziert Komplexität, schafft Standardisierung und erhöht die Effizienz in Entwicklungs- und Betriebsabläufen nachhaltig.

Aufbau einer Hybrid-Cloud-Plattform

Aufbau einer Hybrid-Cloud-Plattform

Versicherung • seit 2024

Für eine mittelständische Versicherung entstand eine skalierbare Azure-Plattform mit integriertem Kubernetes-Cluster in Hub-&-Spoke-Architektur. Optimierte Netzwerkinfrastruktur, CI/CD-Pipelines und rollenbasierte Berechtigungskonzepte ermöglichen eine konforme Migration geschäftskritischer Anwendungen – ergänzt durch ein modulares Exit-Konzept gemäß DORA.

Digitale Wertpapierausgabe mit Confluent

Digitale Wertpapierausgabe mit Confluent

Finanzdienstleister • 2023

Für den Top-Anbieter europäischer Finanzmarktinfrastruktur entwickelten wir eine sichere, standardisierte Plattform. Sie ermöglicht taggleiche Emission sowie automatisierte End-to-End-Verarbeitung elektronischer Wertpapiere – compliancekonform und marktübergreifend.

ReferenzenGrid

Zeigt Referenzen-Karten in einem responsiven Grid.

Codebeispiel

<ReferenceGrid entries={[{ id: 'a.mdx', data: { title: 'Lorem ipsum', image: '~/assets/images/default.png', customer: 'Dolor sit amet', year: 2024, excerpt: 'Consetetur sadipscing elitr', tags: ['Lorem'] } }]} />
Thinkport — Thinkport

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

ReferenzenSection

Standardisierte Section mit Innenabstand und max. Breite.

Codebeispiel

<ReferenceSection><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p></ReferenceSection>
Thinkport — Thinkport
Noch keine spezifischen Transportation-Referenzen hinterlegt.

ReferenzenEmptyState

Zeigt einen freundlichen Hinweis mit Link zur Gesamtübersicht.

Codebeispiel

<ReferenceEmptyState />
Thinkport — Thinkport

CustomStyles

Globale Theme-Variablen

Die Komponente importiert @fontsource-variable/inter und setzt per inline style-Tag die Astrowind-Variablen (--aw-color-*, --aw-font-*) für :root und .dark. Sie ist bereits in Layout.astro und legal-notice/embed eingebunden — hier keine zweite Instanz in der Vorschau, um doppelte Style-Blöcke zu vermeiden.

Codebeispiel

import CustomStyles from '~/components/CustomStyles.astro';
<head>
<CustomStyles />
</head>

Inhalt (Kurz)

BereichBeschreibung
Schrift--aw-font-sans, --aw-font-serif, --aw-font-heading (Montserrat + Inter Variable)
Lightu. a. Primary #ff5722, Secondary #0b2649, Accent #00bcd4, Text #0b2649
Dark.dark: getauschte Akzentfarben, Text und Page-Background angepasst
Sonstiges::selection-Farben in Light/Dark

Anpassungen erfolgen direkt in CustomStyles.astro; die Komponente hat keine Props.

Thinkport — Thinkport

Vorschau nutzt Theme-Variablen (sl-*); auf dieser Docs-Seite können Farben abweichen, wenn die Variablen nicht gesetzt sind.

Thinkport — Thinkport

Die Favicons-Komponente bindet Favicon-Links ein. Sie wird normalerweise im Layout verwendet und ist nicht direkt sichtbar.

Favicons

Favicon-Links

Die Favicons-Komponente bindet Favicon-Links in den HTML-Head ein. Sie wird normalerweise im Layout verwendet.

Codebeispiel

<Favicons />
Thinkport — Thinkport

Die Head-Komponente bindet Font-Imports ein. Sie wird normalerweise im Layout verwendet und ist nicht direkt sichtbar.

Thinkport — Thinkport
Thinkport — Thinkport

Die TrainingCard-Komponente zeigt eine vollständige Training-Karte. In diesem Demo wird sie ohne echte Daten angezeigt.

TrainingCard

Training-Karte

Die TrainingCard-Komponente zeigt eine Karte für ein Training an. Sie zeigt Titel, Beschreibung, Dauer, Level, Format, Preis, Themen und einen Link zum Training an.

Codebeispiel

<TrainingCard
training={{
id: 'example-training',
slug: 'example-training',
title: 'Cloud Architecture Training',
description: 'Lernen Sie die Grundlagen der Cloud-Architektur',
duration: '2 Tage',
level: 'Intermediate',
format: ['Online', 'Präsenz'],
price: '1.200 ',
category: 'Cloud',
topics: ['AWS', 'Azure', 'Kubernetes']
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
trainingTrainingTraining-Daten-
Thinkport — Thinkport

Termine & Preise

Verfügbare Termine und Preise

2024-07-01
2024-08-15

TrainingDates

Trainingstermine

Beispiel für die TrainingDates-Komponente mit Testdaten.

Codebeispiel

<TrainingDates dates={[{ date: '2024-07-01', location: 'Lorem ipsum', seats: 12 }, { date: '2024-08-15', location: 'Dolor sit amet', seats: 20 }]} />

Parameter

BezeichnerTypBeschreibungDefault
datesarrayListe der Trainingstermine[]
classstringZusätzliche CSS-Klassen-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt der Komponente
Thinkport — Thinkport

FAQs

Häufig gestellte Fragen

Lorem ipsum dolor sit amet?

Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Consetetur sadipscing elitr?

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

TrainingFAQs

Trainings-FAQs

Beispiel für die TrainingFAQs-Komponente mit Testdaten.

Codebeispiel

<TrainingFAQs faqs={[{ question: 'Lorem ipsum dolor sit amet?', answer: 'Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.' }, { question: 'Consetetur sadipscing elitr?', answer: 'Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.' }]} />

Parameter

BezeichnerTypBeschreibungDefault
faqsarrayListe der FAQs[]
classstringZusätzliche CSS-Klassen-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt der Komponente
Thinkport — Thinkport
  • Lorem ipsum dolor sit amet, consetetur sadipscing elitr
  • Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat

TrainingLearningOutcomes

Lernziele

Die TrainingLearningOutcomes-Komponente listet die Lernziele eines Trainings auf und eignet sich besonders, um Teilnehmenden einen Überblick über die zu erwartenden Kompetenzen zu geben.

Codebeispiel

<TrainingLearningOutcomes
outcomes={['Lorem ipsum dolor sit amet', 'Consetetur sadipscing elitr, sed diam nonumy eirmod tempor']} />

Parameter

BezeichnerTypBeschreibungDefault
outcomesarrayListe der Lernziele[]
classstringZusätzliche CSS-Klassen-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt der Komponente
Thinkport — Thinkport
Dauer Format Turnus Ort

TrainingOverview

Trainingsübersicht

Beispiel für die TrainingOverview-Komponente mit Testdaten.

Codebeispiel

<TrainingOverview overview={{ title: 'Lorem ipsum', duration: '2 Tage', level: 'Dolor sit amet' }} />

Parameter

BezeichnerTypBeschreibungDefault
overviewobjectÜbersichtsdaten des Trainings{}
classstringZusätzliche CSS-Klassen-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt der Komponente
Thinkport — Thinkport

Die TrainingRegistrationForm-Komponente zeigt ein vollständiges Registrierungsformular. In diesem Demo wird sie ohne echte Daten angezeigt.

TrainingRegistrationForm

Training-Registrierungsformular

Die TrainingRegistrationForm-Komponente zeigt ein Registrierungsformular für Trainings an. Sie zeigt Training-Details, Trainer-Informationen, Lernziele und ein Registrierungsformular.

Codebeispiel

<TrainingRegistrationForm
training={{
id: 'example-training',
slug: 'example-training',
title: 'Cloud Architecture Training',
description: 'Lernen Sie die Grundlagen',
duration: '2 Tage',
level: 'Intermediate',
format: ['Online'],
price: '1.200 ',
learningOutcomes: ['Grundlagen verstehen', 'Praktische Übungen']
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
trainingTrainingTraining-Daten-
allTrainingsArray<Training>Alle Trainings (für Dropdown)-
classesobjectCSS-Klassen-Overrides{}
Thinkport — Thinkport

Ablauf

Der Trainingsablauf im Überblick

1

  • Lorem ipsum dolor sit amet

2

  • Consetetur sadipscing elitr

TrainingSchedule

Trainingsplan

Beispiel für die TrainingSchedule-Komponente mit Testdaten.

Codebeispiel

<TrainingSchedule schedule={[{ day: '1', topics: ['Lorem ipsum'] }, { day: '2', topics: [ 'Dolor sit amet'] }]} />

Parameter

BezeichnerTypBeschreibungDefault
schedulearrayTrainingsplan-Daten[]
classstringZusätzliche CSS-Klassen-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt der Komponente
Thinkport — Thinkport

Zielgruppe

Für wen ist dieses Training geeignet?

Rolle/Erfahrung Voraussetzungen
Lorem ipsum Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
Consetetur sadipscing Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat
Sed diam nonumy Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua

TrainingTargetGroup

Zielgruppe

Beispiel für die TrainingTargetGroup-Komponente mit Testdaten.

Codebeispiel

<TrainingTargetGroup targetGroups={[
{ role: 'Lorem ipsum', requirements: 'Dolor sit amet, consetetur sadipscing elitr' },
{ role: 'Consetetur sadipscing', requirements: 'Elitr, sed diam nonumy eirmod tempor' },
{ role: 'Sed diam nonumy', requirements: 'Eirmod tempor invidunt ut labore et dolore' }
]} />

Parameter

BezeichnerTypBeschreibungDefault
targetGroupsarrayArray von Zielgruppen-Objekten mit Rolle und Voraussetzungen[]
classstringZusätzliche CSS-Klassen-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt der Komponente
Thinkport — Thinkport

Schulungen

Unsere Trainings

Lernen Sie von den Experten

Terraform für Azure

Lernen Sie ganze Infrastrukturen in Azure mit IaC im Handumdrehen bereitzustellen.

Terraform für Cloud Engineers

Infrastructure as Code mit Terraform – Grundlagen, Best Practices und Automatisierung.

Event Streaming Services

Von unseren Experten Streaming Tools von AWS und Azure in Hinblick auf Performance und Kosteneffizienz kennenlernen.

Google Cloud Platform (GCP) für Einsteiger

Einführung in die GCP, Compute Engine, Cloud Storage, Networking und Sicherheitskonzepte.

TrainingTeaser

Training-Teaser

Die TrainingTeaser-Komponente zeigt eine Teaser-Ansicht von Trainings an. Sie lädt automatisch Trainings aus trainings.json und kann nach Kategorie gefiltert werden.

Codebeispiel

<TrainingTeaser
title="Unsere Trainings"
subtitle="Lernen Sie von den Experten"
tagline="Schulungen"
count={4}
isDark={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
subtitlestringUntertitel-
taglinestringTagline-
idstringWidget-ID-
isDarkbooleanDunkles Themefalse
countnumberAnzahl der Trainings4
categorystringKategorie-Filter (case-insensitive)-
classesobjectCSS-Klassen-Overrides{}
bgstringHintergrund-HTML (Slot)-

Azure

Azure Trainings

Spezialisierte Azure-Schulungen

Datenplattform mit Azure und Databricks

Mit unseren Experten individuelle Datenplattformen entwerfen und einen Proof of Concept definieren.

Microsoft Azure Grundlagen

Einführung in Microsoft Azure, Core-Services, Deployment-Strategien und Kostenmanagement.

Azure für JavaScript Developer

Entwicklung von modernen Anwendungen mit Azure Lösungen.

Terraform für Azure

Lernen Sie ganze Infrastrukturen in Azure mit IaC im Handumdrehen bereitzustellen.

Mit Kategorie-Filter

Trainings nach Kategorie filtern

Die Komponente kann nach Kategorie gefiltert werden. Der Filter ist case-insensitive und zeigt nur Trainings der angegebenen Kategorie an.

Codebeispiel

<TrainingTeaser
title="Azure Trainings"
subtitle="Spezialisierte Azure-Schulungen"
tagline="Azure"
count={6}
category="Azure"
/>

Schulungen

Unsere Trainings

Lernen Sie von den Experten

CI/CD mit AWS – Robuste Pipelines effizient entwickeln

Erlernen Sie in nur einem Tag, wie Sie mit AWS moderne, automatisierte Deployment-Prozesse umsetzen.

Spark für Big Data

Datenanalyse mit Text Mining und Machine Learning Methoden.

Airflow in der Cloud

Orchestrierung von skalierbaren Workflows mit Apache Airflow Cloud oder agnostisch in Kubernetes

Stream-Verarbeitung mit Apache Kafka

Echtzeit Eventstreaming Plattformen meistern.

Dunkles Theme

TrainingTeaser mit dunklem Hintergrund

Die Komponente unterstützt ein dunkles Theme über die isDark-Prop.

Codebeispiel

<TrainingTeaser
title="Unsere Trainings"
subtitle="Lernen Sie von den Experten"
tagline="Schulungen"
count={4}
isDark={true}
/>

Weitere Trainings

AWS für JavaScript Developer

Entwicklung von modernen Backend- und Frontend-Anwendungen mit AWS-Lösungen.

Terraform für Azure

Lernen Sie ganze Infrastrukturen in Azure mit IaC im Handumdrehen bereitzustellen.

Hybrid-Cloud-Architekturen

Best Practices für Multi- und Hybrid-Cloud-Umgebungen mit Azure, AWS und GCP.

AWS CDK Essentials

Lernen Sie mit AWS CDK, die Cloud-Infrastruktur mit vorhandenen Kenntnissen und vertrauter Programmiersprache aufzubauen.

Minimales Beispiel

Nur mit title-Prop

Die Komponente funktioniert auch mit minimalen Props. Standardmäßig werden 4 Trainings angezeigt.

Codebeispiel

<TrainingTeaser
title="Weitere Trainings"
/>
Thinkport — Thinkport

Event Streaming Services

Von unseren Experten Streaming Tools von AWS und Azure in Hinblick auf Performance und Kosteneffizienz kennenlernen.

TrainingTeaserCard

Training-Teaser-Karte

Die TrainingTeaserCard-Komponente zeigt eine kompakte Karte für ein Training in einer Teaser-Ansicht an. Sie zeigt Titel, Beschreibung und einen Link zum Training.

Codebeispiel

<TrainingTeaserCard
training={{
id: 'example-training',
slug: 'example-training',
title: 'Cloud Architecture Training',
description: 'Lernen Sie die Grundlagen der Cloud-Architektur',
category: 'Cloud'
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
trainingTrainingTraining-Daten-

Event Streaming Services

Von unseren Experten Streaming Tools von AWS und Azure in Hinblick auf Performance und Kosteneffizienz kennenlernen.

Spark für Big Data

Datenanalyse mit Text Mining und Machine Learning Methoden.

Apache Kafka Administration

Echtzeit Eventstreaming Plattformen verwalten, überwachen und tunen.

Verschiedene Kategorien

TrainingTeaserCard mit verschiedenen Kategorien

Die Komponente zeigt automatisch einen farbigen Streifen basierend auf der Training-Kategorie.

Codebeispiel

<TrainingTeaserCard training={training1} />
<TrainingTeaserCard training={training2} />
<TrainingTeaserCard training={training3} />
Thinkport — Thinkport
Avatar klein
Avatar mittel
Avatar groß
Avatar extra groß

Avatar

Benutzer-Avatar

Die Avatar-Komponente zeigt Benutzer-Avatare mit verschiedenen Größen und Optionen an. Sie unterstützt animierte Hintergründe, Video-Avatare (nur in hero-Variante) und verschiedene Größen.

Codebeispiel

<Avatar
src="/images/people/example.jpg"
alt="Portrait von Max Mustermann"
size="md"
animatedBg={5}
/>

Parameter

BezeichnerTypBeschreibungDefault
srcstringPfad zum Avatar-Bild-
altstringAlt-Text für das Bild'Avatar'
size'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl' | 'hero' | numberGröße des Avatars'md'
isRaisedbooleanAvatar leicht anhebenfalse
isReversedbooleanAvatar spiegelnfalse
animatedBgnumberNummer des animierten Hintergrunds (1-12)5
backgroundImageUrlstringURL für benutzerdefinierten Hintergrund-
videostringVideo-Pfad (WebM) - nur in hero-Variante-
videoHevcstringVideo-Pfad (HEVC MOV) - für Safari-
useVideobooleanVideo statt Bild verwenden (nur hero)false
classesobjectCSS-Klassen-Overrides{}
Thinkport — Thinkport

Die AvatarVideo-Komponente wird normalerweise innerhalb der Avatar-Komponente verwendet. Sie benötigt ein Video-Asset, um funktionsfähig zu sein.

AvatarVideo

Video-Avatar Wrapper

Die AvatarVideo-Komponente ist ein Wrapper für Video-Wiedergabe in Avatar-Komponenten. Sie verwendet ein Custom Element für manuelle Play/Stop-Steuerung mit Button-Overlays und unterstützt WebM (VP9) für die meisten Browser und HEVC MOV für Safari.

Codebeispiel

<AvatarVideo
videoSrc="/videos/avatar.webm"
videoHevc="/videos/avatar.mov"
alt="Video Avatar"
className="w-full h-full"
/>

Parameter

BezeichnerTypBeschreibungDefault
videoSrcstringVideo-Pfad (WebM Format)-
videoHevcstringVideo-Pfad (HEVC MOV Format) für Safari-
altstringAlt-Text für das Video''
classNamestringZusätzliche CSS-Klassen''
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet

Background

Hintergrund-Elemente

Die Background-Komponente wird verwendet, um Hintergrund-Elemente mit optionaler Dunkelmodus-Unterstützung zu erstellen. Sie eignet sich besonders für die Gestaltung von Sektionen mit speziellen Hintergründen oder Farbverläufen.

Codebeispiel

<Background isDark={false}>
<div class="relative z-10">
<!-- Ihr Inhalt hier -->
</div>
</Background>

Dark Mode Unterstützung

Die Background-Komponente unterstützt automatisch den Dark Mode durch die isDark Prop:

  • isDark=: Verwendet helle Hintergrundfarben
  • isDark=true: Verwendet dunkle Hintergrundfarben mit angepassten CSS-Variablen

Verwendung mit WidgetWrapper

Consetetur sadipscing elitr

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Background mit WidgetWrapper

Kombinierte Verwendung

Die Background-Komponente kann mit WidgetWrapper kombiniert werden, um konsistente Sektionen mit Hintergründen zu erstellen.

Codebeispiel

<WidgetWrapper isDark={true}>
<Background isDark={true}>
<div class="relative z-10">
<!-- Ihr Inhalt hier -->
</div>
</Background>
</WidgetWrapper>

Automatische Dark Mode Erkennung

Die Komponente erkennt automatisch den aktuellen Dark Mode Status und passt die Farben entsprechend an.

Thinkport — Thinkport
#lorem#ipsum#dolor
#sit#amet#consetetur

Badge

Label/Tag-Komponente

Kompakte Labels zur Kennzeichnung von Inhalten.

Codebeispiel

<Badge>#cloud</Badge>

Parameter

BezeichnerTypBeschreibungDefault
classstringZusätzliche CSS-Klassen''
hrefstringOptionaler Link – rendert <a> statt <span>undefined
variant'default' | 'secondary' | 'outline'Stil-Variantedefault
size'sm' | 'md'Größe des Badgessm
rounded'full' | 'md' | 'sm'Rundungfull

Fragments

BezeichnerBeschreibungDefault
defaultBadge-Inhalt (z. B. #cloud)
Thinkport — Thinkport

Button

Schaltflächen-Komponente

Die Button-Komponente bietet verschiedene Varianten von Schaltflächen für Interaktionen und unterstützt unterschiedliche Stile, Icons sowie die Nutzung als Button oder Link.

Codebeispiel

<Button variant="primary" text="Lorem ipsum" icon="tabler:arrow-right" type="button" />
<Button variant="secondary" href="/kontakt" target="_blank">Dolor sit amet</Button>
<Button variant="unicorn" icon="tabler:sparkles">Consetetur sadipscing</Button>
<Button
variant="link"
icon="tabler:external-link"
text="Sed diam nonumy"
href="https://www.example.com"
target="_blank"
/>

Parameter

BezeichnerTypBeschreibungDefault
variant"primary" | "secondary" | "tertiary" | "link" | "unicorn"Bestimmt das Aussehen des Buttons'secondary'
textstringButton-Text. Alternativ kann der Default-Slot verwendet werden.''
iconstringName des Icons (z.B. tabler:star)''
type"button" | "submit" | "reset"Button-Typ (nur für <button>)undefined
hrefstringWenn gesetzt, wird ein Link (<a>) statt eines Buttons gerendertundefined
targetstringZiel für Links, z.B. _blankundefined
classstringZusätzliche CSS-Klassen''

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt des Buttons. Überschreibt das text-Prop, falls gesetzt.
Thinkport — Thinkport
Lorem ipsum
Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

#Lorem #Ipsum #Dolor
Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

#Optional #Slot #Minimal
Lorem ipsum

At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Card

Karten-Komponente

Die Card-Komponente dient zur Darstellung von Inhalten in einem abgesetzten Bereich und eignet sich besonders für die Hervorhebung von Informationen, Aktionen oder Medien. Optional kann ein Bild über die integrierte Image-Komponente gerendert werden. Tags werden mit der Badge-Komponente dargestellt.

Codebeispiel

<Card
image={{ src: '~/assets/images/default.png', alt: 'Lorem ipsum' }}
title="Lorem ipsum dolor"
description="Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
tags={["Lorem", "Ipsum", "Dolor"]}
rounded="xl"
/>
<Card class="mt-4">
<Fragment slot="image">
<!-- Eigener Bild-Slot möglich -->
<img src="/assets/images/default.png" alt="Lorem ipsum" />
</Fragment>
<Fragment>
Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
</Fragment>
<Fragment slot="footer">
<a href="#" class="text-sm underline">Lorem ipsum</a>
</Fragment>
</Card>

Parameter

BezeichnerTypBeschreibungDefault
classstringZusätzliche CSS-Klassen für das Card-Element''
image{ src: string; alt?: string; class?: string }Optionales Bild; wird mit der globalen Image-Komponente gerendert. Bilder werden automatisch für Grid-Layouts optimiert (250px, 350px, 400px Breiten, 4:3 Aspect Ratio)null
titlestringTitel der Karte''
descriptionstringBeschreibungstext''
tagsstring[]Optionale Tags; werden als Badge gerendert (werden automatisch unten ausgerichtet)[]
rounded'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'Eckenradius der Card'md'

Fragments

BezeichnerBeschreibungDefault
imageOptionaler Bild-Slot (überschreibt image-Prop)
defaultStandardinhalt im Body
footerFooter-Bereich (zusätzliche Inhalte/Badges/Links)

Image Optimization

The Card component automatically optimizes images for grid layouts. Images are constrained to a maximum width of 400px with a 4:3 aspect ratio (400x300px), ensuring optimal performance:

  • Mobile (≤767px): 250px width
  • Tablet (768px-1023px): 350px width
  • Desktop (≥1024px): 400px width

The component uses responsive image generation with multiple breakpoints (widths={[250, 350, 400]}) and proper sizes attributes, so browsers only download appropriately sized images. The Image component handles WebP conversion automatically in production.

Note: Images are cropped to a 4:3 aspect ratio using object-cover and are not rendered in their original size. The maximum rendered width is 400px, which is optimal for grid layouts where each card occupies ~25% of the viewport width.

Usage in Grid Layouts

<div class="grid grid-cols-4 gap-4">
<Card image={{ src: image1, alt: 'Card 1' }} title="Card 1" />
<Card image={{ src: image2, alt: 'Card 2' }} title="Card 2" />
<Card image={{ src: image3, alt: 'Card 3' }} title="Card 3" />
<Card image={{ src: image4, alt: 'Card 4' }} title="Card 4" />
</div>

The optimized image widths ensure that each card in a 4-column grid (~256px per card on large screens) receives appropriately sized images, reducing unnecessary bandwidth usage.

Thinkport — Thinkport
Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren.

DListItem

Beschreibungsliste

Die DListItem-Komponente simuliert eine HTML-Beschreibungsliste (dl) und eignet sich besonders für die strukturierte Darstellung von Begriffserklärungen oder Eigenschaftslisten.

Codebeispiel

<DListItem dt="Lorem ipsum">
<p>Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
</DListItem>
Thinkport — Thinkport

Lorem ipsum

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr

Headline

Überschriften

Die Headline ist eine Überschrift oder ein Titel für einen Abschnitt oder eine Seite. Sie soll die Aufmerksamkeit der Benutzer auf sich ziehen und ihnen einen schnellen Überblick über den Inhalt geben.

Codebeispiel

<Headline title="Lorem ipsum dolor" subtitle="Sit amet, consetetur sadipscing elitr" tagline="Lorem ipsum" />
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

ItemGrid

Grid-Layout

Minimales Beispiel für die ItemGrid-Komponente.

Codebeispiel

<ItemGrid
items={[
{ title: 'Lorem ipsum', description: 'Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor.', icon: 'tabler:star' },
{ title: 'Consetetur sadipscing', description: 'Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.', icon: 'tabler:rocket' },
]}
columns={3}
/>
Lorem ipsum

Lorem ipsum

Dolor sit amet

Consetetur sadipscing

Consetetur sadipscing

Elitr, sed diam

Bild-Klassen steuern

classes.image

Die Bildhöhe und weitere Styles werden über classes.image gesteuert (z. B. h-32, object-contain, Padding/Rounding). Es gibt keine separate Prop für die Bildhöhe.

Codebeispiel

<ItemGrid
items={[
{ title: 'Lorem ipsum', description: 'Dolor sit amet', image: { src: '/assets/images/default.png', alt: 'Lorem ipsum' } },
{ title: 'Consetetur sadipscing', description: 'Elitr, sed diam', image: { src: '/assets/images/default.png', alt: 'Consetetur sadipscing' } },
]}
columns={3}
classes={{ image: 'h-32 object-contain bg-gray-50 p-2 rounded-md' }}
/>
Thinkport — Thinkport
Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Ut labore et dolore

Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores.

ItemGrid2

Erweitertes Grid-Layout

Minimales Beispiel für die ItemGrid2-Komponente.

Codebeispiel

<ItemGrid2
items={[
{ title: 'Lorem ipsum', description: 'Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor.', icon: 'tabler:bulb' },
{ title: 'Consetetur sadipscing', description: 'Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.', icon: 'tabler:cloud' },
{ title: 'Sed diam nonumy', description: 'Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.', icon: 'tabler:database' },
{ title: 'Ut labore et dolore', description: 'Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores.', icon: 'tabler:rocket' }
]}
columns={4}
/>
Thinkport — Thinkport

Beispiel: Animation aus public/animations/space-404.json (gleiche Quelle wie die 404-Seite).

PlayerLottie

Lottie Animation Player

Lädt das Web-Component per CDN (unpkg), falls es noch nicht registriert ist. Verwende eine öffentliche JSON-URL unter public/ (z. B. /animations/space-404.json). Für sichtbare Höhe: height auf einen festen Wert (z. B. 280px) oder height auto mit Tailwind w-full h-auto am Container wie auf der 404-Seite.

Codebeispiel

<PlayerLottie
src="/animations/space-404.json"
background="transparent"
speed={1}
loop={true}
autoplay={true}
width="100%"
height="auto"
className="w-full h-auto max-w-sm mx-auto"
/>

Parameter

BezeichnerTypBeschreibungDefault
srcstringURL zur Lottie-JSON-Datei (z. B. unter public/)-
backgroundstringHintergrundfarbe/Stil"transparent"
speednumberWiedergabegeschwindigkeit1
loopbooleanEndlosschleifetrue
autoplaybooleanAutomatischer Starttrue
widthstringCSS-Breite"100%"
heightstringCSS-Höhe (100% braucht Eltern mit Höhe)"100%"
classNamestringZusätzliche CSS-Klassen''
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Timeline

Zeitstrahl

Die Timeline-Komponente wird verwendet, um Ereignisse oder Meilensteine in chronologischer Reihenfolge darzustellen. Sie eignet sich besonders für die Präsentation von Unternehmensgeschichte, Projektverlauf oder Karriereweg.

Codebeispiel

<Timeline
items={[
{ title: 'Lorem ipsum', description: 'Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.', icon: 'tabler:building-store', classes: { panel: 'mb-8', title: 'text-primary' } },
{ title: 'Consetetur sadipscing', description: 'Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.', icon: 'tabler:rocket' },
{ title: 'Sed diam nonumy', description: 'Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.', icon: 'tabler:world' }
]}
defaultIcon="tabler:circle"
classes={{ container: 'max-w-3xl mx-auto', panel: 'p-4', title: 'text-xl font-bold', description: 'text-gray-600 dark:text-gray-300' }}
/>
Thinkport — Thinkport
Lorem ipsum
Dolor sit amet
Elitr, sed diam
Nonumy eirmod
Tempor invidunt

Tooltip

Hinweis-Tooltip

Die Tooltip-Komponente zeigt zusätzliche Informationen beim Überfahren (hover) oder Klicken (click) eines Elements an. Bei 'click' Trigger wird der Tooltip nur bei Klick oder Touch sichtbar, bei 'hover' Trigger beim Überfahren mit der Maus.

Codebeispiel

<Tooltip text="Lorem ipsum dolor sit amet!" title="Lorem ipsum">
<Button>Lorem ipsum</Button>
</Tooltip>
<Tooltip text="Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat." trigger="click" position="top">
<Button>Dolor sit amet</Button>
</Tooltip>
<Tooltip text="Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum." title="Consetetur sadipscing" trigger="hover" position="bottom">
<Button>Elitr, sed diam</Button>
</Tooltip>
<Tooltip text="Ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam." trigger="click" position="left">
<Button>Nonumy eirmod</Button>
</Tooltip>
<Tooltip text="Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." trigger="click" position="right">
<Button>Tempor invidunt</Button>
</Tooltip>

Parameter

BezeichnerTypBeschreibungDefault
textstringHaupttext des Tooltips-
titlestringOptionaler Titel des Tooltips-
trigger'hover' | 'click'Trigger-Modus: hover = bei Mausüberfahren, click = nur bei Klick/Touch'hover'
position'top' | 'bottom' | 'left' | 'right'Position des Tooltips'top'
classstringZusätzliche CSS-Klassen''

Fragments

BezeichnerBeschreibungDefault
defaultDas Element, das den Tooltip auslöst
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

WidgetWrapper

Widget-Container

Minimales Beispiel für die WidgetWrapper-Komponente.

Codebeispiel

<WidgetWrapper id="demo-section">
<div class="text-center">
<h2>Lorem ipsum</h2>
<p>Dolor sit amet, consetetur sadipscing elitr</p>
</div>
</WidgetWrapper>

Responsive Breiten

Die WidgetWrapper-Komponente verwendet standardmäßig responsive Breiten-Klassen für eine einheitliche Darstellung auf allen Bildschirmgrößen:

  • Mobile (default): max-w-full - Volle Breite mit Padding
  • Tablet (md: 768px): md:max-w-3xl
  • Desktop (lg: 1024px): lg:max-w-5xl
  • Large Desktop (xl: 1280px): xl:max-w-6xl
  • Extra Large (2xl: 1536px): 2xl:max-w-7xl

Das Padding ist ebenfalls responsive: px-4 md:px-6

Thinkport — Thinkport

Was Sie erwartet

Inhalte der Aufzeichnung

Agenda

So läuft ihr Webinar ab

  • Begrüßung

    Willkommen, Vorstellung der Referenten

  • Hauptteil

    Präsentation, Live-Demo, Best Practices

  • Q&A

    Fragen & Antworten, Diskussion

WebinarAgenda

Webinar-Agenda

Die WebinarAgenda-Komponente zeigt die Agenda eines Webinars an. Sie verwendet Steps2 für die Darstellung und passt Titel/Tagline basierend auf Live-Status an.

Codebeispiel

<WebinarAgenda
agenda={[
{ title: 'Begrüßung', content: ['Willkommen', 'Vorstellung'] },
{ title: 'Hauptteil', content: ['Präsentation', 'Demo'] },
{ title: 'Q&A', content: ['Fragen', 'Diskussion'] }
]}
liveDate="2024-12-15"
liveTime="14:00"
id="agenda"
isDark={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
agendaArray<AgendaItem>Array von Agenda-Items[]
liveDatestringDatum des Live-Events (ISO-Format)-
liveTimestringUhrzeit des Live-Events-
idstringWidget-ID-
isDarkbooleanDunkles Themefalse
classesobjectCSS-Klassen-Overrides{}
bgstringHintergrund-HTML (Slot)-
Thinkport — Thinkport

Die WebinarCalendar-Komponente zeigt kommende Live-Webinare in einem Kalender-Format. In diesem Demo wird sie ohne echte Daten angezeigt.

WebinarCalendar

Webinar-Kalender

Die WebinarCalendar-Komponente zeigt einen Kalender mit kommenden Live-Webinaren an. Sie gruppiert Webinare nach Monaten und zeigt Datum, Zeit, Titel, Beschreibung, Topics, Speaker und Anmelde-Links.

Codebeispiel

<WebinarCalendar
webinars={[
{
id: '1',
slug: 'example-webinar',
title: 'Cloud Architecture',
description: 'Lernen Sie die Grundlagen',
liveDate: '2024-12-15',
liveTime: '14:00',
duration: '60 Minuten',
topics: ['Cloud', 'AWS'],
speakers: [{ slug: 'max-mustermann' }]
}
]}
title="Webinar-Kalender"
subtitle="Alle kommenden Live-Webinare"
/>

Parameter

BezeichnerTypBeschreibungDefault
webinarsArray<WebinarProps>Array von Webinaren[]
titlestringTitel'Webinar-Kalender'
subtitlestringUntertitel'Alle kommenden Live-Webinare auf einen Blick'
Thinkport — Thinkport

Die WebinarCard-Komponente zeigt eine vollständige Webinar-Karte. In diesem Demo wird sie ohne echte Daten angezeigt.

WebinarCard

Webinar-Karte

Die WebinarCard-Komponente zeigt eine Karte für ein Webinar an. Sie zeigt Titel, Status, Beschreibung, Live-Datum, Dauer, Topics, Speaker und einen Anmelde-Link.

Codebeispiel

<WebinarCard
webinar={{
id: '1',
slug: 'example-webinar',
title: 'Cloud Architecture Best Practices',
description: 'Lernen Sie die Grundlagen',
duration: '60 Minuten',
liveDate: '2024-12-15',
liveTime: '14:00',
category: 'Cloud',
topics: ['Cloud', 'AWS'],
speakers: [{ slug: 'max-mustermann' }]
}}
isFeatured={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
webinarWebinarPropsWebinar-Daten-
isFeaturedbooleanAls Featured markierenfalse
Thinkport — Thinkport

Zugriff und Nutzung

Häufige Fragen zur Aufzeichnung

Wie lange dauert das Webinar?

Das Webinar dauert 60 Minuten inklusive Q&A-Session.

Ist das Webinar kostenlos?

Ja, das Webinar ist vollständig kostenlos.

Kann ich das Webinar später ansehen?

Ja, nach dem Live-Event wird eine Aufzeichnung zur Verfügung gestellt.

WebinarFAQs

Webinar-FAQs

Die WebinarFAQs-Komponente zeigt häufig gestellte Fragen zu einem Webinar an. Sie verwendet die FAQs-Komponente für die Darstellung und passt Titel/Tagline basierend auf Live-Status an.

Codebeispiel

<WebinarFAQs
faqs={[
{ question: 'Wie lange dauert das Webinar?', answer: 'Das Webinar dauert 60 Minuten.' },
{ question: 'Ist das Webinar kostenlos?', answer: 'Ja, das Webinar ist kostenlos.' }
]}
liveDate="2024-12-15"
liveTime="14:00"
id="faqs"
isDark={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
faqsArray<FAQItem>Array von FAQ-Items[]
liveDatestringDatum des Live-Events (ISO-Format)-
liveTimestringUhrzeit des Live-Events-
idstringWidget-ID-
isDarkbooleanDunkles Themefalse
classesobjectCSS-Klassen-Overrides{}
bgstringHintergrund-HTML (Slot)-
Thinkport — Thinkport

Ihre Erkenntnisse

Was sie erwartet

Erkenntnis 1: Cloud-Architektur ist der Schlüssel zur Skalierbarkeit

Erkenntnis 2: Kostenoptimierung ist durch richtige Architektur-Entscheidungen möglich

Erkenntnis 3: Monitoring und Observability sind essentiell für moderne Cloud-Anwendungen

WebinarKeyTakeaways

Webinar-Erkenntnisse

Die WebinarKeyTakeaways-Komponente zeigt die wichtigsten Erkenntnisse eines Webinars an. Sie verwendet Features3 für die Darstellung.

Codebeispiel

<WebinarKeyTakeaways
takeaways={[
'Erkenntnis 1: Cloud-Architektur ist wichtig',
'Erkenntnis 2: Skalierbarkeit ist entscheidend',
'Erkenntnis 3: Kostenoptimierung ist möglich'
]}
id="takeaways"
isDark={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
takeawaysArray<string>Array von Erkenntnissen[]
idstringWidget-ID-
isDarkbooleanDunkles Themefalse
classesobjectCSS-Klassen-Overrides{}
bgstringHintergrund-HTML (Slot)-
Thinkport — Thinkport

Die WebinarLiveTeaser-Komponente zeigt einen Teaser mit Countdown. Sie wird nur angezeigt, wenn das Webinar in der Zukunft liegt. In diesem Demo wird sie ohne echte Daten angezeigt.

WebinarLiveTeaser

Live-Webinar Teaser

Die WebinarLiveTeaser-Komponente zeigt einen Teaser für ein kommendes Live-Webinar mit Countdown an. Sie wird nur angezeigt, wenn das Webinar in der Zukunft liegt.

Codebeispiel

<WebinarLiveTeaser
webinar={{
id: '1',
slug: 'example-webinar',
title: 'Cloud Architecture Best Practices',
description: 'Lernen Sie die Grundlagen',
liveDate: '2024-12-15',
liveTime: '14:00',
speakers: [{ slug: 'max-mustermann', cite: 'Cloud ist die Zukunft' }],
registrationUrl: 'https://example.com/register'
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
webinarWebinarPropsWebinar-Daten-
Thinkport — Thinkport

Die WebinarRegistrationWithAgenda-Komponente zeigt ein vollständiges Registrierungsformular. In diesem Demo wird sie ohne echte Daten angezeigt.

WebinarRegistrationWithAgenda

Webinar-Registrierung mit Agenda

Die WebinarRegistrationWithAgenda-Komponente zeigt ein Registrierungsformular mit Agenda für ein Webinar an. Sie zeigt Training-Details, Agenda und ein Registrierungsformular in einem 2-Spalten-Layout.

Codebeispiel

<WebinarRegistrationWithAgenda
webinar={{
id: '1',
slug: 'example-webinar',
title: 'Cloud Architecture Best Practices',
description: 'Lernen Sie die Grundlagen',
duration: '60 Minuten',
liveDate: '2024-12-15',
liveTime: '14:00',
timezone: 'Europe/Berlin',
agenda: [
{ title: 'Begrüßung', content: ['Willkommen', 'Vorstellung'] },
{ title: 'Hauptteil', content: ['Präsentation', 'Demo'] }
]
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
webinarWebinarPropsWebinar-Daten-
classesobjectCSS-Klassen-Overrides{}
Thinkport — Thinkport

Die WebinarTeaser-Komponente zeigt weitere Webinare. In diesem Demo wird sie ohne echte Daten angezeigt.

WebinarTeaser

Webinar-Teaser

Die WebinarTeaser-Komponente zeigt eine Teaser-Ansicht von Webinaren an. Sie zeigt bis zu 3 weitere Webinare (ausgenommen das aktuelle) in einem Grid.

Codebeispiel

<WebinarTeaser
webinars={[
{
id: '1',
slug: 'webinar-1',
title: 'Webinar 1',
description: 'Beschreibung 1'
},
{
id: '2',
slug: 'webinar-2',
title: 'Webinar 2',
description: 'Beschreibung 2'
}
]}
excludeId="1"
id="teaser"
isDark={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
webinarsArray<WebinarProps>Array von Webinaren[]
excludeIdstringID des auszuschließenden Webinars-
idstringWidget-ID-
isDarkbooleanDunkles Themefalse
classesobjectCSS-Klassen-Overrides{}
bgstringHintergrund-HTML (Slot)-
Thinkport — Thinkport

Keine Whitepaper gefunden

Es wurden keine Whitepaper gefunden, die den ausgewählten Filtern entsprechen.

WhitepaperEmptyState

Wird angezeigt, wenn keine Whitepaper gefunden werden (z.B. nach Filterung).

Codebeispiel

<WhitepaperEmptyState />
Thinkport — Thinkport

WhitepaperFilter

Filter-Komponente für Tags mit Links zu Tag-Seiten (server-seitige Filterung).

Codebeispiel

<WhitepaperFilter tags={['mlops', 'machine-learning', 'data-strategy', 'ai']} />

WhitepaperFilter mit aktivem Tag

Filter mit aktivem Tag (auf Tag-Seite).

Codebeispiel

<WhitepaperFilter tags={['mlops', 'machine-learning', 'data-strategy']} currentTag="mlops" />
Thinkport — Thinkport

WhitepaperList

Zeigt mehrere Whitepaper-Einträge in einer vertikalen Liste an.

Codebeispiel

<WhitepaperList whitepapers={[
{
id: 'whitepaper1.mdx',
data: {
title: 'MLOps Whitepaper',
publishDate: '2025-04-17',
excerpt: 'MLOps für Produktion',
tags: ['mlops']
}
},
{
id: 'whitepaper2.mdx',
data: {
title: 'Datenstrategie Whitepaper',
publishDate: '2025-04-17',
excerpt: 'Datenstrategie für KI',
tags: ['data-strategy']
}
}
]} />
Thinkport — Thinkport

WhitepaperListItem

Listeneintrag mit Titel, optionalem Bild, Datum, Autoren, Excerpt und Tags.

Codebeispiel

<WhitepaperListItem whitepaper={{
id: 'whitepaper.mdx',
data: {
title: 'MLOps: Machine Learning in Produktion',
image: { src: '~/assets/images/projekte/mlops/machine-learning.png', alt: 'MLOps' },
publishDate: '2025-04-17',
authors: ['julius-taylor'],
excerpt: 'Viele ML-Initiativen scheitern am Sprung von der Entwicklung in die Produktion.',
tags: ['mlops', 'machine-learning', 'production']
}
}} />
Thinkport — Thinkport

WhitepaperTags

Zeigt Tags als klickbare Links zu Tag-Filter-Seiten an.

Codebeispiel

<WhitepaperTags tags={['mlops', 'machine-learning', 'production']} />
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

  • At vero eos et accusam et justo duo dolores
  • Stet clita kasd gubergren, no sea takimata sanctus
  • Est Lorem ipsum dolor sit amet
Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

  • At vero eos et accusam et justo duo dolores et ea rebum
  • Stet clita kasd gubergren, no sea takimata sanctus est
  • Lorem ipsum dolor sit amet, consetetur sadipscing elitr
Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

  • Et justo duo dolores et ea rebum
  • Stet clita kasd gubergren, no sea takimata sanctus est
  • Lorem ipsum dolor sit amet
Ut labore et dolore

Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

  • Stet clita kasd gubergren, no sea takimata sanctus est
  • Lorem ipsum dolor sit amet, consetetur sadipscing elitr
  • Sed diam nonumy eirmod tempor invidunt

Accordion

Aufklappbare Bereiche

Die Accordion-Komponente zeigt aufklappbare Bereiche mit Fragen und Antworten an. Sie eignet sich besonders für FAQs oder strukturierte Inhalte.

Codebeispiel

<Accordion
tagline="Lorem ipsum"
title="Dolor sit amet, consetetur sadipscing elitr"
items={[
{
title: 'Lorem ipsum',
content: `
<p class="mb-2">Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
<ul class="list-disc list-inside space-y-1">
<li>At vero eos et accusam et justo duo dolores</li>
<li>Stet clita kasd gubergren, no sea takimata sanctus</li>
<li>Est Lorem ipsum dolor sit amet</li>
</ul>
`
},
{
title: 'Consetetur sadipscing',
content: `
<p class="mb-2">Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<ul class="list-disc list-inside space-y-1">
<li>At vero eos et accusam et justo duo dolores et ea rebum</li>
<li>Stet clita kasd gubergren, no sea takimata sanctus est</li>
<li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr</li>
</ul>
`
}
]}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift für das Accordion-
taglinestringKleine Überschrift über dem Titel-
itemsarrayArray von Accordion-Einträgen mit title und content[]
Thinkport — Thinkport

Announcement

Ankündigung

Beispiel für die Announcement-Komponente. Die Announcement-Komponente dient dazu, wichtige Ankündigungen oder Nachrichten prominent auf einer Seite darzustellen. Sie eignet sich besonders für zeitlich begrenzte Hinweise, Updates oder Breaking News.

Codebeispiel

<Announcement
badge="NEW"
text="Neue Features verfügbar!"
href="/features"
/>

Mit Slot-Inhalt

Announcement mit Slot

Die Announcement-Komponente unterstützt auch Slot-Inhalte für komplexere Strukturen.

Codebeispiel

<Announcement badge="INFO">
Wichtige Information: <strong>Neue Features</strong> sind jetzt verfügbar!
</Announcement>

Ohne Badge

Announcement ohne Badge

Der Badge kann weggelassen werden, indem badge als leerer String übergeben wird.

Codebeispiel

<Announcement
badge=""
text="Einfache Ankündigung ohne Badge"
/>

Mit anpassbarem Styling

Announcement mit Custom Classes

Zusätzliche Tailwind-Klassen können über die class, badgeClass und textClass Props gesetzt werden.

Codebeispiel

<Announcement
badge="NEW"
text="Custom styled announcement"
class="bg-blue-500 text-white"
badgeClass="bg-yellow-400 text-black"
textClass="font-bold"
/>

Mit GitHub Stars Badge

Announcement mit GitHub Stars

Optional kann ein GitHub Stars Badge rechts angezeigt werden.

Codebeispiel

<Announcement
text="Star uns auf GitHub!"
showGitHubStars={true}
githubOrg="ThinkportRepo"
githubStarsTitle="View ThinkportRepo on GitHub"
/>

Variant: Primary

Blaue Variante

Primary-Variante mit blauem Hintergrund für wichtige Ankündigungen.

Codebeispiel

<Announcement
variant="primary"
badge="NEW"
text="Wichtige Neuigkeit verfügbar!"
href="/news"
/>

Variant: Secondary (Standard)

Dunkelgraue Variante

Secondary-Variante mit dunkelgrauem Hintergrund - die Standard-Variante.

Codebeispiel

<Announcement
variant="secondary"
badge="UPDATE"
text="Standard Ankündigung mit dunkelgrauem Hintergrund"
/>

Variant: Info

Hellblaue Variante

Info-Variante mit hellblauem Hintergrund für informative Nachrichten.

Codebeispiel

<Announcement
variant="info"
badge="INFO"
text="Informative Nachricht für Benutzer"
/>

Variant: Warning

Gelbe Variante

Warning-Variante mit gelbem Hintergrund für Warnungen und wichtige Hinweise.

Codebeispiel

<Announcement
variant="warning"
badge="WARNUNG"
text="Wichtiger Hinweis: Bitte beachten Sie diese Information"
/>

Variant: Success

Grüne Variante

Success-Variante mit grünem Hintergrund für Erfolgsmeldungen.

Codebeispiel

<Announcement
variant="success"
badge="ERFOLG"
text="Aktion erfolgreich abgeschlossen!"
/>
Thinkport — Thinkport

Die AuthorsList-Komponente wird am Ende eines Blogartikels angezeigt und liest die Autor:innen aus dem Frontmatter-Feld authors (Array von Personen-Slugs).

Frontmatter-Beispiel (in einem Blogpost):

---
title: 'Beispiel'
publishDate: 2024-08-01
authors:
- clemens-rau
- philipp-dangelo
---

Die Slugs müssen mit Einträgen in src/content/data/people.json korrespondieren. Die Komponente zeigt Name (mit Link auf /person/<slug>), Beschreibung (oder Jobtitel) und ein Bild, falls vorhanden.

Die AuthorsList wird im echten Blogkontext mit dem aktuellen Post gerendert.

AuthorsList

Autorenliste am Blogende

Demonstration der AuthorsList-Komponente. Üblicherweise wird sie im Blog-Template automatisch eingefügt.

Codebeispiel

<AuthorsList post={post} />

Parameter

BezeichnerTypBeschreibungDefault
postPostNormalisierter Blogpost mit authors[]

Fragments

BezeichnerBeschreibungDefault
default

Vorschau-Grafik: /images/docs/widgets/authorslist.svg.

Thinkport — Thinkport
Tilman

Avatar

Rundes Profilbild mit Hintergrund

Die Avatar-Komponente rendert ein rundes Bild mit animiertem Hintergrundkreis. Unterstützt semantische Größen: 'sm' | 'md' | 'lg' | 'xl' (Standard: 'md').

Codebeispiel

<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" size="md" animatedBg={12} />

Parameter

BezeichnerTypBeschreibungDefault
srcstringBild-URL-
altstringAlternativtextAvatar
size"sm" | "md" | "lg" | "xl" | "hero"Größenvariantemd
animatedBgnumberNummer des animierten Hintergrunds (1–21)5
videostringVideo-URL (MP4 oder WebM) - nur in hero-Variante-
useVideobooleanVideo statt Bild anzeigen (nur in hero-Variante)false
Tilman
Tilman
Tilman
Tilman
Tilman
Tilman
Tilman

Größen

sm, md, lg, xl

Beispiele für alle Varianten.

Codebeispiel

<div class="flex items-center gap-6">
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" size="xs" />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" size="sm" />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" size="md" />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" size="lg" />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" size="xl" />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" size="xxl" />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" size="xxxl" />
</div>
Tilman
Tilman
Tilman
Tilman
Tilman

Alle Hintergründe hier.

Farben

Animierte Hintergrundgrafiken

Beispiele für Varianten.

Codebeispiel

<div class="flex items-center gap-6">
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" animatedBg={1} />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" animatedBg={3} />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" animatedBg={7} />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" animatedBg={8} />
<Avatar src="~/assets/images/personen/jens-tilman-rau.webp" alt="Tilman" animatedBg={10} />
</div>
Tilman

Hero Variante

Für Hero-Sections

Die hero-Variante passt sich an den verfügbaren Platz an und verwendet einen dunklen, halbtransparenten Hintergrundkreis mit 12px breitem, halbtransparentem Rand.

Codebeispiel

<div class="w-full max-w-[600px] aspect-square mx-auto">
<Avatar
src="~/assets/images/personen/jens-tilman-rau.webp"
alt="Tilman"
size="hero"
/>
</div>

Parameter

BezeichnerTypBeschreibungDefault
size"hero"Hero-Variante für Hero-Sections-

Hinweis: Video-Funktionalität funktioniert nur in der hero-Variante. Videos sollten transparente WebM-Dateien mit Alpha-Kanal sein. Das Video startet beim Hover und pausiert automatisch, wenn der Mauszeiger entfernt wird.

Video-Unterstützung

Video statt Bild in Hero-Variante

Die Avatar-Komponente unterstützt Videos in der hero-Variante. Das Video wird beim Hover abgespielt und pausiert, wenn der Mauszeiger entfernt wird. Videos sollten transparente WebM-Dateien mit Alpha-Kanal sein.

Codebeispiel

<div class="w-full max-w-[600px] aspect-square mx-auto">
<Avatar
src="~/assets/images/personen/jens-tilman-rau.webp"
alt="Tilman"
size="hero"
video="~/assets/videos/ai-agent.webm"
useVideo={true}
/>
</div>

Parameter

BezeichnerTypBeschreibungDefault
videostringVideo-URL (MP4 oder WebM mit Alpha-Kanal)-
useVideobooleanVideo statt Bild anzeigen (nur in hero-Variante)false
Thinkport — Thinkport

Lorem ipsum dolor

Alle Artikel Anzeigen »

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

BlogHighlightedPosts

Bestimmte Blogartikel

Die BlogHighlightedPosts-Komponente zeigt spezifische Blogartikel an, die über Ihre IDs ausgewählt werden. Sie eignet sich für die Hervorhebung wichtiger oder thematisch zusammenhängender Artikel. Beispiel für die BlogHighlightedPosts-Komponente.

Codebeispiel

<BlogHighlightedPosts
title="Lorem ipsum dolor"
information="Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
postIds={[
'lorem-ipsum-1',
'dolor-sit-amet-2',
'consetetur-sadipscing-3',
'sed-diam-nonumy-4',
]}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel über dem Teaser-
informationstringUntertitel unter dem Titel-
linkTextstringText für den Link zu allen ArtikelnAlle Artikel anzeigen
linkUrlstring | URLURL für den Link zu allen ArtikelngetBlogPermalink()
postIdsstring[]IDs der anzuzeigenden Artikel-
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
bgstringHintergrundinhalt

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Grundlagen von Cloud Computing

Cloud Computing verständlich erklärt: Modelle, Vorteile und Best Practices für Migration, Sicherheit und Kostenoptimierung in modernen IT‑Landschaften.

BlogLatestPosts

Neueste Blogartikel

Beispiel für die BlogLatestPosts-Komponente. Die BlogLatestPosts-Komponente zeigt die neuesten Blogartikel an und eignet sich besonders, um aktuelle Inhalte auf der Startseite oder in Übersichtsseiten hervorzuheben.

Codebeispiel

<BlogLatestPosts title="Lorem ipsum dolor" information="Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat." count={4} />

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel über dem Teaser-
informationstringUntertitel unter dem Titel-
linkTextstringText für den Link zu allen ArtikelnAlle Artikel anzeigen
linkUrlstring | URLURL für den Link zu allen ArtikelngetBlogPermalink()
countnumberMaximale Anzahl der anzuzeigenden Artikel4
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
bgstringHintergrundinhalt

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Lorem ipsum
Consetetur sadipscing

Brands

Auflistung von Brands

Die Brands-Komponente zeigt Logos von Partnern, Kunden oder Technologien an. Sie unterstützt sowohl Icons als auch Bilder und kann für verschiedene Zwecke wie Partner-Logos, Technologie-Stack oder Kunden-Referenzen verwendet werden.

Codebeispiel

<Brands
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
tagline="Lorem ipsum"
icons={[
{ name: 'tabler:brand-linkedin', title: 'Lorem ipsum', description: 'Dolor sit amet, consetetur sadipscing elitr' },
{ name: 'tabler:brand-azure', title: 'Consetetur sadipscing', description: 'Elitr, sed diam nonumy eirmod tempor' },
{ name: 'tabler:brand-google', description: 'Sed diam nonumy eirmod tempor invidunt' }
]}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente
subtitlestringUntertitel der Komponente
taglinestringTagline über dem Titel
iconsstring[] | object[]Liste von Icon-Namen oder Objekten mit name, description und optional title[]
imagesobject[]Liste von Bildern mit src, alt und description Attributen[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
bgstringHintergrundinhalt

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum dolor sit amet?

Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

CallToAction

Den Nutzer zu Interaktion anregen

Die CallToAction-Komponente dient dazu, Benutzer zu einer bestimmten Aktion zu motivieren. Sie kann mit einem oder mehreren Buttons konfiguriert werden und eignet sich besonders für verschiedene Zwecke wie Newsletter-Anmeldung, Kontaktaufnahme oder Produktdemo.

Codebeispiel

<CallToAction
title="Lorem ipsum dolor sit amet?"
subtitle="Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
tagline="Lorem ipsum"
actions={[{ variant: 'primary', text: 'Lorem ipsum', href: '/kontakt', target: '_blank' }, { variant: 'secondary', text: 'Consetetur sadipscing', href: '/ueber-uns' }]}
isDark={false}
classes={{ container: 'custom-container-class' }}
bg={<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
actionsCallToAction[]Liste von Aktionen/Buttons[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
bgstringHintergrundinhalt

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Portrait von Stephan

Stephan

Senior Cloud Engineer

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

CallToActionMember

Teammitglied-Komponente

Beispiel für die CallToActionMember-Komponente.

Codebeispiel

<CallToActionMember
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr"
slug="stephan-groetschel"
description="Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
callToAction={{ variant: 'primary', text: 'Lorem ipsum', href: '/kontakt' }}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
slugstringEindeutiger Bezeichner des Teammitglieds-
descriptionstringZusätzliche Beschreibung-
callToActionobjectCall-to-Action Button Konfiguration-
isDarkbooleanDunkles Designfalse
isReversedbooleanBild rechts, Text links (umgekehrte Reihenfolge)false

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Keine Zertifikate verfügbar

Certificates

Zertifikate-Komponente

Beispiel für die Certificates-Komponente.

Codebeispiel

<Certificates
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr"
personSlug="andreas-engelhardt"
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
personSlugstringSlug der Person-
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
bgstringHintergrundinhalt

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr

Portrait von Tilman Rau

Tilman

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Cloud Engineer

Portrait von Tilman Rau

Tilman

At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Cloud Engineer

Cite

Zitate von Teammitgliedern

Die Cite-Komponente zeigt Zitate von Teammitgliedern aus der Team-Collection an. Sie rendert Profilbild, Name, Position und das Zitat. Optional kann das Layout gespiegelt (Avatar rechts) werden und externe Speaker können unterstützt werden.

Codebeispiel

<Cite
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr"
slug="jens-tilman-rau"
isDark={false}
classes={{
container: 'custom-container-class'
}}
bg={<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>}
>
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
</Cite>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
slugstringSlug des Teammitglieds (aus der Team-Collection)-
quotestringDas Zitat des Teammitglieds-
isDarkbooleanDunkles Designfalse
isReversedbooleanAvatar auf Desktop rechts platzierenfalse
classesobjectZusätzliche CSS-Klassen{}
bgstringHintergrundinhalt
animatedBgnumberNummer des animierten Hintergrunds (1–21)5
avatarSize"sm" | "md" | "lg" | "xl"Größe des Avatarsmd
idstringOptionale feste ID für das Widget (sonst Hash des Members)-
isExternalbooleanExterner Speaker (nicht aus Team-Collection)false
speakerNamestringName des externen Speakers-
speakerPositionstringPosition/Funktion des externen Speakers-
speakerAvatarstringAvatar-URL des externen Speakers-
speakerLinkedinstringLinkedIn-URL des externen Speakers-
speakerEmailstringE-Mail des externen Speakers-
Portrait von Tilman Rau

Tilman

Lorem ipsum

Cloud Engineer

Portrait von Tilman Rau

Tilman

Consetetur sadipscing

Cloud Engineer

Portrait von Tilman Rau

Tilman

Sed diam nonumy

Cloud Engineer

Portrait von Tilman Rau

Tilman

Ut labore et dolore

Cloud Engineer

Avatar-Größen in Cite

avatarSize

Avatargröße pro Widget konfigurierbar.

Codebeispiel

<>
<Cite slug="jens-tilman-rau" avatarSize="sm">Lorem ipsum</Cite>
<Cite slug="jens-tilman-rau" avatarSize="md">Consetetur sadipscing</Cite>
<Cite slug="jens-tilman-rau" avatarSize="lg">Sed diam nonumy</Cite>
<Cite slug="jens-tilman-rau" avatarSize="xl">Ut labore et dolore</Cite>
</>
Thinkport — Thinkport

Lorem ipsum

Beispiel mit Tabs

main.tf
resource "lorem" "ipsum" {
  dolor = "sit"
  amet = "consetetur"
}
LoremIpsumDolor

HTML Beispiel

Code im Default Slot

index.html
<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Beispiel</title>
</head>
<body>
  <h1>Hallo Welt</h1>
  <p>Dies ist ein Beispiel für Code im Default Slot.</p>
</body>
</html>
HTMLWeb

CodeShowcase

Code-Beispiele mit Tabs

Die CodeShowcase-Komponente zeigt Code-Beispiele in verschiedenen Sprachen mit Tabs an. Sie eignet sich besonders für die Darstellung von Infrastructure as Code Beispielen.

Codebeispiel

<CodeShowcase
tagline="Lorem ipsum"
title="Dolor sit amet, consetetur sadipscing elitr"
languages={["Lorem", "Ipsum", "Dolor"]}
snippets={[
{
language: "Lorem",
code: `resource "lorem" "ipsum" {
dolor = "sit"
amet = "consetetur"
}`,
filename: "main.tf",
tags: ["Lorem", "Ipsum", "Dolor"]
},
{
language: "Ipsum",
code: `import * as lorem from "@lorem/ipsum";
const dolor = new lorem.ipsum("example", {
sit: "amet",
consetetur: "sadipscing"
});`,
filename: "index.ts",
tags: ["Lorem", "Ipsum", "Dolor"]
}
]}
wrap={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
taglinestringKleine Überschrift über dem Titel-
languagesstring[]Array von Sprachen-Namen für Tabs[]
snippetsarrayArray von Code-Snippets mit language, code, filename, tags[]
wrapbooleanCode-Zeilen umbrechenfalse
Thinkport — Thinkport

Lorem ipsum

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Content

Zweispaltiger Teaser

Die Content-Komponente wird verwendet, um Inhalte in einem zweispaltigen Layout darzustellen. Sie eignet sich besonders für die Präsentation von Features, Vorteilen oder anderen vergleichenden Inhalten.

Codebeispiel

<ContentWidget
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
tagline="Lorem ipsum"
items={[
{
title: 'Lorem ipsum dolor',
description: 'Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.',
icon: 'tabler:device-laptop'
},
{
title: 'Consetetur sadipscing',
description: 'Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
icon: 'tabler:cloud'
}
]}
isReversed={false}
isDark={false}
classes={{
container: 'custom-container-class'
}}
>
<Fragment slot="image">
<img src="/assets/images/default.png" alt="Lorem ipsum" class="mx-auto w-full rounded-lg bg-gray-500 shadow" />
</Fragment>
<Fragment slot="content">
<p class="text-lg text-gray-600 dark:text-gray-300">
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</ContentWidget>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
itemsarrayListe von Elementen mit Titel, Beschreibung und optionalem Icon[]
isReversedbooleanReihenfolge der Spalten umkehrenfalse
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
Thinkport — Thinkport

DEBUG: example

Debug Output


{
  "lorem": "ipsum",
  "dolor": "sit",
  "amet": "consetetur"
}
    

Debug

JSON-Daten debuggen

Zeigt JSON-Daten in der Oberfläche und/oder loggt sie in der Konsole.

Codebeispiel

<Debug data={{ a: 1 }} label="example" title="Debug Output" renderUI logInServer={false} logInBrowser language="json" />

Parameter

BezeichnerTypBeschreibungDefault
dataanyAnzuzeigende Daten-
labelstringLabel in UI und Logsdebug
titlestringUI-ÜberschriftDebug Output
renderUIbooleanUI-Block rendernDEV-only
logInServerbooleanIn Server/Build-Konsole loggentrue
logInBrowserbooleanIn Browser-Konsole loggenfalse
stringifySpacesnumberJSON.stringify Einrückung2
languagestringSyntax-Highlighting Sprache (z. B. json, typescript)json
Thinkport — Thinkport

Lorem ipsum

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

DynamicTestimonials

Dynamische Testimonials

Die DynamicTestimonials-Komponente lädt Testimonials aus der Content-Collection und zeigt sie im Grid oder Slider an. Sie unterstützt Filterung nach Tags und explizite Slug-Auswahl.

Codebeispiel

<DynamicTestimonials
id="testimonials-grid"
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
tagline="Lorem ipsum"
count={6}
tags={["Lorem", "Ipsum", "Dolor"]}
mode="grid"
isDark={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift'Das sagen andere über uns'
subtitlestringUnterüberschrift''
taglinestringKleine Überschrift''
countnumberAnzahl der anzuzeigenden Testimonials3
tagsstring[]Filter nach Tags[]
slugsstring[]Explizite Slug-Auswahl[]
mode'grid' | 'slider'Anzeigemodus'grid'
intervalnumberSlider-Intervall in Millisekunden6000
isDarkbooleanDunkles Designfalse
idstringWidget-ID für Anchors-

Lorem ipsum

Lorem ipsum dolor sit

DynamicTestimonials - Slider

Automatisch rotierender Slider

Die DynamicTestimonials-Komponente kann auch als automatisch rotierender Slider angezeigt werden.

Codebeispiel

<DynamicTestimonials
id="testimonials-slider"
title="Lorem ipsum dolor sit"
subtitle="Amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
tagline="Lorem ipsum"
count={5}
mode="slider"
interval={5000}
isDark={false}
/>
Thinkport — Thinkport

Lorem ipsum

Lorem ipsum dolor sit

Amet, consetetur sadipscing elitr

Lorem ipsum dolor sit amet?

Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Consetetur sadipscing elitr?

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Sed diam nonumy eirmod?

Tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Ut labore et dolore magna?

Aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Lorem ipsum

Lorem ipsum dolor sit

Amet, consetetur sadipscing elitr in einer Spalte

Lorem ipsum dolor sit amet?

Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Consetetur sadipscing elitr?

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores.

Sed diam nonumy eirmod tempor?

Invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Ut labore et dolore magna aliquyam?

Erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.

At vero eos et accusam et justo?

Duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet, consetetur sadipscing elitr.

FAQs

Häufig gestellte Fragen

Beispiel für die FAQs-Komponente mit allen wichtigen Props.

Codebeispiel

<FAQs
title="Lorem ipsum dolor sit"
subtitle="Amet, consetetur sadipscing elitr"
tagline="Lorem ipsum"
items={[
{ title: 'Lorem ipsum dolor sit amet?', description: 'Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.', icon: 'tabler:info-circle' },
{ title: 'Consetetur sadipscing elitr?', description: 'Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.', icon: 'tabler:map-pin' },
{ title: 'Sed diam nonumy eirmod?', description: 'Tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.', icon: 'tabler:cloud' },
{ title: 'Ut labore et dolore magna?', description: 'Aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.', icon: 'tabler:mail' }
]}
columns={3}
isDark={false}
id="faqs-demo"
classes={{ container: 'my-8', panel: 'rounded-lg' }}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der FAQ-Sektion-
subtitlestringUntertitel der FAQ-Sektion-
taglinestringKurze Tagline über dem Titel-
itemsarrayArray aus FAQ-Objekten mit title, description, icon etc.[]
columnsnumberAnzahl der Spalten2
isDarkbooleanDunkles Farbschemafalse
idstringID der Komponente-
classesobjectCSS-Klassen für Container und Panel{}
iconUpstringIcon für aufgeklappte Panels-
iconDownstringIcon für zugeklappte Panels-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt der FAQs
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Mehr erfahren

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Mehr erfahren

Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Mehr erfahren

Ut labore et dolore

Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Mehr erfahren

Stet clita kasd

Gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet, consetetur sadipscing elitr.

Mehr erfahren

At vero eos

Et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.

Mehr erfahren

FeatureCards

Feature-Karten im Grid

Die FeatureCards-Komponente zeigt Features in einem Grid aus Karten mit Icon, Titel, Beschreibung und optionalem Link an.

Codebeispiel

<FeatureCards
tagline="Lorem ipsum"
title="Dolor sit amet, consetetur sadipscing elitr"
subtitle="Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
items={[
{
title: "Lorem ipsum dolor",
description: "Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.",
icon: "tabler:cloud",
href: "/lorem"
},
{
title: "Consetetur sadipscing",
description: "Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
icon: "tabler:bolt",
href: "/ipsum"
}
]}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
subtitlestringUnterüberschrift-
taglinestringKleine Überschrift über dem Titel-
itemsarrayArray von Feature-Karten mit title, description, icon, href[]
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Ut labore et dolore

Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Stet clita kasd

Gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing.

At vero eos

Et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum.

Features

Feature-Liste mit Icons

Die Features-Komponente zeigt eine Liste von Features mit Icons an. Sie eignet sich besonders für die Darstellung von Produktmerkmalen oder Dienstleistungen.

Codebeispiel

<Features
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr"
tagline="Features"
items={[
{
title: 'Lorem ipsum',
description: 'Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor.',
icon: 'tabler:user-check'
},
{
title: 'Consetetur sadipscing',
description: 'Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna.',
icon: 'tabler:shield-check'
}
]}
isDark={false}
classes={{
container: 'custom-container-class'
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
itemsarrayListe von Elementen mit Titel, Beschreibung und optionalem Icon[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
Thinkport — Thinkport

Components

Lorem ipsum dolor sit

Amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Ut labore et dolore

Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Stet clita kasd

Gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur.

At vero eos

Et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus.

Et justo duo

Dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor.

Dolores et ea

Rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet, consetetur sadipscing.

Rebum stet clita

Kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet, consetetur sadipscing elitr.

Features2

Feature-Liste mit Icons

Beispiel für die Features2-Komponente.

Codebeispiel

<Features2
title="Lorem ipsum dolor sit"
subtitle="Amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
tagline="Components"
items={[
{
title: 'Lorem ipsum',
description: 'Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore.',
icon: 'flat-color-icons:template',
},
{
title: 'Consetetur sadipscing',
description:
'Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
icon: 'flat-color-icons:gallery',
},
{
title: 'Sed diam nonumy',
description:
'Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.',
icon: 'flat-color-icons:approval',
},
{
title: 'Ut labore et dolore',
description:
'Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.',
icon: 'flat-color-icons:document',
},
{
title: 'Stet clita kasd',
description:
'Gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur.',
icon: 'flat-color-icons:advertising',
},
{
title: 'At vero eos',
description: 'Et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus.',
icon: 'flat-color-icons:currency-exchange',
},
{
title: 'Et justo duo',
description: 'Dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor.',
icon: 'flat-color-icons:voice-presentation',
},
{
title: 'Dolores et ea',
description:
'Rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet, consetetur sadipscing.',
icon: 'flat-color-icons:business-contact',
},
{
title: 'Rebum stet clita',
description: 'Kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet, consetetur sadipscing elitr.',
icon: 'flat-color-icons:database',
},
]}
>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</Features2>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
itemsarrayListe von Elementen mit Titel, Beschreibung und optionalem Icon[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores.

Ut labore et dolore

Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren.

Stet clita kasd

Gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr.

At vero eos

Et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Features3

Erweiterte Feature-Liste

Die Features3-Komponente bietet eine erweiterte Darstellung von Features mit zusätzlichen Optionen wie Bildern und Call-to-Action-Buttons.

Codebeispiel

<Features3
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
items={[{
title: 'Lorem ipsum',
description: 'Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.',
icon: 'tabler:headset',
image: { src: '~/assets/images/default.png', alt: 'Lorem ipsum' },
callToAction: { text: 'Lorem ipsum', href: '/support' },
}]}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
itemsarrayListe von Features mit erweiterten Optionen[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
bgstringHintergrundinhalt

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

FeedbackButton

Floating Action Buttons

Auf der Live-Site kommt eine Instanz aus Layout.astro (unten rechts): Feedback-Button, Bug-Button und vorgefülltes GitHub-Issue mit Metadaten. In Produktion standardmäßig aus; Aktivierung über PUBLIC_ENABLE_FEEDBACK_BUTTON=true oder das Prop enabled. Keine zweite Demo-Instanz hier, um doppelte FABs zu vermeiden.

Codebeispiel

import FeedbackButton from '~/components/widgets/FeedbackButton.astro';
<FeedbackButton
position="bottom-right"
label="Problem melden"
icon="tabler:bug"
enableScreenshot={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
githubRepostringGitHub-Repo im Format owner/repoGITHUB_REPO
position'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'Position der FAB-Gruppebottom-right
labelstringText am Bug-Button (Desktop)Problem melden
iconstringTabler-Icon für den Bug-Buttontabler:bug
enabledbooleanExplizit ein/aus; sonst Env/Prod-Logiksiehe Beschreibung
enableScreenshotbooleanScreenshot in den Issue-Body (falls unterstützt)false
Thinkport — Thinkport
Lorem ipsum
Lorem ipsum

Dolor sit amet, consetetur

Sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

  • At vero eos et accusam et justo duo dolores et ea rebum
  • Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
  • Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy

FlexContentBlock

Flexibler Content-Block

Die FlexContentBlock-Komponente zeigt flexiblen Content mit Bild in einem anpassbaren Layout an. Das Bild kann links oder rechts positioniert werden.

Codebeispiel

<FlexContentBlock
tagline="Lorem ipsum"
title="Dolor sit amet, consetetur"
subtitle="Sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
image={{
src: "~/assets/images/default.png",
alt: "Lorem ipsum",
width: "1/2"
}}
imageRight={false}
isDark={false}
classes={{
container: "py-16 max-w-7xl mx-auto",
image: "rounded-lg shadow-lg",
content: "prose prose-lg dark:prose-invert"
}}
>
<h3 class="mb-4 text-2xl font-bold">Lorem ipsum dolor</h3>
<p class="mb-4">
Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
</FlexContentBlock>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
subtitlestringUnterüberschrift-
taglinestringKleine Überschrift-
imageobjectBild-Konfiguration mit src, alt, width-
imageRightbooleanBild rechts positionierenfalse
isDarkbooleanDunkles Designfalse
classesobjectCSS-Klassen-Overrides{}

Fragments

BezeichnerBeschreibungDefault
defaultInhalt wird über den Default-Slot übergeben
Thinkport — Thinkport
Thinkport — Thinkport
Thinkport — Thinkport

Tagline

Title

Subtitle

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Lorem ipsum

Hero

Introduction to Topics

The Hero section is a prominent area at the top of a webpage, often containing striking images or graphics along with a short message or headline. It grabs visitors' attention and provides a first impression of the company.

Codebeispiel

<Hero
title="Title"
subtitle="Subtitle"
tagline="Tagline"
content="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum."
actions={<Button variant="primary" href="#">Lorem ipsum</Button>}
>
<Fragment slot="image">
<img src="/assets/images/default.png" alt="Lorem ipsum" class="mx-auto w-full rounded-lg bg-gray-500 shadow" />
</Fragment>
<Fragment slot="actions">
<Button variant="primary" href="#">Lorem ipsum</Button>
</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-slate-100 dark:bg-transparent"></div>
</Fragment>
</Hero>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Hero Sektion-
subtitlestringUntertitel der Hero Sektion-
taglinestringTagline über dem Titel-
contentstringInhaltsbereich (Vorsicht: Länge beachten!)-
actionsReactNodeCall-to-Action Buttons-
idstringID für das Inhaltselement-

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
imageSlot für das Bild
Thinkport — Thinkport

Sed diam nonumy eirmod tempor

Lorem ipsum dolor sit

Amet, consetetur sadipscing elitr

<a class="btn-primary" href="#"><p>Lorem ipsum</p></a>
Hero Image

Sed diam nonumy eirmod tempor

Lorem ipsum dolor sit

Amet, consetetur sadipscing elitr

<a class="btn-primary" href="#"><p>Lorem ipsum</p></a>
Hero Image

Avatar Integration

Hero2 mit Avatar

Verwendung von personSlug für Avatar-Anzeige

Keith Schuijlenburg

Avatar Customization

Hero2 mit angepassten Avatar-Farben

Avatar-Ring und Hintergrund für besseren Kontrast auf hellem Hintergrund

Keith Schuijlenburg

Hero2

Hero2-Komponente

Beispiel für die Hero2-Komponente mit allen wichtigen Props.

Codebeispiel

<Hero2
title="Lorem ipsum dolor sit"
subtitle="Amet, consetetur sadipscing elitr"
tagline="Sed diam nonumy eirmod tempor"
image="~/assets/images/default.png"
backgroundImage="/images/abstracts/svg-1024/abstract-1.svg"
isDark={false}
disableAnimation={false}
compact={false}
classes={{ container: 'mb-8' }}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
subtitlestringUntertitel-
taglinestringTagline (optional)-
imagestringBild-URL (optional)-
backgroundImagestringHintergrundbild-URL (optional)-
personSlugstringPerson-Slug für Avatar-Anzeige (optional)-
useVideobooleanVideo statt Bild im Avatar anzeigen (nur mit personSlug)false
isDarkbooleanDunkles Design (optional)false
disableAnimationbooleanDeaktiviert Einblend-Animationenfalse
compactbooleanReduzierte vertikale Abstände (kompakter Layout)false
classesobjectZusätzliche CSS-Klassen (optional){}

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt

Video Integration

Hero2 mit Video

Video-Unterstützung im Avatar - Hover über den Avatar zum Abspielen

Thinkport Agent

Hero2 mit Video

Video-Unterstützung im Avatar

Mit dem useVideo-Prop kann ein Video statt des statischen Bildes im Avatar angezeigt werden. Das Video startet beim Hover und pausiert automatisch.

Codebeispiel

<Hero2
title="Hero2 mit Video"
subtitle="Video-Unterstützung im Avatar"
tagline="Video Integration"
personSlug="keith-schuijlenburg"
useVideo={true}
backgroundImage="/images/abstracts/svg-12-animated/3.svg"
disableAnimation={true}
/>

Parameter

BezeichnerTypBeschreibungDefault
useVideobooleanVideo statt Bild im Avatar anzeigen (erfordert video-Feld in people.json)false
Thinkport — Thinkport

Lorem ipsum

Lorem ipsum dolor sit amet

Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

HeroSlim

Kompakte Hero-Variante

Die HeroSlim-Komponente ist eine kompakte Variante des Hero-Widgets mit reduziertem Padding, ideal für Seiten mit weniger vertikalem Platz.

Codebeispiel

<HeroSlim
id="webinar-hero"
tagline="Lorem ipsum"
backgroundImage="~/assets/images/webinar-bg.svg"
classes={{
container: "max-w-7xl mx-auto",
wrapper: '!py-8',
title: 'dark:text-slate-800 text-4xl md:text-5xl',
subtitle: 'dark:text-slate-800 text-lg',
tagline: "text-orange-600 font-bold",
content: "text-center"
}}
actions={[
{
text: "Lorem ipsum",
href: "/webinare/registrierung",
variant: "primary",
icon: "tabler:calendar"
}
]}
>
<Fragment slot="title">
Lorem ipsum dolor sit amet
</Fragment>
<Fragment slot="subtitle">
Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
</Fragment>
</HeroSlim>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift (Slot)-
subtitlestringUnterüberschrift (Slot)-
taglinestringKleine Überschrift über dem Titel-
backgroundImagestringHintergrundbild-URL-
actionsstring | CallToAction[]Call-to-Action Buttons (Slot)-
classesobjectCSS-Klassen-Overrides{}
idstringWidget-ID für Anchors-

Fragments

BezeichnerBeschreibungDefault
titleSlot für den Titel
subtitleSlot für den Untertitel
actionsSlot für Call-to-Action Buttons
Thinkport — Thinkport

Lorem ipsum dolor sit amet

Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

HeroText

Hero-Text

Die HeroText-Komponente wird verwendet, um einen auffälligen Text im Hero-Bereich einer Seite anzuzeigen. Sie eignet sich besonders für Hauptüberschriften und wichtige Botschaften.

Codebeispiel

<HeroText title="Lorem ipsum dolor sit amet" subtitle="Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat." />

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift
subtitlestringUntertitel
taglinestringTagline (optional)
isDarkbooleanDunkles Design (optional)
classesobjectZusätzliche CSS-Klassen (optional)

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport
Philosophy: Simplicity, Best Practices and High Performance

Note

Hinweis-Komponente

Beispiel für die Note-Komponente. Die Note-Komponente dient zur Hervorhebung wichtiger Hinweise oder Informationen auf einer Seite. Sie eignet sich besonders, um Nutzer:innen auf Besonderheiten, Warnungen oder Tipps aufmerksam zu machen.

Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

  • AWS

    AWS

    Umfassende Cloud-Plattform mit Compute, Storage, Daten, KI/ML, Sicherheit und DevOps-Services.

  • Microsoft Azure

    Microsoft Azure

    Microsofts Cloud-Plattform für Infrastruktur, Daten, KI und Anwendungen – von IaaS bis PaaS.

  • Google Cloud

    Google Cloud

    Skalierbare Cloud-Plattform von Google mit Fokus auf Data, AI/ML, Analytics und Sicherheit.

  • Grafana

    Grafana

    Grafana ist ein Tool für Monitoring / Observability.

Lorem ipsum

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat

  • Checkmk
  • Datadog
  • Dynatrace
  • Grafana
  • Kibana
  • Logstash
  • Prometheus
  • Signl4

Partners

Partner-Logos mit Beschreibung

Die Partners-Komponente rendert Partner aus src/content/data/partners.json als responsives Grid. Logos erscheinen in Graustufen und werden bei Hover farbig. Optional können Kategorien als Badges angezeigt werden. Data is runtime-validated (fail-fast).

Codebeispiel

<Partners
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
showCategories={true}
ids={["aws", "azure", "gcp", "grafana"]}
isCompact={true}
isGrayscale={true}
gridCols={{ sm: 4, md: 6, lg: 6 }}
/>

Parameter

BezeichnerTypBeschreibungDefault
idstringHTML-ID des Widgetspartners
titlestringTitel der Komponente
subtitlestringUntertitel
taglinestringTagline
isDarkbooleanDark Modefalse
showCategoriesbooleanKategorien-Badges anzeigentrue
isLinkedbooleanPartnerkarten verlinkenfalse
isGrayscalebooleanLogos in Graustufen mit Hover-Farbefalse
idsstring[]Zeigt nur diese Partner-IDs an (Pflicht, sonst leer)[]
isCompactbooleanKompaktansicht – Details im Tooltipfalse
gridCols{ sm?, md?, lg?, xl? }Responsive Grid-Spalten{ sm: 2, md: 3, lg: 4 }
classes{ container?, section?, grid?, card? }CSS-Klassen Override{}

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr

Lorem

Ipsum dolor

49
monatlich
  • Dolor sit amet
Bestseller

Consetetur

Sadipscing elitr

99
monatlich
  • Eirmod tempor

Sed diam

Nonumy eirmod

199
monatlich
  • Sed diam voluptua

Pricing

Preispläne

Die Pricing-Komponente zeigt verschiedene Preispläne oder Pakete an. Sie eignet sich besonders für die Darstellung von Produkt- oder Service-Preisen mit unterschiedlichen Leistungsmerkmalen.

Codebeispiel

<Pricing
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr"
prices={[{
title: 'Lorem',
subtitle: 'Ipsum dolor',
price: '49',
period: 'monatlich',
items: [{ title: 'Lorem ipsum', description: 'Dolor sit amet', icon: 'tabler:users', callToAction: { text: 'Lorem ipsum', href: '/basic' }, image: { src: '~/assets/images/default.png', alt: 'Lorem ipsum' } }, { title: 'Consetetur sadipscing', icon: 'tabler:email' }],
callToAction: { text: 'Lorem ipsum', href: '/basic' }
}, {
title: 'Consetetur',
subtitle: 'Sadipscing elitr',
price: '99',
hasRibbon: true,
ribbonTitle: 'Bestseller',
period: 'monatlich',
items: [{ title: 'Sed diam nonumy', description: 'Eirmod tempor', icon: 'tabler:users' }, { title: 'Ut labore et dolore', icon: 'tabler:support' }],
callToAction: { text: 'Lorem ipsum', href: '/pro' }
}, {
title: 'Sed diam',
subtitle: 'Nonumy eirmod',
price: '199',
period: 'monatlich',
items: [{ title: 'Magna aliquyam erat', description: 'Sed diam voluptua', icon: 'tabler:users' }, { title: 'At vero eos', icon: 'tabler:support' }],
callToAction: { text: 'Lorem ipsum', href: '/enterprise' }
}]} />

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
pricesarrayListe von Preisplänen mit title, subtitle, price, period, items und callToAction[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

1. Lorem ipsum dolor sit amet?
Ja
Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat. (richtig)
Nein
Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. (falsch)
2. Consetetur sadipscing elitr?
Ja
Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. (falsch)
Nein
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren. (richtig)
3. Sed diam nonumy eirmod tempor?
Ja
Invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam. (richtig)
Nein
Et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. (falsch)

Quiz

Interaktive Ja/Nein-Fragen

Die Quiz-Komponente zeigt Ja/Nein-Fragen an, bei denen Antworten beim Klick aufgedeckt werden. Die richtige Antwort wird mit einem subtilen Hinweis und leichtem Highlight angezeigt.

Codebeispiel

<Quiz
id="architecture-quiz"
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
tagline="Lorem ipsum"
items={[
{
question: "Lorem ipsum dolor sit amet?",
yes: "Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.",
no: "Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
correct: "yes"
},
{
question: "Consetetur sadipscing elitr?",
yes: "Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
no: "At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren.",
correct: "no"
}
]}
columns={2}
width="xl"
isDark={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringSektions-Titel'Quiz'
subtitlestringOptionaler Untertitel''
taglinestringOptionaler Tagline''
itemsarrayArray von Quiz-Fragen mit question, yes, no, correct[]
columnsnumberGrid-Spalten (1-3)1
idstringWidget-ID für Anchors-
isDarkbooleanDunkles Designfalse
widthstringContainer-Breite'lg'
Thinkport — Thinkport

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr

100+
Lorem ipsum
50+
Dolor sit amet
10+
Consetetur sadipscing

Stats

Statistiken

Die Stats-Komponente zeigt wichtige Kennzahlen oder Statistiken an. Sie eignet sich besonders für die Darstellung von Unternehmensdaten, Erfolgszahlen oder Projektstatistiken.

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
statsarrayListe von Statistiken mit amount, title und optionalem icon[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Lorem ipsum

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Consetetur sadipscing

Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Sed diam nonumy

Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Ut labore et dolore

Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Steps

Prozessschritte

Die Steps-Komponente visualisiert Abläufe oder Prozesse in mehreren Schritten. Sie eignet sich besonders für die Darstellung von Arbeitsabläufen, Prozessen oder Anleitungen.

Codebeispiel

<Steps
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr"
tagline="Lorem ipsum"
items={[
{
title: 'Lorem ipsum',
description: 'Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.',
icon: 'tabler:bulb',
},
{
title: 'Consetetur sadipscing',
description: 'Elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
icon: 'tabler:target',
},
{
title: 'Sed diam nonumy',
description: 'Eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.',
icon: 'tabler:rocket',
},
{
title: 'Ut labore et dolore',
description: 'Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.',
icon: 'tabler:chart-line',
},
]}
isDark={false}
classes={{
container: "max-w-6xl mx-auto"
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
itemsarrayListe von Schritten mit title, description und optionalem icon[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}
Thinkport — Thinkport

Ansatz

Unser Ansatz

So erreichen wir Ihre Ziele

  • Beratung

    Wir beraten Sie umfassend zu Ihren Möglichkeiten.

  • Planung

    Gemeinsam entwickeln wir einen maßgeschneiderten Plan.

  • Umsetzung

    Wir setzen Ihre Ziele Schritt für Schritt um.

  • Optimierung

    Kontinuierliche Verbesserung für nachhaltigen Erfolg.

Steps2

Alternative Schritte

Die Steps2-Komponente bietet eine alternative Darstellung von Prozessschritten mit zusätzlichen Optionen wie Bildern und Call-to-Action-Buttons.

Codebeispiel

<Steps2
title="Unser Ansatz"
subtitle="So erreichen wir Ihre Ziele"
tagline="Ansatz"
callToAction={{
text: 'Contact us',
href: '/',
}}
isReversed={true}
items={[
{
title: 'Beratung',
description: 'Wir beraten Sie umfassend zu Ihren Möglichkeiten.',
icon: 'tabler:bulb',
},
{
title: 'Planung',
description: 'Gemeinsam entwickeln wir einen maßgeschneiderten Plan.',
icon: 'tabler:target',
},
{
title: 'Umsetzung',
description: 'Wir setzen Ihre Ziele Schritt für Schritt um.',
icon: 'tabler:rocket',
},
{
title: 'Optimierung',
description: 'Kontinuierliche Verbesserung für nachhaltigen Erfolg.',
icon: 'tabler:chart-line',
},
]}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
taglinestringTagline über dem Titel-
itemsarrayListe von Schritten[]
callToActionobjectCall-to-Action Button-
isReversedbooleanReihenfolge umkehrenfalse
Thinkport — Thinkport

Team

Unser Team

Lernen Sie unsere Experten kennen

Frankfurt

  • Philipp D'Angelo

    Philipp D'Angelo

    Business Unit Lead

  • Samir Hamiani

    Samir Hamiani

    Business Team Lead

  • Joshua Kühler

    Joshua Kühler

    Senior Cloud Engineer

  • Anatol

    Anatol

    Senior Data Engineer

  • Mario

    Mario

    Cloud Engineer

  • Philipp

    Philipp

    Cloud Engineer

  • Steffen

    Steffen

    Cloud Engineer

  • Alex Ortner

    Alex Ortner

    Business Unit Lead Transportation & Logistic

  • Björn

    Björn

    Product Owner

  • Chantal

    Chantal

    Junior Recruiter

  • Chen Xue

    Chen Xue

    DevOps Engineer

  • Henning Breyer

    Henning Breyer

    CEO, Venitus

  • Jan Moritz Matzner

    Jan Moritz Matzner

    Senior Account Manager

  • Joshua Babutzka

    Joshua Babutzka

    Office Manager

  • Julius Taylor

    Julius Taylor

    Business Unit Lead - Data Intelligence

  • Keith Schuijlenburg

    Keith Schuijlenburg

    Business Unit LeadRetail

  • Kristian

    Kristian

    Cloud Architect

  • Markus Bommer

    Markus Bommer

    Engineer

  • Oliver Frost

    Oliver Frost

    Architect

  • Rebecca

    Rebecca

    Finance Manager

  • Sabrina Wetzel

    Sabrina Wetzel

    Support Unit Lead

  • Sebastian

    Sebastian

    Senior Engineer

  • Tim Amme

    Tim Amme

    Product Marketing Lead

  • Tobias

    Tobias

    Senior Engineer

  • Tobias Drechsel

    Tobias Drechsel

    Geschäftsführer, Thinkport GmbH

Berlin

  • Felix

    Felix

    Senior Cloud Engineer

  • Leonard Dasey

    Leonard Dasey

    Senior Data Engineer

  • Andreas

    Andreas

    Cloud Architect

  • Phuong

    Phuong

    Senior Engineer

Leipzig

  • André Lademann

    André Lademann

    Senior Cloud Engineer

  • Filipp

    Filipp

    Senior Cloud Engineer

  • Stephan

    Stephan

    Senior Cloud Engineer

  • Martin

    Martin

    Cloud Engineer

  • Tilman

    Tilman

    Cloud Engineer

  • Annemarie

    Annemarie

    Dual Computer Science Student

  • Chris Ulpinnis

    Chris Ulpinnis

    Architect

  • Christina Friede

    Christina Friede

    Circle Lead Zero & DevOPS Engineer

  • Danilo Kühn

    Danilo Kühn

    Cloud Architect

  • Dominik Fries

    Dominik Fries

    Geschäftsführer, Thinkport GmbH

  • Evelina

    Evelina

    Cloud Developer

  • Markus Zapke-Gründemann

    Markus Zapke-Gründemann

    Senior Cloud Architect

  • Martin Gamnitzer

    Martin Gamnitzer

    Cloud Architect

Hamburg

  • Clemens Rau

    Clemens Rau

    Senior Cloud Engineer

  • Denis Bruns

    Denis Bruns

    Cloud Engineer

TeamGrid

Teammitglieder im Grid

Die TeamGrid-Komponente zeigt Teammitglieder in einem responsiven Raster an. Sie kann nach Standort, Position oder Circle gruppiert werden und unterstützt Filterung.

Codebeispiel

<TeamGrid
title="Unser Team"
subtitle="Lernen Sie unsere Experten kennen"
tagline="Team"
groupBy="location"
showPosition={true}
showCertificates={false}
gridCols={{ sm: 2, md: 3, lg: 5 }}
excludeCircles={['External']}
isDark={false}
classes={{
container: "max-w-7xl mx-auto"
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
subtitlestringUntertitel-
taglinestringTagline über dem Titel-
groupBy'location' | 'position' | 'circle'Gruppierungsfeld'location'
showPositionbooleanPosition der Mitarbeiter anzeigenfalse
showCertificatesbooleanZertifikate unter Mitgliedern anzeigenfalse
gridColsobjectGrid-Layout Konfiguration{sm: 2, md: 3, lg: 5}
excludeCirclesstring[]Circles die ausgeschlossen werden sollen['External']
isDarkbooleanDunkles Designfalse
widthstringMax-Breite des Widgets'lg'
Thinkport — Thinkport

FEATURED CONTENT

Unsere Inhalte

Entdecken Sie unsere Fachartikel, Webinare und Trainings

Weitere Inhalte anzeigen »

Wertvolle Einblicke und Fachwissen

Erhalten Sie eine Einsparstrategie für Ihre Cloud – individuell, schnell und umsetzbar.

TeaserContent

Seiten mit Tags

Die TeaserContent-Komponente zeigt eine Liste von Seiten, Blog-Posts, Webinaren, Trainings oder Whitepapers an, die mit bestimmten Tags oder Kategorien versehen sind. Sie eignet sich besonders für die Darstellung von thematisch gruppierten Inhalten. Mit excludeIds können bestimmte Inhalte aus der Liste ausgeschlossen werden. Automatische Verlinkung: Der Weitere anzeigen Link zeigt automatisch verlinkte Content-Typ-Wörter an. Blogartikel, Webinare, Trainings und Whitepaper werden zu ihren jeweiligen Übersichtsseiten verlinkt (blog, webinare, trainings, whitepaper). Pages werden nicht verlinkt, da keine Übersichtsseite vorhanden ist. Die Verlinkung erfolgt basierend auf den in contentTypes angegebenen Typen oder automatisch bei all.

Codebeispiel

<TeaserContent
tagline="FEATURED CONTENT"
title="Unsere Inhalte"
subtitle="Entdecken Sie unsere Fachartikel, Webinare und Trainings"
information="Wertvolle Einblicke und Fachwissen"
count={4}
tags={['digital', 'transformation', 'cloud']}
categories={['finance']}
contentTypes={['page', 'post', 'webinar', 'training', 'whitepaper']}
showViewAllLink={true}
excludeIds={['cloud-end-to-end', 'daten-und-ai']}
>
<Fragment slot="bg">
<div class="absolute inset-0 bg-slate-100 dark:bg-slate-900"></div>
</Fragment>
</TeaserContent>

Parameter

BezeichnerTypBeschreibungDefault
taglinestringTagline-Text, der oberhalb des Titels angezeigt wird (typischerweise in Großbuchstaben)-
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
informationstringZusätzliche Informationen-
countnumberMaximale Anzahl der anzuzeigenden Inhalte4
tagsstring[]Liste von Tags zum Filtern der Inhalte[]
categoriesstring[]Liste von Kategorien zum Filtern der Inhalte[]
contentTypesarrayTypen der anzuzeigenden Inhalte (page, post, blog, webinar, training, whitepaper, all)['all']
showViewAllLinkbooleanLink zu allen Inhalten anzeigentrue
excludeIdsstring[]IDs der Inhalte, die aus der Liste ausgeschlossen werden sollen[]
idstringWidget-ID für Anchors-
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}

Fragments

BezeichnerBeschreibungDefault
titleSlot für den Titel
informationSlot für zusätzliche Informationen
bgBenutzerdefinierter Hintergrund (Slot)

Unsere Webinare

Live-Events und On-Demand-Aufzeichnungen

Weitere Webinare anzeigen »

Bleiben Sie auf dem Laufenden mit unseren Webinaren

Nur Webinare

Webinar-Content-Typ

Beispiel für die Verwendung von TeaserContent mit nur Webinaren als Content-Typ.

Codebeispiel

<TeaserContent
title="Unsere Webinare"
subtitle="Live-Events und On-Demand-Aufzeichnungen"
information="Bleiben Sie auf dem Laufenden mit unseren Webinaren"
count={4}
contentTypes={['webinar']}
showViewAllLink={true}
/>

Unsere Blog-Artikel

Neueste Artikel und Insights

Weitere Blogartikel anzeigen »

Bleiben Sie auf dem Laufenden mit unseren neuesten Blog-Artikeln

Blog
Thinkport und Venitus bündeln Ihre Kräfte

Thinkport begrüßt die Venitus Gruppe als Wachstumsinvestor und strategischen Partner Thinkport, ein stark wachsendes Unternehmen im Bereich Public Cloud Consulting und Software…

Blog
Grundlagen von Cloud Computing

Cloud Computing verständlich erklärt: Modelle, Vorteile und Best Practices für Migration, Sicherheit und Kostenoptimierung in modernen IT‑Landschaften.

Nur Blog-Artikel

Blog-Content-Typ

Beispiel für die Verwendung von TeaserContent mit nur Blog-Posts als Content-Typ.

Codebeispiel

<TeaserContent
title="Unsere Blog-Artikel"
subtitle="Neueste Artikel und Insights"
information="Bleiben Sie auf dem Laufenden mit unseren neuesten Blog-Artikeln"
count={4}
contentTypes={['post']}
showViewAllLink={true}
linkUrl="/blog"
/>

Unsere Trainings

Schulungen und Weiterbildungen

Weitere Trainings anzeigen »

Entdecken Sie unsere Trainingsangebote

Training
AWS Cloud Practitioner

Grundlagen von Amazon Web Services (AWS), Architektur, Sicherheitsprinzipien und Abrechnung.

Nur Trainings

Training-Content-Typ

Beispiel für die Verwendung von TeaserContent mit nur Trainings als Content-Typ.

Codebeispiel

<TeaserContent
title="Unsere Trainings"
subtitle="Schulungen und Weiterbildungen"
information="Entdecken Sie unsere Trainingsangebote"
count={4}
contentTypes={['training']}
showViewAllLink={true}
/>

Unsere Whitepaper

Fachartikel und Best Practices

Weitere Whitepaper anzeigen »

Entdecken Sie unsere Whitepaper

Whitepaper
So führen LLMs in der Finanzbranche zum Wettbewerbsvorteil

Insbesondere in der Finanzbranche liegt sehr viel ungenutztes Potenzial in Textdokumenten. Large Language Models (LLMs) können Unternehmen dabei helfen, den Wert dieser Informationen zu nutzen und so einen Wettbewerbsvorteil zu erreichen.

Nur Whitepaper

Whitepaper-Content-Typ

Beispiel für die Verwendung von TeaserContent mit nur Whitepapers als Content-Typ.

Codebeispiel

<TeaserContent
title="Unsere Whitepaper"
subtitle="Fachartikel und Best Practices"
information="Entdecken Sie unsere Whitepaper"
count={4}
contentTypes={['whitepaper']}
showViewAllLink={true}
/>

Alle Inhalte

Seiten, Blog-Posts, Webinare und Trainings

Weitere Blogartikel, Webinare, Trainings und Whitepaper anzeigen »

Eine Übersicht über alle verfügbaren Inhalte

Gemischte Inhalte

Alle Content-Typen

Beispiel für die Verwendung von TeaserContent mit mehreren Content-Typen gleichzeitig.

Codebeispiel

<TeaserContent
title="Alle Inhalte"
subtitle="Seiten, Blog-Posts, Webinare und Trainings"
information="Eine Übersicht über alle verfügbaren Inhalte"
count={6}
contentTypes={['page', 'post', 'webinar', 'training', 'whitepaper']}
showViewAllLink={true}
/>

FEATURED CONTENT

Unsere Highlights

Die besten Inhalte aus unserem Portfolio

Weitere Blogartikel und Webinare anzeigen »

Entdecken Sie unsere ausgewählten Inhalte

Mit Tagline

Tagline-Unterstützung

Beispiel für die Verwendung von TeaserContent mit einer Tagline oberhalb des Titels.

Codebeispiel

<TeaserContent
tagline="FEATURED CONTENT"
title="Unsere Highlights"
subtitle="Die besten Inhalte aus unserem Portfolio"
information="Entdecken Sie unsere ausgewählten Inhalte"
count={4}
contentTypes={['post', 'webinar']}
showViewAllLink={true}
/>
Thinkport — Thinkport

Kompetenzen und Lösungen

Unsere Expert:innen entwickeln ganzheitliche Strategien und Lösungen

Entdecken Sie unsere Kernkompetenzen

Von der Strategie bis zum Betrieb: sichere, skalierbare Cloud-Architekturen mit allen Hyperscalern.

Erhalten Sie eine Einsparstrategie für Ihre Cloud – individuell, schnell und umsetzbar.

TeaserContentHighlighted

Hervorgehobene Seiten

Die TeaserContentHighlighted-Komponente zeigt spezifische Seiten basierend auf übergebenen URLs an. Sie eignet sich besonders für die Hervorhebung wichtiger oder thematisch zusammenhängender Seiten.

Codebeispiel

<TeaserContentHighlighted
title="Kompetenzen und Lösungen"
subtitle="Unsere Expert:innen entwickeln ganzheitliche Strategien und Lösungen"
information="Entdecken Sie unsere Kernkompetenzen"
pageUrls={[ 'cloud-end-to-end', 'daten-und-ai', 'exitready-360', 'we-save-your-money' ]}
isDark={false}
classes={{ container: "max-w-6xl mx-auto" }}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
subtitlestringUntertitel der Komponente-
informationstringZusätzliche Informationen-
pageUrlsstring[]Liste von Seiten-URLs, die angezeigt werden sollen[]
isDarkbooleanDunkles Designfalse
classesobjectZusätzliche CSS-Klassen{}

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
Thinkport — Thinkport

Referenzen

Beispiel Testimonials

John Doe
"Eine fantastische Komponente, die sich perfekt in unser Design einfügt."
John Doe
Product Manager
Jane Smith
"Einfach zu implementieren und sehr flexibel in der Anpassung."
Jane Smith
Lead Developer

TestimonialsSlider

Testimonial Slider

Die TestimonialsSlider-Komponente ermöglicht es, Testimonials in einem automatisch rotierenden Slider zu präsentieren. Die Komponente unterstützt Bilder, Text und Autorendetails und bietet eine intuitive Navigation durch Punkte.

Codebeispiel

<TestimonialsSlider
title="Was unsere Kunden sagen"
tagline="Testimonials"
interval={5000}
isDark={false}
testimonials={[
{
testimonial: "Ein hervorragendes Produkt, das unsere Erwartungen übertroffen hat.",
name: "Max Mustermann",
job: "CEO, Example GmbH",
image: {
src: "~/assets/images/personen/anonymous-male.png",
alt: "Max Mustermann"
}
},
{
testimonial: "Ausgezeichnete Zusammenarbeit und professionelle Umsetzung.",
name: "Erika Musterfrau",
job: "CTO, Sample AG",
image: {
src: "~/assets/images/personen/anonymous-female.png",
alt: "Erika Musterfrau"
}
}
]}
classes={{
container: "max-w-6xl mx-auto",
title: "text-center"
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringTitel der Komponente-
taglinestringTagline über dem Titel-
testimonialsarrayArray von Testimonial-Objekten mit testimonial (Text), name, job und image (src & alt)[]
intervalnumberZeitintervall in Millisekunden zwischen Slide-Wechseln5000
isDarkbooleanAktiviert das dunkle Designfalse
classesobjectZusätzliche CSS-Klassen für Container und Titel{}

Testimonials

Kundenstimmen

Thomas Schmidt
"Hervorragende Zusammenarbeit und schnelle Umsetzung."
Thomas Schmidt
Geschäftsführer, Beispiel AG
Maria Weber
"Professionelle Beratung und exzellente Ergebnisse."
Maria Weber
CTO, Muster GmbH

Standard Slider

Standard-Konfiguration mit hellem Design und Standard-Intervall.

Codebeispiel

<TestimonialsSlider
title="Kundenstimmen"
tagline="Testimonials"
testimonials={[
{
testimonial: "Hervorragende Zusammenarbeit und schnelle Umsetzung.",
name: "Thomas Schmidt",
job: "Geschäftsführer, Beispiel AG",
image: {
src: "~/assets/images/personen/anonymous-male.png",
alt: "Thomas Schmidt"
}
},
{
testimonial: "Professionelle Beratung und exzellente Ergebnisse.",
name: "Maria Weber",
job: "CTO, Muster GmbH",
image: {
src: "~/assets/images/personen/anonymous-female.png",
alt: "Maria Weber"
}
}
]}
/>

Testimonials

Kundenstimmen

Thomas Schmidt
"Hervorragende Zusammenarbeit und schnelle Umsetzung."
Thomas Schmidt
Geschäftsführer, Beispiel AG
Maria Weber
"Professionelle Beratung und exzellente Ergebnisse."
Maria Weber
CTO, Muster GmbH

Dunkles Design

Slider mit aktiviertem dunklem Design für dunkle Hintergründe.

Codebeispiel

<TestimonialsSlider
title="Kundenstimmen"
tagline="Testimonials"
testimonials={testimonials}
isDark={true}
/>

Testimonials

Kundenstimmen

Thomas Schmidt
"Hervorragende Zusammenarbeit und schnelle Umsetzung."
Thomas Schmidt
Geschäftsführer, Beispiel AG
Maria Weber
"Professionelle Beratung und exzellente Ergebnisse."
Maria Weber
CTO, Muster GmbH

Angepasstes Intervall

Slider mit längerem Intervall (7 Sekunden) für längere Lesezeiten.

Codebeispiel

<TestimonialsSlider
title="Kundenstimmen"
tagline="Testimonials"
testimonials={testimonials}
interval={7000}
/>
Thinkport — Thinkport

Lorem ipsum

Lorem ipsum dolor sit

Amet, consetetur sadipscing elitr

" Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat. "


Lorem ipsum

Lorem ipsum

Dolor sit amet

" Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. "


Consetetur sadipscing

Consetetur sadipscing

Elitr, sed diam

" At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. "


At vero eos

At vero eos

Et accusam et justo

Testimonials

Kundenstimmen

Die Testimonials-Komponente zeigt Kundenbewertungen und Erfahrungsberichte in einem ansprechenden Layout an. Die Testimonial-Cards haben einen halbtransparenten weißen Hintergrund im Light Mode, um sich farblich abzuheben.

Codebeispiel

<Testimonials
title="Lorem ipsum dolor sit"
subtitle="Amet, consetetur sadipscing elitr"
tagline="Lorem ipsum"
callToAction={{ text: 'Lorem ipsum', href: '/' }}
testimonials={[
{
testimonial: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.',
name: 'Lorem ipsum',
job: 'Dolor sit amet',
image: { src: '~/assets/images/default.png', alt: 'Lorem ipsum' }
},
{
testimonial: 'Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
name: 'Consetetur sadipscing',
job: 'Elitr, sed diam',
image: { src: '~/assets/images/default.png', alt: 'Consetetur sadipscing' }
},
{
testimonial: 'At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.',
name: 'At vero eos',
job: 'Et accusam et justo',
image: { src: '~/assets/images/default.png', alt: 'At vero eos' }
}
]}
>
<Fragment slot="bg">
<div class="absolute inset-0 bg-slate-100 dark:bg-slate-900"></div>
</Fragment>
</Testimonials>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
subtitlestringUntertitel-
taglinestringTagline über dem Titel-
callToActionobjectCall-to-Action Button-
testimonialsarrayListe der Testimonials[]
countnumberAnzahl der anzuzeigenden Testimonials3
idstringWidget-ID für Anchors-
isDarkbooleanDunkles Theme aktivierenfalse
classesobjectCSS-Klassen-Overrides{}

Fragments

BezeichnerBeschreibungDefault
defaultStandardinhalt
bgBenutzerdefinierter Hintergrund (Slot)
Thinkport — Thinkport

Example Tagline

TextGrid Title

This is a subtitle for the TextGrid component.

This is some example content for the TextGrid component. The text will automatically be split into columns on large screens. You can use HTML inside the slot.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum. Cras venenatis euismod malesuada. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Sed posuere consectetur est at lobortis. Pellentesque ornare sem lacinia quam venenatis vestibulum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vestibulum id ligula porta felis euismod semper. Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Sed posuere consectetur est at lobortis. Pellentesque ornare sem lacinia quam venenatis vestibulum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vestibulum id ligula porta felis euismod semper. Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur.

Example Tagline

TextGrid Title

This is a subtitle for the TextGrid component.

This is some example content for the TextGrid component. The text will automatically be split into columns on large screens. You can use HTML inside the slot.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum. Cras venenatis euismod malesuada. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Sed posuere consectetur est at lobortis. Pellentesque ornare sem lacinia quam venenatis vestibulum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vestibulum id ligula porta felis euismod semper. Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Sed posuere consectetur est at lobortis. Pellentesque ornare sem lacinia quam venenatis vestibulum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vestibulum id ligula porta felis euismod semper. Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur.

TextGrid Basic

Two columns with simple text

A simple example with a title, subtitle, tagline and two columns.

Codebeispiel

<TextGrid
tagline="Example Tagline"
title="TextGrid Title"
subtitle="This is a subtitle for the TextGrid component."
count={2}
>
<p>
This is some example content for the TextGrid component. The text will automatically be split into columns on large screens. You can use <strong>HTML</strong> inside the slot.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum. Cras venenatis euismod malesuada. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Sed posuere consectetur est at lobortis. Pellentesque ornare sem lacinia quam venenatis vestibulum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vestibulum id ligula porta felis euismod semper. Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Sed posuere consectetur est at lobortis. Pellentesque ornare sem lacinia quam venenatis vestibulum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vestibulum id ligula porta felis euismod semper. Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur.</p>
</TextGrid>

Three Columns with List

Features

Why use TextGrid?

Advantages of the component

  • Easy to use with slots
  • Responsive column layout
  • Supports HTML content
  • Customizable headings
  • Dark mode support

TextGrid with List

Three columns and a list

A TextGrid example with three columns and a list as slot content.

Codebeispiel

<TextGrid
tagline="Features"
title="Why use TextGrid?"
subtitle="Advantages of the component"
count={3}
>
<ul>
<li>Easy to use with slots</li>
<li>Responsive column layout</li>
<li>Supports HTML content</li>
<li>Customizable headings</li>
<li>Dark mode support</li>
</ul>
</TextGrid>

Four Columns with Mixed Content

Mixed Content Example

  1. First item
  2. Second item
  3. Third item
  4. Fourth item
  5. Fifth item
  6. Sixth item

You can add any valid HTML here, including links, bold text, and more.

TextGrid with Mixed Content

Four columns with list and paragraph

A TextGrid example with four columns, an ordered list and a paragraph.

Codebeispiel

<TextGrid
title="Mixed Content Example"
count={4}
>
<ol>
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
<li>Fourth item</li>
<li>Fifth item</li>
<li>Sixth item</li>
</ol>
<p>
You can add any valid HTML here, including <a href="#">links</a>, <strong>bold text</strong>, and more.
</p>
</TextGrid>
Thinkport — Thinkport

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Lorem ipsum dolor sit

Amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

VideoEmbed

Einzelnes Video mit Text

Die VideoEmbed-Komponente zeigt ein YouTube-Video mit begleitendem Text in einem zweispaltigen Layout an. Sie unterstützt YouTube URLs und bietet flexible Positionierungsoptionen.

Codebeispiel

<VideoEmbed
url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
title="Lorem ipsum dolor sit"
subtitle="Amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum."
sectionTitle="Lorem ipsum"
sectionSubtitle="Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
thumbnailPosition="left"
classes={{
container: "max-w-7xl mx-auto",
video: "rounded-lg shadow-xl",
content: "prose prose-lg"
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
urlstringYouTube Video-ID oder URL-
titlestringTitel des Videos-
subtitlestringUntertitel/Beschreibung-
sectionTitlestringÜberschrift über dem Video-
sectionSubtitlestringUnterüberschrift über dem Video-
thumbnailPosition'left' | 'right'Position des Videos (links oder rechts)'left'
classesobjectCSS-Klassen-Overrides{}

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

VideoEmbed - Video rechts

Alternative Positionierung

Das Video kann auch rechts vom Text positioniert werden.

Codebeispiel

<VideoEmbed
url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
thumbnailPosition="right"
/>
Thinkport — Thinkport

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Lorem ipsum dolor sit

Amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Consetetur sadipscing elitr

Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Sed diam nonumy eirmod

Tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Ut labore et dolore

Magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Stet clita kasd

Gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet, consetetur sadipscing elitr.

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

At vero eos

Et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.

VideoGallery

Mehrere Videos im Grid

Die VideoGallery-Komponente zeigt mehrere Videos in einem responsiven Grid an. Sie unterstützt 1-3 Spalten und ist ideal für Video-Sammlungen.

Codebeispiel

<VideoGallery
title="Lorem ipsum dolor"
subtitle="Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
columns={3}
videos={[
{
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
title: "Lorem ipsum dolor sit",
subtitle: "Amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."
},
{
url: "https://www.youtube.com/watch?v=abc123",
title: "Consetetur sadipscing elitr",
subtitle: "Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
},
{
url: "https://www.youtube.com/watch?v=xyz789",
title: "Sed diam nonumy eirmod",
subtitle: "Tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam."
}
]}
classes={{
container: "max-w-7xl mx-auto",
grid: "gap-6"
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift-
subtitlestringUnterüberschrift-
videosVideoItem[]Array von Video-Objekten mit url, title, subtitle[]
columns1 | 2 | 3Anzahl der Spalten im Grid2
classesobjectCSS-Klassen-Overrides{}

Lorem ipsum

Dolor sit amet, consetetur sadipscing elitr

Video wird nach Cookie-Zustimmung geladen

Bitte „YouTube Video“ in den Cookie-Einstellungen aktivieren.

Lorem ipsum dolor

Sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

VideoGallery - Einspaltig

Große Videos in einer Spalte

Für größere Videos oder weniger Inhalt kann ein einspaltiges Layout verwendet werden.

Codebeispiel

<VideoGallery
title="Lorem ipsum"
subtitle="Dolor sit amet, consetetur sadipscing elitr"
videos={videos}
columns={1}
/>
Thinkport — Thinkport

WebinarHighlightedPosts

Hervorgehobene Webinare

Die WebinarHighlightedPosts-Komponente zeigt hervorgehobene Webinare aus der Webinar-Datenquelle an. Die Komponente liest Webinare aus webinars.json und zeigt die ersten count Einträge an, sortiert nach Datum (Live-Events zuerst).

Codebeispiel

<WebinarHighlightedPosts
id="featured-webinars"
title="Empfohlene Webinare"
subtitle="Ausgewählte Webinare für Sie – Lernen Sie von unseren Experten"
tagline="Webinare"
count={6}
excludeIds={["webinar-1", "old-webinar"]}
isDark={false}
classes={{
container: "max-w-7xl mx-auto"
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift (Slot)-
subtitlestringUnterüberschrift (Slot)-
taglinestringKleine Überschrift über dem Titel-
countnumberAnzahl der anzuzeigenden Webinare3
excludeIdsstring[]IDs von Webinaren die ausgeschlossen werden sollen[]
idstringWidget-ID für Anchors-
isDarkbooleanDunkles Designfalse
classesobjectCSS-Klassen-Overrides{}

Fragments

BezeichnerBeschreibungDefault
titleSlot für den Titel
subtitleSlot für den Untertitel
Thinkport — Thinkport

Webinare

Neueste Webinare

Aktuelle Webinare für Sie – Bleiben Sie auf dem Laufenden

On-Demand Empfohlen

Cloud-Alternativen aus Europa in 5 Schritten bewerten und einbinden

60 Minuten
Cloud-Architektur Souveräne Cloud
2 Speaker
Portrait von Julia Pergande
Julia Pergande
Portrait von Philipp Dangelo
Philipp Dangelo
On-Demand

Mit Exoscale und Solace

60 Minuten
Exoscale Solace Souveräne Cloud +1 weitere
2 Speaker
Portrait von Alexander Martens
Alexander Martens
Portrait von Wolfgang Brueckner
Wolfgang Brueckner
On-Demand

Von Vision bis Umsetzung mit unserem Partner Birds on Mars

60 Minuten
Birds on Mars Responsible AI Digitale Souveränität +2 weitere
3 Speaker
Portrait von Charlotte Kaiser
Charlotte Kaiser
Portrait von Florian Dohmann
Florian Dohmann
Portrait von Julius Taylor
Julius Taylor

WebinarLatestPosts

Neueste Webinare

Die WebinarLatestPosts-Komponente zeigt die neuesten Webinare aus der Webinar-Datenquelle an. Die Komponente sortiert sie mit Live-Events zuerst, dann nach Datum (neueste zuerst).

Codebeispiel

<WebinarLatestPosts
id="latest-webinars"
title="Neueste Webinare"
subtitle="Aktuelle Webinare für Sie – Bleiben Sie auf dem Laufenden"
tagline="Webinare"
count={6}
includeIds={["1", "2", "3"]}
excludeIds={["past-webinar-1"]}
isDark={false}
classes={{
container: "max-w-7xl mx-auto"
}}
>
<Fragment slot="bg">
<div class="absolute inset-0 bg-slate-100 dark:bg-slate-900"></div>
</Fragment>
</WebinarLatestPosts>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschrift (Prop oder Slot)"Aktuelle Webinare"
subtitlestringUnterüberschrift (Prop oder Slot)"Entdecken Sie unsere neuesten Webinare..."
taglinestringKleine Überschrift über dem Titel"Neueste Webinare"
countnumberAnzahl der anzuzeigenden Webinare3
includeIdsstring[]IDs von Webinaren die explizit angezeigt werden sollen (hat Vorrang vor excludeIds)[]
excludeIdsstring[]IDs von Webinaren die ausgeschlossen werden sollen[]
idstringWidget-ID für Anchors-
isDarkbooleanDunkles Designfalse
classesobjectCSS-Klassen-Overrides (container: Überschreibt Container-Klasse der Headline){}

Fragments

BezeichnerBeschreibungDefault
titleSlot für den Titel
subtitleSlot für den Untertitel
bgBenutzerdefinierter Hintergrund (Slot)
Thinkport — Thinkport

Webinar-Übersicht

Format & Details

Dauer

60 Minuten

Format

Live & On-Demand

Status

On-Demand

In diesem Webinar lernen Sie die Grundlagen des Cloud Computing kennen und erhalten praktische Tipps für die Umsetzung. Wir zeigen Ihnen Best Practices für die Migration Ihrer Anwendungen in die Cloud und geben Ihnen Einblicke in moderne Architektur-Patterns.

WebinarOverview

Webinar-Details Übersicht

Die WebinarOverview-Komponente zeigt eine Übersicht über Webinar-Details wie Dauer, Format und Status an. Das Widget verwendet intern Features3 zur Darstellung der Details.

Codebeispiel

<WebinarOverview
id="webinar-details"
duration="60 Minuten"
format="Live & On-Demand"
liveDate="2024-12-15"
liveTime="14:00"
description="In diesem Webinar lernen Sie die Grundlagen des Cloud Computing kennen und erhalten praktische Tipps für die Umsetzung. Wir zeigen Ihnen Best Practices für die Migration Ihrer Anwendungen in die Cloud und geben Ihnen Einblicke in moderne Architektur-Patterns."
isDark={false}
classes={{
container: "max-w-6xl mx-auto"
}}
/>

Parameter

BezeichnerTypBeschreibungDefault
durationstringDauer des Webinars-
formatstringFormat des Webinars-
liveDatestringDatum des Live-Events (ISO-Format)-
liveTimestringUhrzeit des Live-Events-
descriptionstringBeschreibung des Webinars-
idstringWidget-ID für Anchors-
isDarkbooleanDunkles Designfalse
classesobjectCSS-Klassen-Overrides{}
Thinkport — Thinkport

Die WhitepaperRequest-Komponente zeigt ein Widget mit Whitepaper-Anfrageformular. In diesem Demo wird sie ohne echte Daten angezeigt.

WhitepaperRequest

Whitepaper-Anfrage Widget

Die WhitepaperRequest-Komponente zeigt ein Widget mit Headline und Whitepaper-Anfrageformular an. Sie kombiniert Headline und FormWhitepaperRequest.

Codebeispiel

<WhitepaperRequest
title="Whitepaper anfordern"
subtitle="Laden Sie unser kostenloses Whitepaper herunter"
tagline="Download"
whitepaperSlug="cloud-architecture-guide"
formName="whitepaper-request"
button="Jetzt herunterladen"
description="Füllen Sie das Formular aus, um Zugang zu erhalten."
disclaimer={{ label: 'Ich stimme der Verarbeitung meiner Daten zu.' }}
id="whitepaper-request"
isDark={false}
/>

Parameter

BezeichnerTypBeschreibungDefault
titlestringHauptüberschriftSlot
subtitlestringUntertitelSlot
taglinestringTaglineSlot
whitepaperSlugstringSlug-Identifier des Whitepapers (erforderlich)-
formNamestringName des Formulars-
buttonstringButton-Text-
descriptionstringBeschreibung-
disclaimerobjectDisclaimer-Objekt-
idstringWidget-ID-
isDarkbooleanDunkles Themefalse
classesobjectCSS-Klassen-Overrides{}
bgstringHintergrund-HTML (Slot)-
actionstringFormular-Action-URL-