Docs

Custom CSS Guide

3 min readUpdated June 15, 2026

WP LinkCanvas provides two places to add custom CSS — a per-page field in the bio page editor, and any global stylesheet. Both are standard CSS targeting the bio page’s class structure.

Where to add CSS#

Per-page Custom CSS — in the bio page editor, scroll to the bottom and expand Custom CSS. CSS entered here applies only to that bio page. It is scoped automatically — you can write selectors without worrying about affecting the rest of your site.

Global CSS — add CSS to your theme’s stylesheet, a child theme, or a plugin like Simple Custom CSS. Use body.nlb-page as the top-level scope to target all bio pages.

Page structure#

Every bio page has body.nlb-page as the root class. The layout inside is:

body.nlb-page
  .nlb-card                  ← outer card
    .nlb-avatar              ← profile photo circle
    .nlb-title               ← display name
    .nlb-subtitle            ← tagline
    .nlb-bio                 ← bio paragraph
    .nlb-lang-switcher       ← language tabs (if multilanguage)
    .nlb-showcase            ← product rail (if enabled, above links)
    .nlb-links               ← links list
      .nlb-link              ← individual link row
    .nlb-socials             ← social icon row
      .nlb-social            ← individual social icon
    .nlb-showcase            ← product rail (if enabled, below links)

Each link gets a modifier class based on its type:

ClassLink style
.nlb-linkAll links (base)
.nlb-link--cardEnhanced Link (image card)
.nlb-link--mediaMedia (square thumbnail)
.nlb-link--embedEmbed (iframe)
.nlb-link--shortcodeShortcode
.nlb-link--vidstackVidstack player
.nlb-link--vidstack-videoVidstack video player
.nlb-link--vidstack-audioVidstack audio player
.nlb-link--featuredAny link with Featured toggle on
.nlb-link--embed-youtubeYouTube embed specifically
.nlb-link--embed-spotifySpotify embed specifically

Other embed providers follow the same pattern — .nlb-link--embed-{provider} where provider is the lowercase platform key (vimeo, soundcloud, twitch, etc.).

Common customisations#

css

body.nlb-page {
    --nlb-link-radius: 8px;
}

css

body.nlb-page {
    --nlb-link-radius: 0px;
}

Change the accent colour#

css

body.nlb-page {
    --nlb-accent: #e91e8c;
}

Increase bio page maximum width#

css

body.nlb-page {
    --nlb-card-max: 600px;
}

Hide the avatar#

css

body.nlb-page .nlb-avatar {
    display: none;
}

Each link has a data-nlb-slot attribute containing a unique ID. Use this to target one link:

css

body.nlb-page .nlb-link[data-nlb-slot="link_abc123"] {
    background: #ff6a00;
}

Find the slot ID by inspecting the link element in your browser’s developer tools.

Change social icon size#

css

body.nlb-page {
    --nlb-social-size: 48px;
    --nlb-social-icon-size: 22px;
}

Style Vidstack player controls for a specific theme#

css

body.nlb-page {
    --nlb-player-accent: #ff6a00;
    --nlb-player-radius: 12px;
}

css

body.nlb-page .nlb-link--card {
    min-height: 220px;
}

css

body.nlb-page .nlb-link__embed-caption {
    display: none;
}

RTL support#

Bio pages for Arabic, Hebrew, and other RTL languages get body.nlb-page.nlb-rtl and dir="rtl" on the HTML element. The plugin uses logical CSS properties (padding-inline-start, margin-inline-end etc.) throughout so most RTL layout works automatically. Use the .nlb-rtl class to add RTL-specific overrides:

css

body.nlb-page.nlb-rtl .nlb-title {
    font-family: "Cairo", sans-serif;
}

Using CSS tokens in custom rules#

Tokens are available in any CSS rule targeting body.nlb-page:

css

body.nlb-page .my-custom-element {
    color: var(--nlb-accent);
    background: var(--nlb-link-bg);
    border-radius: var(--nlb-link-radius);
}

See the CSS Token Reference for the full list of available tokens.

This website uses cookies to enhance your browsing experience and ensure the site functions properly. By continuing to use this site, you acknowledge and accept our use of cookies.

Accept All Accept Required Only