<dkl-order-goal> — the data-* attributes that drive its
behaviour, the --dkl-og-* tokens that style it, and the Light-DOM classes you can target.
The app block settings map onto these; on a custom
element you set them directly.
Using this reference with the app blockWhen you place the DK: Order Goal app block, it renders
its own
<dkl-order-goal> and writes these values for you — so what applies depends on the
kind of override:Data attributes — No:
The block sets every data-* itself, from its App block settings and the resolved discount.
Adding data-* to your own markup has no effect on a block instance; they’re the configuration
surface for the web component only. To change block
behaviour, use its settings.CSS styling tokens — Yes:
They’re CSS custom properties that inherit through the light DOM, so they style a block exactly
like a web component. The block’s colour / radius / spacing pickers just write the matching
tokens into a scoped <style> rule for you. Any token not exposed as a setting (e.g.
--dkl-og-marker-size, --dkl-og-marker-border-color) you can still set yourself from your own CSS —
:root, the embed’s Custom CSS field, or a rule targeting the block.CSS parts — N/A:
This component is light DOM, so there are no CSS parts. Target the
Light-DOM classes below instead — they work the same on a block or a
web component.Data attributes
All optional — on a web component the carrier supplies them by default. Set one to override.Pick a specific order-goal discount’s carrier. The
discount- prefix is optional; place one
tag per discount to show several.The baseline cart total.
Money format for JS-rendered amounts.
The spend-more message.
[amount] and [discount] are replaced at runtime.Heading shown once every tier is met.
Content shown once every tier is met.
Per-tier label;
[discount] is the placeholder.Per-tier spend line;
[amount] is the placeholder.Layout variant.
stacked arranges markers in a column with the progress bar rotated.CSS styling tokens
- Layout: Stacked
- Layout: Horizontal

<dkl-order-goal> is styled by a stylesheet loaded site-wide by the embed. Set any token
above the element (:root, the embed’s Custom CSS, an inline style, or the block’s scoped
rule).
Space above the widget (block Margin top).
Space below the widget (block Margin bottom).
Card background (block Background color).
Card padding (block Padding).
Card corners (block Border radius).
Base font size — emitted only when block Font sizing is Custom, else inherits the theme.
Base font size at ≤749px (block Font size (mobile), Custom only).
Card text colour (block Text color).
The “Save [discount]” tier label (block Tier label color).
The “when you spend [amount]+” tier line (block Tier spend label color).
Progress track (unfilled bar) colour (block Track color).
Progress fill colour (block Progress bar color).
Tier marker size.
Inactive marker border colour.
Inactive marker fill (block Icon background (not met)).
Active (met) marker fill (block Icon background (met)).
Active marker check-icon colour.
The marker glyph is set via the
--dkl-og-icon mask — the app block
swaps it for you through its icon image settings; on a web component you set the mask yourself.Light-DOM classes
<dkl-order-goal> is all light DOM — no parts. Target these classes directly.
The card (host element).
The headline / progress message.
The progress bar (with
.dkl-order-goal__progress-track; the fill is the track’s ::before).The tier row/column.
The wrapper for each tier.
The marker dot (met:
.dkl-order-goal__tier-marker--active; the icon glyph is its ::before).The wrapper for the tier label.
The “Save [discount]” text in the tier label.
The “when you spend [amount]+” text in the tier label.
Examples
Restyle the progress fill and markers
Custom messaging
Next steps
App block
Configure these via theme-editor settings.
Web Components
Set these directly on the tag.
