PostCSS configuration template and validation logic for Tailwind CSS processing with Autoprefixer. Includes 4 required standards (required base plugins, critical plugin order with tailwindcss first and autoprefixer last, file naming as postcss.config.js, required dependencies). Use when creating or auditing postcss.config.js files to ensure correct CSS build pipeline.
Provides postcss.config.js template and validation for Tailwind CSS with Autoprefixer. Triggers when creating or auditing PostCSS configs to enforce 4 standards: required plugins, critical order (tailwindcss first, autoprefixer last), correct file naming, and package dependencies.
/plugin marketplace add metasaver/metasaver-marketplace/plugin install core-claude-plugin@metasaver-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
templates/postcss.config.template.jsThis skill provides postcss.config.js template and validation logic for CSS processing configuration.
Manage postcss.config.js configuration to:
This skill is invoked by the postcss-agent when:
The standard PostCSS template is located at:
templates/postcss.config.template.js
Must include both required plugins:
tailwindcss - Tailwind CSS processingautoprefixer - Browser prefix automationPlugins must be in this exact order:
tailwindcss - FIRSTautoprefixer - LAST✅ ALWAYS: Use Tailwind first, Autoprefixer last (reversed order causes CSS processing errors)
Must be named exactly postcss.config.js:
.js extension (not .ts or .mjs)postcss.config.jsMust have in package.json devDependencies:
{
"devDependencies": {
"postcss": "^8.4.0",
"tailwindcss": "^3.4.0",
"autoprefixer": "^10.4.0"
}
}
To validate a postcss.config.js file:
// Rule 1: Check required plugins
const hasTailwind = plugins.some(
(p) => p === "tailwindcss" || p.includes("tailwindcss"),
);
const hasAutoprefixer = plugins.some(
(p) => p === "autoprefixer" || p.includes("autoprefixer"),
);
// Rule 2: Check plugin order
const tailwindIndex = plugins.findIndex(
(p) => p === "tailwindcss" || p.includes("tailwindcss"),
);
const autoprefixerIndex = plugins.findIndex(
(p) => p === "autoprefixer" || p.includes("autoprefixer"),
);
if (tailwindIndex > autoprefixerIndex) {
errors.push("Rule 2: autoprefixer must be last plugin (after tailwindcss)");
}
// Rule 4: Check dependencies
const deps = packageJson.devDependencies || {};
if (!deps.postcss) errors.push("Rule 4: Missing postcss in devDependencies");
if (!deps.tailwindcss)
errors.push("Rule 4: Missing tailwindcss in devDependencies");
if (!deps.autoprefixer)
errors.push("Rule 4: Missing autoprefixer in devDependencies");
Consumer repos may declare exceptions in package.json:
{
"metasaver": {
"exceptions": {
"postcss-config": {
"type": "custom-plugins",
"reason": "Requires postcss-import for component library structure"
}
}
}
}
This skill integrates with:
scope parameter. If not provided, use /skill scope-check/skill audit-workflow - Bi-directional comparison workflow/skill remediation-options - Conform/Update/Ignore choicestailwind-agent - Tailwind CSS configuration coordination