Styles
Customize the tour appearance with CSS custom properties (variables).
Visual appearance is fully customizable through CSS custom properties defined on the .rb root element. Override any variable in your own stylesheet to change colors, sizes, spacing, and animations — no need to touch the library source or add extra build steps.
Container
| Variable | Default |
|---|---|
--rb-container-z-index | 10 |
Tour overlay
| Variable | Default |
|---|---|
--rb-tour-overlay-background | rgba(0, 0, 0, 0.45) |
--rb-tour-overlay-z-index | 1000 |
Tour tooltip
| Variable | Default |
|---|---|
--rb-tour-tooltip-background | rgb(255, 255, 255) |
--rb-tour-tooltip-border | 1px solid rgba(17, 17, 17, 0.06) |
--rb-tour-tooltip-border-radius | 14px |
--rb-tour-tooltip-shadow | 0 4px 16px rgba(0, 0, 0, 0.08) |
--rb-tour-tooltip-z-index | 1010 |
--rb-tour-tooltip-max-width | calc(100vw - 32px) |
--rb-tour-tooltip-min-width-xs | 240px |
--rb-tour-tooltip-min-width-sm | 280px |
--rb-tour-tooltip-min-width-md | 340px |
--rb-tour-tooltip-min-width-lg | 400px |
--rb-tour-tooltip-min-width-xl | 460px |
--rb-tour-tooltip-min-width-xxl | 520px |
--rb-tour-tooltip-padding-xs | 10px |
--rb-tour-tooltip-padding-sm | 12px |
--rb-tour-tooltip-padding-md | 16px |
--rb-tour-tooltip-padding-lg | 20px |
--rb-tour-tooltip-padding-xl | 24px |
--rb-tour-tooltip-padding-xxl | 28px |
--rb-tour-tooltip-gap-xs | 10px |
--rb-tour-tooltip-gap-sm | 12px |
--rb-tour-tooltip-gap-md | 16px |
--rb-tour-tooltip-gap-lg | 20px |
--rb-tour-tooltip-gap-xl | 24px |
--rb-tour-tooltip-gap-xxl | 28px |
--rb-tour-tooltip-header-gap | 12px |
--rb-tour-tooltip-close-offset-top | -2px |
--rb-tour-tooltip-close-offset-right | -4px |
Arrow
| Variable | Default |
|---|---|
--rb-tour-tooltip-arrow-size | 10px |
--rb-tour-tooltip-arrow-inset | 16px |
--rb-tour-tooltip-arrow-offset | 50% |
Title
| Variable | Default |
|---|---|
--rb-tour-tooltip-title-color | rgba(17, 17, 17, 0.96) |
--rb-tour-tooltip-title-font-weight | 600 |
--rb-tour-tooltip-title-line-height | 1.35 |
--rb-tour-tooltip-title-font-size-xs | 14px |
--rb-tour-tooltip-title-font-size-sm | 15px |
--rb-tour-tooltip-title-font-size-md | 16px |
--rb-tour-tooltip-title-font-size-lg | 18px |
--rb-tour-tooltip-title-font-size-xl | 20px |
--rb-tour-tooltip-title-font-size-xxl | 22px |
Description
| Variable | Default |
|---|---|
--rb-tour-tooltip-description-color | rgba(17, 17, 17, 0.62) |
--rb-tour-tooltip-description-line-height | 1.5 |
--rb-tour-tooltip-description-font-size-xs | 12px |
--rb-tour-tooltip-description-font-size-sm | 13px |
--rb-tour-tooltip-description-font-size-md | 14px |
--rb-tour-tooltip-description-font-size-lg | 15px |
--rb-tour-tooltip-description-font-size-xl | 16px |
--rb-tour-tooltip-description-font-size-xxl | 17px |
Animation
| Variable | Default |
|---|---|
--rb-tour-tooltip-animation-duration | 200ms |
--rb-tour-tooltip-animation-easing | ease-out |
--rb-tour-tooltip-glide-duration | 300ms |
--rb-tour-tooltip-glide-easing | cubic-bezier(0.4, 0, 0.2, 1) |
Tour progress
| Variable | Default |
|---|---|
--rb-tour-progress-dot-size | 6px |
--rb-tour-progress-dot-gap | 6px |
--rb-tour-progress-dot-border-radius | 50% |
--rb-tour-progress-dot-color | rgba(17, 17, 17, 0.18) |
--rb-tour-progress-dot-color-active | rgba(17, 17, 17, 0.9) |
--rb-tour-progress-text-font-size | 12px |
--rb-tour-progress-text-color | rgba(17, 17, 17, 0.55) |
--rb-tour-progress-line-height | 6px |
--rb-tour-progress-line-border-radius | 4px |
--rb-tour-progress-line-track-color | rgba(17, 17, 17, 0.08) |
--rb-tour-progress-line-progress-color | rgba(17, 17, 17, 0.9) |
Tour buttons
| Variable | Default |
|---|---|
--rb-tour-buttons-gap | 8px |
--rb-tour-buttons-padding-top | 6px |
Tour skip
| Variable | Default |
|---|---|
--rb-tour-skip-gap | 8px |
--rb-tour-skip-input-size | 15px |
--rb-tour-skip-input-background | rgb(255, 255, 255) |
--rb-tour-skip-input-border | 1px solid rgba(17, 17, 17, 0.3) |
--rb-tour-skip-input-border-radius | 4px |
--rb-tour-skip-input-check-color | rgb(255, 255, 255) |
--rb-tour-skip-input-accent | rgba(17, 17, 17, 0.9) |
--rb-tour-skip-label-font-size | 13px |
--rb-tour-skip-label-line-height | 1.4 |
--rb-tour-skip-label-color | rgba(17, 17, 17, 0.62) |
--rb-tour-skip-label-color-hover | rgba(17, 17, 17, 0.9) |
Button (shared)
Shared variables for button sizing and appearance across all button types.
| Variable | Default |
|---|---|
--rb-button-size-xs | 30px |
--rb-button-size-sm | 34px |
--rb-button-size-md | 38px |
--rb-button-size-lg | 42px |
--rb-button-size-xl | 46px |
--rb-button-size-xxl | 50px |
--rb-button-font-size-xs | 11px |
--rb-button-font-size-sm | 12px |
--rb-button-font-size-md | 13px |
--rb-button-font-size-lg | 14px |
--rb-button-font-size-xl | 15px |
--rb-button-font-size-xxl | 16px |
--rb-button-font-weight | 500 |
--rb-button-letter-spacing | 0.01em |
--rb-button-padding-xs | 0px 8px |
--rb-button-padding-sm | 0px 10px |
--rb-button-padding-md | 0px 14px |
--rb-button-padding-lg | 0px 18px |
--rb-button-padding-xl | 0px 22px |
--rb-button-padding-xxl | 0px 26px |
--rb-button-gap-xs | 4px |
--rb-button-gap-sm | 6px |
--rb-button-gap-md | 8px |
--rb-button-gap-lg | 10px |
--rb-button-gap-xl | 12px |
--rb-button-gap-xxl | 14px |
--rb-button-color | rgb(255, 255, 255) |
--rb-button-background | rgb(17, 17, 17) |
--rb-button-background-hover | rgb(38, 38, 38) |
--rb-button-border | 1px solid transparent |
--rb-button-border-radius | 8px |
--rb-button-transition | all 0.18s ease |
--rb-button-focus-outline | 2px solid rgba(17, 17, 17, 0.35) |
--rb-button-focus-outline-offset | 2px |
Outlined variant
| Variable | Default |
|---|---|
--rb-button-outlined-color | rgb(17, 17, 17) |
--rb-button-outlined-background | transparent |
--rb-button-outlined-background-hover | rgba(17, 17, 17, 0.06) |
--rb-button-outlined-border | 1px solid rgba(17, 17, 17, 0.16) |
Ghost variant
| Variable | Default |
|---|---|
--rb-button-ghost-color | rgba(17, 17, 17, 0.72) |
--rb-button-ghost-background | transparent |
--rb-button-ghost-background-hover | rgba(17, 17, 17, 0.06) |
--rb-button-ghost-border | 1px solid transparent |
Text variant
| Variable | Default |
|---|---|
--rb-button-text-color | rgba(17, 17, 17, 0.72) |
--rb-button-text-color-hover | rgb(17, 17, 17) |
Close button
| Variable | Default |
|---|---|
--rb-close-button-size-xs | 22px |
--rb-close-button-size-sm | 26px |
--rb-close-button-size-md | 28px |
--rb-close-button-size-lg | 32px |
--rb-close-button-size-xl | 36px |
--rb-close-button-size-xxl | 38px |
--rb-close-button-icon-size-xs | 12px |
--rb-close-button-icon-size-sm | 14px |
--rb-close-button-icon-size-md | 16px |
--rb-close-button-icon-size-lg | 18px |
--rb-close-button-icon-size-xl | 20px |
--rb-close-button-icon-size-xxl | 22px |
--rb-close-button-color | rgba(17, 17, 17, 0.6) |
--rb-close-button-color-hover | rgb(17, 17, 17) |
--rb-close-button-background | transparent |
--rb-close-button-background-hover | rgba(17, 17, 17, 0.06) |
--rb-close-button-background-pressed | rgba(17, 17, 17, 0.1) |
--rb-close-button-border-radius | 8px |
--rb-close-button-transition | all 0.18s ease |
--rb-close-button-z-index | 20 |
Image
| Variable | Default |
|---|---|
--rb-image-width | 100% |
--rb-image-height | auto |
--rb-image-border-radius | 10px |
--rb-image-object-fit | cover |
--rb-image-object-position | center |
Icons
| Variable | Default |
|---|---|
--rb-icon-size-xs | 22px |
--rb-icon-size-sm | 24px |
--rb-icon-size-md | 28px |
--rb-icon-size-lg | 32px |
--rb-icon-size-xl | 36px |
--rb-icon-size-xxl | 40px |
--rb-icon-color | rgb(255, 255, 255) |
Full reference
All CSS custom properties with their default values:
.rb {
/* Container */
--rb-container-z-index: 10;
/* Button (shared) */
--rb-button-size-xs: 30px;
--rb-button-size-sm: 34px;
--rb-button-size-md: 38px;
--rb-button-size-lg: 42px;
--rb-button-size-xl: 46px;
--rb-button-size-xxl: 50px;
--rb-button-font-size-xs: 11px;
--rb-button-font-size-sm: 12px;
--rb-button-font-size-md: 13px;
--rb-button-font-size-lg: 14px;
--rb-button-font-size-xl: 15px;
--rb-button-font-size-xxl: 16px;
--rb-button-font-weight: 500;
--rb-button-letter-spacing: 0.01em;
--rb-button-padding-xs: 0px 8px;
--rb-button-padding-sm: 0px 10px;
--rb-button-padding-md: 0px 14px;
--rb-button-padding-lg: 0px 18px;
--rb-button-padding-xl: 0px 22px;
--rb-button-padding-xxl: 0px 26px;
--rb-button-gap-xs: 4px;
--rb-button-gap-sm: 6px;
--rb-button-gap-md: 8px;
--rb-button-gap-lg: 10px;
--rb-button-gap-xl: 12px;
--rb-button-gap-xxl: 14px;
--rb-button-color: rgb(255, 255, 255);
--rb-button-background: rgb(17, 17, 17);
--rb-button-background-hover: rgb(38, 38, 38);
--rb-button-border: 1px solid transparent;
--rb-button-border-radius: 8px;
--rb-button-transition: all 0.18s ease;
--rb-button-focus-outline: 2px solid rgba(17, 17, 17, 0.35);
--rb-button-focus-outline-offset: 2px;
--rb-button-outlined-color: rgb(17, 17, 17);
--rb-button-outlined-background: transparent;
--rb-button-outlined-background-hover: rgba(17, 17, 17, 0.06);
--rb-button-outlined-border: 1px solid rgba(17, 17, 17, 0.16);
--rb-button-ghost-color: rgba(17, 17, 17, 0.72);
--rb-button-ghost-background: transparent;
--rb-button-ghost-background-hover: rgba(17, 17, 17, 0.06);
--rb-button-ghost-border: 1px solid transparent;
--rb-button-text-color: rgba(17, 17, 17, 0.72);
--rb-button-text-color-hover: rgb(17, 17, 17);
/* Close button */
--rb-close-button-size-xs: 22px;
--rb-close-button-size-sm: 26px;
--rb-close-button-size-md: 28px;
--rb-close-button-size-lg: 32px;
--rb-close-button-size-xl: 36px;
--rb-close-button-size-xxl: 38px;
--rb-close-button-icon-size-xs: 12px;
--rb-close-button-icon-size-sm: 14px;
--rb-close-button-icon-size-md: 16px;
--rb-close-button-icon-size-lg: 18px;
--rb-close-button-icon-size-xl: 20px;
--rb-close-button-icon-size-xxl: 22px;
--rb-close-button-color: rgba(17, 17, 17, 0.6);
--rb-close-button-color-hover: rgb(17, 17, 17);
--rb-close-button-background: transparent;
--rb-close-button-background-hover: rgba(17, 17, 17, 0.06);
--rb-close-button-background-pressed: rgba(17, 17, 17, 0.1);
--rb-close-button-border-radius: 8px;
--rb-close-button-transition: all 0.18s ease;
--rb-close-button-z-index: 20;
/* Icons */
--rb-icon-size-xs: 22px;
--rb-icon-size-sm: 24px;
--rb-icon-size-md: 28px;
--rb-icon-size-lg: 32px;
--rb-icon-size-xl: 36px;
--rb-icon-size-xxl: 40px;
--rb-icon-color: rgb(255, 255, 255);
/* Tour overlay */
--rb-tour-overlay-background: rgba(0, 0, 0, 0.45);
--rb-tour-overlay-z-index: 1000;
/* Tour progress */
--rb-tour-progress-dot-size: 6px;
--rb-tour-progress-dot-gap: 6px;
--rb-tour-progress-dot-border-radius: 50%;
--rb-tour-progress-dot-color: rgba(17, 17, 17, 0.18);
--rb-tour-progress-dot-color-active: rgba(17, 17, 17, 0.9);
--rb-tour-progress-text-font-size: 12px;
--rb-tour-progress-text-color: rgba(17, 17, 17, 0.55);
--rb-tour-progress-line-height: 6px;
--rb-tour-progress-line-border-radius: 4px;
--rb-tour-progress-line-track-color: rgba(17, 17, 17, 0.08);
--rb-tour-progress-line-progress-color: rgba(17, 17, 17, 0.9);
/* Tour buttons */
--rb-tour-buttons-gap: 8px;
--rb-tour-buttons-padding-top: 6px;
/* Tour skip */
--rb-tour-skip-gap: 8px;
--rb-tour-skip-input-size: 15px;
--rb-tour-skip-input-background: rgb(255, 255, 255);
--rb-tour-skip-input-border: 1px solid rgba(17, 17, 17, 0.3);
--rb-tour-skip-input-border-radius: 4px;
--rb-tour-skip-input-check-color: rgb(255, 255, 255);
--rb-tour-skip-input-accent: rgba(17, 17, 17, 0.9);
--rb-tour-skip-label-font-size: 13px;
--rb-tour-skip-label-line-height: 1.4;
--rb-tour-skip-label-color: rgba(17, 17, 17, 0.62);
--rb-tour-skip-label-color-hover: rgba(17, 17, 17, 0.9);
/* Tour tooltip */
--rb-tour-tooltip-arrow-size: 10px;
--rb-tour-tooltip-arrow-inset: 16px;
--rb-tour-tooltip-arrow-offset: 50%;
--rb-tour-tooltip-gap-xs: 10px;
--rb-tour-tooltip-gap-sm: 12px;
--rb-tour-tooltip-gap-md: 16px;
--rb-tour-tooltip-gap-lg: 20px;
--rb-tour-tooltip-gap-xl: 24px;
--rb-tour-tooltip-gap-xxl: 28px;
--rb-tour-tooltip-header-gap: 12px;
--rb-tour-tooltip-min-width-xs: 240px;
--rb-tour-tooltip-min-width-sm: 280px;
--rb-tour-tooltip-min-width-md: 340px;
--rb-tour-tooltip-min-width-lg: 400px;
--rb-tour-tooltip-min-width-xl: 460px;
--rb-tour-tooltip-min-width-xxl: 520px;
--rb-tour-tooltip-max-width: calc(100vw - 32px);
--rb-tour-tooltip-padding-xs: 10px;
--rb-tour-tooltip-padding-sm: 12px;
--rb-tour-tooltip-padding-md: 16px;
--rb-tour-tooltip-padding-lg: 20px;
--rb-tour-tooltip-padding-xl: 24px;
--rb-tour-tooltip-padding-xxl: 28px;
--rb-tour-tooltip-close-offset-top: -2px;
--rb-tour-tooltip-close-offset-right: -4px;
--rb-tour-tooltip-background: rgb(255, 255, 255);
--rb-tour-tooltip-border: 1px solid rgba(17, 17, 17, 0.06);
--rb-tour-tooltip-border-radius: 14px;
--rb-tour-tooltip-title-font-size-xs: 14px;
--rb-tour-tooltip-title-font-size-sm: 15px;
--rb-tour-tooltip-title-font-size-md: 16px;
--rb-tour-tooltip-title-font-size-lg: 18px;
--rb-tour-tooltip-title-font-size-xl: 20px;
--rb-tour-tooltip-title-font-size-xxl: 22px;
--rb-tour-tooltip-title-font-weight: 600;
--rb-tour-tooltip-title-line-height: 1.35;
--rb-tour-tooltip-title-color: rgba(17, 17, 17, 0.96);
--rb-tour-tooltip-description-font-size-xs: 12px;
--rb-tour-tooltip-description-font-size-sm: 13px;
--rb-tour-tooltip-description-font-size-md: 14px;
--rb-tour-tooltip-description-font-size-lg: 15px;
--rb-tour-tooltip-description-font-size-xl: 16px;
--rb-tour-tooltip-description-font-size-xxl: 17px;
--rb-tour-tooltip-description-line-height: 1.5;
--rb-tour-tooltip-description-color: rgba(17, 17, 17, 0.62);
--rb-tour-tooltip-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
--rb-tour-tooltip-z-index: 1010;
--rb-tour-tooltip-animation-duration: 200ms;
--rb-tour-tooltip-animation-easing: ease-out;
--rb-tour-tooltip-glide-duration: 300ms;
--rb-tour-tooltip-glide-easing: cubic-bezier(0.4, 0, 0.2, 1);
/* Image */
--rb-image-width: 100%;
--rb-image-height: auto;
--rb-image-border-radius: 10px;
--rb-image-object-fit: cover;
--rb-image-object-position: center;
}