--- title: Scoped styles --- One of Svelte's key tenets is that components should be self-contained and reusable in different contexts. Because of that, it has a mechanism for *scoping* your CSS, so that you don't accidentally clobber other selectors on the page. ### Adding styles Your component template can have a `
Big red Comic Sans
``` ### How it works Open the example above in the REPL and inspect the element to see what has happened – Svelte has added a `svelte-[uniqueid]` class to the element, and transformed the CSS selector accordingly. Since no other element on the page can share that selector, anything else on the page with `class="foo"` will be unaffected by our styles. This is vastly simpler than achieving the same effect via [Shadow DOM](http://caniuse.com/#search=shadow%20dom) and works everywhere without polyfills. > Svelte will add a `
``` > Scoped styles are *not* dynamic – they are shared between all instances of a component. In other words you can't use `{tags}` inside your CSS. ### Unused style removal Svelte will identify and remove styles that are not being used in your app. It will also emit a warning so that you can remove them from the source. For rules *not* to be removed, they must apply to the component's markup. As far as Svelte is concerned `.bold` is unused in the following code and should be removed: ```html

this text is not bold

``` Instead of manually manipulating the DOM, you should always use the `class` attribute (or the [class directive](https://svelte.technology/guide#classes)): ```html

this text is bold

``` If that's impossible for some reason, you can use `:global(...)`: ```html ``` The same applies to the contents of `{@html ...}` tags.