By default, Astro outputs zero client-side JS. If you'd like to include an interactive component in the client output, you may use any of the following techniques.
-`MyComponent:load` will render `MyComponent` on page load
-`MyComponent:idle` will use `requestIdleCallback` to render `MyComponent` as soon as main thread is free
-`MyComponent:visible` will use an `IntersectionObserver` to render `MyComponent` when the element enters the viewport
### 💅 Styling
If you‘ve used [Svelte][svelte]’s styles before, Astro works almost the same way. In any `.astro` file, start writing styles in a `<style>` tag like so:
```astro
<style>
.scoped {
font-weight: bold;
}
</style>
<divclass="scoped">I’m a scoped style</div>
```
#### Sass
Astro also supports [Sass][sass] out-of-the-box; no configuration needed:
```astro
<stylelang="scss">
@use "../tokens" as *;
.title {
color: $color.gray;
}
</style>
<h1class="title">Title</h1>
```
Supports:
-`lang="scss"`: load as the `.scss` extension
-`lang="sass"`: load as the `.sass` extension (no brackets; indent-style)
### Autoprefixer
We also automatically add browser prefixes using [Autoprefixer][autoprefixer]. By default, Astro loads the default values, but you may also specify your own by placing a [Browserslist][browserslist] file in your project root.