Skip to main content

Documentation Index

Fetch the complete documentation index at: https://anypay-docs-sdk-0-15-0-updates.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

To customise the widget, pass CSS variables through the customCss prop. You can pass a string of CSS declarations or a key-value object — both formats work.
import { Pay } from '0xtrails/widget'

<Pay
  apiKey="YOUR_API_KEY"
  customCss={`
    --trails-primary: rgb(99 102 241);
    --trails-border-radius-button: 8px;
  `}
/>

// Object form also accepted
<Pay
  apiKey="YOUR_API_KEY"
  customCss={{
    '--trails-primary': 'var(--your-brand-primary)',
    '--trails-bg-primary': 'var(--your-brand-background)',
  }}
/>

Match your brand colours

Override the primary colour and its interactive states:
<Pay
  apiKey="YOUR_API_KEY"
  customCss={`
    --trails-primary: rgb(99 102 241);
    --trails-primary-hover: rgb(79 70 229);
    --trails-primary-disabled: rgb(209 213 219);
    --trails-primary-disabled-text: rgb(107 114 128);
    --trails-focus-ring: rgb(99 102 241);
    --trails-widget-border: 2px solid rgb(99 102 241);
  `}
/>
To pull in colours from your existing design system, reference your own CSS variables directly:
customCss={{
  '--trails-primary': 'var(--color-brand-500)',
  '--trails-primary-hover': 'var(--color-brand-600)',
  '--trails-bg-primary': 'var(--color-surface)',
  '--trails-text-primary': 'var(--color-text-default)',
}}

Set the border radius style

Rounded theme:
customCss={`
  --trails-border-radius-widget: 32px;
  --trails-border-radius-button: 24px;
  --trails-border-radius-input: 20px;
  --trails-border-radius-dropdown: 16px;
`}
Square / no-radius theme:
customCss={`
  --trails-border-radius-widget: 0px;
  --trails-border-radius-button: 0px;
  --trails-border-radius-input: 0px;
  --trails-border-radius-dropdown: 0px;
  --trails-border-radius-container: 0px;
`}

Set the font family

customCss={`
  --trails-font-family: "Inter", "SF Pro Display", -apple-system, sans-serif;
`}
Monospace:
customCss={`
  --trails-font-family: "Fira Code", "Monaco", monospace;
`}

Configure dark mode

Use the theme prop for light/dark/auto. If you need to override colours for a specific theme, combine theme with customCss:
<Pay
  apiKey="YOUR_API_KEY"
  theme="dark"
  customCss={`
    --trails-bg-primary: rgb(15 23 42);
    --trails-bg-secondary: rgb(30 41 59);
    --trails-text-primary: rgb(248 250 252);
    --trails-border-primary: rgb(51 65 85);
    --trails-primary: rgb(99 102 241);
  `}
/>

Advanced: glassmorphism

customCss={`
  --trails-bg-primary: rgba(255, 255, 255, 0.1);
  --trails-bg-secondary: rgba(255, 255, 255, 0.05);
  --trails-border-primary: rgba(255, 255, 255, 0.2);
  --trails-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
`}

Advanced: disable default CSS

To apply a fully custom stylesheet without Trails’ defaults interfering:
<Pay
  apiKey="YOUR_API_KEY"
  disableCss={true}
/>

Global CSS overrides

Variables cascade as normal CSS custom properties. You can set them globally or scope them to a container:
/* Apply to all widget instances */
:root {
  --trails-primary: #6366f1;
}

/* Scope to a specific container */
.my-payment-section {
  --trails-primary: #10b981;
}

CSS variable reference

Typography

VariableDefault
--trails-font-familyui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif

Border radius

VariableApplies toDefault
--trails-border-radius-widgetMain widget container32px
--trails-border-radius-buttonPrimary buttons24px
--trails-border-radius-inputInput fields24px
--trails-border-radius-dropdownDropdown menus12px
--trails-border-radius-containerGeneric containers8px
--trails-border-radius-listToken lists8px
--trails-border-radius-list-buttonList item buttons12px
--trails-border-radius-large-buttonLarge action buttons16px

Widget structure

VariableDefault
--trails-widget-bordernone
--trails-shadow0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)

Primary colours

VariableDefault
--trails-primaryrgb(59 130 246)
--trails-primary-hoverrgb(37 99 235)
--trails-primary-disabledrgb(209 213 219)
--trails-primary-disabled-textrgb(107 114 128)

Background colours

VariableDefault
--trails-bg-primaryrgb(255 255 255)
--trails-bg-secondaryrgb(249 250 251)
--trails-bg-tertiaryrgb(243 244 246)
--trails-bg-cardrgb(255 255 255)
--trails-bg-overlayrgb(255 255 255)

Text colours

VariableDefault
--trails-text-primaryrgb(17 24 39)
--trails-text-secondaryrgb(75 85 99)
--trails-text-tertiaryrgb(107 114 128)
--trails-text-mutedrgb(156 163 175)
--trails-text-inversergb(255 255 255)

Border colours

VariableDefault
--trails-border-primaryrgb(229 231 235)
--trails-border-secondaryrgb(209 213 219)
--trails-border-tertiaryrgb(243 244 246)

Interactive states

VariableDefault
--trails-hover-bgrgb(243 244 246)
--trails-hover-textrgb(17 24 39)
--trails-focus-ringrgb(59 130 246)

Status colours

VariableDefault
--trails-success-bgrgb(240 253 244)
--trails-success-textrgb(22 163 74)
--trails-success-borderrgb(187 247 208)
--trails-warning-bgrgb(255 251 235)
--trails-warning-textrgb(217 119 6)
--trails-warning-borderrgb(253 230 138)
--trails-error-bgrgb(254 242 242)
--trails-error-textrgb(220 38 38)
--trails-error-borderrgb(254 202 202)

Input fields

VariableDefault
--trails-input-bgrgb(255 255 255)
--trails-input-borderrgb(209 213 219)
--trails-input-textrgb(17 24 39)
--trails-input-placeholderrgb(156 163 175)
--trails-input-focus-borderrgb(59 130 246)
--trails-input-focus-ringrgb(59 130 246)
VariableDefault
--trails-dropdown-bgrgb(255 255 255)
--trails-dropdown-borderrgb(229 231 235)
--trails-dropdown-textrgb(17 24 39)
--trails-dropdown-hover-bgrgb(249 250 251)
--trails-dropdown-selected-bgrgb(243 244 246)
--trails-dropdown-selected-textrgb(17 24 39)
--trails-dropdown-focus-borderrgb(59 130 246)

Lists

VariableDefault
--trails-list-bgrgb(255 255 255)
--trails-list-borderrgb(229 231 235)
--trails-list-hover-bgrgb(249 250 251)