Inspired by VueConf 2018 I spent some time learning JS and Vue in more
depth, and built myself a more flexible VueFinder presentation tool to
fit my needs. This year, I returned to VueConf and gave the closing talk
on passing data between CSS and Vue.
After learning about Vue from Sarah Drasner’s stream of articles on
CSS-Tricks, I had the pleasure of speaking at VueConf 2018. I really
enjoyed that conference, and left feeling inspired by the community and
the framework behind it. I loved that I could build complete and valid
Vue components in plain HTML/CSS – and slowly integrate JS logic as
necessary. I started digging, and quickly learned to bind JS data to
HTML attributes:
CSS variables provide a safe approach for passing JS settings to CSS via
inline HTML. While most inline styles are difficult to override, CSS
variables can instead be ignored – making their inline specificity
harmless.
I wrote a quick demo for CSS-Tricks – More CSS Charts, with Grid &
Custom Properties – and continued to develop the idea into my latest
talk: Dynamic CSS. This talk explores how data can be used to
manipulate presentation directly in CSS – a combination of variables,
calc(), grids, hsl() and more.
While learning JS and Vue in more detail, I decided to re-build my
presentation software to better meet my needs as a speaker.
The result, which I call VueFinder, allows me to write slides using a
slightly-extended markdown syntax – with yaml metadata for each slide.
That metadata controls slide layout, allows me to embed Vue components
directly for live demos, and pass in CSS variables for custom styling.
VueFinder is public and open-source, though it isn’t currently as
reusable as I would like. The content and logic are tightly coupled in
ways I haven’t yet resolved. If you’re interested in helping make this a
more viable open source tool, or using it yourself, I’m open to new
features and PRs.
After VueConf, Rahul Kadyanreleased an extension for Visual
Studio Code that provides syntax-highlighting and code-folding for my
.slides files, as well as the .vue-slides format he uses. Thanks,
Rahul!
This year I connected with the Vue Vixens, and enjoyed getting to know
more of the Vue community. Chris Fritz and Rahul helped me add some
last-minute features to my slide deck, while Maria Lamardo and
Krystal Campioni both inspired new demos in my talk.
New CSS features are shipping at an unprecedented rate –
cascade layers, container queries, the :has() selector,
subgrid, nesting, and so much more.
It’s a good time to step back and understand
how these tools fit together in a declarative system –
a resilient cascade of styles.
What makes something a ‘grid’, and what’s at stake?
byMiriam Suzanneon
Back in 2020, Firefox released a prototype for doing ‘masonry’ layout in CSS. Now all the browsers are eager to ship something, but there’s a hot debate about the best syntax to use.
Over the last month, the CSS Working Group has determined we can loosen containment restrictions for query containers, and agreed on a syntax for special-case support queries (like support for the gap property in a flex context, or support for align-content in a block flow context).