diff --git a/app/views/filters/settings/_terms.html.erb b/app/views/filters/settings/_terms.html.erb
index eda8efed3..9693ce23f 100644
--- a/app/views/filters/settings/_terms.html.erb
+++ b/app/views/filters/settings/_terms.html.erb
@@ -1,3 +1,23 @@
-<% user_filtering.filter.terms.each do |term| %>
- <%= filter_chip_tag %Q("#{term}"), filter.as_params_without(:terms, term) %>
+<% filter = user_filtering.filter %>
+<%= form_with url: cards_path, method: :get, class: "", data: { controller: "form" } do |form| %>
+ <% filter.as_params.except(:terms).each do |key, value| %>
+ <%= filter_hidden_field_tag key, value %>
+ <% end %>
+
+ <% filter.terms.each do |existing_term| %>
+ <%= hidden_field_tag "terms[]", existing_term %>
+ <% end %>
+
+ <% if user_filtering.expanded? %>
+ <%= hidden_field_tag :expand_all, user_filtering.expanded? %>
+ <% end %>
+
+ <%= form.text_field "terms[]", placeholder: "Filter these cards…", class: "input txt-x-small filter__terms",
+ autofocus: false, autocomplete: :off, autocorrect: "off", data: { "1p-ignore": "true" } %>
+<% end %>
+
+<% if filter.terms.present? %>
+ <% filter.terms.each do |term| %>
+ <%= filter_chip_tag %Q("#{term}"), filter.as_params_without(:terms, term) %>
+ <% end %>
<% end %>
diff --git a/app/views/filters/settings/_toggle.html.erb b/app/views/filters/settings/_toggle.html.erb
index 2ca631889..d46b6fa96 100644
--- a/app/views/filters/settings/_toggle.html.erb
+++ b/app/views/filters/settings/_toggle.html.erb
@@ -3,11 +3,11 @@
<% if user_filtering.expanded? %>
<%= link_to cards_path(filter.as_params), class: "btn txt-x-small btn--reversed", aria: { selected: true } do %>
<%= icon_tag "filter" %>
-