astro-styling
Astro Styling
Agent Workflow (MANDATORY)
Before ANY implementation, use TeamCreate to spawn 3 agents:
- fuse-ai-pilot:explore-codebase - Analyze existing styles, integrations, and patterns
- fuse-ai-pilot:research-expert - Verify latest Astro/Tailwind/UnoCSS docs via Context7/Exa
- mcp__context7__query-docs - Check integration compatibility with Astro 6
After implementation, run fuse-ai-pilot:sniper for validation.
Overview
When to Use
- Styling
.astrocomponents with component-scoped CSS - Setting up Tailwind CSS or UnoCSS in an Astro project
- Using CSS Modules for framework-agnostic scoping
- Applying global base styles (reset, fonts, variables)
- Using
class:listfor conditional class application - Adding Sass/SCSS via Vite preprocessors
Styling Options
| Method | Scope | When to Use |
|---|---|---|
<style> in .astro |
Component | Default — scoped to component |
<style is:global> |
Global | Base styles, resets |
CSS Modules .module.css |
Component | Framework components (React, Vue) |
| Tailwind CSS | Utility | Rapid UI development |
| UnoCSS | Utility | Lightweight, configurable atomic CSS |
| Sass/SCSS | Component/Global | Advanced features, variables, mixins |
Reference Guide
Concepts
| Topic | Reference | When to Consult |
|---|---|---|
| Scoped CSS | scoped-css.md | Component styling |
| CSS Modules | css-modules.md | Framework components |
| Global styles | global-styles.md | Resets, base styles |
| Tailwind | tailwind.md | Utility-first CSS |
| UnoCSS | unocss.md | Atomic CSS engine |
| Sass/SCSS | sass.md | Preprocessor features |
| CSS Variables | css-variables.md | Design tokens, themes |
Templates
| Template | When to Use |
|---|---|
| scoped-component.md | Component with scoped + conditional classes |
| tailwind-setup.md | Full Tailwind CSS project setup |
| unocss-setup.md | Full UnoCSS project setup |
Best Practices
- Prefer scoped styles — Use
<style>in.astrofiles by default - Global styles in layouts — Apply resets and base styles in root layout
- CSS variables for themes — Define design tokens as custom properties
- Avoid
is:globalin components — Reserve for layouts and global files - class:list over ternaries — More readable conditional class logic
Forbidden
- Writing inline styles for layout/theme — use CSS classes instead
- Using
is:globalinside non-layout components - Importing CSS in multiple components without CSS Modules
- Mixing Tailwind and custom class naming without a clear convention
More from fusengine/agents
laravel-architecture
Design Laravel app architecture with services, repositories, actions, and clean code patterns. Use when structuring projects, creating services, implementing DI, or organizing code layers.
97laravel-blade
Create Blade templates with components, slots, layouts, and directives. Use when building views, reusable components, or templating.
89laravel-livewire
Livewire 3 reactive components - wire:model, actions, events, Volt, Folio. Use when building reactive UI without JavaScript.
87nextjs-i18n
Next.js 16 internationalization with next-intl or DIY. Use when implementing i18n, translations, localization, multilingual, language switch, locale routing, or formatters.
59solid-php
SOLID principles for Laravel 12 and PHP 8.5. Files < 100 lines, interfaces separated, PHPDoc mandatory. Auto-detects Laravel and FuseCore architecture.
51laravel-testing
Write tests with Pest 3/PHPUnit, feature tests, unit tests, mocking, fakes, and factories. Use when testing controllers, services, models, or implementing TDD.
50