Skip to main content

CSS Customization

Advanced CSS customization for the PocketPing widget.

Visual Widget Builder

For a visual customizer with live preview and code generation, use the Widget Builder page.

Customize the look and feel of the PocketPing widget to match your brand.

Color Theming

Primary Color

The primary color affects the header, send button, and visitor message bubbles:

PocketPing.init({
projectId: 'proj_xxx',
primaryColor: '#6366f1', // Indigo
});

Theme Mode

Control light/dark mode:

PocketPing.init({
projectId: 'proj_xxx',
theme: 'auto', // 'light' | 'dark' | 'auto'
});
  • 'light' - Always use light theme
  • 'dark' - Always use dark theme
  • 'auto' - Follow system preference

CSS Custom Properties

For advanced customization, override CSS variables:

:root {
--pocketping-primary: #6366f1;
--pocketping-primary-hover: #4f46e5;
--pocketping-text: #1f2937;
--pocketping-text-muted: #6b7280;
--pocketping-bg: #ffffff;
--pocketping-bg-secondary: #f9fafb;
--pocketping-border: #e5e7eb;
--pocketping-radius: 12px;
--pocketping-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1);
}

/* Dark mode */
@media (prefers-color-scheme: dark) {
:root {
--pocketping-text: #f9fafb;
--pocketping-text-muted: #9ca3af;
--pocketping-bg: #1f2937;
--pocketping-bg-secondary: #111827;
--pocketping-border: #374151;
}
}

Widget Size

Adjust the widget dimensions:

#pocketping-widget {
--pocketping-width: 380px;
--pocketping-height: 600px;
--pocketping-button-size: 60px;
}

/* Mobile responsive */
@media (max-width: 640px) {
#pocketping-widget {
--pocketping-width: 100%;
--pocketping-height: 100%;
}
}

Custom Launcher Button

Change the launcher icon

Use toggleIcon to swap the floating button's icon. Pass one of the built-in keywords ('chat', 'message', 'help') or your own icon URL / SVG string:

PocketPing.init({
projectId: 'proj_xxx',
toggleIcon: 'help', // 'chat' | 'message' | 'help' | a custom URL/SVG string
});

Trigger the chat from your own element

You can also open the widget programmatically from any element on your page:

document.getElementById('my-chat-button').addEventListener('click', () => {
PocketPing.open();
});

Positioning

Corner Position

PocketPing.init({
projectId: 'proj_xxx',
position: 'bottom-left', // 'bottom-right' | 'bottom-left'
});

Custom Offset

#pocketping-widget {
--pocketping-offset-x: 20px;
--pocketping-offset-y: 20px;
}

Branding

Operator Info

PocketPing.init({
projectId: 'proj_xxx',
operatorName: 'Acme Support',
operatorAvatar: 'https://example.com/avatar.png',
});
PocketPing.init({
projectId: 'proj_xxx',
logoUrl: 'https://example.com/logo.svg',
});

Animations

Disable animations for accessibility:

#pocketping-widget {
--pocketping-transition: none;
}

/* Or respect user preference */
@media (prefers-reduced-motion: reduce) {
#pocketping-widget {
--pocketping-transition: none;
}
}

Z-Index

If the widget conflicts with other elements:

#pocketping-widget {
z-index: 99999;
}

Examples

Minimal Style

PocketPing.init({
projectId: 'proj_xxx',
primaryColor: '#000000',
operatorName: 'Help',
});

Colorful Brand

PocketPing.init({
projectId: 'proj_xxx',
primaryColor: '#ec4899', // Pink
operatorName: 'Support Team',
operatorAvatar: 'https://example.com/team.png',
welcomeMessage: 'Hey! 👋 How can we help?',
});

Next Steps