Bottom Sheets vs Modals: Choosing the Right Interruption Layer

Author photo of Anupam Singh

Anupam Singh

Published 21 min read Updated
A cinematic, minimalist fine-art photograph in a 16:9 ratio with a dark, moody aesthetic. The composition features abstract, brutalist architectural layers in deep charcoal and midnight blue shadows. A soft, amber glow subtly catches the edge of a foreground slab, while a lone, quiet figure stands partially obscured in the distance between heavy horizontal planes. The image has a soft-focus lens effect and high-quality film grain, evoking a sense of restrained depth and structural mystery.
TL;DR: Most mobile teams treat bottom sheets and modals like they're just stylistic choices. They're not. Each format makes a fundamentally different promise to the user about whether you're moving their journey forward or stopping it completely. Get this wrong, and you introduce friction that quietly poisons your entire engagement funnel. So let's break down what each one really does, where it belongs, the mistakes groups consistently get wrong, and how you can build a decision framework that actually works.

The Format Is Part of the Message

Growth teams rarely ask the question. But every user answers it instantly: is this helping me, or is it just in my way?

Think about it. When someone opens your fintech app to check their portfolio and a full-screen modal immediately blocks them, asking for an upgrade, they don't weigh the offer's merits. They react to the interruption. The format itself, the hard stop, has already framed their entire emotional response before they've even read a single word of your copy.

This isn't intuitive for most teams. Why? Because their tools push them in the wrong direction. The campaign dashboard puts all the focus on the copy or the targeting logic, but the format is just a dropdown at the bottom of the screen, an afterthought. But format is anything but an afterthought. It communicates something completely separate from the content, telling users if this is part of their flow, a helpful addition, or a roadblock demanding their immediate attention.

Get that signal wrong, and it won't matter how good everything else is. You'll tank your conversion rate. This article is about getting it right.

This is the third piece in Digia's Engagement and Lifecycle series. If you haven't read the first two posts, on what server-driven UI for engagement actually is and how to eliminate app release dependencies for faster experiments, you should probably start there. This piece assumes you understand the delivery architecture. Here, we're talking about the design decisions that sit on top of it.

First, Let's Be Precise About What These Are

Product teams use these terms loosely. And loose terminology leads to loose decisions, so before we get to the framework, let's nail down what we're actually talking about.

First up, the bottom sheet. It's a panel that slides up from the bottom edge of your screen, sitting right on top of the existing content. The key is that the user's current context, the screen they were just on, the task they were doing, remains partially visible behind it. Some you can dismiss with a swipe. Others require an explicit action to move forward. they're the natural continuation format in mobile UI: a way of saying "here's something relevant to what you're doing, right at the edge of your current world."

Then you have the modal. It's a full overlay that completely hijacks the screen's focus, either by dimming the background or replacing it entirely. Nothing else matters. The user can't interact with anything behind it; they have to deal with the modal first. It's the UI equivalent of shouting, "Stop everything, this needs your attention *right now*."

What about an inline component? It's embedded directly within the content flow. No overlay, no interruption. Think of a widget plopped in the middle of a feed, a banner tucked inside a card, or even a persistent sticky element at the top or bottom of the screen. These basically say "this is part of your environment, it's here if you want it, and you can ignore it if you don't."

These aren't just different visual styles. Not at all. Each one creates a fundamentally distinct relationship between your engagement campaign and whatever the user is trying to do at that moment. And that relationship is everything, it's what decides whether your campaign actually converts or just creates a bunch of friction.

The Core Tension: Interruption vs. Continuation

Every in-app engagement format sits on a spectrum. It's either an interruption or a continuation.

Interruption is simple. It means you're blocking the user's current task, forcing them to pause whatever they were doing to pay attention to *you*. While this definitely grabs their attention, it comes with a cost: you're basically announcing that your goal matters more than theirs, at least for this moment. People will put up with that for something genuinely important. They resent it when it happens repeatedly for things they couldn't care less about.

Continuation is the opposite. The user's goal is still right there in view. Your engagement just adds a relevant layer to what they're already doing. Attention capture is lower, sure, but so is the friction. Because you're not fighting their intent, you're working with it, users are much more receptive.

So where do most teams go wrong? They default to interruption formats because they feel more "prominent." A big modal feels important, so it gets used for things that aren't nearly key enough to justify bringing everything to a halt. A bottom sheet, on the other hand, feels subtle and gets dismissed as less effective, even in situations where a quiet approach is exactly what would have worked.

Stop asking, "Which format is more visible?" That's the wrong question. The real question is this: what's the user trying to do right now, and does my engagement support that or compete with it?

