Skip to content
NovaSpark Docs v1.0.0
Live Demo Support

Build

Pricing & switchers

Pricing cards and comparison tables, and the monthly/yearly toggle that changes every figure at once.

Three widgets cover pricing, and one mechanism ties them together.

WidgetFor
NovaKit Pricing CardOne plan, as a card. Put three in a row for the usual layout.
NovaKit Pricing TableSeveral plans compared feature by feature, in one grid.
NovaKit PriceJust a figure. For a hero, a banner, anywhere a price stands alone.

The monthly / yearly switcher #

This is the part worth understanding, because it does not work the way you would guess.

The toggle is NovaKit Tabs / Switcher with its Nav Style set to Switch. It does not contain the prices. Instead it broadcasts which state is active, and any pricing widget that names the same Switch Group listens and changes its own figure.

Why broadcast rather than contain? Because in every real pricing layout the toggle sits above a row of cards, or inside each card — never wrapped around them. A mechanism based on containment would force you to restructure your columns just to use the feature.

  1. Add the toggleAn NovaKit Tabs / Switcher above your pricing row, with Nav Style set to Switch.
  2. Name the groupGive it a Switch Group name — billing, say. Any name, as long as it is the same everywhere.
  3. Label the two states“Monthly” and “Yearly”, as the two items.
  4. Set the same group on each priceIn every NovaKit Price, Pricing Card or Pricing Table, enter that same Switch Group.
  5. Give each its second figureEach price then takes a second value for the other state — the yearly figure beside the monthly one.

The group name must match exactly, and a widget that does not name it is simply not listening — the toggle flips, and that one price sits unchanged. Nothing errors, because a switcher cannot know which widgets were meant to follow it.

One toggle can drive any number of widgets, and a page can carry more than one independent toggle by giving each its own group name.

How the change animates

NovaKit Price offers a Switch Motion for the transition rather than swapping the number instantly:

SettingDefaultAccepts
Price MotionThe animation used when the figure changes
DurationSeconds
Slide DistanceHow far each digit travels
Digit StaggerMilliseconds between digits, so they roll rather than move as a block
Roll DirectionUp or down

The stagger is what makes it read as an odometer rather than a jump cut. A small value — tens of milliseconds — is enough.

The comparison table #

NovaKit Pricing Table puts several plans side by side and compares them row by row. You define the plans as columns and the features as rows.

SettingDefaultAccepts
Number of PlansHow many columns
Sticky Plan HeaderOffOn or off
Sticky OffsetPixels, to clear a sticky site header
Alternating Row TintOn or off
Corner LabelText for the empty top-left cell
Included / Not-Included IconThe tick and cross used in feature rows

Turn on Sticky Plan Header for any table longer than a screen. Otherwise a visitor scrolling the feature list loses track of which column is which — and set the Sticky Offset to your header’s height, or it pins underneath it.

Row types

Feature rows come in more than one kind. A Group row is a heading that spans the table, letting you break a long list into sections — “Included”, “Support”, “Limits”. Ordinary rows take a tick, a cross, or free text such as “Up to 5” per plan.

Each plan column carries its own name, price, period, button text, link and style, so one column can be visually promoted as the recommended plan.

Pricing cards #

NovaKit Pricing Card is one plan. Three in a horizontal Container gives the familiar layout, and because each is a separate widget you can make the middle one taller, tint it, or add a badge without fighting a table.

Cards subscribe to the switcher the same way — give each the same Switch Group.

When the toggle does nothing #

SymptomUsual cause
Nothing changes anywhereNav Style is not set to Switch, or the switcher has no group name.
Some prices change, one does notThat widget’s Switch Group is missing or spelled differently.
The figure changes but the period does notOnly the price has a second value. The period takes one too.
Two toggles move togetherThey share a group name. Give each its own.
It works on the page but not in the editorExpected — the broadcast runs on the real page. Use Preview.
Esc