---
title: "DropletNotchSurfaceService, DroppyKit"
description: "Presents and dismisses expanded (takeover) surfaces on the notch."
canonical: "https://getdroppy.app/docs/droppykit/api/droplet-notch-surface-service"
last-updated: "2026-09-09"
---

# DropletNotchSurfaceService

Presents and dismisses expanded (takeover) surfaces on the notch.

`@MainActor protocol DropletNotchSurfaceService : AnyObject`

Requires the `expanded-surface` capability.

## Properties

### didChange

`@MainActor var didChange: AnyPublisher<Void, Never> { get }`

Fires when any expanded surface is presented or dismissed.

### expandedState

`@MainActor var expandedState: DropletExpandedShelfState { get }`

Every expanded surface currently on screen, including other droplets'.

## Methods

### dismissExpandedSurface(_:)

`@MainActor func dismissExpandedSurface(_ id: ExpandedSurfaceID)`

Takes down a surface this droplet presented.

### presentExpandedSurface(_:)

`@discardableResult @MainActor func presentExpandedSurface(_ request: ExpandedSurfacePresentationRequest) -> ExpandedSurfacePresentation?`

Presents an expanded surface this droplet declared. Returns the live presentation, or `nil` when the host refused.