The answer to that question tells you which format to use. Everything else, the copy, the design, the personalization, it all just follows.

Why Format Directly Impacts Conversion

This isn't just theory. We can actually measure the link between how you ask for engagement and your conversion rate, and the research shows a clear pattern.

A Nielsen Norman Group study on mobile UX found that modal dialogs get closed almost instantly when users feel like they're being blocked from doing something. The content of the pop-up didn't even matter. The closing behavior was a reaction to the interruption itself, not a lack of interest in the offer.

But what about contextual bottom sheets? These are the ones that appear at a logical transition point, not in the middle of a task, and they perform substantially better in the same research. The reason is simple: the user is at a natural pause point and is open to adjacent information, so the format signals relevance instead of making a demand.

Spotify gets this right. Instead of blocking your listening experience with a full-screen premium upsell (the worst possible moment), they show upgrade messages in bottom sheets or inline banners right when you've hit a constraint, like running out of skips or hearing an ad. The format matches the moment perfectly because you're already in a decision context. The ad doesn't create the context; it meets you inside of one.

This is the principle that should guide your choice. The format you choose has to match the user's actual readiness to make a decision, rather than just reflecting the grand scale of whatever ambition you have for the campaign.

When Bottom Sheets Are the Right Choice

Bottom sheets have a sweet spot. They work best when the thing you're showing is directly relevant to what the user is currently focused on, but not so pressing that it demands they drop everything else.

The clearest use case? Post-action prompts. The user just did something significant, like completing a transaction, finishing step three of onboarding, or making their first investment. They're at a natural pause. A bottom sheet can build on that action, offering a related next step, confirming completion, or suggesting a feature they haven't tried, and arrives at a moment of perfect receptivity. The task is done. The user is momentarily open. A bottom sheet just sits in that gap without demanding a thing.

They're also great for nudges during exploration. Think about when a user is just in discovery mode, scrolling a product feed, browsing through content, or poking around in the menu options, and you'll see they're totally open to adjacent information. A bottom sheet that surfaces a recommendation, a limited offer, or a feature highlight fits right into that flow. It's not a stop sign. It's a signpost.

Then there are multi-step flows. If you need to walk a user through a few steps, for a quick quiz, a preference setup, or a personalized recommendation flow, a bottom sheet is almost always the right container. It gives you a contained, scrollable surface without kicking the user off their current screen. The context stays grounded below, which massively reduces the cognitive strain of going through a complex process.

And low-stakes opt-ins. Notification permission requests, feature feedback, review requests: all of these belong in bottom sheets. They're asking for something small, and the format should signal that smallness. A modal for a push notification permission request is a massive overclaim, it says "this is critical" when it absolutely isn't. A bottom sheet just says "this is available and easy," which is exactly the tone that converts.

Here's where they fail: urgency. If your campaign genuinely requires the user's immediate and complete attention, a session expiry warning, a security alert, a confirmation before a destructive action, a bottom sheet is the wrong tool. Users are conditioned to dismiss them without reading carefully. When you need them to read carefully, you need a different format.

When Modals Are the Right Choice

Modals are for emergencies. They're meant for high-priority moments that genuinely justify yanking the user out of whatever they were doing, and frankly, the bar for that's way higher than most teams think.

The valid uses are narrow:

Irreversible or high-stakes confirmations. Think about decisions with real consequences: "Are you sure you want to delete your account?" or "This transfer can't be reversed." Users get it. A modal here isn't annoying at all; it's protective, and it's exactly the kind of thing people expect and trust you to do.

First-session onboarding gates. A modal makes sense when someone opens your app for the very first time but still has a mandatory setup step to finish, like KYC for a fintech app or just creating a basic profile for a social one. They can't fully use the product yet. The pop-up is an honest signal of that.

Security and permission escalations. Biometric setup, two-factor authentication, payment confirmation, these are moments where the system needs the user's deliberate, focused attention. These aren't marketing campaigns. They're system requirements. This is what modals were built for.

Time-sensitive alerts. A sale ending in 30 minutes. A booking about to expire. When the value of something is decaying fast, a modal's interruption cost is absolutely worth paying because the only other option is watching that conversion disappear completely.

See the pattern here? The user, if you asked them, would probably agree that stopping them was a reasonable thing to do. If you can't say that about your campaign, don't use a modal.

So here's what teams should do: ruthlessly audit every single modal in their engagement stack and kill anything that doesn't fit one of these categories. Promotional pop-ups on app open are the worst offenders. You're blocking people before they've even done anything. There's no task to interrupt. No context. The only signal you're sending is that your priorities outrank theirs. Users close these things. Often, they just close the app.

