Styling the V2 widgets
Match the full-page Projects experience, save panel and dialogs to your store from the app's Appearance page: colors, fonts, heading style, corner radius and shadows, with a live preview. Custom CSS is available for developers.
The V2 widgets (the full-page Projects experience, the product page save panel, the collection icon panel, and the shared-list page) are styled from one place in the app, with a live preview, and no code. This guide covers every setting, plus a Custom CSS hook for stores that have a developer.
Where the settings live
In your Shopify admin, open Apps → B2B Wishlist Project Planner → Appearance.
The page shows the settings on the left and a live preview of the Projects page on the right, using your own best-selling products. Switch the preview between the Projects list and a Project detail view. Click Save to publish; changes are live on your storefront on the next page load. View on your store opens the real Projects page.
These settings apply to every V2 widget on your store, including the Projects page at /apps/wishlist-api/v2/projects, which has no theme block of its own.
The product page button and the collection icon blocks keep their own color settings (button colors, overlay colors) in the theme editor, because they sit inside your theme's own sections. Typography and shape settings from the Appearance page still apply to the panels they open.
Colors
| Setting | What it controls |
|---|---|
| Page background | Background behind the Projects page. Leave blank to use your theme's page background. When set, the page gets matching padding and rounded corners. |
| Text | All text, breadcrumbs, and derived muted text (dates, vendor names, helper copy). |
| Card background / Card border | Project cards on the Projects page and in the save panel. |
| Create tile background | The "Create a new project" tile. |
| Image placeholder | Shown behind product images while they load, and for products without images. |
| Input background | Text inputs and the subgroup popover. |
| Overlay background | The side panel and dialogs (share, delete confirmation). |
| Primary button / Primary button text | Add to cart, create, share and other filled buttons; the active subgroup chip. |
| Action button / text / border | Outlined buttons (Share, Download PDF, Cancel), subgroup chips and the quantity stepper. |
| Delete / remove / Delete button text | Delete buttons, the remove-item hover state and the armed subgroup delete control. |
Muted text (dates, vendor names, helper copy) is derived from the text color at reduced opacity, so one text color keeps everything legible on light or dark backgrounds.
Typography
Out of the box the widgets match your theme: body text inherits your theme's text font, and headings copy the font, weight and letter spacing your theme uses for its own headings. Most stores never need to touch this section.
| Setting | What it controls |
|---|---|
| Text font | Match my theme (default) inherits your theme's body font. Use a specific font lets you type a font family name. |
| Heading font | Match my theme's headings (default) copies your theme's heading font. Same as text uses the body font. Use a specific font lets you type a family name. |
| Load these fonts from Google Fonts | Turn on when a font you typed isn't already part of your theme. Fonts your theme already loads (the ones in your theme's Typography settings) work without it. |
| Heading weight | Match my theme (default), Regular, Medium, Semibold or Bold. Applies to page titles, panel and dialog titles, and project names. |
| Heading case | As written (default) or Uppercase. Uppercase headings automatically get wider letter spacing. |
| Page title size | Largest size of the "Projects" / project name title (32 to 96 px). It still scales down on smaller screens. |
| Text size | Small, Medium (default) or Large. Scales all body text, buttons, inputs and labels together. |
| Small labels | The monospace uppercase accents (vendor names, dates, subgroup tags, the shared badge). Switch to Same as text for a quieter look that uses your body font. |
Shape and shadows
| Setting | What it controls |
|---|---|
| Button corner radius | Buttons, chips, inputs and the quantity stepper. The maximum is a pill shape; 0 is square. |
| Card corner radius | Project cards, product images, tiles, skeletons and the subgroup popover. Small thumbnails use a proportionally smaller radius. |
| Overlay corner radius | Dialogs, and the side panel (which uses a slightly larger radius on desktop). |
| Card border width | 0 removes card borders entirely. |
| Show shadows | Turn off for a flat look: removes shadows from the side panel, dialogs, popovers and floating buttons. |
Custom CSS (for developers)
If a setting doesn't exist for what you need, the Custom CSS field at the bottom of the Appearance page accepts plain CSS. It's loaded after the app's own styles on every page, and it's copied into each widget, so it works even though the widgets render in isolated shadow DOM.
The field also reaches the classic widgets (the account page block and /apps/wishlist-api/wishlist-account). Their class names carry a short suffix (for example ssfy-button__button--286d1) and aren't listed below; inspect the page to find them. The same support caveat applies.
Custom CSS is not covered by support
We're happy to help with every setting on this page. Custom CSS is offered as-is for stores that have a developer: our support team can't diagnose, fix or maintain custom CSS, and if a layout problem is reported we'll first ask you to clear the field. Where a setting exists for what you're trying to change, use the setting.
Stable class names
Every V2 element has a class of the form ssfy-v2-<component>__<element>. The names below are stable across app updates; anything not listed may change without notice.
| Class | Element |
|---|---|
ssfy-v2-projects-page__page | Projects page wrapper |
ssfy-v2-projects-page__title / ssfy-v2-project-detail__title / ssfy-v2-shared-view__title | Page titles |
ssfy-v2-projects-page__count / ssfy-v2-project-detail__count | The item count next to a title |
ssfy-v2-projects-page__breadcrumbs / ssfy-v2-project-detail__breadcrumbs | Breadcrumb navigation |
ssfy-v2-projects-page__grid / ssfy-v2-project-detail__grid / ssfy-v2-shared-view__grid | Card grids |
ssfy-v2-projects-page__create-tile | The "Create" tile |
ssfy-v2-project-card__card | A project card |
ssfy-v2-project-card__name / __date / __thumb / __actions | Parts of a project card |
ssfy-v2-product-card__card | A product card inside a project |
ssfy-v2-product-card__image / __vendor / __title / __variant-title / __price | Parts of a product card |
ssfy-v2-product-card__stepper / __add-to-cart / __remove-button | Product card controls |
ssfy-v2-product-card__out-of-stock | Add-to-cart button when the variant is sold out |
ssfy-v2-subgroup-chips__row / __chip / __chip-active | Subgroup filter chips |
ssfy-v2-action-button__action-button / __primary / __danger | Outlined, filled and destructive header buttons |
ssfy-v2-side-panel__panel / __title / __close-button | The save panel / side panel |
ssfy-v2-share-modal__modal / ssfy-v2-confirm-modal__modal | Dialogs |
ssfy-v2-create-project-panel__input / __create-button | The create form |
ssfy-v2-save-to-project-button__trigger | The product page "Add to project" button |
ssfy-v2-shared-view__shared-badge | The "Shared project" badge on shared pages |
Examples
Give page titles a bottom border:
.ssfy-v2-projects-page__title,
.ssfy-v2-project-detail__title {
padding-bottom: 12px;
border-bottom: 1px solid currentColor;
}Hide vendor names on product cards:
.ssfy-v2-product-card__vendor {
display: none;
}Make product images square instead of slightly tall:
.ssfy-v2-product-card__image {
aspect-ratio: 1;
}Tips
- Don't use
!importantunless a rule is genuinely being overridden: your CSS is already loaded last. - Use the class names, not element selectors like
h1orbutton, so your rules don't leak into the rest of your theme. - Styles for the side panel and dialogs apply to elements rendered at the end of the page body, outside your theme's sections. The classes above still match.
- The preview on the Appearance page applies your custom CSS too, so you can check a rule before saving.
Legacy theme-editor colors
Stores that set V2 colors in the theme editor (App embeds → B2B Wishlist Project Planner → "V2 colors (legacy)") keep them until the Appearance page is saved for the first time. After that, the Appearance page is the only source and those theme settings are ignored.
If you have questions about the built-in settings, reach out through our contact form.
The full-page Projects experience
A dedicated, full-page wishlist experience at its own URL on your storefront - room-by-room filtering, sharing with or without prices, PDF downloads, and one-click add-all-to-cart. Zero setup.
How to share wishlists/projects
Customers can share their wishlists and project lists with others using a generated link - great for design clients, contractors, and purchasing teams.