mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
43 lines
1.6 KiB
JavaScript
43 lines
1.6 KiB
JavaScript
// @ts-check
|
|
|
|
import path from "node:path";
|
|
|
|
import postcssExtendRule from "postcss-extend-rule";
|
|
import postcssImport from "postcss-import";
|
|
import postcssPrefixWrap from "postcss-prefixwrap";
|
|
import postcssPresetEnv from "postcss-preset-env";
|
|
import postcssSimpleVars from "postcss-simple-vars";
|
|
|
|
import {container_breakpoints, media_breakpoints} from "./src/css_variables.ts";
|
|
|
|
/**
|
|
* @param {object} ctx
|
|
* @returns {import("postcss-load-config").Config}
|
|
* @satisfies {import("postcss-load-config").ConfigFn & import("postcss-loader/dist/config").PostCSSLoaderOptions}
|
|
*/
|
|
const config = (ctx) => ({
|
|
plugins: [
|
|
"file" in ctx &&
|
|
(typeof ctx.file === "string"
|
|
? path.basename(ctx.file)
|
|
: typeof ctx.file === "object" && ctx.file !== null && "basename" in ctx.file
|
|
? ctx.file.basename
|
|
: undefined) === "dark_theme.css" &&
|
|
// Add postcss-import plugin with postcss-prefixwrap to handle
|
|
// the flatpickr dark theme. We do this because flatpickr themes
|
|
// are not scoped. See https://github.com/flatpickr/flatpickr/issues/2168.
|
|
postcssImport({
|
|
plugins: [postcssPrefixWrap("%dark-theme")],
|
|
}),
|
|
postcssExtendRule,
|
|
postcssSimpleVars({variables: {...container_breakpoints, ...media_breakpoints}}),
|
|
postcssPresetEnv({
|
|
features: {
|
|
"is-pseudo-class": true, // Needed for postcss-extend-rule
|
|
"nesting-rules": true,
|
|
},
|
|
}),
|
|
],
|
|
});
|
|
export default config;
|