Theme Structure
Folder layout
themes/my-theme/
├── theme.json ← required
└── style.css ← your stylesheet (any filename)theme.json
All fields except slug are optional. The slug must match the folder name and contain only a-z0-9-_.
{
"slug": "my-theme",
"name": "My Theme",
"version": "1.0.0",
"description": "A short description.",
"author": "You",
"preview_color": "#1b2838"
}preview_color is shown as a colour swatch in the Themes admin screen. Use it to give admins a quick visual of the theme's palette.
The stylesheet
Your CSS file can be named anything. The theme folder itself does not serve files publicly — the loader addon is responsible for reading the file and outputting it. This means the file is never accessible directly via HTTP, which is intentional.
Packaging for upload
Zip the theme folder so that theme.json is at the root of the zip (or inside a single subdirectory — WordCore scans recursively). Upload via Themes → Upload.