The stylesheet owns only the box — 32px tall, 1px border, 14/24 text, 0px 2px 32px #00000029, and a 180ms reveal that translates up 8px and is dropped under prefers-reduced-motion. Everything visible is display.trigger applied inline: backgroundColor (--gray-0), accentColor (--white, used for icon, label and border), borderRadius (7px), plus scale, position, bottom, right, margin, z-index and text. Padding is the one conditional: 0 8px 0 0 with the icon, 0 8px without, because the 32px icon box supplies its own left inset. It is hidden on mobile by default (isVisibleOnMobile: false) and can be hidden entirely per page via isHidden. Entrance is the springScale preset (stiffness 500, damping 30).
The label is resolved in the tsx, not passed in: "Open Chat" while a preview is open, else "New Message" when there are unread messages, else the signed-in customer's first name, else the configured text ("Get Started"). The unread state also recolours the whole pill to --red-2 with a --red-1 border, icon and label, and swaps user-circle for comment-alt-exclamation — but only when a preview is not open, so the two states never compete. A preview being open shows comment-alt and clicking opens chat rather than toggling the tray.
Defaults from display.chatPreview: 488 × 192, 15px radius, --gray-7 fill, --black accent, 40px margin, bottom-right fixed, and autoDismissMs 10000. Capped at calc(100vw − 32px) so it never overflows a narrow viewport. The auto-dismiss timer is the header's own background — a --gray-6 layer at inset: 0 draining left-to-right by scaleX(1) → scaleX(0), with animationDuration written inline from the config; the title sits above it at z-index: 1. Header padding is asymmetric (0 16px 0 24px) and the close button pulls -8px right. The body is calc(100% − 40px) — the header's min-height — padded 16px 32px 24px, holding a 7px white card (body4 label over body3 message, white-space: pre-line so multi-line welcome messages survive) above a caption subtitle. The whole surface opens chat; only the close button dismisses.