• Skip to main content
  • Skip to search
  • Skip to select language
MDN Web Docs
  • References
    • Overview / Web Technology

      Web technology reference for developers

    • HTML

      Structure of content on the web

    • CSS

      Code used to describe document style

    • JavaScript

      General-purpose scripting language

    • HTTP

      Protocol for transmitting web resources

    • Web APIs

      Interfaces for building web applications

    • Web Extensions

      Developing extensions for web browsers

    • Web Technology

      Web technology reference for developers

  • Guides
    • Overview / MDN Learning Area

      Learn web development

    • MDN Learning Area

      Learn web development

    • HTML

      Learn to structure web content with HTML

    • CSS

      Learn to style content using CSS

    • JavaScript

      Learn to run scripts in the browser

    • Accessibility

      Learn to make the web accessible to all

  • MDN Plus
    • Overview

      A customized MDN experience

    • Updates

      All browser compatibility updates at a glance

    • Documentation

      Learn how to use MDN Plus

    • FAQ

      Frequently asked questions about MDN Plus

  • Already a subscriber?
  • Get MDN Plus
  1. Mozilla
  2. Add-ons
  3. Browser Extensions
  4. JavaScript APIs
  5. theme
  6. Theme

In this article

  • Type
  • Browser compatibility
  1. Browser extensions
  2. Getting started
    1. What are extensions?
    2. Your first extension
    3. Your second extension
    4. Anatomy of an extension
    5. Example extensions
    6. What next?
  3. Concepts
    1. Using the JavaScript APIs
    2. Content scripts
    3. Background scripts
    4. Match patterns
    5. Working with files
    6. Internationalization
    7. Content Security Policy
    8. Native messaging
    9. Differences between API implementations
    10. Chrome incompatibilities
  4. User interface
    1. User Interface
    2. Toolbar button
    3. Address bar button
    4. Sidebars
    5. Context menu items
    6. Options page
    7. Extension pages
    8. Notifications
    9. Address bar suggestions
    10. Developer tools panels
  5. How to
    1. Intercept HTTP requests
    2. Modify a web page
    3. Insert external content
    4. Share objects with page scripts
    5. Add a button to the toolbar
    6. Implement a settings page
    7. Work with the Tabs API
    8. Work with the Bookmarks API
    9. Work with the Cookies API
    10. Work with contextual identities
    11. Interact with the clipboard
    12. Extending the developer tools
    13. Build a cross-browser extension
  6. Firefox differentiators
  7. JavaScript APIs
    1. Browser support for JavaScript APIs
    2. action
    3. alarms
    4. bookmarks
    5. browserAction
    6. browserSettings
    7. browsingData
    8. captivePortal
    9. clipboard
    10. commands
    11. contentScripts
    12. contextualIdentities
    13. cookies
    14. devtools
    15. dns
    16. downloads
    17. events
    18. extension
    19. extensionTypes
    20. find
    21. history
    22. i18n
    23. identity
    24. idle
    25. management
    26. menus
    27. notifications
    28. omnibox
    29. pageAction
    30. permissions
    31. pkcs11
    32. privacy
    33. proxy
    34. runtime
    35. scripting
    36. search
    37. sessions
    38. sidebarAction
    39. storage
    40. tabs
    41. theme
      1. Methods
        1. getCurrent()
        2. reset()
        3. update()
      2. Types
        1. Theme
      3. Events
        1. onUpdated
    42. topSites
    43. types
    44. userScripts
    45. webNavigation
    46. webRequest
    47. windows
  8. Manifest keys
    1. Introduction
    1. action
    2. author
    3. background
    4. browser_action
    5. browser_specific_settings
    6. chrome_settings_overrides
    7. chrome_url_overrides
    8. commands
    9. content_scripts
    10. content_security_policy
    11. default_locale
    12. description
    13. developer
    14. devtools_page
    15. dictionaries
    16. externally_connectable
    17. homepage_url
    18. host_permissions
    19. icons
    20. incognito
    21. manifest_version
    22. name
    23. offline_enabled
    24. omnibox
    25. optional_permissions
    26. options_page
    27. options_ui
    28. page_action
    29. permissions
    30. protocol_handlers
    31. short_name
    32. sidebar_action
    33. storage
    34. theme
    35. theme_experiment
    36. user_scripts
    37. version
    38. version_name
    39. web_accessible_resources
  9. Extension Workshop
    1. Develop
    2. Publish
    3. Manage
    4. Enterprise
  10. Contact us
  11. Channels
    1. Add-ons blog
    2. Add-ons forum
    3. Add-ons chat

In this article

  • Type
  • Browser compatibility

Theme

A Theme object represents the specification of a theme.

Type

A JSON object that takes the same properties as the "theme" manifest key.

Browser compatibility

BCD tables only load in the browser

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.
Want to get more involved? Learn how to contribute.

This page was last modified on Sep 9, 2022 by MDN contributors.

MDN logo

Your blueprint for a better internet.

  • MDN on Twitter
  • MDN on GitHub

MDN

  • About
  • Hacks Blog
  • Careers

Support

  • Product help
  • Report an issue

Our communities

  • MDN Community
  • MDN Forum
  • MDN Chat

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
Mozilla logo
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2023 by individual mozilla.org contributors. Content available under a Creative Commons license.