Uploaded image for project: 'Red Hat Internal Developer Platform'
  1. Red Hat Internal Developer Platform
  2. RHIDP-3825

Provide the ability to load a custom Backstage theme from a dynamic plugin

Prepare for Y ReleasePrepare for Z ReleaseRemove QuarterXMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False
    • 0% To Do, 0% In Progress, 100% Done

      Feature Overview (aka. Goal Summary)

      Provide a way for a dynamic plugin to export a theme provider function.

      Provide a method to configure the frontend to supply a theme provider function exported from a dynamic plugin to be picked up by the createApp API.

      Expose the configuration items needed to display the theme properly to the user such as:

      id - the internal ID of the theme
      title - the user visible name of the theme
      icon - the icon that should be displayed next to the theme name
      variant - the variation of the theme either "light" or "dark"
      importName - the name of the exported theme provider function

      So for example a theme configuration could look something like:

      dynamicPlugins: 
        frontend: 
          internal.backstage-plugin-test-backstage-theme: 
            appIcons: 
              - name: lightIcon
                importName: LightIcon
              - name: darkIcon
                importName: DarkIcon
            themes: 
              - id: light  # Using 'light' overrides the app-provided light theme
                title: Test Light Theme
                variant: light
                icon: lightIcon
                importName: lightThemeProvider
              - id: dark  # Using 'dark' overrides the app-provided dark theme
                title: Test Dark Theme
                variant: dark
                icon: darkIcon
                importName: darkThemeProvider
      

              stlewis_2 Stan Lewis
              stlewis_2 Stan Lewis
              RHIDP - Dynamic Plugins
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: