For the complete documentation index, see llms.txt. This page is also available as Markdown.

Colours and CSS

Cashback Tracker ships one stylesheet, and it is built to be overridden rather than fought.

The accent colour

SettingsStorefrontMain colour sets one value, and everything accented uses it: buttons, the cashback figure, the coupon discount, the stars, the active filter.

It is published as a CSS variable, so you can also set it from your own stylesheet:

:root { --cbtrkr-accent: #4f46e5; }

That is the whole colour system. There is no second accent to keep in step.

The storefront settings, including the accent colour

The rest of the palette

Alongside the accent, the stylesheet defines a small set of neutrals on :root. Redefine any of them and every plugin surface follows:

Variable
Used for

--cbtrkr-ink

Headings and figures

--cbtrkr-ink-2

Body text

--cbtrkr-muted

Labels, meta rows, secondary text

--cbtrkr-border

Every border and divider

--cbtrkr-surface

Card backgrounds

--cbtrkr-surface-2

Tinted panels

--cbtrkr-radius, --cbtrkr-radius-sm

Corner rounding

--cbtrkr-shadow

Card elevation

A dark theme usually needs only this:

What the stylesheet deliberately does not set

Typeface. No plugin rule sets font-family, anywhere. Your theme owns which font every surface uses; the plugin owns only size, weight and leading. That is why the plugin's cards look like part of your site without any work.

Page width. No fixed widths. The shop page and the directory take a max-width and otherwise fill whatever their container gives them, so they sit inside your theme's own layout instead of competing with it.

Where the stylesheet loads

Not on every page. It is enqueued on:

  • a shop page

  • the shop directory and shop category archives

  • the member account page

  • any post whose content carries one of the plugin's shortcodes or blocks

Everywhere else your visitors do not download it.

If you call do_shortcode() from a theme template rather than putting the shortcode in post content, that detection cannot see it. Force it:

The Dequeue plugin style setting switches the stylesheet off entirely, for themes that would rather write all of it themselves.

Class names worth knowing

Stable names you can safely target:

Area
Prefix

The shop page and its parts

.cbtrkr_shop_page, .cbtrkr_shop_offer, .cbtrkr_shop_identity, .cbtrkr_shop_rate, .cbtrkr_shop_cta, .cbtrkr_shop_facts

Which layout is in use

.cbtrkr_shop_panel or .cbtrkr_shop_hero on the page wrapper

Shop tiles

.cbtrkr_shop_card, plus .cbtrkr_shop_card_compact in a sidebar

The directory

.cbtrkr_shop_directory, .cbtrkr_shop_filters, .cbtrkr_shop_grid

Coupons

.cbtrkr_coupon_card, plus .cbtrkr_coupon_card_code or .cbtrkr_coupon_card_deal

The discount rail

.cbtrkr_coupon_card_discount, plus _md or _sm when the value is long

Reviews

.cbtrkr_reviews, .cbtrkr_review

The member area

.cbtrkr_account_wrap, .cbtrkr_account_rail, .cbtrkr_account_body, .cbtrkr_account_row, .cbtrkr_account_status_*

Inside WooCommerce

.cbtrkr_account_borrowed on the account wrapper

The layout class on the wrapper is the useful one: .cbtrkr_shop_hero .cbtrkr_shop_rate { … } restyles the rate in one layout without touching the other.

Write your CSS in your theme, not in the plugin. A plugin update replaces its stylesheet; your theme's survives. Any rule of yours loaded after the plugin's will win, and you rarely need !important to get there.

The member area's own layout switch

The account page chooses between a side rail and a full-width band with a container query, not a media query — it measures the column your theme gives it rather than the visitor's screen, so it fits a theme with its own sidebar without being told about it. The single column is the base and the rail is the upgrade at 720px of column width.

To force one or the other, change the threshold rather than the layout:

Inside WooCommerce's My Account that is already what happens, via .cbtrkr_account_borrowed — Woo draws its own rail there.

Changing structure, not just colour

CSS covers appearance. When you need different markup — a badge on every tile, a section in a different order — that is a hook or a template, not a stylesheet:

Last updated