Themes are collections of plugins with optional additional assets such as react components, css, and binary files e.g. images.
Themes are NPM packages.
A site can have multiple themes.
Themes can compose other themes.
User can override theme’s default options for plugins.
All theme assets are “ejectable” e.g. will be copied into the site’s source so you can modify the file directory.
You’ll type something like
gatsby eject gatsby-core-theme and then be
presented with a list of assets from which you could choose which assets to
eject. A common use case will be, install Gatsby blog theme, decide to override
the blog index page, eject it, tweak the react component.