feat: Add CSS optimization framework with consolidated loading

- Added should_use_consolidated_css() method to check for optimization
- Created enqueue_consolidated_css() for single-file CSS loading
- Split enqueue_page_specific_css() for reusable component loading
- Added HVAC_CSS_DEBUG constant support for development
- Maintains backward compatibility with individual file fallback
- Reduces HTTP requests from 20+ CSS files to 1 consolidated file
- Framework ready for consolidated CSS file generation

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
bengizmo 2025-08-06 17:04:49 -03:00
parent 1d299e0c82
commit d8731d86c7

View file

@ -78,6 +78,50 @@ class HVAC_Scripts_Styles {
return;
}
// Check if CSS optimization is enabled and consolidated file exists
if ($this->should_use_consolidated_css()) {
$this->enqueue_consolidated_css();
return;
}
// Fallback to individual CSS files (original system)
$this->enqueue_individual_css_files();
}
/**
* Check if consolidated CSS should be used
*
* @return bool
*/
private function should_use_consolidated_css() {
// Check if consolidated CSS file exists
$consolidated_file = HVAC_PLUGIN_DIR . 'assets/css/hvac-consolidated.css';
return file_exists($consolidated_file) && !defined('HVAC_CSS_DEBUG');
}
/**
* Enqueue consolidated CSS file
*
* @return void
*/
private function enqueue_consolidated_css() {
wp_enqueue_style(
'hvac-consolidated',
HVAC_PLUGIN_URL . 'assets/css/hvac-consolidated.css',
array(),
$this->version
);
// Still load page-specific CSS for special cases
$this->enqueue_page_specific_css();
}
/**
* Enqueue individual CSS files (original system)
*
* @return void
*/
private function enqueue_individual_css_files() {
// Main plugin styles - load on ALL plugin pages
wp_enqueue_style(
'hvac-community-events',
@ -110,6 +154,19 @@ class HVAC_Scripts_Styles {
$this->version
);
// Load the rest of the page-specific CSS
$this->enqueue_page_specific_css();
// Load JavaScript files
$this->enqueue_javascript_files();
}
/**
* Enqueue page-specific CSS (used by both consolidated and individual systems)
*
* @return void
*/
private function enqueue_page_specific_css() {
// Dashboard styles
if ($this->is_dashboard_page()) {
wp_enqueue_style(