lilypad/index.js
Devin Haska 879ec1b533
feat: add some CSS utilities
Adds some basic CSS utilities for layouts. Uses any css defined by
`src/css/styles.css`, and utilizes the `postcss-import` plugin to
resolve imports into their contents.

The combined final output contains the base style as defined by the
configuration options, as well as some basic utilities.
2025-05-28 22:14:47 -07:00

43 lines
1.2 KiB
JavaScript

/*
* Implementation sourced from eleventyone starter kit
* https://github.com/philhawksworth/eleventyone
* ---
* https://github.com/philhawksworth/eleventyone/blob/master/src/site/css/styles.11ty.js
*/
import fs from "node:fs";
import postcss from "postcss";
import postcssImport from "postcss-import";
import cssnano from "cssnano";
import colors from "./src/colors.js";
import fontFamily from "./src/font-family.js";
import fontVariables from "./src/font-variables.js";
import spacing from "./src/spacing.js";
async function generateCSS() {
const css = `${fontFamily}${fontVariables}${colors}${spacing}`;
const utilitiesCssFile = fs.readFileSync("./src/css/styles.css");
const utilitiesCss = await postcss([postcssImport])
.process(utilitiesCssFile, { from: "src/css/styles.css" })
.then((result) => result.css);
await postcss([cssnano])
.process(`${css}${utilitiesCss}`, {
from: undefined,
to: "dist/lilypad.css",
})
.then((result) => {
if (!fs.existsSync("dist")) {
fs.mkdirSync("dist");
}
fs.writeFileSync("dist/lilypad.css", result.css);
if (result.map) {
fs.writeFile("dist/lilypad.css.map", result.map.toString(), () => true);
}
});
}
generateCSS();