Concept is built with customization in mind. This guide provides an overview of all the ways you can make the template your own.
- Change colors and fonts
- Modify spacing and sizes
- Toggle features on/off
- Adjust layouts
- Create custom themes
- Add new components
- Modify existing components
- Integrate new plugins
- Restructure layouts
- Build custom applications
- Create new design systems
- Implement custom build processes
The fastest way to customize Concept is through Sass variables:
// src/scss/_variables.scss
$primary: #5969ff;
$secondary: #6c757d;
$success: #28a745;
$font-family-base: 'Inter', sans-serif;
$border-radius: 0.375rem;Override specific components without modifying core files:
// src/scss/custom/_buttons.scss
.btn-primary {
background: linear-gradient(45deg, $primary, lighten($primary, 10%));
border: none;
box-shadow: 0 4px 6px rgba($primary, 0.3);
}Customize the overall layout structure:
// src/config/layout.js
export const layoutConfig = {
sidebar: {
width: '260px',
collapsed: '70px',
dark: true
},
header: {
height: '70px',
fixed: true
}
};_variables.scss- Global Sass variablesmain.scss- Main stylesheet entrycustom/- Your custom styles directory
config/- Configuration filesjs/custom/- Custom JavaScript modulesapp.js- Main application logic
partials/layouts/- Layout templatespartials/components/- Reusable componentspages/- Page templates
Before starting, identify:
- What needs to be changed
- Which files are affected
- Whether to override or modify
- Impact on other components
Create a custom directory structure:
src/
├── scss/
│ └── custom/
│ ├── _variables.scss # Your variables
│ ├── _components.scss # Component overrides
│ └── _theme.scss # Theme customizations
└── js/
└── custom/
├── theme.js # Theme switcher
└── components.js # Custom components
Always override rather than modify core files:
// DO: Create custom/_buttons.scss
.btn-primary {
// Your customizations
}
// DON'T: Modify components/_buttons.scss directly- Test in development mode
- Build for production
- Check responsive behavior
- Verify cross-browser compatibility
// src/scss/_variables.scss
$primary: #7c3aed; // Purple instead of blue// src/scss/_variables.scss
$font-family-base: 'Roboto', sans-serif;
// Add font import
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');// src/scss/custom/_layout.scss
.sidebar {
width: 280px; // Instead of 260px
&.collapsed {
width: 80px; // Instead of 70px
}
}// src/js/custom/theme.js
export function initThemeSwitcher() {
const toggle = document.getElementById('darkModeToggle');
toggle?.addEventListener('click', () => {
document.body.classList.toggle('dark-mode');
localStorage.setItem('theme',
document.body.classList.contains('dark-mode') ? 'dark' : 'light'
);
});
}- ✅ Use variables for consistency
- ✅ Create custom files for overrides
- ✅ Document your customizations
- ✅ Test across browsers
- ✅ Keep customizations modular
- ✅ Use version control
- ❌ Modify core Bootstrap files
- ❌ Edit vendor libraries directly
- ❌ Use !important excessively
- ❌ Hardcode values
- ❌ Skip responsive testing
- ❌ Forget about accessibility
- Logo replacement
- Color scheme
- Typography
- Favicon
- Sidebar behavior
- Header style
- Footer content
- Page width
- Button styles
- Card designs
- Form elements
- Table layouts
- Remove unused pages
- Add new functionality
- Integrate APIs
- Custom widgets
// src/js/custom/theme-manager.js
class ThemeManager {
constructor() {
this.themes = {
default: { primary: '#5969ff', secondary: '#6c757d' },
dark: { primary: '#1a1a1a', secondary: '#2d2d2d' },
corporate: { primary: '#003366', secondary: '#0066cc' }
};
}
applyTheme(themeName) {
const theme = this.themes[themeName];
Object.entries(theme).forEach(([key, value]) => {
document.documentElement.style.setProperty(`--${key}`, value);
});
}
}// vite.config.custom.js
import { defineConfig } from 'vite';
import customPlugin from './plugins/custom';
export default defineConfig({
plugins: [
customPlugin({
// Your custom options
})
]
});- Check import order in
main.scss - Verify file paths
- Clear browser cache
- Check CSS specificity
- Check console for errors
- Verify module imports
- Ensure DOM is ready
- Check for conflicts
- Clear Vite cache
- Check for syntax errors
- Verify dependencies
- Review build logs
Dive deeper into specific customization topics:
- Theming Guide - Create custom themes
- Sass Variables - All available variables
- Color System - Color customization
- Component Styling - Customize components
- Layout Options - Layout customization
Remember: Good customization maintains the template's quality while adding your unique touch. Start small, test often, and build incrementally! 🎨