---
title: NSAppearance
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsappearance
---

# NSAppearance

An object that manages standard appearance attributes for UI elements in an app.

## Declaration

```swift
class NSAppearance
```

## Mentioned in

Choosing a Specific Appearance for Your macOS App

## Overview

Overview An NSAppearance object manages how AppKit renders your app’s UI elements. Specifically, appearance objects determine which colors and images AppKit uses when drawing windows, views, and controls. Although you can use an appearance object to determine how to draw custom views and controls, a better approach is to choose colors and images that adapt automatically to the current appearance. For example, define a color asset whose actual color value changes for light and dark appearances. You can assign specific appearances to your views in Interface Builder. The user chooses the default appearance for the system, but you can override that appearance for all or part of your app. Apps inherit the default system appearance, windows inherit their app’s appearance, and views inherit the appearance of their nearest ancestor (either a superview or window). To force a window or view to adopt an appearance, assign a specific appearance object to its appearance property. When AppKit draws a control, it automatically sets the current appearance on the current thread to the control’s appearance. The current appearance influences the drawing path and return values you get when you access system fonts and colors. The current appearance also affects the appearance of text and images, such as the text and template images in a toolbar.

## Topics

### Creating an Appearance

- [init(named:)](appkit/nsappearance/init(named:).md)
- [init(appearanceNamed:bundle:)](appkit/nsappearance/init(appearancenamed:bundle:).md)
- [init(coder:)](appkit/nsappearance/init(coder:).md)

### Getting the Appearance Name

- [name](appkit/nsappearance/name-swift.property.md)
- [NSAppearance.Name](appkit/nsappearance/name-swift.struct.md)

### Determining the Most Appropriate Appearance

- [bestMatch(from:)](appkit/nsappearance/bestmatch(from:).md)

### Getting and Setting the Current Appearance

- [currentDrawing()](appkit/nsappearance/currentdrawing().md)
- [performAsCurrentDrawingAppearance(_:)](appkit/nsappearance/performascurrentdrawingappearance(_:).md)
- [current](appkit/nsappearance/current.md)

### Managing Vibrancy

- [allowsVibrancy](appkit/nsappearance/allowsvibrancy.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)

## See Also

### Appearance System

- [NSAppearanceCustomization](appkit/nsappearancecustomization.md)
