-
-
Notifications
You must be signed in to change notification settings - Fork 1
CSS Variables
Customize your Swagger UI theme appearance using predefined CSS variables. All themes (except inline CSS and standalone themes) support these variables for fine-grained control over colors, spacing, and styling.
CSS variables allow you to:
- Customize colors without writing extensive CSS
- Override defaults while keeping base theme structure
- Maintain consistency across your application
- Quick changes - modify one variable, update everywhere
Add variables to your custom CSS file using the :root selector:
/* custom-theme.css */
:root {
/* Override specific variables */
--swagger-main-color: #ff6b35;
--body-background-color: #1a1a2e;
--topbar-background-color: #2c3e50;
}Tip
You don't need to define all variables - only override the ones you want to change!
| Placeholder | Description | Examples |
|---|---|---|
<color> |
Any valid CSS color |
#fff, red, rgba(136, 170, 212, 0.5), hsla(0, 0%, 100%, 0.14), transparent
|
<image/svg> |
Image or SVG data URL | url('data:image/svg+xml;charset=utf-8,<svg>...</svg>') |
--body-background-color: <color>; /* Main page background */
--swagger-main-color: <color>; /* Primary theme color */--loading-container-border-color: <color>;
--loading-container-border-top-color: <color>;--errors-wrapper-background-color: <color>;
--errors-wrapper-border-color: <color>;
--errors-wrapper-errors-color: <color>;--topbar-background-color: <color>;
--topbar-pinned-background-color: <color>; /* When pinned */
--topbar-pinned-shadow-color: <color>; /* Pin shadow */
--topbar-pin-icon-color: <color>; /* Pin button color */
--topbar-border-color: <color>; /* Bottom border */
--topbar-select-border-color: <color>;
--topbar-select-label-color: <color>;
--topbar-download-url-button-background-color: <color>;
--topbar-download-url-button-color: <color>;--swagger-info-link: <color>;
--swagger-info-link-hover: <color>;
--api-version-background-color: <color>;
--api-version-stamp-background-color: <color>;
--api-version-color: <color>;--auth-wrapper-background-color: <color>; /* Modal background */
--auth-wrapper-border-color: <color>; /* Modal border */
--auth-wrapper-box-shadow-color: <color>; /* Modal shadow */
--auth-container-border-bottom-color: <color>;
--auth-container-background-color: <color>;
--auth-container-errors-color: <color>;
--btn-authorize-background-color: <color>;
--btn-authorize-border-color: <color>;
--btn-authorize-font-color: <color>;
--btn-authorize-svg-fill-color: <color>;--opblock-tag-section-border-color: <color>;
--opblock-tag-section-expandcollapse-background-color: <color>;
--opblock-tag-background-color-hover: <color>;
--opblock-tag-pinned-background-color-hover: <color>;
--opblock-tag-border-bottom-color: <color>;
--opblock-border-color: <color>;
--opblock-shadow-color: <color>;
--opblock-tabheader-underline-color: <color>;
--opblock-summary-svg-icons-color: <color>;
--opblock-summary-border-bottom-color: <color>;
--opblock-section-header-background-color: <color>;
--opblock-section-header-shadow-color: <color>;
--opblock-summary-method-background-color: <color>;
--opblock-summary-method-color: <color>;
--opblock-summary-method-shadow-color: <color>;/* GET */
--opblock-get-background-color: <color>;
--opblock-get-method-color: <color>;
--opblock-get-border-color: <color>;
/* POST */
--opblock-post-background-color: <color>;
--opblock-post-method-color: <color>;
--opblock-post-border-color: <color>;
/* PUT */
--opblock-put-background-color: <color>;
--opblock-put-method-color: <color>;
--opblock-put-border-color: <color>;
/* DELETE */
--opblock-delete-background-color: <color>;
--opblock-delete-method-color: <color>;
--opblock-delete-border-color: <color>;
/* PATCH */
--opblock-patch-background-color: <color>;
--opblock-patch-method-color: <color>;
--opblock-patch-border-color: <color>;
/* HEAD */
--opblock-head-background-color: <color>;
--opblock-head-method-color: <color>;
--opblock-head-border-color: <color>;
/* OPTIONS */
--opblock-options-background-color: <color>;
--opblock-options-method-color: <color>;
--opblock-options-border-color: <color>;
/* Deprecated */
--opblock-deprecated-background-color: <color>;
--opblock-deprecated-method-color: <color>;
--opblock-deprecated-border-color: <color>;--swagger-tabs-divider-color: <color>;
--response-undocumented-color: <color>;
--response-control-media-type-color: <color>;
--opblock-pre-microlight-background-color: <color>;
--opblock-pre-microlight-color: <color>;--download-contents-background-color: <color>;
--download-contents-color: <color>;
--copy-to-clipboard-background-color: <color>;
--copy-to-clipboard-icon: url('<image/svg>') 50% no-repeat;--filter-operation-filter-input-border-color: <color>;
--filter-download-failed-color: <color>;
--filter-download-loading-color: <color>;
--table-headers-example-color: <color>;
--table-thead-border-bottom-color: <color>;--parameter-name-required-symbol-color: <color>;
--parameter-name-required-color: <color>;
--parameter-in-extension-color: <color>;
--parameter-deprecated-color: <color>;--button-background-color: <color>;
--button-border-color: <color>;
--button-shadow-color: <color>;
--button-shadow-hover-color: <color>;
/* Cancel Button */
--button-cancel-background-color: <color>;
--button-cancel-border-color: <color>;
--button-cancel-color: <color>;
/* Execute Button */
--button-execute-background-color: <color>;
--button-execute-border-color: <color>;
--button-execute-color: <color>;
/* Invalid State */
--button-invalid-background-color: <color>;
--button-invalid-border-color: <color>;--expand-operation-svg-arrow-color: <color>;
--expand-operation-svg-arrow-hover-color: <color>;/* Select Dropdown */
--select-background-icon: <color> url('<image/svg>') right 10px center no-repeat;
--select-border-color: <color>;
--select-shadow-color: <color>;
--select-disabled-border-color: <color>;
/* Input Fields */
--input-background-color: <color>;
--input-border-color: <color>;
--input-disabled-background-color: <color>;
--input-disabled-color: <color>;
/* Invalid State */
--input-invalid-background-color: <color>;
--input-invalid-border-color: <color>;
--input-invalid-color: <color>;
/* Textarea */
--textarea-background-color: <color>;
--textarea-border-focus-color: <color>;
--textarea-disabled-background-color: <color>;
--textarea-disabled-color: <color>;
--textarea-curl-background-color: <color>;
--textarea-curl-color: <color>;
/* Checkbox */
--checkbox-color: <color>;
--checkbox-label-item-background-color: <color>;
--checkbox-label-item-shadow-color: <color>;
--checkbox-label-item-icon: <color> url('<image/svg>') 50% no-repeat;--dialog-backdrop-color: <color>;
--dialog-background-color: <color>;
--dialog-border-color: <color>;
--dialog-shadow-color: <color>;
--dialog-close-button-icon-color: <color>;--model-deprecated-color: <color>;
--model-arrow-icon: url('<image/svg>') 50% no-repeat;
--model-hint-background-color: <color>;
--model-hint-color: <color>;
--model-property-color: <color>;
--model-property-primitive-color: <color>;
--model-property-required-symbol-color: <color>;
--model-property-description: <color>;
--model-property-extension: <color>;
--model-section-border-color: <color>;
--model-section-header-color: <color>;
--model-section-header-hover-background-color: <color>;
--model-section-little-header-color: <color>;
--model-container-background-color: <color>;
--model-container-hover-background-color: <color>;
--model-box-background-color: <color>;
--model-title-color: <color>;
--model-deprecated-warning-color: <color>;
--model-prop-type-color: <color>;
--model-prop-format-color: <color>;
--expand-model-svg-arrow-color: <color>;--rendered-markdown-pre-color: <color>;
--rendered-markdown-code-background-color: <color>;
--rendered-markdown-code-color: <color>;--scrollbar-thumb-color: <color>;
--scrollbar-thumb-hover-color: <color>;--scroll-to-top-button-background-color: <color>;
--scroll-to-top-button-hover-background-color: <color>;
--scroll-to-top-button-border-color: <color>;
--scroll-to-top-button-icon-color: <color>;
--scroll-to-top-button-shadow-color: <color>;:root {
/* Change primary colors */
--swagger-main-color: #e74c3c;
--body-background-color: #2c3e50;
}:root {
/* Core */
--body-background-color: #1a1a2e;
--swagger-main-color: #00d9ff;
/* Topbar */
--topbar-background-color: #16213e;
--topbar-pinned-background-color: rgba(22, 33, 62, 0.95);
--topbar-pinned-shadow-color: rgba(0, 217, 255, 0.3);
/* GET requests - blue */
--opblock-get-background-color: rgba(0, 217, 255, 0.1);
--opblock-get-border-color: #00d9ff;
--opblock-get-method-color: #00d9ff;
/* POST requests - green */
--opblock-post-background-color: rgba(0, 255, 127, 0.1);
--opblock-post-border-color: #00ff7f;
--opblock-post-method-color: #00ff7f;
/* DELETE requests - red */
--opblock-delete-background-color: rgba(255, 71, 87, 0.1);
--opblock-delete-border-color: #ff4757;
--opblock-delete-method-color: #ff4757;
/* Buttons */
--button-execute-background-color: #00d9ff;
--button-execute-border-color: #00b8d4;
--button-execute-color: #1a1a2e;
/* Back to top */
--scroll-to-top-button-background-color: #00d9ff;
--scroll-to-top-button-hover-background-color: #00b8d4;
--scroll-to-top-button-icon-color: #1a1a2e;
}:root {
/* Your company colors */
--swagger-main-color: #003d82; /* Company blue */
--body-background-color: #ffffff;
--topbar-background-color: #003d82;
/* Branded operations */
--opblock-get-background-color: #e3f2fd;
--opblock-get-border-color: #003d82;
--opblock-post-background-color: #e8f5e9;
--opblock-post-border-color: #2e7d32;
/* Branded buttons */
--button-execute-background-color: #003d82;
--button-execute-border-color: #002855;
}Tip
Check out the Predefined Themes CSS in the repository for a complete list of available CSS variables used in each theme. You can just copy one of them and change the values as needed.
Ensure you're not using a standalone theme:
Standalone themes and inline styles don't inherit CSS variables. Use a regular custom theme instead.
- Predefined Themes - See built-in themes
- Custom Themes - Create your own theme
- Advanced Options - Enable more features
🚀 Getting Started
✨ Features
📖 Migration Guides