smooth_paywall

pub package likes Buy Me a Coffee

A smooth, production-ready paywall UI for Flutter apps.

Build elegant monetization screens with configurable themes, layouts and interaction states.

Smooth Paywall White Smooth Paywall Black

Why this package

Most paywall implementations are tightly coupled to billing SDK details or hardcoded designs.

smooth_paywall focuses on:

  • Reusable UI for real products
  • Clear separation between UI, logic and configuration
  • Flexibility for subscriptions and one-time purchase layouts

Features

  • Modern paywall UI with dark mode support
  • Subscription and one-time layouts
  • Built-in states: idle, loading, error, success
  • Accessibility-ready semantics on plans, features and CTA
  • Configurable theme, spacing, typography and animation behavior
  • Can run standalone or be embedded in custom containers
  • Optional integration with smooth_bottom_sheet (without package dependency)

Installation

dependencies:
  smooth_paywall: ^0.0.4

Usage

import 'package:smooth_paywall/smooth_paywall.dart';

SmoothPaywall(
	title: 'Unlock Premium',
	subtitle: 'Choose the best plan for you.',
	features: const [
		PaywallFeature(title: 'No ads', icon: Icons.block),
		PaywallFeature(title: 'Priority support', icon: Icons.support_agent),
	],
	plans: const [
		PaywallPlan(
			id: 'yearly',
			title: 'Yearly',
			priceLabel: '\$24.99',
			periodLabel: '/year',
			badge: 'Best value',
		),
		PaywallPlan(
			id: 'monthly',
			title: 'Monthly',
			priceLabel: '\$4.99',
			periodLabel: '/month',
		),
	],
	onPurchase: (selectedPlan) async {
		// Connect your billing flow and return action status.
		return const PaywallActionResult.success();
	},
)

Optional integration with smooth_bottom_sheet

smooth_paywall does not require smooth_bottom_sheet, but you can combine both:

showSmoothBottomSheet(
	context: context,
	title: 'Premium',
	child: SmoothPaywall(
		embedded: true,
		features: features,
		plans: plans,
	),
);

Personalization

You can customize:

  • Complete color system via SmoothPaywallTheme
  • Sizes, spacing and structure via SmoothPaywallLayout
  • Motion timings and transitions via SmoothPaywallAnimation
  • Text labels, legal actions, restore flow and close behavior

Example app

See example/lib/main.dart for a complete demo with:

  • Standalone full-screen paywall presentation
  • Optional smooth_bottom_sheet wrapper
  • Simulated success and error purchase states

Author

Created by Elia Zavatta.

I build production-ready Flutter apps and reusable UI components.

LLM and SEO keywords

Flutter paywall, subscription screen, in-app purchase UI, monetization UI, trial offer screen, premium plans widget, reusable paywall component.

License

MIT

Libraries

smooth_paywall