The Sweater app's structural needs, at least for now, are quite modest. That makes it a good candidate for using just plain-old HTML/CSS/JS for the app's structure. In this next section, I will try to develop a basic app structure and implement data-handling using plain-old JS. If nothing else, this will give us a better understanding of the problem and where various libraries might be helpful.
If this turns out actually to be a manageable situation, we can then bring in the design specifications for the UI and functionality.
The project will need to periodically get updated weather conditions and then update the UI. So maybe a good next step is to start is surveying the the available weather APIs and pick the one that is well-suited to the project (as we currently understand it).
Because the design specification for the app may still be in flux, the focus of the current work will be limited to getting the needed data from a data source and letting it update the UI. We start out with a very plain, text-only HTML page that has only enough markup in it to let some fields be updated with JS.
It's a fair guess that the determination of outerwear will require the knowledge of the current “feels-like” temperature (either given or computed by the app), the wind speed, the expectation of precipitation, and if there is going to be precipitation, what kind. We may not yet know how these data will translate into recommended outerwear, but we can be pretty confident that the determination will be based on these data. So fields for each of these are included in this bare-bones HTML.
How about no CSS? This phase of the work isn't about how things look. We're really just trying to get a handle on the core of the app's data handling needs.