自定义样式
图标
简介
图标用于整个 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 actionactions::delete-action- Trigger button of a delete actionactions::delete-action.grouped- Trigger button of a grouped delete actionactions::delete-action.modal- Modal of a delete actionactions::detach-action- Trigger button of a detach actionactions::detach-action.modal- Modal of a detach actionactions::dissociate-action- Trigger button of a dissociate actionactions::dissociate-action.modal- Modal of a dissociate actionactions::edit-action- Trigger button of an edit actionactions::edit-action.grouped- Trigger button of a grouped edit actionactions::export-action.grouped- Trigger button of a grouped export actionactions::force-delete-action- Trigger button of a force-delete actionactions::force-delete-action.grouped- Trigger button of a grouped force-delete actionactions::force-delete-action.modal- Modal of a force-delete actionactions::import-action.grouped- Trigger button of a grouped import actionactions::modal.confirmation- Modal of an action that requires confirmationactions::replicate-action- Trigger button of a replicate actionactions::replicate-action.grouped- Trigger button of a grouped replicate actionactions::restore-action- Trigger button of a restore actionactions::restore-action.grouped- Trigger button of a grouped restore actionactions::restore-action.modal- Modal of a restore actionactions::view-action- Trigger button of a view actionactions::view-action.grouped- Trigger button of a grouped view action
表单图标别名
forms::components.builder.actions.clone- Trigger button of a clone action in a builder itemforms::components.builder.actions.collapse- Trigger button of a collapse action in a builder itemforms::components.builder.actions.delete- Trigger button of a delete action in a builder itemforms::components.builder.actions.expand- Trigger button of an expand action in a builder itemforms::components.builder.actions.move-down- Trigger button of a move down action in a builder itemforms::components.builder.actions.move-up- Trigger button of a move up action in a builder itemforms::components.builder.actions.reorder- Trigger button of a reorder action in a builder itemforms::components.checkbox-list.search-field- Search input in a checkbox listforms::components.file-upload.editor.actions.drag-crop- Trigger button of a drag crop action in a file upload editorforms::components.file-upload.editor.actions.drag-move- Trigger button of a drag move action in a file upload editorforms::components.file-upload.editor.actions.flip-horizontal- Trigger button of a flip horizontal action in a file upload editorforms::components.file-upload.editor.actions.flip-vertical- Trigger button of a flip vertical action in a file upload editorforms::components.file-upload.editor.actions.move-down- Trigger button of a move down action in a file upload editorforms::components.file-upload.editor.actions.move-left- Trigger button of a move left action in a file upload editorforms::components.file-upload.editor.actions.move-right- Trigger button of a move right action in a file upload editorforms::components.file-upload.editor.actions.move-up- Trigger button of a move up action in a file upload editorforms::components.file-upload.editor.actions.rotate-left- Trigger button of a rotate left action in a file upload editorforms::components.file-upload.editor.actions.rotate-right- Trigger button of a rotate right action in a file upload editorforms::components.file-upload.editor.actions.zoom-100- Trigger button of a zoom 100 action in a file upload editorforms::components.file-upload.editor.actions.zoom-in- Trigger button of a zoom in action in a file upload editorforms::components.file-upload.editor.actions.zoom-out- Trigger button of a zoom out action in a file upload editorforms::components.key-value.actions.delete- Trigger button of a delete action in a key-value field itemforms::components.key-value.actions.reorder- Trigger button of a reorder action in a key-value field itemforms::components.repeater.actions.clone- Trigger button of a clone action in a repeater itemforms::components.repeater.actions.collapse- Trigger button of a collapse action in a repeater itemforms::components.repeater.actions.delete- Trigger button of a delete action in a repeater itemforms::components.repeater.actions.expand- Trigger button of an expand action in a repeater itemforms::components.repeater.actions.move-down- Trigger button of a move down action in a repeater itemforms::components.repeater.actions.move-up- Trigger button of a move up action in a repeater itemforms::components.repeater.actions.reorder- Trigger button of a reorder action in a repeater itemforms::components.select.actions.create-option- Trigger button of a create option action in a select fieldforms::components.select.actions.edit-option- Trigger button of an edit option action in a select fieldforms::components.text-input.actions.hide-password- Trigger button of a hide password action in a text input fieldforms::components.text-input.actions.show-password- Trigger button of a show password action in a text input fieldforms::components.toggle-buttons.boolean.false- “False” option of aboolean()toggle buttons fieldforms::components.toggle-buttons.boolean.true- “True” option of aboolean()toggle buttons field
信息列表图标别名
infolists::components.icon-entry.false- Falsy state of an icon entryinfolists::components.icon-entry.true- Truthy state of an icon entry
通知图标别名
notifications::database.modal.empty-state- Empty state of the database notifications modalnotifications::notification.close-button- Button to close a notificationnotifications::notification.danger- Danger notificationnotifications::notification.info- Info notificationnotifications::notification.success- Success notificationnotifications::notification.warning- Warning notification
面板图标别名
panels::global-search.field- Global search fieldpanels::pages.dashboard.actions.filter- Trigger button of the dashboard filter actionpanels::pages.dashboard.navigation-item- Dashboard page navigation itempanels::pages.password-reset.request-password-reset.actions.login- Trigger button of the login action on the request password reset pagepanels::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 itempanels::resources.pages.manage-related-records.navigation-item- Resource manage related records page navigation itempanels::resources.pages.view-record.navigation-item- Resource view record page navigation itempanels::sidebar.collapse-button- Button to collapse the sidebarpanels::sidebar.collapse-button.rtl- Button to collapse the sidebar (right-to-left direction)panels::sidebar.expand-button- Button to expand the sidebarpanels::sidebar.expand-button.rtl- Button to expand the sidebar (right-to-left direction)panels::sidebar.group.collapse-button- Collapse button for a sidebar grouppanels::tenant-menu.billing-button- Billing button in the tenant menupanels::tenant-menu.profile-button- Profile button in the tenant menupanels::tenant-menu.registration-button- Registration button in the tenant menupanels::tenant-menu.toggle-button- Button to toggle the tenant menupanels::theme-switcher.light-button- Button to switch to the light theme from the theme switcherpanels::theme-switcher.dark-button- Button to switch to the dark theme from the theme switcherpanels::theme-switcher.system-button- Button to switch to the system theme from the theme switcherpanels::topbar.close-sidebar-button- Button to close the sidebarpanels::topbar.open-sidebar-button- Button to open the sidebarpanels::topbar.group.toggle-button- Toggle button for a topbar grouppanels::topbar.open-database-notifications-button- Button to open the database notifications modalpanels::user-menu.profile-item- Profile item in the user menupanels::user-menu.logout-button- Button in the user menu to log outpanels::widgets.account.logout-button- Button in the account widget to log outpanels::widgets.filament-info.open-documentation-button- Button to open the documentation from the Filament info widgetpanels::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 actiontables::actions.enable-reordering- Trigger button of the enable reordering actiontables::actions.filter- Trigger button of the filter actiontables::actions.group- Trigger button of a group records actiontables::actions.open-bulk-actions- Trigger button of an open bulk actions actiontables::actions.column-manager- Trigger button of the column manager actiontables::columns.collapse-button- Button to collapse a columntables::columns.icon-column.false- Falsy state of an icon columntables::columns.icon-column.true- Truthy state of an icon columntables::empty-state- Empty state icontables::filters.query-builder.constraints.boolean- Default icon for a boolean constraint in the query buildertables::filters.query-builder.constraints.date- Default icon for a date constraint in the query buildertables::filters.query-builder.constraints.number- Default icon for a number constraint in the query buildertables::filters.query-builder.constraints.relationship- Default icon for a relationship constraint in the query buildertables::filters.query-builder.constraints.select- Default icon for a select constraint in the query buildertables::filters.query-builder.constraints.text- Default icon for a text constraint in the query buildertables::filters.remove-all-button- Button to remove all filterstables::grouping.collapse-button- Button to collapse a group of recordstables::header-cell.sort-asc-button- Sort button of a column sorted in ascending ordertables::header-cell.sort-button- Sort button of a column when it is currently not sortedtables::header-cell.sort-desc-button- Sort button of a column sorted in descending ordertables::reorder.handle- Handle to grab in order to reorder a record with drag and droptables::search-field- Search input
UI 组件图标别名
badge.delete-button- Button to delete a badgebreadcrumbs.separator- Separator between breadcrumbsbreadcrumbs.separator.rtl- Separator between breadcrumbs (right-to-left direction)modal.close-button- Button to close a modalpagination.first-button- Button to go to the first pagepagination.first-button.rtl- Button to go to the first page (right-to-left direction)pagination.last-button- Button to go to the last pagepagination.last-button.rtl- Button to go to the last page (right-to-left direction)pagination.next-button- Button to go to the next pagepagination.next-button.rtl- Button to go to the next page (right-to-left direction)pagination.previous-button- Button to go to the previous pagepagination.previous-button.rtl- Button to go to the previous page (right-to-left direction)section.collapse-button- Button to collapse a section
Still need help? Join our Discord community or open a GitHub discussion