Things to never ship in Customer.io product UI — deprecations, component misuse, visual and voice violations.
The list of things to never ship in Customer.io product UI. Each is a real drift seen in agent-generated or rushed output.
variant="warning" on Banner — deprecated, use variant="caution".isError on Button — deprecated, use isDanger.unsafe_isActive — deprecated, use isActive.onSortingChange top-level on DataTable — deprecated, use sorting.onChange.color-banner-warning-* tokens — deprecated, use color-banner-caution-*.<button>, <select>, or <input> when Pluma equivalents exist.<div>s.<select> when there are more than 10 options — use Combobox.color-surface-accent (teal_spruce — a dark, spruce-leaning teal). Blue tokens are reserved for information, focus rings, and the Label blue semantic.space-100, space-200, space-300, space-400) per Refinement levers.flex or inline-style overrides on split panels. Use the three sanctioned ModalSplit ratios; custom ratios go through design review.top, leading, trailing, bleed. Additional slots are a pattern, not a refinement.See Voice for the full voice spec.
When a rule must be broken:
#design-systems.The default answer when an existing primitive or token doesn't fit is this is a new pattern, not a refinement. New patterns belong in Pluma. Inventing a primitive in code is the failure mode this entire spec exists to prevent.