Table column width feature request

Continuing the discussion from Table column width:

Any news on this feature request?


+1. This is really important to reduce the complexity of apps and provide modern behaviors. Is there no way to do this in CSS?

I'm using retool now for several days and I'm really happy with it. But this supposed little thing is annoying. I've built a complex dashboard but need to adjust dozens of columns after every reload, as the auto adjustment is not perfect in many cases (e.g. a tiny table with 2 columns... even if there is enough space the content of the second column is partly hidden).

Please provide a way to do this, even a "dirty hack" would be better than to have no possibility at all.

Hi everyone,

I was able to figure out a way to enable the autoColumnWidth flag for the new table component, wanted to share it here in case anyone else would benefit from this until it's generally available in the editor UI.

  1. Export your app using the Export to ToolScript ZIP option
  2. Extract the contents of the .ZIP file you just downloaded
  3. Open the main.rsx file using a text editor like NotePad++
  4. Your table component will be formatted like "<Table ...", you can also search for it by ID (ex: "table1" or "table2")
  5. Add the following line as a property within this component: autoColumnWidth={true}
  6. If done correctly, it should look something like this:
  1. Save your changes to the main.rsx file
  2. Re-zip the folder
  3. Upload the .zip file using the Import app from JSON/ZIP option
  4. Confirm that it worked by inspecting the table component in the State viewer, it should have the autoColumnWidth property visible as true

Screenshot 2023-11-11 164512

1 Like

Auto column width should be available on Cloud without any extra configuration :blush:

You can go to Appearance->Advanced to enable it on your table:

We're still working on a feature for user defined, persistent table column widths

1 Like

When might this feature be available for us self-hosted types?


Hi @Tess,

The auto column feature is quite helpfull in a wide range of use cases.

I recall from a previous post that you're developing a feature for user-defined, persistent widths for table columns in the new table version.

Could you share any updates regarding the release timeline for this feature?

1 Like

Hi @Dennis_De_Reyer Yes, we do plan to ship this feature, but unfortunately, I don't have a timeline yet :disappointed:

@roundingwill I don't know what on-prem version it will land in by default yet, but I can add it to your account as long as you're on 3.18+ I see a self hosted account associated with the email you use for the forum here--is that the right account?

@Tess Ok thanks or the update!

So... automatic...yes. But the algorithm for determining column widths appears to be not simple. Such as making them all equal. It seems to use special magic to determine the inverse relationship between data size/importance and column width, and then applying some random terrible judgment to that:

What is desperately needed here is either some hooks to user-defined logic or at least percentages a-la html tables, etc.


We are running 3.24.1 self-hosted.


Thanks @roundingwill I added this feature to your account. It should be available after you restart your containers

Not sure if this the best thread to add to, but I do see some discussion of the table auto-width algorithm. Let me know if I should start a new thread for this specifically.

I am running into an issue where all my columns collapse to some minimal width, obscuring the majority of the content, and keeping the last column full-width (despite its content being only 5 characters. I can't reliably reproduce it, but it happens about 30% of the time.

When the table renders correctly, I see this "collapsed" state for an initial flash on its first render, then the auto-width kicks in and correctly sizes. So it appears that sometimes, the auto-sizing either does not get applied, or gets applied prior to the table content being finalized.

[Edit] In case anyone else is facing this issue, I was able to hack a workaround by adding a button with a runScript handler to hide and show the table, presumably forcing a re-render:

setTimeout(function() {
}, 100);