feat: remplace le sprite SVG OKI par les icônes Lucide

- Ajoute @lucide/svelte et le composant Icon avec son mapping
- Adapte chaque icône au sens du texte (flag, unlock, handshake, shield,
  landmark, briefcase, music, clapperboard, mic, file-text, etc.)
- Remplace tous les <use href='/icons.svg#...'> par <Icon name='...' />
- Met à jour BrandIcon pour utiliser Lucide Mail
- Supprime static/icons.svg devenu inutile
- Ajuste les styles scoped avec :global() pour cibler les SVG Lucide
- Met à jour README.md et CONTRIBUTING.md
This commit is contained in:
2026-08-09 09:07:53 +04:00
parent 4d1885b543
commit ace58186c0
25 changed files with 180 additions and 169 deletions
@@ -1,4 +1,5 @@
<script lang="ts">
import Icon from '$lib/components/icons/Icon.svelte';
import FlagChip from '$lib/components/motion/FlagChip.svelte';
import KineticText from '$lib/components/motion/KineticText.svelte';
import type { Bundle, Locale } from '$lib/i18n';
@@ -23,9 +24,7 @@
{#each t.engagement.cards as card, i (card.title)}
<div class="engagement-card" use:reveal={i}>
<div class="engagement-icon reveal-pop" use:reveal={i + 1}>
<svg class="icon" aria-hidden="true"
><use href="/icons.svg#{pictoFor(card.icon)}" /></svg
>
<Icon name={pictoFor(card.icon)} class="icon" />
</div>
<h3>{card.title}</h3>
<p>{card.text}</p>
@@ -77,7 +76,7 @@
margin-bottom: 1rem;
}
.engagement-icon .icon {
.engagement-icon :global(.icon) {
width: 2.25rem;
height: 2.25rem;
}