When Inline Components Are the Right Choice

Inline components just don't "feel" like engagement campaigns. Widgets, banners, embedded cards, they're chronically underused because there's no trigger, no animation, no clear moment of delivery. They're just there.

And that's precisely why they work.

Persistent awareness nudges. If you want a user to know a feature exists without derailing their session, an inline widget in the home screen feed is the perfect format. A user who spots a "New: SIP Calculator" card in their portfolio three times over a week will click it when they're finally ready. A modal asking them to try the calculator on their second visit might convert once, sure, but it's far more likely to just create resentment twice.

Ambient upsell placements. The Amazon model is the classic example: "frequently bought together" and "you might also like" are placed right inside the cart and product screens. These are engagement campaigns. they're revenue-driving nudges. But they feel like content, because they're embedded in the exact context where they're genuinely useful. A modal or bottom sheet with the same offer would feel like an ad; the inline placement makes it feel like a service.

Social proof and urgency signals. "Only 2 left at this price" inside a product card, or "12 people are viewing this" placed directly within the listing, these are inline engagement mechanics that use format to eliminate friction. They can't be modals. They absolutely need to be part of the decision-making context the user is already in.

So what's the limitation here? Inline components have low guaranteed attention capture. A user can and will scroll right past them. If your campaign's success depends on the user seeing it *right now*, inline isn't the right choice. But if your campaign's success depends on it being available at the exact moment when the user is ready, inline is often the only format that won't actively work against you.

The Mistakes Teams Actually Make

These aren't edge cases. Every mobile engagement team that doesn't think deliberately about format runs headfirst into at least one of them.

Digia Dispatch

Get the latest mobile app growth insights, straight to your inbox.

Using modals for promotional content. This one is the most common mistake, and the most damaging. Promotional campaigns like upsell prompts, feature announcements, or offer banners simply don't belong in a modal unless they have a clear, time-sensitive urgency. A pop-up with an offer on every fifth session just conditions users to dismiss it without reading. Once that pattern is burned in, it's nearly impossible to undo. Your conversion rates for that layout drop to near zero, and you've trained your users to ignore you.

Bottom sheets for destructive or high-stakes confirmations. The inverse mistake. Using a bottom sheet for something like "confirm account deletion" or "approve this large transfer" totally undersells the gravity of the action. Users expect a more deliberate stop. They want it. The casual, easy-to-dismiss nature of a bottom sheet just creates anxiety when the stakes are high. Save this component for when a casual swipe-away is perfectly fine.

Stacking modals. If your flow requires two modals back-to-back, you've got a design problem, not a copy issue. People who close the first pop-up will never even see the second one. A multi-step process belongs in a bottom sheet or a full-screen flow, not a sequence of interruptions.

Blocking core journeys with engagement campaigns. The fintech app that shows a mutual fund upsell the second a user opens it to check their account balance isn't running an engagement campaign. It's building an obstacle. The user came to do something. Your modal got in their way. They'll dismiss it, sure, but they'll also associate that friction directly with your brand, not just your promotion. Here's a rule: never throw up a full-screen interrupt on a screen where someone has a clear, active task. Let them finish first.

Using the wrong format because it's easier to configure. This is the hidden, systemic problem. In most CEP dashboards, the default campaign option is a modal or a simple interstitial because that's what the template library supports. Teams don't choose this layout because it's the right one for the job; they choose it because it's the only one available without engineering involvement. The result? An entire engagement strategy built around a single component that's often the wrong fit for most campaigns.

A Decision Framework That Actually Works

This isn't a rigid flowchart. It's a set of questions you should answer before picking a format for any engagement campaign.

First question: Does the user have an active task in mind right now?
If so, and your campaign has nothing to do with that task, defer. don't interrupt. You should set the trigger to fire after they're done or the next time they open the app.
But if your campaign actually supports what they're doing? A bottom sheet or an inline component is the right call. A modal is almost never appropriate here.
If they're just browsing or idle, then all three formats are on the table.

Second question: Is your engagement time-critical?
If the campaign's value disappears within the current session, think a flash offer, a session timeout, or some other period-gated action, a modal's attention-grabbing power justifies the interruption.
If it isn't span-critical, a modal is probably the wrong format. Default to a bottom sheet or inline component instead.

