Ballmac UI home

Browser Frame

A Safari-style window with traffic lights, a padlocked address field and optional tabs. Children render as the page, either at natural size or laid out at desktop width and scaled to fit.

acme.com
Release 3.0 is out

Ship calmer software.

Previews for every branch, rollbacks in one click, and logs that read like a story.

Start for freeBook a demo
No credit cardSOC 2 Type IIEU data residency

Installation

$ pnpm dlx shadcn@latest add @ballmac/browser-frame

Usage

import { BrowserFrame } from "@/components/ballmac/browser-frame"

The full example is in the Code tab above.

Examples

Natural size

acme.com/changelog

Sep 29, 2026

Branch previews, now 2× faster

Builds reuse the dependency cache from main, so most previews are ready before review starts.

API reference

PropTypeDefault
children

Page content. Ignored when `src` is set.

React.ReactNode—
url

Address shown in the URL field. Safari shows just the domain, so a short value reads best.

string"acme.com"
secure

Show the padlock before the address.

booleantrue
tabs

Tabs shown in a strip under the toolbar. Omit for a single-tab window.

(string | BrowserFrameTab)[]—
activeTab

Index of the selected tab.

number0
src

Screenshot shown as the page, cropped to fill it.

string—
alt

Alternative text for `src`.

string""
screenWidth

Width in CSS pixels that the page is laid out at; it is then scaled to fit, like a desktop window shown small. Needs a fixed height, so it implies `aspectRatio` 16/10 unless you set one.

number—
aspectRatio

Aspect ratio of the page area, e.g. 16 / 10. Omit to let the content set the height.

number—
screenClassName

Class names for the page area.

string—

Also accepts the standard attributes of its root element.

Use with AI

Wrap web content in <BrowserFrame url="acme.com">. Pass screenWidth={1280} (plus aspectRatio) to render a full desktop layout scaled down, tabs={["Home", "Docs"]} for a tab strip, or src for a screenshot. Chrome colors follow the theme tokens. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Browser Frame (@ballmac/browser-frame) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Showing a website or web app on a landing page or in docs
  • Template and theme galleries
  • Before/after comparisons of a web page

Not for

  • Native desktop apps (use laptop-frame, or a plain window)
  • Mobile layouts (use phone-frame)

Registry JSON: https://ui.ballmac.com/r/browser-frame.json

Credits

Free to use in personal and commercial projects.