Configuration
ESBO Web uses several configuration files to customize the build process, styling, and code quality tools.Vite Configuration
File:vite.config.js
Vite is the build tool and development server for ESBO Web.
Configuration Options
Plugins
@vitejs/plugin-react- Enables React Fast Refresh and JSX transformation- Automatically transforms JSX to JavaScript
- Provides instant feedback during development
- Preserves component state during edits
Common Customizations
Change server port
Change server port
Configure base path for deployment
Configure base path for deployment
Add path aliases
Add path aliases
Environment variables
Environment variables
Tailwind Configuration
File:tailwind.config.js
Tailwind CSS is configured with custom brand colors for ESBO.
Configuration Options
Content
Defines which files Tailwind should scan for class names:./index.html- Main HTML entry point./src/**/*.{js,ts,jsx,tsx}- All JavaScript/TypeScript/JSX/TSX files in src
Tailwind removes unused styles from production builds by scanning these files.
Custom Colors
Two institutional brand colors are defined:| Color Name | Hex Value | Usage |
|---|---|---|
institucional-dorado | #c29b47 | Primary brand gold color |
institucional-claro | #fdfaf5 | Light background/accent color |
Plugins
Currently no Tailwind plugins are installed. Common plugins to consider:@tailwindcss/forms- Better form styling@tailwindcss/typography- Prose content styling@tailwindcss/aspect-ratio- Aspect ratio utilities
Extending the Configuration
Add more custom colors
Add more custom colors
Add custom fonts
Add custom fonts
Custom breakpoints
Custom breakpoints
ESLint Configuration
File:eslint.config.js
ESLint enforces code quality and consistency.
Configuration Breakdown
Global Ignores
dist/ directory from linting (build output).
File Patterns
Extended Configurations
-
js.configs.recommended- Core ESLint rules for JavaScript -
reactHooks.configs.flat.recommended- Rules for React Hooks:- Ensures Hooks are called in the correct order
- Validates dependencies in useEffect, useMemo, etc.
- Prevents Hooks in conditionals or loops
-
reactRefresh.configs.vite- Rules for Fast Refresh:- Ensures components export properly
- Validates Hot Module Replacement compatibility
Language Options
ecmaVersion: 2020- Enables modern JavaScript featuresglobals.browser- Recognizes browser globals (window, document, etc.)jsx: true- Enables JSX parsingsourceType: 'module'- Uses ES modules (import/export)
Custom Rules
- Throws error on unused variables
- Ignores variables starting with uppercase letter or underscore
- Useful for imported React components or constants
Adding Custom Rules
Enforce consistent return
Enforce consistent return
Warn on console statements
Warn on console statements
Enforce PropTypes
Enforce PropTypes
First install the plugin:Then add to config:
PostCSS Configuration
File:postcss.config.js
PostCSS processes CSS with plugins before itβs bundled.
Plugins
Tailwind CSS Plugin
Processes Tailwind directives and generates utility classes:- Transforms
@tailwinddirectives - Generates utility classes based on configuration
- Removes unused styles in production
Autoprefixer
Automatically adds vendor prefixes for browser compatibility:- Targets browsers based on browserslist configuration
- Adds
-webkit-,-moz-,-ms-prefixes as needed - Removes outdated prefixes
Browser Targets
By default, Autoprefixer uses browserslist defaults. Customize inpackage.json:
Adding More Plugins
CSS Nesting
CSS Nesting
CSS Minification
CSS Minification
Configuration Best Practices
Keep it simple
Start with minimal configuration and add complexity only when needed.
Document changes
Add comments explaining why custom configurations were added.
Version control
Commit all configuration files to track changes over time.
Team alignment
Ensure all developers use the same configuration for consistency.