CSS appearance Property
Description
The CSS appearance property is a powerful but often underutilized tool that allows developers to control the native styling of user interface elements. Unlike properties such as background or border, which define the visual appearance of an element in a declarative way, appearance specifically targets how an element should be rendered in relation to the operating system or browser’s default styles. This can be particularly useful when you want a consistent look across different platforms or when you need to override the default “chrome” of form elements like buttons, checkboxes, and select menus. By modifying the appearance, developers can create interfaces that either embrace the native look or fully customize it to match a particular design aesthetic.
One of the key benefits of using appearance is that it allows for a high degree of control over interactive elements without requiring complex workarounds or heavy use of JavaScript. For example, form elements such as radio buttons or range sliders often come with platform-specific styling that can vary widely between browsers and devices. By setting appearance: none;, a developer can remove these default styles, allowing for a completely custom design using other CSS properties like border-radius, box-shadow, or background. This approach not only improves visual consistency but also opens up creative possibilities for interactive components, animations, and transitions that would otherwise be limited by the browser’s built-in styling.
However, while appearance offers powerful control, it should be used thoughtfully. Overriding native appearances can affect usability, accessibility, and the user’s familiarity with standard controls. For instance, a fully customized button or checkbox may look attractive but could confuse users if it no longer behaves in expected ways. As such, designers often balance the use of appearance with considerations of visual clarity, touch target size, and feedback cues. When combined judiciously with other styling techniques and properties like padding or transition, the appearance property becomes a valuable tool for achieving both aesthetic precision and functional interface design.
Definition
- Initial value
- none
- Applies to
- all elements
- Inherited
- no
- Computed value
- as specified
- Animatable
- yes
- JavaScript syntax
- object.style.appearance
Interactive Demo
Syntax
appearance: none | auto | <compat-special> | <compat-auto>
Values
- noneHides certain features of widgets, such as arrow displayed in select element, indicating that list can be expanded.
- autoActs as none on elements with no special styling.
- <compat-special>One of
menulist-buttonortextfield. Both of these values are equivalent toautoon elements with no special styling. - <compat-auto>Possible values are
button,checkbox,listbox,menulist,meter,progress-bar,push-button,radio,searchfield,slider-horizontal,square-button, andtextarea. Keywords which are the equivalent of auto for maintaining compatibility with older browsers.
Example
Browser Support
The following information will show you the current browser support for the CSS appearance property. Hover over a browser icon to see the version that first introduced support for this CSS property.
This property is supported by all modern browsers.
Desktop
Tablets & Mobile
Last updated by CSSPortal on: 1st January 2026
