=Why=
MobileFrontend has 1700 lines of asset configuration and an extensive library of UI components that is mixed with the business logic of the frontend application.
By extracting a library we can focus on clear interfaces and abstract away most of the FE configuration to make MobileFrontend more maintainable.
=Original request=
>>! In T140352#2483264, @phuedx wrote:
> * Extract core/foundational UI components, document the hell out of them, providing examples of how to use them to build new features, and place them way, way, WAY outside of the standard MobileFrontend hierarchy
> ** Since Joaquin introduced me to it, I always think of [Redux](http://redux.js.org) when I think of the outstanding documentation
=POC=
[x] Create npm library (https://www.npmjs.com/package/mfui)
[x] Set up testing and bundling
[x] Extract Cards (http://jsbin.com/fovudo/edit?html,js,output)
[] Set up examples
[] Cleanup Cards (unnecessary dependencies and model)
[] Make list of components to migrate
=Component migration list=
| Component|Source url(s)|Asignee|Status|
|---|---|---|---|
|Cards|[extension/Cards](https://github.com/wikimedia/mediawiki-extensions-Cards)|@phuedx|**In progress**|
|View|[mobile.view/View](https://github.com/wikimedia/mediawiki-extensions-MobileFrontend/tree/master/resources/mobile.view)| | |
|...|[...](...)| ... | ... |