Today is the CSS Naked Day. That's why this site looks so weird!

PostCSS

Transform your CSS code with PostCSS.

Options

Description

The PostCSS plugin loads and transforms your CSS files using the PostCSS processor.

Installation

Import this plugin in your _config.ts file to use it:

import lume from "lume/mod.ts";
import postcss from "lume/plugins/postcss.ts";

const site = lume();

site.use(postcss(/* Options */));
site.add("style.css"); //Add the entry point(s)

export default site;

PostCSS Plugins

PostCSS has postcss_autoprefixer plugin enabled by default to add automatically the vendor prefixes.

Use the property plugins add more plugins. For example, to use the postcss-nesting plugin:

import postcss from "lume/plugins/postcss.ts";
import nesting from "npm:postcss-nesting";

site.use(postcss({
  plugins: [nesting()],
}));

Includes

PostCSS plugin uses postcss-import, to inline the local @imports by looking in the _includes directory.

/* Import the CSS file from _includes/css/reset.css */
@import "css/reset.css";

/* Import the relative CSS file */
@import "./variables.css";

You can change the _includes directory or disable it completely with the includes option:

// Change the includes folder of CSS to _styles
site.use(postcss({
  includes: "_styles",
}));
// Disable the includes (the local @import's won't be inlined)
site.use(postcss({
  includes: false,
}));

The postcss filter

This plugin also registers the postcss filter so you can transform CSS code in the template engines. For example:

{{ set css }}
  body::after {
    content: "Hello, the CSS world!";
  }
{{ /set }}

<style>
  {{ css |> postcss }}
</style>

Configure VSCode

You can use the Postcss extension for VS Code for syntax highlight.