Flexbox
as a base layout is convenient but tricky due to
or “jank”. If the dimensions of the
base flex container(s) are ambiguous, then the browser constantly recomputes the
dimensions as streams in.
My favorite trick is to give the browser dimension hints and avoid computational
properties like flex.
Set as many dimensions (width/height) as possible unambiguously. My Internet
speed is sufficiently slow enough that I can see layout shifts in many sites,
including my own (this micro blog).
The
“CSS router”
has always been quite the clever trick for navigating sufficiently small sites.
This site uses it to scroll switch pages, and
portable.fyi gets clever with visibility :target
switching. Do it just right and no one notices unless they “inspect the
elements”.
It’s always humbling when I get around to reading a web related spec.
and
have a lot of functionality.
JavaScript’s not bad (it’s the easiest part of web development) but gives you
just enough rope to do super silly things like reinventing all built in browser
functions.
White spaces in trick many into
writing complex — web development is
trollish that way. Firefox’s
developer tools show
generated white spaces! Hopefully your abstraction is munging HTML faithfully.
It’s
easy to fight white spaces
without realising it. That generally leads to using unsuitable
display types and
other shenanigans.
WordPress rants are a joy to read, but where’s the
simpler, safer replacement? Never forget that software is highly corporatized
and mostly crafted for corporations, not humans. WordPress sits among the few
that mere mortals can work with and understand. The complete revival of static
sites might save us, maybe.
Take the innocent PHP web server
cli. Best not to use PHP’s web server
cli (even for PHP) because routes with a dot (.) are
assumed to be
static files. Use a real web server
or superior cli web servers with minor gotchas.
Wonder how an adjustment to that theory pans out? Might be enough of a golden
hammer for most use cases but , scaling/speed
issues are more fundamental/situational. You could swap between or hybridize
client/server all you want and still mess up.