Journal

Telegram Mini App Bottom Sheet Modal in React Native

A Mini App lives inside Telegram, so its bottom sheet should feel like Telegram: its theme colors, its main button, its detents, not a generic web modal.

Telegram Mini App Bottom Sheet Modal in React Native: the App Store logo on a glass tile over a blue gradient with bubbles

TL;DR

A bottom sheet modal in a Telegram Mini App slides up from the bottom for actions, details, or confirmations, with snap points (detents), a drag handle, and a backdrop. To feel native inside Telegram, it should adopt Telegram's theme parameters so its colors match the user's theme, and use Telegram's main and back buttons rather than custom ones. Build the sheet in React Native from a free VP0 design, support gestures and accessibility, and respect the host environment.

Want a bottom sheet in your Telegram Mini App that feels like it belongs, in React Native? The short answer: build a proper sheet with detents, a drag handle, and a backdrop, then make it adopt Telegram’s theme and buttons so it matches the user’s environment instead of looking like a generic web modal. The sheet mechanics are standard; feeling native inside Telegram is the part people skip. Build it from a free VP0 design, the free iOS design library for AI builders.

Who this is for

This is for builders of Telegram Mini Apps who use React Native or a React-based web stack and want their modals and action sheets to feel native inside Telegram rather than like an embedded web page.

A sheet that respects its host

A bottom sheet slides up for a focused task: an action menu, a detail view, a confirmation. The mechanics are familiar, snap points or detents (peek, half, full), a drag handle, drag-to-dismiss, and a dimmed backdrop, which a maintained React Native bottom-sheet library provides. What makes it feel native inside Telegram is honoring the host. The Telegram Mini Apps platform exposes theme parameters, the user’s background, text, button, and accent colors, so your sheet should read those and style itself to match the user’s light or dark theme. And primary actions belong on Telegram’s own main button at the bottom of the window, with its back button for navigation, rather than custom buttons that float in the sheet. Apple’s Human Interface Guidelines inform the sheet feel; Telegram’s SDK informs the integration.

ElementStandard sheetTelegram-native touch
DetentsPeek, half, fullSame, plus drag handle
ColorsYour paletteTelegram theme parameters
Primary actionA button in the sheetTelegram main button
Back or dismissDrag or closeTelegram back button
BackdropDimmedMatches theme

Build it free with a VP0 design

Pick a sheet or modal design from VP0, copy its link, and prompt your AI builder:

Rebuild this VP0 bottom sheet design in React Native for a Telegram Mini App: [paste VP0 link]. Use a bottom sheet with detents, a drag handle, and a backdrop, read Telegram’s theme parameters to match the user’s colors, and use Telegram’s main and back buttons for primary actions. Support drag-to-dismiss and accessibility, and test inside the Telegram environment.

Telegram’s scale makes Mini Apps worth getting right, with over 900,000,000 monthly active users. For neighboring Telegram and web3 patterns, see a Telegram-style channel list UI in SwiftUI, a Notcoin-style tap-to-earn game UI, a Hamster Kombat-style tap-to-earn UI, and an Airbnb-style bottom sheet in React Native for the sheet mechanics. For a transit-routing screen next, see a Moovit-style public transit router UI.

Respect the environment

The core lesson of Mini App design is humility toward the host. Your app is a guest inside Telegram, so it should feel like part of Telegram, matching the theme the user already chose, using the buttons they already know, and following the platform’s conventions. A sheet that imposes its own light theme on a dark-mode Telegram user, or hides its main action in a custom button, breaks the illusion. Adopt the host environment and your Mini App feels like a first-class part of the app it lives in.

Common mistakes

The first mistake is ignoring Telegram’s theme parameters, so the sheet clashes with the user’s theme. The second is custom primary buttons instead of Telegram’s main button. The third is a sheet with no drag-to-dismiss or detents. The fourth is not testing inside the actual Telegram environment. The fifth is paying for a sheet kit when a free VP0 design plus a bottom-sheet library does it.

Key takeaways

  • A Mini App bottom sheet needs detents, a handle, drag-to-dismiss, and a backdrop.
  • Read Telegram’s theme parameters so colors match the user’s theme.
  • Use Telegram’s main and back buttons for primary actions.
  • Test inside the real Telegram Mini App environment.
  • Build the sheet free from a VP0 design.

Frequently asked questions

How do I build a bottom sheet modal for a Telegram Mini App? Use a React Native bottom sheet with detents, a handle, and a backdrop, apply Telegram’s theme parameters to the colors, and use its main and back buttons for primary actions.

What is the safest way to build a Mini App sheet with Claude Code or Cursor? Start from a free VP0 design and a maintained sheet library, adopt Telegram’s theme parameters, wire actions to the main button, support gestures and accessibility, and test in Telegram.

Can VP0 provide a free SwiftUI or React Native template for a bottom sheet? Yes. VP0 is a free iOS design library; pick a sheet design and your AI tool rebuilds the bottom sheet with detents, handle, and backdrop at no cost.

How do I make a Mini App feel native inside Telegram? Adopt the host: read its theme parameters for colors, use its main and back buttons, and follow the Web App SDK, so the app feels like part of Telegram rather than a foreign page.

Frequently asked questions

How do I build a bottom sheet modal for a Telegram Mini App?

Use a React Native bottom sheet with snap points, a drag handle, and a backdrop for actions and details. To feel native in Telegram, read the host theme parameters and apply them to the sheet's colors, and use Telegram's main and back buttons for primary actions instead of custom ones. Build the layout from a free VP0 design.

What is the safest way to build a Mini App sheet with Claude Code or Cursor?

Start from a free VP0 design and a maintained bottom-sheet library, then adopt Telegram's theme parameters so the sheet matches the user's theme, and wire primary actions to Telegram's main button. Support drag-to-dismiss and accessibility, and test inside the Telegram Mini App environment.

Can VP0 provide a free SwiftUI or React Native template for a bottom sheet?

Yes. VP0 is a free iOS design library for AI builders. Pick a sheet or modal design, copy its link, and your AI tool rebuilds the bottom sheet with detents, handle, and backdrop at no cost.

How do I make a Mini App feel native inside Telegram?

Adopt the host environment. Read Telegram's theme parameters and apply them so your colors match the user's light or dark theme, use Telegram's main and back buttons for primary navigation, and follow its Web App SDK conventions. A Mini App that ignores the host theme looks like a foreign web page bolted in.

Part of the Web3, Telegram Mini-Apps & Crypto UI hub. Browse all VP0 topics →

Keep reading