Starter
$0/month
For side projects.
- 1 site
- Community support
The .pricingCard component is one tier of a pricing table: name, price, feature list, and a CTA pinned to the bottom so a row of tiers lines up. A pricing table is a row of these on the grid, with highlighted marking the recommended tier.
$0/month
For side projects.
$29/month
For professionals.
$99/month
For agencies.
| File | Description | Source |
|---|---|---|
component.pricing.css |
Tier layout + highlight styles | Github |
component.card.css, component.badge.css, component.button.css |
Base visuals (dependencies) | Github |
PricingCard.astro |
The Astro component | Github |
icons/check.svg |
Feature list check icon | Github |
--pricingCard-* block in settings.ui.css |
Interface tokens (see table below) | Github |
It extends the card and uses the badge and button components.
$29 /month
For professionals.
<article class="card pricingCard">
<header class="pricingCard_header">
<h3 class="pricingCard_name">Pro</h3>
</header>
<p class="pricingCard_price">
<span class="pricingCard_amount">$29</span>
<span class="pricingCard_period">/month</span>
</p>
<p class="pricingCard_description">For professionals.</p>
<ul class="pricingCard_features">
<li><span class="pricingCard_check" aria-hidden="true"><svg>[…]</svg></span>10 sites</li>
<li><span class="pricingCard_check" aria-hidden="true"><svg>[…]</svg></span>Email support</li>
</ul>
<div class="pricingCard_cta">
<a class="bt bt-primary" href="#">Get started</a>
</div>
</article><article class="card pricingCard pricingCard-highlighted"> <header class="pricingCard_header"> <h3 class="pricingCard_name">Pro</h3> <span class="badge badge-primary">Popular</span> </header> <p class="pricingCard_price"> <span class="pricingCard_amount">$29</span> <span class="pricingCard_period">/month</span> </p> <p class="pricingCard_description">For professionals.</p> <ul class="pricingCard_features"> <li><span class="pricingCard_check" aria-hidden="true"><svg>[…]</svg></span>10 sites</li> <li><span class="pricingCard_check" aria-hidden="true"><svg>[…]</svg></span>Email support</li> </ul> <div class="pricingCard_cta"> <a class="bt bt-primary" href="/signup">Get started</a> </div></article>The highlight is a border-color swap plus a same-color ring (box-shadow), so the highlighted tier doesn’t shift the row’s layout.
| Property | Description |
|---|---|
--pricingCard-highlight-border-color |
Border/ring color of the highlight. |
--pricingCard-check-color |
Feature list check icon color. |
Everything else comes from the card tokens.
| Prop | Type | Default | Description |
|---|---|---|---|
name |
string |
— | Tier name. Required. |
price |
string |
— | Price as text ("$29", "Free"…). Required. |
period |
string |
undefined |
Suffix after the price ("/month"). |
description |
string |
undefined |
One-liner under the price. |
features |
string[] |
[] |
Feature list, one check per entry. |
ctaLabel |
string |
"Get started" |
CTA button text. |
ctaHref |
string |
undefined |
CTA link; no CTA renders without it (or the cta slot). |
highlighted |
boolean |
false |
Recommended tier: primary ring + primary CTA. |
badge |
string |
undefined |
Badge text next to the name ("Popular"). |
class |
string |
undefined |
Additional CSS classes. |
| Slot | Description |
|---|---|
cta |
Replace the default CTA button with your own markup. |