80e3d4d3d0
* 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> |
||
---|---|---|
.changeset | ||
.devcontainer | ||
.github | ||
.gitpod | ||
.vscode | ||
benchmark | ||
examples | ||
packages | ||
patches | ||
scripts | ||
.Dockerfile | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.cjs | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.gitpod.yml | ||
.npmrc | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc.cjs | ||
CONTRIBUTING.md | ||
LICENSE | ||
package.json | ||
pnpm-lock.yaml | ||
pnpm-workspace.yaml | ||
README.md | ||
SECURITY.md | ||
SECURITY_CONTACTS | ||
STYLE_GUIDE.md | ||
tsconfig.base.json | ||
tsconfig.json | ||
turbo.json |
Astro is a website build tool for the modern web —
powerful developer experience meets lightweight output.
Install
The recommended way to install the latest version of Astro is by running the command below:
npm create astro@latest
You can also install Astro manually by running this command instead:
npm install --save-dev astro
Looking for help? Start with our Getting Started guide.
Looking for quick examples? Open a starter project right in your browser.
Documentation
Visit our official documentation.
Support
Having trouble? Get help in the official Astro Discord.
Contributing
New contributors welcome! Check out our Contributors Guide for help getting started.
Join us on Discord to meet other maintainers. We'll help you get your first contribution in no time!
Directory
Several official projects are maintained outside of this repo:
Project | Repository |
---|---|
@astrojs/compiler | withastro/compiler |
Astro Language Tools | withastro/language-tools |
Links
Sponsors
Astro is generously supported by Netlify, Storyblok, and several other amazing organizations.