---
title: "ShelfWidgetControlRow, DroppyKit"
description: "A row of wash controls at the mount&#x27;s size (DroppyKit 1.23.0), controlRowHeight tall."
canonical: "https://getdroppy.app/docs/droppykit/api/shelf-widget-control-row"
last-updated: "2026-09-09"
---

# ShelfWidgetControlRow

A row of wash controls at the mount's size (DroppyKit 1.23.0), controlRowHeight tall.

`@MainActor struct ShelfWidgetControlRow`

Given controls, it draws as many as fit and folds the rest into a More disc, never a scroll view that hides them (Notes' formatting bar). Given a view, it lays the view's buttons out at the row's size and spacing.

```
ShelfWidgetControlRow([
    ShelfWidgetControl("Start", systemImage: "play.fill", tone: .accent(.orange)) { start() },
    ShelfWidgetControl("Reset", systemImage: "arrow.counterclockwise") { reset() },
    ShelfWidgetControl("Sound", systemImage: "speaker.wave.2") { toggleSound() },
])
```

Available from DroppyKit 1.23.0.

## Initializers

### init(_:alignment:)

`@MainActor init(_ controls: [ShelfWidgetControl], alignment: HorizontalAlignment = .center)`

A row of controls that folds what does not fit into a More disc.

### init(alignment:content:)

`@MainActor init<Content>(alignment: HorizontalAlignment = .center, @ViewBuilder content: () -> Content) where Content : View`

A row of your own buttons at the row's size and spacing.

## Properties

### body

`@MainActor var body: some View { get }`
