Garden 9 is now available.
The website has been updated to the latest major version. View previous versions
Skip to main content
Design
Components
Patterns
    • Introduction
      • Overview
    • Foundations
      • Bedrock CSS
      • Design tokens
      • Containers
      • Theming
        • Color scheme provider
        • Palette
        • Theme object
        • Theme provider
        • Utilities
      • Versions
    • Components
      • Accordion
      • Anchor
      • Avatar
      • Breadcrumbs
      • Buttons
      • Chrome
      • Code block
      • Color picker
      • Color swatch
      • Date picker
      • Draggable
      • Drawer
      • Forms
      • Grid
      • Loaders
      • Menu
      • Modal
      • Notification
      • Pagination
      • Pane
      • Sheet
      • Status indicator
      • Stepper
      • Table
      • Tabs
      • Tags
      • Tiles
      • Timeline
      • Tooltip
      • Tooltip dialog
      • Typography
      • Well
    Table of Contents
    • How to use it
      • Default
      • Branding
      • Extension
      • Nesting
      • Targeting
    • Configuration
    • API
      • ThemeProvider

    Theme provider

    The Theme provider is a wrapper that provides theming values to all of the components it contains.


    Table of Contents
    • How to use it
      • Default
      • Branding
      • Extension
      • Nesting
      • Targeting
    • Configuration
    • API
      • ThemeProvider

    Used for this
    • As the root component of the Garden DOM, where it provides global context for color mode and RTL layout
    • As a nested wrapper for a subset of components that require themed styling

    How to use it

    Default

    The typical usage of a theme provided to styled components. Use the getColor utility with semantic color variables to ensure custom components work well in dark mode.

    Toggle dark mode
    Set primary hue
    Toggle RTL
    Open in CodeSandbox
    Copy code
    View code

    Branding

    You can override the default Theme provider for a branded component experience. In this example, Garden’s primaryHue is replaced and corners are set to square.

    Toggle dark mode
    Set primary hue
    Toggle RTL
    Open in CodeSandbox
    Copy code
    View code

    Extension

    The default theme can be extended with custom values. In this example, the palette adds a new deep orange hue which replaces Garden’s default dangerHue.

    Toggle dark mode
    Set primary hue
    Toggle RTL
    Open in CodeSandbox
    Copy code
    View code

    Nesting

    A nested Theme provider can access and modify parent theming values. In this example, nesting is used to override the size, color, and shape of the default styled component.

    Toggle dark mode
    Set primary hue
    Toggle RTL
    Open in CodeSandbox
    Copy code
    View code

    Targeting

    The theme’s components object can override styling for a targeted component type. In this example, Garden Tabs are restyled to appear below associated panel content.

    Toggle dark mode
    Set primary hue
    Toggle RTL
    Open in CodeSandbox
    Copy code
    View code

    Configuration

    • Name9.5.3•View source•View on npm
    • Installnpm install @zendeskgarden/react-theming
    • Depsnpm install react react-dom styled-components
    • Importimport { ThemeProvider } from '@zendeskgarden/react-theming'

    API

    ThemeProvider

    Prop nameTypeDefaultDescription
    theme
    IGardenTheme | ((theme: IGardenTheme) => IGardenTheme)

    Provides values for component styling. See styled-components ThemeProvider for details.

    Garden is the design system by Zendesk.
    BlogGitHubVersions
    © Zendesk 2025