Ballmac UI home

Control Center

The macOS Control Center panel in frosted glass: toggle tiles with round badges, grouped Wi-Fi, Bluetooth and AirDrop rows, pill sliders with the icon in the track, and a Now Playing tile. Real toggle buttons and Radix sliders.

Display

Sound

Midnight City

M83

Installation

$ pnpm dlx shadcn@latest add @ballmac/control-center

Usage

import { ControlCenter, ControlTile, ControlCluster, ControlRow, ControlSlider, ControlNowPlaying } from "@/components/ballmac/control-center"

The full example is in the Code tab above.

Examples

Tiles only

Display

Wi-Fi on, brightness 60%

API reference

<ControlCenter>

PropTypeDefault
label

Accessible name of the panel.

string—

<ControlTile>

PropTypeDefault
icon*

Icon in the round badge.

React.ReactNode—
label*

Name of the control.

string—
status

Second line, such as the current state.

string—
pressed

Controlled on state.

boolean—
defaultPressed

Initial on state when uncontrolled.

booleanfalse
onPressedChange

Called with the new on state.

(pressed: boolean) => void—
stacked

Stack the badge over the label (a square tile) instead of beside it.

boolean—

<ControlSlider>

PropTypeDefault
label*

Name shown above the slider and used as its accessible name.

string—
icon

Icon drawn in the thumb's track (left side).

React.ReactNode—
value

Controlled value from 0 to 100.

number—
defaultValue

Initial value when uncontrolled.

number50
onValueChange

Called with the new value.

(value: number) => void—

<ControlNowPlaying>

PropTypeDefault
title*

Track title.

string—
artist*

Artist or show.

string—
artwork

Artwork: an image URL, an object with alt text and a dark-mode file, or any element. Decorative: the title and artist carry the meaning.

MediaSource—
playing

Whether it is playing (controlled).

boolean—
defaultPlaying

Initial state when uncontrolled.

booleanfalse
onPlayingChange

Called with the new playing state.

(playing: boolean) => void—
onPrevious

Called for the previous button.

() => void—
onNext

Called for the next button.

() => void—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
Tab / Space / EnterEvery tile and row is a button with aria-pressed
Arrow keysAdjust a slider; Home and End jump to the ends
Reduced motionNo press scale or color transitions

Use with AI

<ControlCenter> is a 2-column grid. Put <ControlCluster> with <ControlRow> toggles first, then <ControlTile>, <ControlSlider label icon> and <ControlNowPlaying>. Toggles are controlled with pressed / onPressedChange or uncontrolled. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Control Center (@ballmac/control-center) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Mac system UI mockups
  • Quick-settings popovers

Not for

  • Full settings pages (use field, switch, slider)

Registry JSON: https://ui.ballmac.com/r/control-center.json

Credits

Free to use in personal and commercial projects.