NOTE

You are currently viewing the documentation for Filament 4.x, which is a previous version of Filament.

Looking for the current stable version? Visit the 5.x documentation.

自定义样式

图标

简介

图标用于整个 Filament UI 中,直观地传达用户体验的核心部分。要渲染图标,我们使用了 Blade UI 套件的 Blade 图标

他们有一个网站,你可以在那里搜索来自于各个 Blade Icon 包的所有可用的图标。每个包都包含一个不同的图标集,你可以从中进行选择。Filament 默认安装 “Heroicons” 图标集,因此如果你使用此图标集的图标,则不需要安装任何其他软件包。

在 Filament 中使用 Heroicons

Filament 默认引入了 Heroicons 图标集。你可以在 Filament 应用中使用该图标集中的任何图标,而无需安装任何其他额外的包。Heroicon 枚举类允许你使用 IDE 的自动补全功能来查找要使用的图标:

use Filament\Actions\Action;
use Filament\Forms\Components\Toggle;
use Filament\Support\Icons\Heroicon;

Action::make('star')
    ->icon(Heroicon::OutlinedStar)
    
Toggle::make('is_starred')
    ->onIcon(Heroicon::Star)

每个图标都有个 “outlined” 和 “solid” 变体,有 “outlined” 变体名的图标以 Outlined 作为前缀。比如,Heroicon::Star 图标是 solid 变体,而 Heroicon::OutlinedStar 图标则是 outlined 变体。

Heroicon 图标集包含实心(solid)图标的多个尺码(16px, 20px and 24px),当使用 Heroicon 枚举类时,Filament 将在你使用图标的地方自动使用对应的大小。

如果你想在 Blade 组件中使用图标,你可以将其作为属性传入:

@php
    use Filament\Support\Icons\Heroicon;
@endphp

<x-filament::badge :icon="Heroicon::Star">
    Star
</x-filament::badge>

在 Filament 中使用其他图标集

如果你看到了一个想使用的图标,请在 Filament 中安装你想使用的图标库(如果不是 Heroicon),你需要使用其名称。比如,你想使用 iconic-star 图标,你可以将其传入到 PHP 组件的图标方法中:

use Filament\Actions\Action;
use Filament\Forms\Components\Toggle;

Action::make('star')
    ->icon('iconic-star')
    
Toggle::make('is_starred')
    ->onIcon('iconic-check-circle')

如果你想在 Blade 组件中使用图标,你可以将其作为属性传入:

<x-filament::badge icon="iconic-star">
    Star
</x-filament::badge>

使用自定义 SVG 作为图标

Blade 图标包允许你将自定义 SVG 注册成图标。如果你想在 Filament 中使用自定义图标,这很有用。

首先,请先发布 Blade 图标配置文件:

php artisan vendor:publish --tag=blade-icons

然后,打开 config/blade-icons.php 文件,并取消 sets 数组中的 default 设置的注释。

现在配置文件中存在默认设置,你可以将任何想要使用的图标放到应用的 resources/svg 目录中。比如,你将一个名为 star.svg 的 SVG 文件放入 resources/svg 目录中,你可以在 Filment 中的任何地方使用 icon-star 引用它(如下)。icon- 前缀也可以在 config/blade-icons.php 文件中配置。你也可以使用 @svg('icon-star') 指令在 Blade 视图中渲染自定义图标。

use Filament\Actions\Action;

Action::make('star')
    ->icon('icon-star')

替换默认图标

Filament 包含了一个图标管理系统,允许你将任何 UI 默认使用的图标替换成你自己的图标。你可以在任何服务提供者的 boot() 方法中进行设置,比如 AppServiceProvider,甚至可以为图标创建一个专用的服务提供者。如果你想创建一个插件将 Heroicon 图标替换成其他图标库,你可以创建一个 Laravle 包,附上类似的服务提供者来实现。

要替换图标,请使用 FilamentIcon facade。它有一个 register() 方法,该方法接受一个要替换的图标数组。数组的键是唯一的图标别名,用以在 Filament UI 中识别图标;数组值是要替换的 Blade 图标名。此外,你可以使用 HTML 替换图标名来渲染 Blade 视图中的图标,比如:

use Filament\Support\Facades\FilamentIcon;

FilamentIcon::register([
    'panels::topbar.global-search.field' => 'fas-magnifying-glass',
    'panels::sidebar.group.collapse-button' => view('icons.chevron-up'),
]);

可用图标别名

