From 3679978d6c3f1e65045f9b2c4e7413b19a657c2c Mon Sep 17 00:00:00 2001 From: Peter Meier Date: Sun, 12 Jul 2026 11:11:48 +0200 Subject: [PATCH] refactor(consolidate): IconButton + Badge-solid + @layer base + Massen-Migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit E: app.css Base-h1–h6 in @layer base → text-*!-Hacks in Titeln entfernt. Neue Atoms: IconButton (runde Icon-Buttons), Badge solid-Variante + uppercase. Migrationen (6 parallele Pässe): - IconButton: 19 runde Nav/Close-Buttons (Carousel, Galleries, QuoteCarousel, PostOverview, Organisations, ImageModal). - Badge: Kategorie/Status-Pills (PostCard, BlogOverview, kalender, Comments, CalendarBlock, FilesBlock, SearchableText, Stellingnahme). - ui-Atome: Formular-Inputs (Comments, termin-melden, Stellingnahme) → TextInput/ Textarea/Checkbox/SearchField; dunkle NewsletterInline bewusst raw. - Button-Atom: ~20 inline Buttons in StellingnahmeGeneratorBlock. - Radius-Sweep: Cards→rounded-lg (viele via .card-surface), Buttons/Inputs→rounded-md, Chips→rounded-full; StrommixBlock/Calendar/Files/Adressbuch u.a. svelte-check 0 errors, voller Prod-Build grün. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/app.css | 7 + src/lib/components/Badge.stories.svelte | 9 +- src/lib/components/Badge.svelte | 41 ++++- src/lib/components/BlogOverview.svelte | 15 +- src/lib/components/Carousel.svelte | 21 +-- src/lib/components/Comments.svelte | 26 ++-- src/lib/components/IconButton.stories.ts | 23 +++ src/lib/components/IconButton.svelte | 56 +++++++ src/lib/components/ImageModal.svelte | 12 +- src/lib/components/InfoCard.svelte | 5 +- src/lib/components/PostCard.svelte | 25 +-- .../components/blocks/AdressbuchBlock.svelte | 20 ++- .../components/blocks/CalendarBlock.svelte | 27 ++-- .../blocks/CalendarCompactBlock.svelte | 4 +- .../components/blocks/ContactFormBlock.svelte | 2 +- src/lib/components/blocks/FilesBlock.svelte | 5 +- .../blocks/ImageGalleryBlock.svelte | 46 +----- .../blocks/OrganisationsBlock.svelte | 19 +-- .../blocks/OrganisationsMapBlock.svelte | 2 +- .../blocks/PostOverviewBlock.svelte | 21 +-- .../blocks/QuoteCarouselBlock.svelte | 21 +-- .../blocks/SearchableTextBlock.svelte | 32 ++-- .../blocks/StellingnahmeGeneratorBlock.svelte | 146 ++++++++---------- .../components/blocks/StrommixBlock.svelte | 28 ++-- .../blocks/YoutubeVideoGalleryBlock.svelte | 46 +----- .../blocks/strommix/NegPriceCounter.svelte | 4 +- .../NewsletterInlineFormComponent.svelte | 2 +- .../kalender/termin/[slug]/+page.svelte | 11 +- src/routes/termin-melden/+page.svelte | 57 ++++--- 29 files changed, 351 insertions(+), 382 deletions(-) create mode 100644 src/lib/components/IconButton.stories.ts create mode 100644 src/lib/components/IconButton.svelte diff --git a/src/app.css b/src/app.css index fd09552..e9a8594 100644 --- a/src/app.css +++ b/src/app.css @@ -194,6 +194,10 @@ main { Erlaubte Gewichte: 300, 400, 500, 600, 700. Inter primary, Lora nur Zitate. ========================================================================== */ +/* @layer base: Element-Defaults liegen unter den Utilities → text-*/font-*- + Utilities auf h1–h6 gewinnen ohne `!`-Hack (vorher unlayered = schlug alles). */ +@layer base { + h1, h2, h3, @@ -264,6 +268,9 @@ h4 { } } +} +/* /@layer base */ + /* Page-Titel (wie www.windwiderstand.de) */ .pageTitle h1 { font-size: 1.5rem; diff --git a/src/lib/components/Badge.stories.svelte b/src/lib/components/Badge.stories.svelte index 11441b6..80cbb72 100644 --- a/src/lib/components/Badge.stories.svelte +++ b/src/lib/components/Badge.stories.svelte @@ -9,8 +9,10 @@ argTypes: { color: { control: 'select', - options: ['green', 'blue', 'amber', 'orange', 'purple', 'teal', 'slate', undefined], + options: ['green', 'blue', 'amber', 'orange', 'purple', 'teal', 'slate', 'fire', 'white', undefined], }, + variant: { control: 'select', options: ['subtle', 'solid'] }, + uppercase: { control: 'boolean' }, }, }); @@ -24,3 +26,8 @@ Ostthüringen Mittelthüringen Nordthüringen + + +Neu +Vergangen +Live diff --git a/src/lib/components/Badge.svelte b/src/lib/components/Badge.svelte index 79b9857..806f584 100644 --- a/src/lib/components/Badge.svelte +++ b/src/lib/components/Badge.svelte @@ -1,17 +1,28 @@ {@render children?.()} diff --git a/src/lib/components/BlogOverview.svelte b/src/lib/components/BlogOverview.svelte index e3a8762..d4a1413 100644 --- a/src/lib/components/BlogOverview.svelte +++ b/src/lib/components/BlogOverview.svelte @@ -330,7 +330,7 @@ {:else}
{t(T.blog_no_results)}
@@ -448,7 +448,7 @@ {@const fp = featuredPost as PostWithImage}
{#if fp._rawImageUrl} @@ -468,12 +468,15 @@ class="h-full w-full object-cover" /> {/if} - Neuester Beitrag - + {#if featuredEvent?.eventDate}
diff --git a/src/lib/components/Carousel.svelte b/src/lib/components/Carousel.svelte index 95c0556..75f5c2c 100644 --- a/src/lib/components/Carousel.svelte +++ b/src/lib/components/Carousel.svelte @@ -1,8 +1,7 @@ + +{#if href && !disabled} +
+ +{:else} + +{/if} diff --git a/src/lib/components/ImageModal.svelte b/src/lib/components/ImageModal.svelte index d2df86b..8a74d51 100644 --- a/src/lib/components/ImageModal.svelte +++ b/src/lib/components/ImageModal.svelte @@ -1,7 +1,6 @@