--- description: Customize your site's appearance through creating your own theme components --- # Swizzling In this section, we will introduce how customization of layout is done in Docusaurus. > Déja vu...? This section is similar to [Styling and Layout](../styling-layout.md), but this time, we are going to write more code and go deeper into the internals instead of playing with stylesheets. We will talk about a central concept in Docusaurus customization: **swizzling**, from how to swizzle, to how it works under the hood. We know you are busy, so we will start with the "how" before going into the "why". ## Swizzling {#swizzling} ```mdx-code-block import SwizzleWarning from "../_partials/swizzleWarning.mdx" ``` Docusaurus Themes' components are designed to be replaceable. The replacing is called "swizzle". In Objective C, method swizzling is the process of changing the implementation of an existing selector (method). **In the context of a website, component swizzling means providing an alternative component that takes precedence over the component provided by the theme.** (To gain a deeper understanding of this, you have to understand [how theme components are resolved](#theme-aliases)). To help you get started, we created a command called `docusaurus swizzle`. ### Ejecting theme components {#ejecting-theme-components} To eject a component provided by the theme, run the following command in your doc site: ```bash npm2yarn npm run swizzle [theme name] [component name] ``` As an example, to swizzle the `