Action 图标别名

  • actions::action-group - Action 分组的触发按钮
  • actions::create-action.grouped - Trigger button of a grouped create action
  • actions::delete-action - Trigger button of a delete action
  • actions::delete-action.grouped - Trigger button of a grouped delete action
  • actions::delete-action.modal - Modal of a delete action
  • actions::detach-action - Trigger button of a detach action
  • actions::detach-action.modal - Modal of a detach action
  • actions::dissociate-action - Trigger button of a dissociate action
  • actions::dissociate-action.modal - Modal of a dissociate action
  • actions::edit-action - Trigger button of an edit action
  • actions::edit-action.grouped - Trigger button of a grouped edit action
  • actions::export-action.grouped - Trigger button of a grouped export action
  • actions::force-delete-action - Trigger button of a force-delete action
  • actions::force-delete-action.grouped - Trigger button of a grouped force-delete action
  • actions::force-delete-action.modal - Modal of a force-delete action
  • actions::import-action.grouped - Trigger button of a grouped import action
  • actions::modal.confirmation - Modal of an action that requires confirmation
  • actions::replicate-action - Trigger button of a replicate action
  • actions::replicate-action.grouped - Trigger button of a grouped replicate action
  • actions::restore-action - Trigger button of a restore action
  • actions::restore-action.grouped - Trigger button of a grouped restore action
  • actions::restore-action.modal - Modal of a restore action
  • actions::view-action - Trigger button of a view action
  • actions::view-action.grouped - Trigger button of a grouped view action

表单图标别名

  • forms::components.builder.actions.clone - Trigger button of a clone action in a builder item
  • forms::components.builder.actions.collapse - Trigger button of a collapse action in a builder item
  • forms::components.builder.actions.delete - Trigger button of a delete action in a builder item
  • forms::components.builder.actions.expand - Trigger button of an expand action in a builder item
  • forms::components.builder.actions.move-down - Trigger button of a move down action in a builder item
  • forms::components.builder.actions.move-up - Trigger button of a move up action in a builder item
  • forms::components.builder.actions.reorder - Trigger button of a reorder action in a builder item
  • forms::components.checkbox-list.search-field - Search input in a checkbox list
  • forms::components.file-upload.editor.actions.drag-crop - Trigger button of a drag crop action in a file upload editor
  • forms::components.file-upload.editor.actions.drag-move - Trigger button of a drag move action in a file upload editor
  • forms::components.file-upload.editor.actions.flip-horizontal - Trigger button of a flip horizontal action in a file upload editor
  • forms::components.file-upload.editor.actions.flip-vertical - Trigger button of a flip vertical action in a file upload editor
  • forms::components.file-upload.editor.actions.move-down - Trigger button of a move down action in a file upload editor
  • forms::components.file-upload.editor.actions.move-left - Trigger button of a move left action in a file upload editor
  • forms::components.file-upload.editor.actions.move-right - Trigger button of a move right action in a file upload editor
  • forms::components.file-upload.editor.actions.move-up - Trigger button of a move up action in a file upload editor
  • forms::components.file-upload.editor.actions.rotate-left - Trigger button of a rotate left action in a file upload editor
  • forms::components.file-upload.editor.actions.rotate-right - Trigger button of a rotate right action in a file upload editor
  • forms::components.file-upload.editor.actions.zoom-100 - Trigger button of a zoom 100 action in a file upload editor
  • forms::components.file-upload.editor.actions.zoom-in - Trigger button of a zoom in action in a file upload editor
  • forms::components.file-upload.editor.actions.zoom-out - Trigger button of a zoom out action in a file upload editor
  • forms::components.key-value.actions.delete - Trigger button of a delete action in a key-value field item
  • forms::components.key-value.actions.reorder - Trigger button of a reorder action in a key-value field item
  • forms::components.repeater.actions.clone - Trigger button of a clone action in a repeater item
  • forms::components.repeater.actions.collapse - Trigger button of a collapse action in a repeater item
  • forms::components.repeater.actions.delete - Trigger button of a delete action in a repeater item
  • forms::components.repeater.actions.expand - Trigger button of an expand action in a repeater item
  • forms::components.repeater.actions.move-down - Trigger button of a move down action in a repeater item
  • forms::components.repeater.actions.move-up - Trigger button of a move up action in a repeater item
  • forms::components.repeater.actions.reorder - Trigger button of a reorder action in a repeater item
  • forms::components.select.actions.create-option - Trigger button of a create option action in a select field
  • forms::components.select.actions.edit-option - Trigger button of an edit option action in a select field
  • forms::components.text-input.actions.hide-password - Trigger button of a hide password action in a text input field
  • forms::components.text-input.actions.show-password - Trigger button of a show password action in a text input field
  • forms::components.toggle-buttons.boolean.false - “False” option of a boolean() toggle buttons field
  • forms::components.toggle-buttons.boolean.true - “True” option of a boolean() toggle buttons field

信息列表图标别名

  • infolists::components.icon-entry.false - Falsy state of an icon entry
  • infolists::components.icon-entry.true - Truthy state of an icon entry

通知图标别名

  • notifications::database.modal.empty-state - Empty state of the database notifications modal
  • notifications::notification.close-button - Button to close a notification
  • notifications::notification.danger - Danger notification
  • notifications::notification.info - Info notification
  • notifications::notification.success - Success notification
  • notifications::notification.warning - Warning notification

