A Scheme is named a mapping from `VisualRole`s (e.g. `VisualRole.Focus`) to `Attribute`s, defining how a `View` should look based on its purpose (e.g. Menu or Dialog). @Terminal.Gui.SchemeManager.Schemes is a dictionary of `Scheme`s, indexed by name.

A Scheme defines how Views look based on their semantic purpose. The following schemes are supported:

| Scheme Name | Description |
|:-----|:--------|
| **Base** | The base scheme used for most Views. |
| **Dialog** | The dialog scheme; used for Dialog, MessageBox, and other views dialog-like views. |
| **Error** | The scheme for showing errors, such as in `ErrorQuery`. |
| **Menu** | The menu scheme; used for Terminal.Gui.Menu, MenuBar, and StatusBar. |
| **TopLevel** | The application `TopLevel` scheme; used for the `TopLevel` View. |

@Terminal.Gui.SchemeManager manages the set of available schemes and provides a set of convenience methods for getting the current scheme and for overriding the default values for these schemes.

```csharp
Scheme dialogScheme = SchemeManager.GetScheme (Schemes.Dialog);
```

[ConfigurationManager](~/docs/config.md) can be used to override the default values for these schemes and add additional schemes. 
