9ebca1c237d338f75c6ceea6a1e34d37580c4d0d
Two issues from the audit: 1. Hardcoded `lg:col-span-8 lg:col-start-3` collided with the layout coming from `getBlockLayoutClasses(block.layout)`. Tailwind picked `lg:col-start-3` from the hardcoded class (no opposing `lg:col-start-1` in the layout output) so the widget started at column 3 with span 12 → overflowed past the 12-col grid on desktop, looking like it was "hanging right". Drop the hardcoded constraints; the layout config from the CMS controls width (mobile/tablet/desktop = 12 by default = full width). 2. Roughly 25 German strings were inline. Extracted them to translation keys (T.strommix_*, registered in translations.ts) and read via `useTranslate()` like ImageGalleryBlock / PostOverviewBlock / YoutubeVideoBlock. Includes field labels for the breakdown disclosure, source attribution variants, status bucket markers, error / loading / fallback messages, and the conventional formula text shown under the "Konventionell jetzt" number. Default DE strings live in cms_content/windwiderstand/translation_bundle/ app.json5 (separate CMS push).
windwiderstand
Description
Languages
TypeScript
58.9%
Svelte
38.4%
JavaScript
1.4%
CSS
1.1%