From 134e04444ccbf67d2efbb8daa99baae0c343d4b3 Mon Sep 17 00:00:00 2001
From: Oleksandr Kholiavko <43780952+HalavicH@users.noreply.github.com>
Date: Mon, 31 Aug 2026 11:43:50 +0000
Subject: [PATCH] tabular_data_preview: Revive filter funnel icon (#63266)
# Objective
Originally, `IconName::Filter` was a funnel glyph and
`IconName::Sliders` was used for settings/controls.
In #60937 (commit `1a06fd4f2b`), `filter.svg` was replaced with the
sliders glyph, and `sliders.svg` / `Sliders` enum variants were deleted.
Consequently, `IconName::Filter` has become a sliders-shaped icon used
across 8+ surfaces in Zed (git_ui, search, debugger_ui, keymap_editor,
language_tools, quick_action_bar, editor view settings).
When moving tabular data preview settings to follow the editor's
convention (using `IconName::Filter` sliders for table view settings),
column filter buttons in the table header were left using the same
sliders icon instead of a traditional funnel.
Repurposing `IconName::Filter` back to a funnel would break all other UI
surfaces across Zed.
## Solution
- Restored the funnel icon under a new dedicated
`IconName::FilterFunnel` variant (`assets/icons/filter_funnel.svg` and
`crates/icons/src/icons.rs`).
- Updated `tabular_data_preview` column filter trigger buttons
(`table_header.rs`) to use `IconName::FilterFunnel`.
- Left all existing `IconName::Filter` (sliders) usages across the app
untouched.
Before:
After:
## Testing
- `cargo check -p icons -p tabular_data_preview` and `./script/clippy`
build clean.
- `cargo test -p tabular_data_preview --lib` passes.
- Verified column filter button renders the funnel icon in tabular data
preview and highlights correctly when filters are active.
## Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable
Release Notes:
- Replace column filter icon in tabular data preview with filter funnel
---
assets/icons/filter_funnel.svg | 3 +++
crates/icons/src/icons.rs | 1 +
crates/tabular_data_preview/src/renderer/table_header.rs | 2 +-
3 files changed, 5 insertions(+), 1 deletion(-)
create mode 100644 assets/icons/filter_funnel.svg
diff --git a/assets/icons/filter_funnel.svg b/assets/icons/filter_funnel.svg
new file mode 100644
index 0000000000..4ccf2a9a5d
--- /dev/null
+++ b/assets/icons/filter_funnel.svg
@@ -0,0 +1,3 @@
+
diff --git a/crates/icons/src/icons.rs b/crates/icons/src/icons.rs
index 1b2eda162c..64531a165a 100644
--- a/crates/icons/src/icons.rs
+++ b/crates/icons/src/icons.rs
@@ -141,6 +141,7 @@ pub enum IconName {
FileToml,
FileTree,
Filter,
+ FilterFunnel,
Flame,
FoldVertical,
Folder,
diff --git a/crates/tabular_data_preview/src/renderer/table_header.rs b/crates/tabular_data_preview/src/renderer/table_header.rs
index 8811284e08..172a290c97 100644
--- a/crates/tabular_data_preview/src/renderer/table_header.rs
+++ b/crates/tabular_data_preview/src/renderer/table_header.rs
@@ -669,7 +669,7 @@ impl TabularDataPreviewPane {
.trigger_with_tooltip(
IconButton::new(
ElementId::NamedInteger("filter-button".into(), col.get() as u64),
- IconName::Filter,
+ IconName::FilterFunnel,
)
.icon_size(IconSize::Small)
.style(if has_active_filters {