Skip to content
Pebble Pro is here at $49 one timeSee what’s included ↗
Pebble
ComponentsDocsMCPPricing
⌕ Find a component↗Log in
All components 673

Categories

Core inputs & forms46Buttons & actions33Navigation36Overlays & feedback49Data display33Charts & data viz40Cards & layout43Marketing blocks38App shells & pages37AI interfaces40Text & typography effects33Backgrounds & visual effects38Motion & transitions32Numbers & counters32Media34E-commerce333D & interactive36Themed sets40
Start with the essentials.Installation guide ↗Connect your agent ↗
← All componentsOverlays & feedback

Permission Prompt

A soft ask before a browser permission with a drawn glyph, reasons, Allow (calling the real API on click only) and Not now, a remembered outcome and re-enable steps when blocked, as an inline card or anchored popover.

Preview

Ask

Get notified when it matters?

  • Replies and mentions, as they happen
  • A heads-up before a deadline
  • Nothing promotional, ever

Granted

You're all set

Location is on. Results are sorted by distance.

Blocked

Camera is blocked

Your browser is blocking it for this site. To turn it back on:

  1. 1Click the lock or settings icon next to the address
  2. 2Open Site settings
  3. 3Set it to Allow, then reload

Anchored popover

Inbox

Install

Pro source requires Pebble Pro. Try the full preview above.

Props

PropTypeDefaultDescription
kind"notifications" | "camera" | "microphone" | "location"—Picks the glyph, copy and browser API. Required.
title / reasonsReactNode / string[]per kindWhy you're asking.
status / defaultStatus / onStatusChange"ask" | "pending" | "granted" | "denied" | "dismissed"— / "ask" / —Controlled or uncontrolled state.
request() => Promise<"granted" | "denied">built-inReplace the real browser request. Only ever called from Allow.
storageKeystring—Remember the outcome in localStorage.
blockedStepsstring[]genericHow to re-enable, shown when blocked.
allowLabel / dismissLabelstring"Allow" / "Not now"Button text.
hideWhenDismissedbooleanfalseRemove the card after Not now.
onRetry() => void—Shows “I've changed it, check again” when blocked.
PermissionPopover: children / side / align / open / defaultOpen / autoFocusReactNode / placement / boolean— / "bottom" / "end" / — / false / trueAnchor the ask to the control that needs it.

Pro component

Try the full preview above. Editable source and build guides require Pebble Pro.

Buy Pebble Pro — $49How source access works ↗
Pebble

Small details.
Better interfaces.

React components to explore, make your own, and build on.

Library

  • Components
  • Installation
  • Pricing

Resources

  • For agents
  • About
  • Support

Legal

  • License
  • Terms
  • Privacy
  • Final sale

Built by Pebble

A product of Praxys Solutions LLC ↗

Pebble Pro is live

$49 one time, lifetime updates ↗