Standalone service to generate critical CSS, built on critical.
Run on your local machine:
git clone git@github.com:pinchofyum/tinybit-critical-css-server.git
cd tinybit-critical-css-server
npm install
npm start
Run as a Google Cloud Function:
- Create a new Cloud Run Service.
- Select "Continuously deploy new revisions from a source repository".
- Fork this repository, then select it as the repository to build.
- Build type will be "Dockerfile", because Puppeteer requires extra system dependencies.
- Complete the rest of the Create Service steps. Minimum reqs seem to be 1 GB memory, 2 CPU.
tinybit-critical-css-server implements a simple HTTP API.
Simply POST /
with html
and css
to receive css
in response.
Check out tinybit-critical-css-plugin for integration with WordPress.
The test-src/
directory in this repository has a response.json
with the CSS and HTML for an example request.
POST
this data to the local critical CSS server started withnpm run start
.- Decode the JSON response and capture the return value for the
css
property.
- Save this to a
response.json
file in a WordPress project'swp-content
directory wp shell
$decoded = json_decode( file_get_contents( WP_CONTENT_DIR . '/response.json' ) )
$decoded->css
- Paste in this project's
response.css
file.
- Auto-format the CSS with VS Code's CSS Formatter and compare via diff with the stored version.
(These could be better automated, but we really don't update it a lot.)