Styling

Customize the visual appearance of your theme with CSS.

CSS Structure

Organize CSS files by purpose:

public/assets/theme/my-theme/css/
├── main.css              # Main stylesheet (loaded everywhere)
├── admin.css             # Admin panel specific
├── dashboard.css         # Dashboard specific
├── auth.css              # Login/register pages
├── components/
│   ├── buttons.css
│   ├── cards.css
│   ├── forms.css
│   └── tables.css
└── utilities.css         # Helper classes

Including Stylesheets

In your template:

{% block head_stylesheets %}
    {{ parent() }}  {# Include default styles #}

    {# Your theme styles #}
    <link rel="stylesheet" href="{{ asset('assets/theme/my-theme/css/main.css') }}">
    <link rel="stylesheet" href="{{ asset('assets/theme/my-theme/css/components/buttons.css') }}">
{% endblock %}

Bootstrap Customization

PteroCA uses Bootstrap. Customize Bootstrap variables:

Dark Mode

Implement dark mode support:

Toggle dark mode with JavaScript:

Custom Components

Custom buttons:

Custom cards:

Responsive Design

Ensure mobile compatibility:

Bootstrap Breakpoints

PteroCA uses Bootstrap's default breakpoints:

Breakpoint
Class prefix
Dimensions

X-Small

None

<576px

Small

sm

≥576px

Medium

md

≥768px

Large

lg

≥992px

Extra large

xl

≥1200px

Extra extra large

xxl

≥1400px

Common CSS Patterns

Glassmorphism effect:

Gradient backgrounds:

Smooth animations:

CSS Best Practices

  1. Scope your styles - avoid affecting core elements

  2. Use CSS variables - easier theme customization

  3. Prefix custom classes - avoid conflicts (e.g., .mytheme-card)

  4. Minimize !important - use specificity instead

  5. Optimize for performance - minify for production

  6. Test across browsers - ensure compatibility

  7. Make responsive - test on mobile devices

Performance Tips

Minimize file size:

Use efficient selectors:

Avoid expensive properties:

Debugging CSS

Browser DevTools:

  1. Right-click element → Inspect

  2. Check Computed tab for applied styles

  3. Use Styles tab to modify styles in real-time

  4. Check for overridden styles (crossed out)

Common issues:

  • Styles not applying → Check selector specificity

  • Layout broken → Inspect box model in DevTools

  • Responsive issues → Use responsive design mode

  • Performance → Use Lighthouse audit

External Resources

Last updated