Styling in Ignition

I’m wondering if there’s a good way to create a style for all sorts of different components in Ignition.

I’ve found this post on the forums, where it’s shown you can create DataSets with style information, and bind it to the styles property of the components.

That way you can alter all style-related properties for similar components at once. But as far as I know, it’s still not possible to change certain things. Like you cannot change the “down arrow” on a dropdown list so it looks like the style you use for buttons. The same is true for spinners, checkboxes and radio buttons.

So I was wondering if instead of that, it could be done with templates. F.e. you could use a label with some border for the dropdown, and use an image to show the drop-down arrow. Then a list can be made visible when it’s dropped down. Every bit of styling, down to the pixel, can be controlled in such templates.

But there are some drawbacks to this too. First of all, the template needs to be big enough to contain the list, even if the list is invisible most of the time. This causes annoyances with selecting components, Z-ordering them etc. Next to that, I’m also doubting it would be as fast. Loading templates generally takes a bit longer, nesting dozens of templates into other templates will probably take even longer.

So neither option seems sufficient at the moment. Are there people who have experience with styling in Ignition, and how would you advise it?

This sounds like a job for an add-on module. Ignition’s native components can be subclassed to make new components with the added styling functionality you wish. Possibly exposing the new functionality a adjustable “Appearance” properties.