CSS-based styling

Before IDA 7.3

IDA used to store colors in the registry:

  • HKEY_CURRENT_USER\Software\Hex-Rays\IDA on Windows,

  • ~/.idapro/ida.reg on Linux & Mac OSX.

This was somewhat inconvenient because color values were stored in binary format, and hard to move from computer to computer.

In addition, this only lets users style a small subset of the widgets that compose IDA, which can be insufficient.

IDA 7.3: CSS-based styling

Since we had to introduce yet another set of new colors in 7.3, we took the opportunity to moved away from the registry-stored, binary-only approach, to a CSS-based approach.

This gives us the following advantages:

  • CSS is a well-known format

  • CSS is human-readable

  • Qt understands CSS out-of-the-box (parts of it, at least)

  • Using CSS will therefore let us style not only the custom IDA widgets, but all widgets

This last point is important, because many users have been asking for the ability to style IDA more thoroughly, rather than just styling a few custom widgets (such as the disassembly views, navigation band, …)

How IDA 7.3 CSS-based styling works

IDA 7.3 ships with 2 themes by default:

  • default

  • dark

Those themes are located in $IDA_INSTALL/themes/:

aundro@flatiron:~/IDA-7.3$ tree themes/
themes/
├── _base
│   └── theme.css
├── dark