Files
doormile_react/purgecss.config.cjs
2026-06-05 13:58:14 +05:30

40 lines
1.2 KiB
JavaScript

/**
* PurgeCSS config for consolidating the migrated WordPress/Elementor CSS.
* Content = rendered static HTML (authoritative class list) + component source
* (catches runtime-toggled classes that appear as string literals, e.g. "active",
* "is-active", "animated", and the body-class strings in src/lib/bodyClasses.ts).
*
* Conservative by design: keyframes / @font-face / CSS variables are kept (PurgeCSS
* defaults), and a safelist guards classes added by JS at runtime.
*/
module.exports = {
css: ["public/css/site.css"],
content: [
"out/**/*.html",
"src/**/*.{tsx,ts,jsx,js}",
],
// Keep classes toggled/added at runtime by GSAP/React state and header/menu logic.
safelist: {
standard: [
"active",
"is-active",
"is-hiding",
"animated",
"header-visible-scrolled",
"dm-header-scrolled",
"header-visible",
"current-menu-item",
"current_page_item",
"current-menu-ancestor",
"menu-open",
"loaded",
],
greedy: [
/^elementor-.*-animation/, // animation utility classes applied on scroll
/animated$/,
/^swiper-/, // carousel runtime classes
/^owl-/, // carousel runtime classes
],
},
};