Customization

Everything is configured from the Widget page in the dashboard, with a live preview beside the controls. Deployed widgets pick up changes within about a minute, no redeploy on your side.

Options

OptionDefaultNotes
accentColor#00C48CTrigger, focus rings, and the submit button.
positionbottom-rightbottom-right · bottom-left · top-right · top-left
themeautolight · dark · auto (follows the visitor's system setting)
radius12Corner radius in px, 0 to 24.
triggerLabelFeedbackText on the floating button.
triggerHiddenfalseHide the button and open it yourself instead.
headingShare your feedbackPanel title.
subheadingWe read everything…One line under the title.
enabledTypesall fourWhich of Idea / Issue / Praise / Question to show.
askRatingtrueShow the 1 to 5 scale.
askEmailtrueShow the optional email field.
successMessageThank you…Shown after a submission lands.
hideBrandingfalseRemove the footer link. Pro and above.

Why it can't break your styles

The widget mounts into a Shadow DOM root with :host { all: initial }. Your page's CSS, including !important rules on button, input, or *, cannot reach inside it, and nothing we ship leaks out onto your page.

Keyboard

  • Esc closes the panel.
  • ⌘/Ctrl + Enter submits from the message box.

Accessibility & motion

Animations are skipped entirely for visitors with prefers-reduced-motion: reduce, and the panel is fully keyboard operable.

stored config (read-only)
{
  "accentColor": "#00C48C",
  "position": "bottom-right",
  "theme": "auto",
  "radius": 12,
  "enabledTypes": ["IDEA", "ISSUE", "PRAISE", "QUESTION"],
  "askRating": true,
  "askEmail": true,
  "hideBranding": false
}