---
title: Themes
path: /v5/themes/
index: 6
---
Tippies can have any custom styling via CSS.
### Included themes
The package comes with themes for you to use:
- `light`
- `light-border`
- `material`
- `translucent`
They need to be imported separately.
```js
import 'tippy.js/themes/light.css';
```
Pass the theme name as the `theme` prop:
```js
tippy('button', {
theme: 'light',
});
```
### Tippy elements
To learn how to create a theme, it's helpful to understand the basic structure
of a tippy element:
```html
My content
```
A tippy is essentially three nested `div`s.
- `tippy-popper` is the outermost node. It is what Popper.js uses to position
the tippy. You don't need to apply any styles to this element.
- `tippy-tooltip` is the actual tooltip node.
- `tippy-content` is the content node.
Depending on the props supplied, there will exist other elements inside it:
```html
My content
```
### Creating a theme
Themes are created by including a class on the `tippy-tooltip` element as part
of a selector in the form `.tippy-tooltip.x-theme`. Let's demonstrate this by
creating our own theme called `tomato`:
```css
.tippy-tooltip.tomato-theme {
background-color: tomato;
color: yellow;
}
```
To apply the theme, specify a `theme` prop without the `-theme` suffix:
```js
tippy('button', {
theme: 'tomato',
});
```
### Styling the arrow
There are two types of arrows:
- CSS arrows (using `border-width`)
- SVG arrows (using an `