The solution is a lot simpler than custom JSON view formatting or custom CSS.
I was having a similar problem where I needed to hide the 'Clear Filters' button, even for users with Edit permissions and higher.
I'm not sure if this is a new feature since this post was made but there is a way to disable the 'Clear Filters' button through a combination of Site Permissions and/or List Permissions (depending on your use cases).
Option 1 - Hide the Clear Filters button for a specific Permission Level across all Lists in a Site
If you go to the Site Permissions of the Site that the list belongs too, then Permission Levels.
Then select the permission level that you want to hide the 'Clear Filters' button from - in my case, the Edit Permission group (ignore my custom permission groups).
UNTICK Manage Lists and Save your changes.
Users with the edit permission will now no longer be able to 'Clear Filters' - as seen in the image below, the Filter 'Personal Items' is selected, however, I can still edit in grid mode (Edit permissions), but there is now no 'Clear Filters' button.
Now repeat this process for all permissions levels that you do not wish for those users to be able to 'Clear Filters'
Option 2 - Hide the Clear Filters button for a specific Permission Level for a specific list in a Site
If you just want to apply these changes to a specific SharePoint List in a site and not all SharePoint lists in a site, you will have to disable Inheritance on the SharePoint List and create custom permission levels on the Site level and then associate those custom permission levels to the SharePoint groups in your List permissions.
For example, I have created a custom permission level on my Site called 'Edit items'. I have UNTICKED the Manage Lists option for that permission level.
Next, in my List Permission Settings, I disabled inheritance from parent (the Site).
Then I edited the permission level allocated to the Site Members group for my site and set it from 'Edit' to my custom permission level of 'Edit Items'. Then I saved my changes.
Essentially, its the same steps as Option 1, but you need to disable inheritance, set up a custom permission level and associate the custom permission level to your desired SharePoint group.
NOTE: I would highly recommend also disabling the permission to allow users to manage personal views. While the users still won't be able to clear the views, it will allow them to create a personal view without the filters from public views (essentially clearing the filter by creating a new personal view).
Hope you find this helpful!
Let me know if you have any questions, happy to help 🙂
Please click Mark as Best Response & Like if my post helped you to solve your issue. This will help others to find the correct solution easily. It also closes the item. If the post was useful in other ways, please consider giving it Like.
SvenSieverding Thanks for the suggestion it works just fine. But I hope Microsoft makes the new Filter Pill feature optional in coming updates or at least give us a chance to hide button through JSON formatting.
This method used to work but something changed recently (August 2024), and the "view uses filters that you can view and edit here." message appears even with views displayed on pages.
Eliot_ColeSvenSieverding The filters only show in the Web part if you do not remove the Manage Lists permission. The screenshot below is of a web part list view of a user with Edit permission but they can not clear the filter on the view of ID = -1 (to hide everything).
Here is the same web part list but with an account that has the Manage List permission (note they can clear the filter)
I can confirm Microsoft started to roll out an adjustment for this feature (checked it on multiple tenants): The clear filter option is only visible if you have Edit permission or above on the library/list.