← Back to context

Comment by nicoburns

5 days ago

> Does having experience implementing a web browser engine feature change the way you write HTML or CSS in any way?

I think I'm more concious of what's performant in CSS. In particular, both Flexbox and CSS Grid like to remeasure things a lot by default, but this can be disabled with a couple of tricks:

- For Flexbox, always set `flex-basis: 0` and `min-width: 0`/`min-height: 0` if you can without affecting the layout. This allows the algorithm to skip measuring the "intrisic" (content-based) size.

- For CSS Grid, the analogous trick is to use `minmax(0, 1fr)` rather than just `1fr`.

(I also have a proposal for a new unit that would make it easier to get this performance by default, but I haven't managed to get any traction from the standards people or mainstream browsers yet - probably I need to implement it and write it up first).

> Do you still google "css grid cheatsheet" three times a week like the rest of us?

Actually no. The process of reading the spec umpteen times because your implementation still doesn't pass the tests after the first N times really ingrains the precise meanings of the properties into your brain

I wish there was a CSS analyzer that would give tips like this based on your CSS.

  • Or a straight up fork of CSS that removes the legacy stuff and fixes wrong defaults so that tips like this are unnecessary in the first place.

    • I don't think it's necessarily a wrong default, just one which prioritizes usability/ease of programming over performance.

How do you propose standards to the web groups?

I want to propose CSS-inheritance—by-name (#box {inherit:$(#menu)})

and the reintroduction of marquee tags for horizontal scrolling (a frequently used UI pattern on shopping sites).

  • > How do you propose standards to the web groups?

    I'm not sure. I tried opening an issue at https://github.com/w3c/csswg-drafts but that didn't get me very far. I suspect it's a case of making connections and then getting yourself an invite to present at a meeting.

    • I succeeded with opening an issue and getting something to be supported in browsers (although I think it's not yet in the standard). It was a very small and fairly uncontraversial tweak which was easy to specify, implement, and test, though - bigger things are probably harder.

      https://github.com/w3c/csswg-drafts/issues/6203

    • If you can socialize your idea to a few of the people that show up frequently in the issues, it can really help. See if there's someone with open DMs, tell them you work on CSS in Servo, and ask what they think.