# 💅 Styling Styling in Astro is meant to be as flexible as you’d like it to be! The following options are all supported: | Framework | Global CSS | Scoped CSS | CSS Modules | | :--------------- | :--------: | :--------: | :---------: | | `.astro` | ✅ | ✅ | N/A¹ | | `.jsx` \| `.tsx` | ✅ | ❌ | ✅ | | `.vue` | ✅ | ✅ | ✅ | | `.svelte` | ✅ | ✅ | ❌ | ¹ _`.astro` files have no runtime, therefore Scoped CSS takes the place of CSS Modules (styles are still scoped to components, but don’t need dynamic values)_ All styles in Astro are automatically [**autoprefixed**](#-autoprefixer) and optimized, so you can just write CSS and we’ll handle the rest ✨. ## 🖍 Quick Start ##### Astro Styling in an Astro component is done by adding a `
I’m a scoped style and only apply to this component

I have both scoped and global styles

``` **Tips** - ` ``` _Note: all the examples here use `lang="scss"` which is a great convenience for nesting, and sharing [colors and variables][sass-use], but it’s entirely optional and you may use normal CSS if you wish._ That `.btn` class is scoped within that component, and won’t leak out. It means that you can **focus on styling and not naming.** Local-first approach fits in very well with Astro’s ESM-powered design, favoring encapsulation and reusability over global scope. While this is a simple example, it should be noted that **this scales incredibly well.** And if you need to share common values between components, [Sass’ module system][sass-use] also gets our recommendation for being easy to use, and a great fit with component-first design. --- By contrast, Astro does allow global styles via the `:global()` escape hatch, however, this should be avoided if possible. To illustrate this: say you used your button in a `