This is a great question as the TDD orthodoxy was developed in a land without HTML or CSS and often skips over the issues of testability and brittleness and "could this really break in a meaningful way?"
You should definitely test-drive your models and controllers. But should you test-drive your views? Maybe if there's logic in there. But if there's logic in the views, maybe that logic should move to the controllers where it's easier to test. Then the controllers can either select which view to render, or pass on variables to the view to tell it what to do.
That's because testing HTML&CSS tends to be very brittle. You can make a non-functional change (like changing an H2 to an H3) and break your whole test suite. Ugh. That pain encourages you to just ignore or remove the tests, so what's the use?
btw your first option:"Build the basics of the app without testing, confirm that it works visually" is what XP calls a "spike". After you do that, you're supposed to throw it away and start from scratch with tests. (And yeah, maybe copy some code over from your spike, but always with a red test first.)
-A