---
title: "DropletSurface, DroppyKit"
description: "A surface a droplet says it provides."
canonical: "https://getdroppy.app/docs/droppykit/api/droplet-surface"
last-updated: "2026-09-09"
---

# DropletSurface

A surface a droplet says it provides.

`enum DropletSurface`

Declared so the Store can describe a droplet before installing it, and so `Scripts/validate-droplet.sh` can check that the runtime object actually conforms to the matching capability protocol. A droplet that claims `.shelfWidget` without conforming to [`ShelfWidgetProviding`](https://getdroppy.app/docs/droppykit/api/shelf-widget-providing) fails validation rather than shipping a surface that never appears.

## Cases

### DropletSurface.shelfWidget

`case shelfWidget`

A widget on the expanded shelf, in solo and paired layouts. Requires [`ShelfWidgetProviding`](https://getdroppy.app/docs/droppykit/api/shelf-widget-providing).

### DropletSurface.liveActivity

`case liveActivity`

A live activity, including its compact mini-HUD presentation. Requires [`LiveActivityProviding`](https://getdroppy.app/docs/droppykit/api/live-activity-providing).

### DropletSurface.expandedSurface

`case expandedSurface`

An expanded takeover surface on the notch. Requires [`ExpandedSurfaceProviding`](https://getdroppy.app/docs/droppykit/api/expanded-surface-providing).

### DropletSurface.settingsPane

`case settingsPane`

A settings pane inside the droplet's Store detail page. Requires [`SettingsPaneProviding`](https://getdroppy.app/docs/droppykit/api/settings-pane-providing).

### DropletSurface.hud

`case hud`

A transient HUD. Requires [`HUDPresenting`](https://getdroppy.app/docs/droppykit/api/hudpresenting).

### DropletSurface.lockScreenStatus

`case lockScreenStatus`

A row on Droppy's lock screen. Requires [`LockScreenStatusProviding`](https://getdroppy.app/docs/droppykit/api/lock-screen-status-providing).

### DropletSurface.menuBarExtra

`case menuBarExtra`

A menu bar extra, shown as a tile in Droppy's Command Center. Requires [`MenuBarExtraProviding`](https://getdroppy.app/docs/droppykit/api/menu-bar-extra-providing).

## Initializers

### init(rawValue:)

`init?(rawValue: String)`
