From 20bd37ecbaa7f10a9bce6214ce7861c5f1b93862 Mon Sep 17 00:00:00 2001 From: Giuseppe Criscione <18699708+giuscris@users.noreply.github.com> Date: Sat, 15 Nov 2025 11:02:02 +0100 Subject: [PATCH] Add icons to panel navigation --- formwork/src/Panel/Navigation/NavigationItem.php | 8 ++++++++ panel/assets/icons/svg/chart-line.svg | 1 + panel/assets/icons/svg/files.svg | 1 + panel/assets/icons/svg/gear.svg | 1 + panel/assets/icons/svg/home.svg | 2 +- panel/assets/icons/svg/page-home.svg | 2 +- panel/assets/icons/svg/pages.svg | 1 + panel/assets/icons/svg/toolbox.svg | 1 + panel/assets/icons/svg/users.svg | 1 + panel/config/navigation.php | 7 +++++++ panel/src/scss/components/_sidebar.scss | 6 +++++- panel/views/dashboard/index.php | 3 ++- panel/views/files/index.php | 1 + panel/views/options/site.php | 1 + panel/views/options/system.php | 1 + panel/views/pages/index.php | 3 ++- panel/views/partials/sidebar.php | 3 +++ panel/views/statistics/index.php | 3 ++- panel/views/tools/backups.php | 3 ++- panel/views/tools/info.php | 3 ++- panel/views/tools/updates.php | 3 ++- panel/views/users/index.php | 3 ++- panel/views/users/profile.php | 3 ++- 23 files changed, 50 insertions(+), 11 deletions(-) create mode 100644 panel/assets/icons/svg/chart-line.svg create mode 100644 panel/assets/icons/svg/files.svg create mode 100644 panel/assets/icons/svg/gear.svg create mode 100644 panel/assets/icons/svg/pages.svg create mode 100644 panel/assets/icons/svg/toolbox.svg create mode 100644 panel/assets/icons/svg/users.svg diff --git a/formwork/src/Panel/Navigation/NavigationItem.php b/formwork/src/Panel/Navigation/NavigationItem.php index d7d1cfae6..5b35e8406 100644 --- a/formwork/src/Panel/Navigation/NavigationItem.php +++ b/formwork/src/Panel/Navigation/NavigationItem.php @@ -56,4 +56,12 @@ public function badge(): ?string { return $this->data['badge'] ?? null; } + + /** + * Get navigation item icon + */ + public function icon(): ?string + { + return $this->data['icon'] ?? null; + } } diff --git a/panel/assets/icons/svg/chart-line.svg b/panel/assets/icons/svg/chart-line.svg new file mode 100644 index 000000000..1b137d57e --- /dev/null +++ b/panel/assets/icons/svg/chart-line.svg @@ -0,0 +1 @@ + diff --git a/panel/assets/icons/svg/files.svg b/panel/assets/icons/svg/files.svg new file mode 100644 index 000000000..e154d8ca4 --- /dev/null +++ b/panel/assets/icons/svg/files.svg @@ -0,0 +1 @@ + diff --git a/panel/assets/icons/svg/gear.svg b/panel/assets/icons/svg/gear.svg new file mode 100644 index 000000000..626a7513b --- /dev/null +++ b/panel/assets/icons/svg/gear.svg @@ -0,0 +1 @@ + diff --git a/panel/assets/icons/svg/home.svg b/panel/assets/icons/svg/home.svg index 51b0250ad..6501a7385 100644 --- a/panel/assets/icons/svg/home.svg +++ b/panel/assets/icons/svg/home.svg @@ -1 +1 @@ - + diff --git a/panel/assets/icons/svg/page-home.svg b/panel/assets/icons/svg/page-home.svg index 17a081a2f..e9261d07a 100644 --- a/panel/assets/icons/svg/page-home.svg +++ b/panel/assets/icons/svg/page-home.svg @@ -1 +1 @@ - + diff --git a/panel/assets/icons/svg/pages.svg b/panel/assets/icons/svg/pages.svg new file mode 100644 index 000000000..24a731d73 --- /dev/null +++ b/panel/assets/icons/svg/pages.svg @@ -0,0 +1 @@ + diff --git a/panel/assets/icons/svg/toolbox.svg b/panel/assets/icons/svg/toolbox.svg new file mode 100644 index 000000000..e15d1e88a --- /dev/null +++ b/panel/assets/icons/svg/toolbox.svg @@ -0,0 +1 @@ + diff --git a/panel/assets/icons/svg/users.svg b/panel/assets/icons/svg/users.svg new file mode 100644 index 000000000..ee8c80a27 --- /dev/null +++ b/panel/assets/icons/svg/users.svg @@ -0,0 +1 @@ + diff --git a/panel/config/navigation.php b/panel/config/navigation.php index b8541ab1f..0bcc07708 100644 --- a/panel/config/navigation.php +++ b/panel/config/navigation.php @@ -9,42 +9,49 @@ 'uri' => '/dashboard/', 'permissions' => 'panel.dashboard', 'badge' => null, + 'icon' => 'home', ], 'pages' => [ 'label' => $translation->translate('panel.pages.pages'), 'uri' => '/pages/', 'permissions' => 'panel.pages', 'badge' => $site->descendants()->count(), + 'icon' => 'pages', ], 'files' => [ 'label' => $translation->translate('panel.files.files'), 'uri' => '/files/', 'permissions' => 'panel.files', 'badge' => null, + 'icon' => 'files', ], 'statistics' => [ 'label' => $translation->translate('panel.statistics.statistics'), 'uri' => '/statistics/', 'permissions' => 'panel.statistics', 'badge' => null, + 'icon' => 'chart-line', ], 'users' => [ 'label' => $translation->translate('panel.users.users'), 'uri' => '/users/', 'permissions' => 'panel.users', 'badge' => $site->users()->count(), + 'icon' => 'users', ], 'options' => [ 'label' => $translation->translate('panel.options.options'), 'uri' => '/options/', 'permissions' => 'panel.options', 'badge' => null, + 'icon' => 'gear', ], 'tools' => [ 'label' => $translation->translate('panel.tools.tools'), 'uri' => '/tools/', 'permissions' => 'panel.tools', 'badge' => null, + 'icon' => 'toolbox', ], 'logout' => [ 'label' => $translation->translate('panel.login.logout'), diff --git a/panel/src/scss/components/_sidebar.scss b/panel/src/scss/components/_sidebar.scss index b35269aab..6e285c07d 100644 --- a/panel/src/scss/components/_sidebar.scss +++ b/panel/src/scss/components/_sidebar.scss @@ -52,7 +52,7 @@ .sidebar-navigation > li { position: relative; padding: 0.25rem 0; - padding-left: 1rem; + padding-left: 0.75rem; margin: 0; margin-bottom: 0.5rem; } @@ -61,6 +61,10 @@ color: var(--color-base-100); } +.sidebar-navigation > li .icon { + margin-right: 0.375rem; +} + .sidebar-navigation > .active { font-weight: 600; } diff --git a/panel/views/dashboard/index.php b/panel/views/dashboard/index.php index 6eb1433b5..6f726db31 100644 --- a/panel/views/dashboard/index.php +++ b/panel/views/dashboard/index.php @@ -2,6 +2,7 @@
Formwork = $currentVersion ?> = $this->translate('panel.updates.latestVersionAvailable') ?>