May 17th, 2021 × #html#css#webdev#accessibility

Hasty Treat - Stylin the Unstylables

Discussion of difficulties styling default HTML elements like inputs and media players, techniques like overlapping DOM elements to customize, and new initiatives like Open UI to standardize native UI components.


In this Hasty Treat, Scott and Wes talk about the different kinds of things that are difficult to style, how you can style them, and some future tech to look out for!

Sanity - Sponsor

Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It's an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

Can it be styled? Solutions

04:28 - Just style the defaults

  • Most elements can be styled, though some elements are really just multiple elements grouped together into the shadow dom and are hard to style.
  • This leads to us having to re-create the visual UI, and often is a point of making inaccessible UIs.
  • Select
  • Input - number, date, etc.
    • Very hard to style
    • Often need appearance: none; for mobile
  • Checkbox / Radio
  • Generally speaking, these CSS Properties can be applied to all inputs:
    • font-size
    • color
    • padding
    • margin
    • background / images
    • outline (remember focus)
    • border

08:20 - Overlap with more dom elements, set background images

  • Checkbox / Radio / Toggle buttons
    • Often used :before and :after along with labels — e.g. label + input:checked
  • Select can have element overlap

14:13 - Re-implement the UI with JavaScript

  • Video / Audio
    • HUGE rabbit hole of things to code
  • Very important to maintain accessibility

15:46 - Use a UI Library

17:20 - Open UI

Tweet us your tasty treats!


Play / pause the audio
Minimize / expand the player
Mute / unmute the audio
Seek backward 30 seconds
Seek forward 30 seconds
Increase playback rate
Decrease playback rate
Show / hide this window