Found a secret: if you use the "alpha" (0~1) attribute for any widget, the opacity works as intended. It's not in the GitHub documentation, and couldn't find it anywhere.