Suppose you have a view, and you have configured your display as a table. Drupal provides no way to configure a css class for the table. And, it shows an ugly table. I was using bootstrap css, and they have some really awesome table classes. Lets see how we can add that custom class to a table view.
See the earlier table:
Provide a class to table view
So, there is no way on the drupal configuration to do that. We need to do little bit of twig file tweak. First, we need to see from which twig file, the output is being rendered.
Enable twig debug
- Goto your /sites/default/services.yml
- Search for are which says
- Change it to true
- save file
- clear the cache
Now refresh the page, and inspect the html in chrome. You will see from where the html is coming. In my case, it was showing the view name as:
Copy that twig file in your theme’s template directory. And, edit that file. You will see a section on top where classes are being set, see below:
set classes = [ 'views-table', 'views-view-table', 'cols-' ~ header|length, responsive ? 'responsive-enabled', sticky ? 'sticky-enabled', ]
In bootstrap, the simple class for the table is: table Simply add that class in the list, and nothing else. See changes below:
set classes = [ 'views-table', 'views-view-table', 'table', 'cols-' ~ header|length, responsive ? 'responsive-enabled', sticky ? 'sticky-enabled', ]
Save the file. Now, clear the cache. And, refresh your page. You should see the expected changes in your html.
See the bootstrap version of the table view