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

Styling the widget

Brand the widget from the dashboard, and what to know before writing your own CSS.

Use the dashboard first

Colour, position, corners, launcher style, button text and the panel's logo are all settings β€” see Appearance.

Settings travel in the configuration the widget fetches at load time, so they apply everywhere the widget is installed, they survive widget updates, and they can be changed without touching your site's code. Reach for CSS only for something the settings genuinely cannot express.

If you must write CSS

The widget renders into your page with class names prefixed lp-. You can target them from your own stylesheet.

/* Nudge the launcher clear of a sticky footer */
.lp-launcher {
  bottom: 96px !important;
}

!important is usually required, because the widget sets its own positioning inline.

Know what you are taking on

That is a real trade-off, not a formality: CSS written against internal classes can break silently, and the first sign is usually a customer telling you the contact button looks wrong.

If you do it:

  • Keep it minimal. Position and spacing survive far better than restyling internals.

  • Scope it tightly. One rule against one class beats a cascade of overrides.

  • Re-check after updates. Put it on whoever owns the site as a periodic check.

  • Never rely on layout internals. Anything depending on the panel's internal structure will break.

Better alternatives

The widget does not fit your design. Hide the launcher and use your own button, so the only visible element is one you control:

See Widget recipes.

You want your own form entirely. Post to the widget API and never render the panel at all β€” your markup, your styling, your validation. See Connect your own form.

That is the right answer for anyone doing heavy visual customisation: a supported API you control beats CSS against classes that can move.

Inline mode

The Inline display style renders the widget into a container on your page rather than floating it:

Size and position that container with your own CSS as you would any other element. This is the supported way to place the widget inside a page layout, and it does not depend on internal class names.

Was this helpful?