Column Resizing

Enable column resizing for all non-control grid columns. You can resize globally for all columns or set/override on individual ones.

Add optional minimum or maximum width constraints and determine if the resize handles are always visible or only on cell hover (default).

Enable Resizing

To enable resizing for all non-control columns, add the column-resizable attribute to <zing-grid>, like so:

<zing-grid ... column-resizable>

To add to individual columns instead, add the resizable attribute to <zg-column>:

    <!-- Not Resizable -->
    <zg-column ...>
    <!-- Is Resizable -->
    <zg-column ... resizable>

Adding resizable to control columns is the only way to make them resizable.

Column Resizable Grid

Here is a complete grid with the option to resize columns as necessary:

Force Visibility

By default, the resize handles only appear when you hover over the column's header cell. To override this and make the handles always appear, add column-resizable-persistent to <zing-grid>, like so:

<zing-grid ... column-resizable column-resizable-persistent>

For individual columns, add resize-persistent:

<zing-grid column-resizable>
    <!-- Handle appears on hover -->
    <zg-column ...>
    <!-- Handle always shows -->
    <zg-column ... resize-persistent>

Min and Max Limits

Set the minimum and maximum limits that the column can be resized to globally on <zing-grid>, which applies to all columns:

  • column-resizable-min-width
  • column-resizable-max-width

Or set/override on individual columns with:

  • resizable-min-width
  • resizable-max-width
<zing-grid column-resizable>
    <!-- No limits -->
    <zg-column ...>
    <!-- Cannot reduce lower than 200 pixels wide -->
    <zg-column ... resizable-min-width="200">

Min and max limits only apply once you resize the column. They do not dictate the starting width of the column.

Min/Max Width Column Resizable Grids

Here is a complete grid with a limit for the minimum width you can resize a column to:

Here is a complete grid with a limit for the maximum width you can resize a column to:


Resize Handle Styling

You can customize the resize icon and some of the handler styling.


The resize icon is set using a <zg-icon> instance with a name of resize. To customize it, set/replace <symbol id="resize" ...> in your custom theme's .svg file with your new svg-icon code.

For more info on custom themes and how to replace icons, view the Custom Theme section of the Styling features page.

CSS Variables

You can also use any of these internal CSS variables to change the visual aspects of the resize handle:

  • --zg-column-resize-background
  • --zg-column-resize-background_active
  • --zg-column-resize-color
  • --zg-column-resize-height
  • --zg-column-resize-top
  • --zg-column-resize-width

The resize handles are in the Light Dom, so you can customize all aspects of it with external CSS. Using the variables will ensure only the presentation and not the functionality of the handles are modified.


Related Resources

Here are some extra resources related to this feature to help with creating your grid: