astro/packages
Arsh 80e3d4d3d0
feature: configuration for css inlining behavior (#6659)
* feature(inline stylesheets): implement as experimental

* test: rename css-inline -> css-import-as-inline

* test(content collections): add de-duplication of css

* test: add new suite for inlineStylesheets configuration

* fix(inline stylesheets): did not act on propagated styles

* hack(inline stylesheets testing): duplicate fixtures

Content collections reuses build data across multiple fixture.builds, even though a configuration change may have changed it.
Duplicating fixtures avoids usage of the stale cache.
https://cdn.discordapp.com/attachments/1039830843440504872/1097795182340092024/Screenshot_87_colored.png

* refactor(css plugin): reduce nesting

* optimization(css rendering): merge <style> tags

Chrome, but not Safari or Firefox, is slower to match rules when they are split across multiple files or style tags.
https://nolanlawson.com/2022/06/22/style-scoping-versus-shadow-dom-which-is-fastest/

Having the abiility to inline stylesheets opens us up to this optimization.
Ideally, it would extend to propagated styles, but that ended up being a rabbit hole.

* typedocs(inlineStylesheets config): ensure consistency

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* chore(build internals): update comment

* correct minor mistake in test

* test(inline stylesheets): unique package names for duplicate fixtures

* refactor(css build plugin): maps -> records

* refactor(css build plugin): remove use of spread operator

---------

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-05-03 14:49:06 -04:00
..
astro feature: configuration for css inlining behavior (#6659) 2023-05-03 14:49:06 -04:00
astro-prism [ci] release (#6476) 2023-03-13 16:05:43 -04:00
astro-rss [ci] release (#6954) 2023-05-02 15:13:10 -04:00
create-astro Fix changeset publish (#6923) 2023-04-27 22:55:48 +08:00
integrations fix: double test names (#6978) 2023-05-03 13:41:39 -04:00
markdown Upgrade shiki to v0.14.1 (#6932) 2023-05-03 11:07:57 -04:00
telemetry [ci] release (#6924) 2023-05-01 10:58:03 -04:00
webapi [ci] release (#6924) 2023-05-01 10:58:03 -04:00