Third: How much thinking does this engagement require?
Low mental effort, like a quick heads-up, a single-click opt-in, or a simple recommendation, belongs in a bottom sheet or inline component.
High mental effort, on the other hand, demands something more solid: a multi-step setup flow, a complex financial choice, or a configuration screen that needs user input all belong in a contained bottom sheet or even a dedicated screen. Never a modal.

Fourth question: What are the consequences if they dismiss it?
If the user can swipe it away and nothing bad happens, the format should feel just as casual. Go with a bottom sheet or inline.
But if dismissing it has a real consequence, an offer vanishes forever, a required step gets skipped, the format needs to communicate that weight. That's what modals are for.

Last one: Have you already used this format in this session?
One modal per session is a ceiling. It's not a floor. If you've already shown a modal, your second engagement in that same session must be a bottom sheet or inline. Stacking interruptions doesn't just add friction; it multiplies it.

Scenario Recommended Format
Post-task contextual offer Bottom sheet
First-session onboarding gate Modal
Multi-step preference flow Bottom sheet
Browsing-state recommendation Inline or bottom sheet
Irreversible action confirmation Modal
Ambient feature discovery Inline
Time-gated promotional offer Modal (once per session max)
Push notification permission request Bottom sheet
Cross-sell at a natural pause Bottom sheet
Security escalation Modal
Social proof / urgency signal Inline
Win-back nudge in idle state Bottom sheet

How Server-Driven UI Changes the Format Decision

Here's the practical problem with this entire framework: it assumes you can actually pick the right format for the right moment. In most mobile engagement stacks, you can't.

The in-app format your campaign uses is usually determined by two constraints: what the CEP's template library supports, and what was pre-built in the app binary before the last release. Changing that requires engineering involvement and a release cycle. The result? Teams don't choose formats strategically, they just pick from whatever is available that won't burn a sprint.

This is how growth teams end up with modal-heavy engagement. But it's not by design. They're modal-heavy because the modal was the only template configured in the CEP before the quarter started, and nobody wanted to spend a sprint just to change it.

Server-driven engagement is the answer. When you decouple the format decision from the release cycle, when a growth team can configure a bottom sheet, a modal, an inline widget, or a multi-step interactive card from a dashboard without touching app code, format becomes a real strategic lever you can pull, not just a constraint you have to live with.

Digia Engage is built specifically for this. The Nudges product gives you bottom sheets, modals, tooltips, spotlights, banners, and sticky bars, all configurable from a dashboard, all renderable without a release. It's all there. The Widgets product handles inline components like carousels, grids, story formats, and embedded cards. The entire range of format options this article describes is available without engineering getting involved after the initial SDK integration.

So what's the practical consequence? Simple. When you identify that three of your current modal campaigns should be bottom sheets, you can change them today. Not next sprint. Not after App Store review. Today. You configure the variant, set the targeting, and it goes live. If the bottom sheet version converts better (which the framework predicts it will), you read the numbers in 72 hours and make the switch permanent.

That's what the format decision actually looks like when the delivery infrastructure is in place. The strategy and the reality finally click.

The Format Experiment You Should Run First

If you want a concrete place to start, this is the one experiment most teams find valuable right away.

Find your highest-volume in-app engagement campaign. It's probably a promotional offer, a cross-sell nudge, or a feature adoption prompt that's currently running as a modal. Now, check two things: the trigger moment (is the user mid-task or at a natural pause?) and the dismissal rate, what percentage of users just close it without engaging?

If the trigger fires mid-task and dismissal is north of 60%, you have a format mismatch. It's that simple. Run an A/B test with a bottom sheet variant, using the exact same copy, targeting, and timing, which lets you see the pure impact of the format change alone. The conversion numbers will tell you more than any amount of theoretical analysis ever could.

Most teams that run this experiment see a 15–40% jump in engagement on the bottom sheet variant, especially for promotional and contextual campaigns, because the format stops creating friction that was killing the offer before users even read it. The offer was fine. The format was the problem.

Of course, some campaigns absolutely need that full interruption. Think about time-gated offers, permission requests for features that need immediate setup, or high-urgency action items, in those cases, the modal's aggressive signal is appropriate and outperforms everything else. The point of the experiment is to distinguish those cases from the ones where it doesn't.

Run the experiment. Let the data replace your defaults.

