In Mathematica, a palette is just a notebook with a collection of controls such as buttons. A uniquely powerful consequence of Mathematica'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., )
PaletteNotebook — symbolic representation of a complete palette