From c15a6ceff159aabf61eeef305a011d5faa1d0f36 Mon Sep 17 00:00:00 2001 From: unkn0wn Date: Wed, 24 Jun 2026 06:46:29 +0200 Subject: [PATCH] refactor: replace icon imports with Lucide icons across components --- src/components/Avatar/avatar.astro | 4 +- src/components/Modal/modal.astro | 4 +- .../Notifications/notification.astro | 4 +- src/components/Select/select.astro | 6 +- .../numericStepper/numericStepper.astro | 6 +- src/pages/index.astro | 56 ++++--------------- 6 files changed, 24 insertions(+), 56 deletions(-) diff --git a/src/components/Avatar/avatar.astro b/src/components/Avatar/avatar.astro index 224cbcc..ea2d6cf 100644 --- a/src/components/Avatar/avatar.astro +++ b/src/components/Avatar/avatar.astro @@ -1,5 +1,5 @@ --- -import { ProfileIcon } from '../Icons'; +import { User } from '@lucide/astro'; export interface Props { type: 'photo' | 'initials'; name: string; @@ -18,7 +18,7 @@ const { type, name, image } = Astro.props; onerror="this.style.display='none'; this.nextElementSibling.style.display='flex';" /> ) : ( diff --git a/src/components/Modal/modal.astro b/src/components/Modal/modal.astro index 087a933..b65b4b6 100644 --- a/src/components/Modal/modal.astro +++ b/src/components/Modal/modal.astro @@ -1,5 +1,5 @@ --- -import { CloseIcon } from "../Icons"; +import { XIcon } from '@lucide/astro' export interface Props { id: string; @@ -21,7 +21,7 @@ const hasFooter = Astro.slots.has("footer"); diff --git a/src/components/Notifications/notification.astro b/src/components/Notifications/notification.astro index cee7550..903430d 100644 --- a/src/components/Notifications/notification.astro +++ b/src/components/Notifications/notification.astro @@ -1,5 +1,5 @@ --- -import { CloseIcon } from "../Icons"; +import { XIcon } from '@lucide/astro' export interface Props { type: "info" | "success" | "warning" | "error"; @@ -21,7 +21,7 @@ const { type } = Astro.props; aria-label="Close notification" onclick={`document.getElementById('${notificationUUID}')?.remove()`} > - + diff --git a/src/components/Select/select.astro b/src/components/Select/select.astro index 6f6934d..e7b08fc 100644 --- a/src/components/Select/select.astro +++ b/src/components/Select/select.astro @@ -1,5 +1,5 @@ --- -import Arrow2 from '../Icons/Arrow2/Arrow2.astro'; +import { ChevronLeft, ChevronDown } from '@lucide/astro' export interface Props { default?: string; @@ -23,10 +23,10 @@ const { default: defaultValue, disabled = false, value } = Astro.props; disabled={disabled} > - + - + diff --git a/src/components/numericStepper/numericStepper.astro b/src/components/numericStepper/numericStepper.astro index aba2927..ca68780 100644 --- a/src/components/numericStepper/numericStepper.astro +++ b/src/components/numericStepper/numericStepper.astro @@ -1,6 +1,6 @@ --- import Button from '../Button/button.astro'; -import { MinusIcon, PlusIcon } from '../Icons'; +import { Minus, Plus } from '@lucide/astro' export interface Props { id: string; @@ -24,7 +24,7 @@ const { id, min, max, value = 0, step = 1 } = Astro.props; > @@ -32,7 +32,7 @@ const { id, min, max, value = 0, step = 1 } = Astro.props; diff --git a/src/pages/index.astro b/src/pages/index.astro index a03f0ad..8d478fc 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -31,6 +31,8 @@ import LoadingBar from "../components/LoadingBar/loadingBar.astro"; import Tooltip from "../components/Tooltip/tooltip.astro"; import Modal from "../components/Modal/modal.astro"; +import { Plus, Shield, ListFilter, Download, Ellipsis, LayoutGrid, ChartLine, Settings } from "@lucide/astro"; + import { Arrow2Icon, BinIcon, @@ -327,16 +329,16 @@ const radiusScale = ["xs", "sm", "md", "lg", "xl", "2xl", "full"]; With icon · icon-only
New service Filter
@@ -505,6 +507,8 @@ const radiusScale = ["xs", "sm", "md", "lg", "xl", "2xl", "full"]; /> + @@ -730,16 +734,16 @@ const radiusScale = ["xs", "sm", "md", "lg", "xl", "2xl", "full"];
OverviewOverview MetricsMetrics SecuritySecurity SettingsSettings
@@ -774,23 +778,6 @@ const radiusScale = ["xs", "sm", "md", "lg", "xl", "2xl", "full"];

Icons

-

25 line icons at 16 / 24 / 32 px.

- -
- Arrow2 — orientations × 16 / 24 / 32 -
- { - ([16, 24, 32] as const).map((s) => ( - - - - - - - )) - } -
-
Library — 25 icons at 24px @@ -807,25 +794,6 @@ const radiusScale = ["xs", "sm", "md", "lg", "xl", "2xl", "full"];
- -
- Sizes — 16 / 24 / 32 -
- { - [SearchIcon, SettingsIcon, ShareIcon, DownloadIcon].map( - (Icon) => ( - - <> - - - - - - ), - ) - } -
-