A UI component framework