Client-side decoration is the concept of allowing a graphicalapplication software to be responsible for drawing its own window decorations, historically the responsibility of the window manager. Sometimes client-side decoration is used to refer to the applications that don't have a traditional title bar, however this is a misuse of the phrase, as even applications that have a basic title bar can be client sidedecorated. By using client-side decoration rather than traditional server-side decoration, applications are able to draw their own title bar, which allows for a wide range of possibilities to customize window decorations and add additional functionality into what otherwise would be a typical window manager bar with much empty space in the maximized windows.
Terminology
In Linux and Unix-like systems, it is called Client-Side Decoration which comes from X Window System, where a client is the application which renders a window and sends it to the X server. The alternative is called Server-Side Decoration even though on X the decoration is drawn by the window manager, which is not actually the "server".
was the first GUI toolkit on Linux that implemented client-side decoration using the GtkHeaderBar widget. GtkHeaderBar merges the title bar, menu bar and tool bar into one unifiedhorizontal bar in order to give more space to the application content, potentially reducing the amount of wasted space by showing empty bars. This can help to achieve a flexible UI and consistent UX across different computer form factors from desktop systems to small form factor devices by removing the traditional desktop-oriented parts from applications. These have first-class support in GNOME Shell and are widely use by GNOME applications.
UWP
applications can choose to draw their own title bars.
Firefox uses client-side decorations when the title bar is disabled.
Google Chrome uses client-side decorations on Windows and macOS, and supports both client and server decorations on Linux.
Display servers
Wayland
was designed to have client-side decorations by default, but has an optional protocol, known as xdg-decoration, which allows an application to query whether the window manager supports server-side decoration and if so for a client to request it. Mutter, the compositor used by GNOME Shell, under Wayland only supports client side decoration, whilst KWin supports both client and server side decoration.
In 2012 Microsoft uses client-side decorations in their new Metro design language by adding toolbar objects like back buttons to the windows title bar.
In 2013 GTK added support for client-side decorations with the release of GTK 3.10.