面板图标别名

  • panels::global-search.field - Global search field
  • panels::pages.dashboard.actions.filter - Trigger button of the dashboard filter action
  • panels::pages.dashboard.navigation-item - Dashboard page navigation item
  • panels::pages.password-reset.request-password-reset.actions.login - Trigger button of the login action on the request password reset page
  • panels::pages.password-reset.request-password-reset.actions.login.rtl - Trigger button of the login action on the request password reset page (right-to-left direction)
  • panels::resources.pages.edit-record.navigation-item - Resource edit record page navigation item
  • panels::resources.pages.manage-related-records.navigation-item - Resource manage related records page navigation item
  • panels::resources.pages.view-record.navigation-item - Resource view record page navigation item
  • panels::sidebar.collapse-button - Button to collapse the sidebar
  • panels::sidebar.collapse-button.rtl - Button to collapse the sidebar (right-to-left direction)
  • panels::sidebar.expand-button - Button to expand the sidebar
  • panels::sidebar.expand-button.rtl - Button to expand the sidebar (right-to-left direction)
  • panels::sidebar.group.collapse-button - Collapse button for a sidebar group
  • panels::tenant-menu.billing-button - Billing button in the tenant menu
  • panels::tenant-menu.profile-button - Profile button in the tenant menu
  • panels::tenant-menu.registration-button - Registration button in the tenant menu
  • panels::tenant-menu.toggle-button - Button to toggle the tenant menu
  • panels::theme-switcher.light-button - Button to switch to the light theme from the theme switcher
  • panels::theme-switcher.dark-button - Button to switch to the dark theme from the theme switcher
  • panels::theme-switcher.system-button - Button to switch to the system theme from the theme switcher
  • panels::topbar.close-sidebar-button - Button to close the sidebar
  • panels::topbar.open-sidebar-button - Button to open the sidebar
  • panels::topbar.group.toggle-button - Toggle button for a topbar group
  • panels::topbar.open-database-notifications-button - Button to open the database notifications modal
  • panels::user-menu.profile-item - Profile item in the user menu
  • panels::user-menu.logout-button - Button in the user menu to log out
  • panels::widgets.account.logout-button - Button in the account widget to log out
  • panels::widgets.filament-info.open-documentation-button - Button to open the documentation from the Filament info widget
  • panels::widgets.filament-info.open-github-button - Button to open GitHub from the Filament info widget

Schema 图标别名

  • schema::components.wizard.completed-step - Completed step in a wizard

表格图标别名

  • tables::actions.disable-reordering - Trigger button of the disable reordering action
  • tables::actions.enable-reordering - Trigger button of the enable reordering action
  • tables::actions.filter - Trigger button of the filter action
  • tables::actions.group - Trigger button of a group records action
  • tables::actions.open-bulk-actions - Trigger button of an open bulk actions action
  • tables::actions.column-manager - Trigger button of the column manager action
  • tables::columns.collapse-button - Button to collapse a column
  • tables::columns.icon-column.false - Falsy state of an icon column
  • tables::columns.icon-column.true - Truthy state of an icon column
  • tables::empty-state - Empty state icon
  • tables::filters.query-builder.constraints.boolean - Default icon for a boolean constraint in the query builder
  • tables::filters.query-builder.constraints.date - Default icon for a date constraint in the query builder
  • tables::filters.query-builder.constraints.number - Default icon for a number constraint in the query builder
  • tables::filters.query-builder.constraints.relationship - Default icon for a relationship constraint in the query builder
  • tables::filters.query-builder.constraints.select - Default icon for a select constraint in the query builder
  • tables::filters.query-builder.constraints.text - Default icon for a text constraint in the query builder
  • tables::filters.remove-all-button - Button to remove all filters
  • tables::grouping.collapse-button - Button to collapse a group of records
  • tables::header-cell.sort-asc-button - Sort button of a column sorted in ascending order
  • tables::header-cell.sort-button - Sort button of a column when it is currently not sorted
  • tables::header-cell.sort-desc-button - Sort button of a column sorted in descending order
  • tables::reorder.handle - Handle to grab in order to reorder a record with drag and drop
  • tables::search-field - Search input

UI 组件图标别名

  • badge.delete-button - Button to delete a badge
  • breadcrumbs.separator - Separator between breadcrumbs
  • breadcrumbs.separator.rtl - Separator between breadcrumbs (right-to-left direction)
  • modal.close-button - Button to close a modal
  • pagination.first-button - Button to go to the first page
  • pagination.first-button.rtl - Button to go to the first page (right-to-left direction)
  • pagination.last-button - Button to go to the last page
  • pagination.last-button.rtl - Button to go to the last page (right-to-left direction)
  • pagination.next-button - Button to go to the next page
  • pagination.next-button.rtl - Button to go to the next page (right-to-left direction)
  • pagination.previous-button - Button to go to the previous page
  • pagination.previous-button.rtl - Button to go to the previous page (right-to-left direction)
  • section.collapse-button - Button to collapse a section
Edit on GitHub

Still need help? Join our Discord community or open a GitHub discussion

Previous
颜色