Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

No Connected Apps Empty State Block for React

A connected apps page with nothing connected: three apps to choose from, the scopes the chosen one would ask for (one required, two optional) and a drawn plug that moves toward a wall socket as choices are made, without ever reaching it.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Show what an account would grant before it grants anything, with this no connected apps empty state for React with Base UI. A hairline frame with a plus mark on each corner holds the connected apps page of Tethermill, a calendar-sync tool. At the start of the first band three real services are named in text with a neutral two-letter tile and sit in a group of real radio buttons; at the end, the scopes the chosen app would ask for are listed with a Checkbox each, the first required and always ticked, the other two optional. Under them a greyscale drawing of a wall socket and a plug on its cable stands for the gap: the plug moves closer as an app is chosen, as optional scopes are ticked and when the Shine Button, the only colored control, is pressed, but it never reaches the socket, because nothing connects. The action foot says what it would connect with. The frame's bands are ruled by Guides, and the whole block uses CSS transitions only. For the connected apps, authorized apps or access page of any account.

FAQ

What happens when I press Review and connect, and what stays in the page?

Nothing connects. The choices are kept in the page's state, the plug moves to its closest place and a polite status message says "Would connect Slack with 2 scopes. Nothing is connected in this demo." Choosing another app or changing a scope puts the plug back to where those choices put it. Start over clears everything. To wire it for real, send the person to the app's own consent screen with the ticked scopes where the code says so, and list the app as connected only after it answers.

How are the scopes chosen, and why is one always ticked?

Each app has its own typed list of scopes, one required (its box is ticked and disabled, with the word Required) and two optional, so the preview shows only what that app would really ask for. The ticks of the optional scopes are kept per app: go back to an app and they are as you left them. A scope's line says in one sentence what it allows.

How does the drawing react without moving anything?

It is one inline SVG that never swaps: the plug and its cable slide along the page by a CSS transition, switched off under reduced motion, and the dashed gap line behind them is covered by the plug as it goes. The cable fades out at its far end with a mask on the wrapper. The drawing is decorative and hidden from screen readers; the status message says what would happen.

Is it usable with a keyboard and a screen reader?

The apps are one radio group: Tab reaches it once and the arrow keys change the choice. The scopes follow, each named by its scope and described by its line, then Review and connect and Start over, which stays quiet (and says so if pressed) until there is something to undo. Pressing Review and connect with no app says so and moves focus to the first app.

How does it look on a phone?

The scopes stack under the apps and every pane shares one cell, so choosing an app never moves the buttons. The drawing sits between the lists and the foot, 80 px tall, and the foot is pinned to the bottom of the screen so the button stays in reach. From the medium breakpoint the apps and the scopes sit side by side, divided by a rule that meets the band's rules at plus marks.

  • Pro

    No Integrations Empty State

    Apps and integrations

    An integrations catalog with nothing connected: tabs by category over real services with Connect toggles, and a drawn board of six empty bays that takes a lettermark tile in the next free bay as each one is connected.

  • Pro

    Connect Tools Empty State

    Apps and integrations

    A full-height first-run screen for an integration hub: six tool cards with checkboxes at the end, and at the start a drawn hub whose spokes turn from dashed to solid, and whose sockets take a lettermark, as each tool is ticked.

  • Pro

    No Data Sources Empty State

    Data and analytics

    A full-height page for a data platform with no source yet: a segmented choice of database, file or API with that kind's fields, and a line drawing of a source pointing at a dashed data box that turns solid once the source is added.

  • Pro

    No Plugins Empty State

    Apps and integrations

    An extensions store with nothing installed: tabs over a list of five plugins, the chosen one's detail with a drawn isometric shelf where a dashed cube hovers over its bay and turns solid when it is installed, and its permissions.

  • Pro

    A notification settings panel: a channel strip with all-or-nothing checkboxes, a matrix of switches by activity and channel with a locked security email, quiet hours, and a save bar that counts unsaved changes.

  • Pro

    A full-height first-run screen for a weekly planner: a name field and one Create project button at the start, and at the end a drawn drafting table whose blank sheet is only dashed until the project exists.