--- title: Layouts --- So far, we've treated pages as entirely standalone components — upon navigation, the existing component will be destroyed, and a new one will take its place. But in many apps, there are elements that should be visible on *every* page, such as top-level navigation or a footer. Instead of repeating them in every page, we can use *layout* components. To create a layout component that applies to every page, make a file called `src/routes/_layout.svelte`. The default layout component (the one that Sapper uses if you don't bring your own) looks like this... ```html ``` ...but we can add whatever markup, styles and behaviour we want. For example, let's add a nav bar: ```html ``` If we create pages for `/`, `/about` and `/settings`... ```html

Home

``` ```html

About

``` ```html

Settings

``` ...the nav will always be visible, and clicking between the three pages will only result in the `

` being replaced. ### Nested routes Suppose we don't just have a single `/settings` page, but instead have nested pages like `/settings/profile` and `/settings/notifications` with a shared submenu (for an real-life example, see [github.com/settings](https://github.com/settings)). We can create a layout that only applies to pages below `/settings` (while inheriting the root layout with the top-level nav): ```html

Settings

``` Layout components receive a `segment` property which is useful for things like styling: ```diff + + ```