> can we factorize with icon-unread? Have an "icon" class for example? Only the background-image changes between states.

We could, but there is already a class called .icon. Maybe a more thorough cleanup should be done, but in a different patch?

> can you investigate if we can have a .draft class on the thread node itself? And .unread too? Maybe even make the icon a generated content (although I'm not sure of this one, maybe it's overkill) ?

We do, for setting the opacity to 0.5

> I think we can have both unread and draft, and your current markup does not allow this.

I'm not sure how that's possible (visually)—the two icons exist at the exact same place :(