LinkStacked

Appearance & themes

Linkstacked separates content (links and copy) from appearance (theme, fonts, gradients, layout). The appearance surface is small but opinionated — a handful of fields drive every visual variant.

Read the current appearance

query Appearance {
  me {
    profile {
      _id
      appearance {
        themeId
        font
        layout
        accentColor
        backgroundGradient
        buttonStyle
      }
    }
  }
}

Update appearance

updateAppearance accepts a partial input — only fields you supply are written, so you can change just the theme and leave fonts intact:

mutation UpdateAppearance($input: UpdateAppearanceInput!) {
  updateAppearance(input: $input) {
    profile { _id appearance { themeId } }
  }
}
{
  "input": {
    "themeId": "midnight",
    "font": "Inter",
    "buttonStyle": "rounded"
  }
}

Theme catalog

A profile can pick any system theme that's been approved for its subscription tier. The list is exposed through systemThemes so your integration shows the same set the dashboard does:

query SystemThemes {
  systemThemes {
    _id name previewImageUrl cssConfig
  }
}

Marketplace themes

Themes purchased from the marketplace are returned alongside system themes from the same query — they carry an extra marketplaceListingId field so you can link back to the listing.