In the Wolfram System, a palette is just a notebook with a collection of controls such as buttons. A uniquely powerful consequence of the Wolfram Language's unified design is that a symbolic specification, easily built up by a program, can immediately be deployed as an active palette.
Palettes ▶ — menu of built-in and custom-added palettes
CreatePalette — create a palette from an expression, and open it on screen
Button — a button with any label and any action
PasteButton — a button which pastes its contents at the current selection
Appearance — option to specify button appearance (e.g., "Palette")
PaletteNotebook — symbolic representation of a complete palette