If `event` is null, the `NSDistributedNotificationCenter` doesn’t use it as criteria for delivery to the observer. See [docs](https://developer.apple.com/documentation/foundation/nsnotificationcenter/1411723-addobserverforname?language=objc) for more information.
If `event` is null, the `NSNotificationCenter` doesn’t use it as criteria for delivery to the observer. See [docs](https://developer.apple.com/documentation/foundation/nsnotificationcenter/1411723-addobserverforname?language=objc) for more information.
If `event` is null, the `NSWorkspaceNotificationCenter` doesn’t use it as criteria for delivery to the observer. See [docs](https://developer.apple.com/documentation/foundation/nsnotificationcenter/1411723-addobserverforname?language=objc) for more information.
*`3d-dark-shadow` - Dark shadow for three-dimensional display elements.
*`3d-face` - Face color for three-dimensional display elements and for dialog
box backgrounds.
*`3d-highlight` - Highlight color for three-dimensional display elements.
*`3d-light` - Light color for three-dimensional display elements.
*`3d-shadow` - Shadow color for three-dimensional display elements.
*`active-border` - Active window border.
*`active-caption` - Active window title bar. Specifies the left side color in
the color gradient of an active window's title bar if the gradient effect is
enabled.
*`active-caption-gradient` - Right side color in the color gradient of an
active window's title bar.
*`app-workspace` - Background color of multiple document interface (MDI)
applications.
*`button-text` - Text on push buttons.
*`caption-text` - Text in caption, size box, and scroll bar arrow box.
*`desktop` - Desktop background color.
*`disabled-text` - Grayed (disabled) text.
*`highlight` - Item(s) selected in a control.
*`highlight-text` - Text of item(s) selected in a control.
*`hotlight` - Color for a hyperlink or hot-tracked item.
*`inactive-border` - Inactive window border.
*`inactive-caption` - Inactive window caption. Specifies the left side color
in the color gradient of an inactive window's title bar if the gradient
effect is enabled.
*`inactive-caption-gradient` - Right side color in the color gradient of an
inactive window's title bar.
*`inactive-caption-text` - Color of text in an inactive caption.
*`info-background` - Background color for tooltip controls.
*`info-text` - Text color for tooltip controls.
*`menu` - Menu background.
*`menu-highlight` - The color used to highlight menu items when the menu
appears as a flat menu.
*`menubar` - The background color for the menu bar when menus appear as flat
menus.
*`menu-text` - Text in menus.
*`scrollbar` - Scroll bar gray area.
*`window` - Window background.
*`window-frame` - Window frame.
*`window-text` - Text in windows.
* On **macOS**
*`control-background` - The background of a large interface element, such as a browser or table.
*`control` - The surface of a control.
*`control-text` -The text of a control that isn’t disabled.
*`disabled-control-text` - The text of a control that’s disabled.
*`find-highlight` - The color of a find indicator.
*`grid` - The gridlines of an interface element such as a table.
*`header-text` - The text of a header cell in a table.
*`highlight` - The virtual light source onscreen.
*`keyboard-focus-indicator` - The ring that appears around the currently focused control when using the keyboard for interface navigation.
*`label` - The text of a label containing primary content.
*`link` - A link to other content.
*`placeholder-text` - A placeholder string in a control or text view.
*`quaternary-label` - The text of a label of lesser importance than a tertiary label such as watermark text.
*`scrubber-textured-background` - The background of a scrubber in the Touch Bar.
*`secondary-label` - The text of a label of lesser importance than a normal label such as a label used to represent a subheading or additional information.
*`selected-content-background` - The background for selected content in a key window or view.
*`selected-control` - The surface of a selected control.
*`selected-control-text` - The text of a selected control.
The following colors are only available on macOS 10.14: `find-highlight`, `selected-content-background`, `separator`, `unemphasized-selected-content-background`, `unemphasized-selected-text-background`, and `unemphasized-selected-text`.
Returns one of several standard system colors that automatically adapt to vibrancy and changes in accessibility settings like 'Increase contrast' and 'Reduce transparency'. See [Apple Documentation](https://developer.apple.com/design/human-interface-guidelines/macos/visual-design/color#system-colors) for more details.
This API itself will not protect your user data; rather, it is a mechanism to allow you to do so. Native apps will need to set [Access Control Constants](https://developer.apple.com/documentation/security/secaccesscontrolcreateflags?language=objc) like [`kSecAccessControlUserPresence`](https://developer.apple.com/documentation/security/secaccesscontrolcreateflags/ksecaccesscontroluserpresence?language=objc) on their keychain entry so that reading it would auto-prompt for Touch ID biometric consent. This could be done with [`node-keytar`](https://github.com/atom/node-keytar), such that one would store an encryption key with `node-keytar` and only fetch it if `promptTouchID()` resolves.
Returns `Promise<boolean>` - A promise that resolves with `true` if consent was granted and `false` if it was denied. If an invalid `mediaType` is passed, the promise will be rejected. If an access request was denied and later is changed through the System Preferences pane, a restart of the app will be required for the new permissions to take effect. If access has already been requested and denied, it _must_ be changed through the preference pane; an alert will not pop up and the promise will resolve with the existing access status.
**Important:** In order to properly leverage this API, you [must set](https://developer.apple.com/documentation/avfoundation/cameras_and_media_capture/requesting_authorization_for_media_capture_on_macos?language=objc) the `NSMicrophoneUsageDescription` and `NSCameraUsageDescription` strings in your app's `Info.plist` file. The values for these keys will be used to populate the permission dialogs so that the user will be properly informed as to the purpose of the permission request. See [Electron Application Distribution](../tutorial/application-distribution.md#rebranding-with-downloaded-binaries) for more information about how to set these in the context of Electron.
*`shouldRenderRichAnimation` boolean - Returns true if rich animations should be rendered. Looks at session type (e.g. remote desktop) and accessibility settings to give guidance for heavy animations.
*`scrollAnimationsEnabledBySystem` boolean - Determines on a per-platform basis whether scroll animations (e.g. produced by home/end key) should be enabled.
*`prefersReducedMotion` boolean - Determines whether the user desires reduced motion based on platform APIs.
A `boolean` property which determines whether the app avoids using semitransparent backgrounds. This maps to [NSWorkspace.accessibilityDisplayShouldReduceTransparency](https://developer.apple.com/documentation/appkit/nsworkspace/1533006-accessibilitydisplayshouldreduce)