Theming reference and integration guide. Every value below is read
straight out of the library source at build time, so it describes the
components you actually have installed.
--tcc-negative-colorDestructive actions, such as removing a license.
#c00
--tcc-warning-colorCart warnings — a style already covered by a package.
#a60
--tcc-warning-backgroundFill behind a cart warning. The shipped default is missing its color-mix() wrapper, so it resolves to nothing — set this explicitly.
--tcc-heading-font-weightHeading weight, also used by .tcc-ui-heading.
700
--tcc-heading-line-heightLine height for headings.
1.1
--tcc-heading-font-size.tcc-heading — “Cart (2)”, order confirmation.
1.8rem
--tcc-heading-l-font-size.tcc-heading-l — the “Buy Family” title.
2.4rem
Geometry 5 token
s
Variable
Default
Your value
--tcc-radiusCorner radius for buttons, inputs and dropdowns.
0.2rem
--tcc-radius-lLarger radius, for cards and dialogs.
0.5rem
--tcc-border-widthSection rules inside Buy and Cart.
1px
--tcc-max-widthWidth a component grows to before it stops.
60rem
--tcc-durationTransition duration for hovers and expanding rows.
0.2s
Focus 3 token
s
Variable
Default
Your value
--tcc-focus-outline-colorFocus ring colour.
var(--_tcc-action-color)
--tcc-focus-outline-widthFocus ring thickness.
2px
--tcc-focus-outline-offsetGap between the ring and the control.
1px
Links 3 token
s
Variable
Default
Your value
--tcc-link-colorResting colour of .tcc-link.
var(--_tcc-action-foreground)
--tcc-link-hover-colorHover and focus colour.
var(--_tcc-action-color)
--tcc-link-text-decorationDeclared rather than inherited, so a host a { } rule cannot bleed through.
underline
Buttons 25 token
s
Variable
Default
Your value
--tcc-button-backgroundFill of the outlined variant.
var(--_tcc-background)
--tcc-button-foregroundLabel colour of the outlined variant.
var(--_tcc-action-foreground)
--tcc-button-border-colorBorder of the outlined variant.
var(--_tcc-action-foreground)
--tcc-button-border-widthBorder width, both variants.
1px
--tcc-button-radiusButton corner radius.
var(--_tcc-radius)
--tcc-button-padding-blockVertical padding.
0.5rem
--tcc-button-padding-inlineHorizontal padding.
1rem
--tcc-button-font-familyButton label font.
var(--_tcc-ui-font-family)
--tcc-button-font-sizeButton label size.
var(--_tcc-ui-font-size)
--tcc-button-line-heightButton label line height.
var(--_tcc-ui-line-height)
--tcc-button-hover-backgroundOutlined variant on hover and focus.
var(--_tcc-action-background)
--tcc-button-hover-foregroundOutlined label on hover and focus.
var(--_tcc-button-foreground)
--tcc-button-primary-backgroundFill of the primary variant.
var(--_tcc-action-color)
--tcc-button-primary-foregroundLabel colour of the primary variant.
var(--_tcc-background)
--tcc-button-primary-border-colorBorder of the primary variant.
var(--_tcc-action-foreground)
--tcc-button-primary-hover-backgroundPrimary fill on hover and focus.
var(--_tcc-action-foreground)
--tcc-button-primary-hover-foregroundPrimary label on hover and focus.
var(--_tcc-background)
--tcc-button-disabled-backgroundDisabled outlined fill. The color-mix() default fades toward transparent; override it rather than fighting it with !important.
--tcc-button-group-gapGap between buttons in a .tcc-button-group.
4px
--tcc-button-group-margin-blockSpace above and below a button group.
0.67rem
Text inputs 6 token
s
Variable
Default
Your value
--tcc-input-backgroundField fill.
var(--_tcc-background)
--tcc-input-foregroundTyped text.
var(--_tcc-foreground)
--tcc-input-border-colorResting border.
var(--_tcc-border-alt-color)
--tcc-input-focus-border-colorBorder once focused.
var(--_tcc-border-color)
--tcc-input-radiusField corner radius.
var(--_tcc-radius)
--tcc-input-paddingField padding.
0.4rem 0.6rem
Range sliders 7 token
s
Variable
Default
Your value
--tcc-range-widthWidth of the type-tester size slider.
10rem
--tcc-range-track-colorTrack at rest.
var(--_tcc-border-alt-color)
--tcc-range-track-active-colorTrack while the slider has focus.
var(--_tcc-action-color)
--tcc-range-track-heightTrack thickness.
2px
--tcc-range-thumb-sizeThumb diameter.
1rem
--tcc-range-thumb-colorThumb fill.
var(--_tcc-background)
--tcc-range-thumb-border-colorThumb ring.
var(--_tcc-action-color)
Component tokens
Public in the same way, but declared inside one component’s scoped
styles, so they only affect that component. Most inherit from a global
token — override the global first, and reach for these only when one
component needs to differ.
Buy — sticky style bar 1 token
Variable
Default
Your value
--tcc-sticky-offsetPush the sticky style bar down past a fixed site header.
Drop this into your site’s stylesheet. Swap html for any wrapper
to theme a subtree instead of the whole page.
/* No overrides yet — fill in any field above. */
Components
Five components, one per page of the purchase flow. Each imports the
stylesheet itself and reads the cart from local storage, so the only
state you pass is configuration and catalogue data.
Order confirmation page — whatever siteConfig.successUrl points at, and the page successLink targets.
src/pages/order-confirmation.astro
.tcc-checkout-success
Every component is an island: it needs a client:* directive to
hydrate. Import paths below are the package exports — inside this repo they
resolve through the @components/* alias instead.
CartCount
The number of items in the cart, for your nav. Renders nothing while the cart is empty.
Lives onSite chrome — put it in your layout so it appears on every page.
Prop
Type
Notes
class
string
Appended to tcc-cart-count, for positioning it in your nav.
Your site object — URLs, foundry ids, contact email. Import the type from @the-type-founders/type-commerce-components/siteConfig.
successLinkrequired
string
Absolute URL Stripe returns to after payment. It must be the page that renders CheckoutSuccess.
priceMap
Record<string, string>
Build-time Stripe fallback. Leave it empty: prices come from the static /price-maps/<foundry>.json files.
---
import Checkout from '@the-type-founders/type-commerce-components/Checkout';
import { site } from '../config';
const successLink = `${Astro.url.protocol}//${Astro.url.host}/${site.successUrl}/`;
---
<Checkout siteConfig={site} {successLink} client:load />
CheckoutSuccess
Order confirmation, font download button and the optional HubSpot survey. Reads session_id from the URL and empties the cart on mount.
Lives onOrder confirmation page — whatever siteConfig.successUrl points at, and the page successLink targets.
Prop
Type
Notes
siteConfigrequired
SiteConfig
Your site object — URLs, foundry ids, contact email. Import the type from @the-type-founders/type-commerce-components/siteConfig.
---
import CheckoutSuccess from '@the-type-founders/type-commerce-components/CheckoutSuccess';
import { site } from '../config';
---
<CheckoutSuccess siteConfig={site} client:load />
Previews below are the real components, hydrated only when you open
one, and themed by whatever you entered above.
Preview CartCount
Shows your actual cart count, and hides itself at zero — add
something in the Buy preview to see it appear.
Cart 0
Preview Buy
Live and wired to the catalogue (
ivy:ivyora). Adding to the cart really
adds to your cart.
Buy IvyOra
Select licenses
Like any software, fonts are licensed for specific uses. All of our licenses
allow commercial use — the right one simply depends on how you plan to use
the fonts.
Embed fonts directly in a mobile app. Licensing is based on the number of app titles and covers distribution across platforms like iOS and Android, for apps with up to 25,000 monthly active users.
Install fonts on your computer to create static assets like logos, social media images, presentations, and print materials. Each person who installs the font needs a license. Embedding in apps, automated systems, or hosting on a website requires a different license.
With an empty cart this settles on the “no items” state without
contacting Stripe. With items in the cart, opening this
does create a real Stripe checkout session.
Preview CheckoutSuccessempties your cart
The component clears the cart on mount, so opening this preview
clears yours. There is no session_id in this page’s URL,
so it also shows the session-error state — which is what that state
looks like.
Your order has been confirmed - thank you!
You may download your fonts here:
If your purchase includes a subscription, please note that you have signed
up for auto-renewal. This means you will be billed now and again when the
license renews in one year. You can edit or cancel your subscription at any
time using the link in the order confirmation or by emailing us at info@gregthompson.com.