> It means that you should be able to re-use (compose) interface elements, so that even a junior developer could create a great interface (UX-wise) by assembling one from parts that are made to work well together.
I don't think "compose" == "reuse" as you suggest. Reusing well-designed interface elements gets you very little in terms of usability, because the important parts of UX design - like page structure and navigation - cannot be handed to developers in ready-made toolkits.
I do agree with the second half of your comment though. Mozilla's Ubiquity project [1] is the best example I know (see [2]) of on-the-fly composability in modern GUIs. Admittedly Ubiquity is somewhat underdeveloped, but the core idea is solid, in my view.
There's also things like IFTTT, Zapier, and Slack integrations, but:
1. They involve up-front configuration, and,
2. You need to redo this configuration for every pair of apps you want to compose together, which is obviously not scalable.
I don't think "compose" == "reuse" as you suggest. Reusing well-designed interface elements gets you very little in terms of usability, because the important parts of UX design - like page structure and navigation - cannot be handed to developers in ready-made toolkits.
I do agree with the second half of your comment though. Mozilla's Ubiquity project [1] is the best example I know (see [2]) of on-the-fly composability in modern GUIs. Admittedly Ubiquity is somewhat underdeveloped, but the core idea is solid, in my view.
There's also things like IFTTT, Zapier, and Slack integrations, but:
1. They involve up-front configuration, and,
2. You need to redo this configuration for every pair of apps you want to compose together, which is obviously not scalable.
[1]: https://wiki.mozilla.org/Labs/Ubiquity
[2]: https://wiki.mozilla.org/Labs/Ubiquity/Latest_Ubiquity_User_...