Issue #3: support theme switching in custom views