feat(header): icon nav redesign + migrate icons mdi→lucide
Deploy / verify (push) Successful in 1m26s
Deploy / deploy (push) Successful in 2m26s

- Header desktop nav: social icons grouped in a wald-tinted pill with
  labels, active-state (aria-current + bold), opacity hover (no per-item bg)
- Mobile overlay: social links as icon+label rows with active-state
- Search button: lucide:search, icon-only
- Migrate all icons mdi→lucide app-wide (234 refs); brand/language logos
  (google, whatsapp, mastodon, telegram, language-*) stay on mdi
- generate-icons: emit mdi + lucide subsets; add @iconify-json/lucide
- iconify-offline: register lucide collection
- scripts/icon-map|validate|apply: reusable migration tooling

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Peter Meier
2026-06-24 10:44:56 +02:00
parent e434ee3620
commit 0ab2c58eb4
46 changed files with 823 additions and 598 deletions
+4 -4
View File
@@ -4024,7 +4024,7 @@ export interface components {
* @default false
*/
external: boolean;
/** @description Icon identifier (e.g. Iconify). Used for social links; fallback 'mdi:link'. */
/** @description Icon identifier (e.g. Iconify). Used for social links; fallback 'lucide:link'. */
icon?: string;
/** @description Internal key. Not used in app. */
internal?: string;
@@ -4065,7 +4065,7 @@ export interface components {
* @default false
*/
external: boolean;
/** @description Icon identifier (e.g. Iconify). Used for social links; fallback 'mdi:link'. */
/** @description Icon identifier (e.g. Iconify). Used for social links; fallback 'lucide:link'. */
icon?: string;
/** @description Internal key. Not used in app. */
internal?: string;
@@ -5400,7 +5400,7 @@ export interface components {
readonly _slug?: string;
/** @description Optional pill color (CSS, e.g. #2d5a27 or rgb()). Admin: color picker + text field. */
color?: string;
/** @description Optional Iconify icon id (e.g. mdi:map-marker, same as link.icon). */
/** @description Optional Iconify icon id (e.g. lucide:map-pin, same as link.icon). */
icon?: string;
/** @description Tag name (e.g. politik, termin). Must be unique. */
name: string;
@@ -5410,7 +5410,7 @@ export interface components {
_slug: string;
/** @description Optional pill color (CSS, e.g. #2d5a27 or rgb()). Admin: color picker + text field. */
color?: string;
/** @description Optional Iconify icon id (e.g. mdi:map-marker, same as link.icon). */
/** @description Optional Iconify icon id (e.g. lucide:map-pin, same as link.icon). */
icon?: string;
/** @description Tag name (e.g. politik, termin). Must be unique. */
name: string;