Thanks for sharing — this is an impressive implementation and really highlights the flexibility of Anvil!
That said, I’d like to offer a different perspective (and please don’t take this the wrong way):
One of the main reasons I chose Anvil was to minimize the need for writing HTML and CSS. I really value the visual drag-and-drop builder and the ability to focus on application logic using Python. If I wanted to hand-code layouts, components and styles, I’d likely go with something like React instead.
So while it’s great to see what’s achievable, I personally hope Anvil continues to invest in improving the WYSIWYG experience and expanding the built-in components — so that we can create professional-looking apps without diving into custom HTML/CSS.
Good point! I should have been clearer about why I’ve written this article.
This isn’t an indication of a change of direction for us. You’re quite right: one of the main reasons to choose Anvil is because you don’t want to worry about HTML/CSS and you want to focus on your app’s logic. Providing a tool which makes that possible is still our focus.
There are two main reasons I wanted to write this article. First, we often get people asking about how far they can push UI designs in Anvil (usually it comes from people who have been burned by the limitations of other WYSISYG editors or abstractions in the past). This blog post goes towards allaying those types of concerns.
Second, it’s about inspiring the community. Showing if you want to go further with Anvil to create highly customised designs - you absolutely can.