pricingCard static method
Create a pricing card
Implementation
static FlintBox pricingCard({
required String title,
required String price,
required String period,
required List<String> features,
required String buttonText,
required String buttonUrl,
bool featured = false,
}) {
return FlintBox(
children: [
if (featured)
FlintBox(
children: [
FlintText('Most Popular',
style: FlintTextStyles.caption.copyWith(color: '#ffffff')),
],
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4),
backgroundColor: '#007cba',
alignment: BoxAlignment.center,
margin: EdgeInsets.only(bottom: 16),
),
FlintText(title,
style: FlintTextStyles.headlineSmall, align: TextAlign.center),
FlintBox(
children: [
FlintText(price,
style: TextStyle(fontSize: 48, fontWeight: FontWeight.bold)),
FlintText('/$period', style: FlintTextStyles.bodySmall),
],
alignment: BoxAlignment.center,
margin: EdgeInsets.symmetric(vertical: 16),
),
FlintBox(
children: features
.map((feature) =>
FlintText('✓ $feature', style: FlintTextStyles.bodyMedium))
.toList(),
margin: EdgeInsets.only(bottom: 24),
),
FlintButton(
text: buttonText,
url: buttonUrl,
style: featured ? ButtonStyle.primary() : ButtonStyle.secondary(),
),
],
padding: EdgeInsets.all(24),
backgroundColor: '#ffffff',
border: BoxBorder(
width: featured ? 2 : 1, color: featured ? '#007cba' : '#e0e0e0'),
borderRadius: BorderRadius.circular(8),
shadow: featured
? BoxShadow(offsetY: 4, blurRadius: 12)
: BoxShadow(offsetY: 2, blurRadius: 8),
alignment: BoxAlignment.center,
);
}