I love when conferences give me the opportunity to travel around the world.
I love it even more when conferences go beyond the web to find inspiration from
other fields. Beyond Tellerand (Düsseldorf, Germany) was the best possible
combination.
Amazing talk by Miriam Suzanne at the Beyond Tellerand conference
about the benefits of using plain CSS
instead of heavy library for your grid!
Very useful and inspiring. Thanks!
Right from the start, Beyond Tellerand was unlike other conferences.
Rather than hearing familiar talks about familiar technology, the first
day took us on a journey through web annotations, intricate
illustrations, design for non-designers, robots with personality,
stop-motion tinkering, and programatically-generated art.
I spoke on day two, followed by “bleeding edge” accessibility,
large-scale projection-mapping, the women who built the internet, and a
lesson on ethics in tech. How could I even begin to match the
inspirational scope of these other presenters, while talking about
layout?
I couldn’t – but I did have some fun. Inspired by the generated art from
Jared Tarbell and the Levitated Toy Factory, I picked one of his art
pieces to recreate with CSS variables (aka custom properties) and CSS
grid layouts.
I spent that evening studying his image, and translating it into HTML
and CSS. My first draft relied heavily on :nth-child() selectors,
leading to an absurd 3MBCSS file. By adding custom properties in the
HTML, I was able to streamline things dramatically. This second draft
relies on HAML to generate the required HTML for a static (but
responsive) result.
That went over well at the conference, but I decided to improve it after
the conference was over. By moving the component logic into Vue, I
could interact with the controls dynamically – and animate the changes:
shuffling, resizing, and more. Finally, I pulled in an
Asteroids-inspired browser snippet so you can destroy your creation.
Enjoy the invasion!
For many years, it has been ‘best practice’ to use relative units (especially em and rem) for sizing text. That’s great! But after playing around with my user preferences, I think we can improve on the common approaches.
It is frustrating to track down why an anchor isn’t being found. I’ve found a simple way that should work in most cases. If that doesn’t work, step through the checklist, and then dive in to get a better understanding of how Anchor Positioning works.