Key Takeaways

  • Format isn't a design preference. It's a structural contract with the user, a promise about whether you're there to help them finish their task or just get in their way. Getting that wrong creates a kind of friction that no amount of good copy can ever fix.
  • So what are bottom sheets for? They're for contextual actions that continue what a user is already doing: think post-task prompts, little nudges while someone is browsing, multi-step flows, or maybe just a simple, low-stakes opt-in. They just whisper, "here's something relevant at the edge of what you're doing."
  • Modals are for a full stop. They're for the truly high-priority moments that justify interrupting everything: irreversible confirmations, first-session gates, time-gated offers, and security escalations. The bar is much higher than most teams think. One modal per session is already a ceiling, not the floor you start from.
  • Inline components are just chronically underused. They're fantastic for things like ambient feature discovery, persistent upsells, and social proof mechanics, and they convert incredibly well without creating the friction that triggered formats always introduce.
  • The most common mistake is using modals for promotions that just aren't urgent. Simple as that. The second is even worse: not experimenting with the format at all because the delivery infrastructure makes it a nightmare to even try, and that's an architectural problem, not a strategy one.
  • The framework boils down to three questions. Does the user have an active task intent right now? Is the engagement time-critical? And what's the consequence of dismissal? Answering these maps to a format far more reliably than design intuition ever could.
  • Format should be a real variable in your engagement strategy. A choice. If it feels like a constraint instead, the problem isn't strategic at all, it's purely operational, and the classic release dependency issue is what usually turns that choice into a simple bottleneck.

Further Reading

From Digia

External Sources


This article is part of Digia's Engagement and Lifecycle series, a deep dive into how growth teams build, test, and ship in-app experiences that actually convert. Next in the series: How Swiggy Uses Bottom Sheets to Increase Repeat Orders.

Ready to make format a real variable in your engagement campaigns? Book a Demo or see Digia's nudge and widget library in action.

Frequently Asked Questions

What is the difference between a bottom sheet and a modal in mobile apps?
A bottom sheet slides up from the edge of the screen, but it keeps the user's current context partially visible right behind it. A modal is different. It takes over the entire screen's focus, the background gets dimmed or totally replaced, and users can't interact with anything else until they deal with that modal first. Here's the functional difference: bottom sheets continue the user's task, while modals interrupt it. That distinction is what should drive your choice, not just aesthetic preference.
When should I use a bottom sheet instead of a modal?
Use a bottom sheet for tasks that are related to what a user is doing but don't require them to stop completely. Think of things like post-transaction prompts, feature nudges while browsing, multi-step opt-in flows, and notification permission requests, they all belong here. The rule is simple. If the user can dismiss it and come back later without any negative consequences, it's a job for a bottom sheet.
When is a modal appropriate for in-app engagement?
So when are modals the right call? Use them only when you absolutely have to interrupt the user for a good reason, think irreversible or high-stakes confirmations, critical first-session onboarding a user can't skip, time-gated offers that decay right away, and security or permission checks. Here's the acid test. If you can't honestly argue a user would agree the interruption was reasonable after the fact, you're using the wrong format.
Do bottom sheets convert better than modals?
It all depends on the campaign and the trigger moment. For things like promotional campaigns or cross-sell nudges, bottom sheets usually win because the format reduces friction before a user has even had a chance to process the offer. But when it comes to time-gated offers and high-urgency confirmations? A modal can perform better, the interruption actually fits the stakes of the situation. Test both. You have to run the format as an experiment variable before drawing conclusions from intuition.
What is an inline component in mobile engagement?
An inline component is an engagement element embedded right in the content flow. Think of a widget in a feed, a banner inside a card, or even a persistent element at the top or bottom of a screen. It doesn't trigger as an overlay like a bottom sheet or modal does. It's part of the screen itself. Because of this, inline components are low-friction but also low-guaranteed-attention, they're perfect for building ambient awareness, showing persistent upsells, and using social proof mechanics where you don't need someone to act right away.
Why do teams overuse modals for engagement campaigns?
It's usually just the path of least resistance. Modal templates are the default in most CEP dashboards, and nearly every app already has a modal component baked right into the binary. Building something different, a bottom sheet or an inline widget, for instance, often requires engineering involvement and a whole new release cycle. So what happens? Teams default to modals. It's not because they've decided they're the right tool for the job, but simply because changing the format is so operationally expensive. This is an architectural constraint, not a strategic choice. And it's the exact problem that server-driven engagement infrastructure is built to fix.
How does server-driven UI affect format decisions?
Server-driven engagement takes format off the list of things you're stuck with until the next release. It's a huge shift. When a team can configure a bottom sheet, a modal, or an inline widget straight from a dashboard, without touching app code, the format itself becomes a real variable for experimentation. What does that look like? You can test a promotional campaign as a modal against the same campaign as a bottom sheet, read the results in 72 hours, and then ship the winning version that same day. The entire strategic framework in this article only works when your delivery infrastructure is actually built for this kind of rapid iteration.