File style.css of a theme is the one that contains certain header information which tells ClassicPress that it is a theme, and provides information about the theme. ClassicPress only supports theme files in the wp-content/themes/my-theme directory.
There are only four fields which are technically required to be included in the theme header:
The Theme Name, Version, Requires PHP and Requires CP.
However there are several optional, but recommended fields. All theme data must be on its own line. For theme description, it must not have any newlines.
Header Fields
Theme Name: The name of your theme, which will be displayed in the ClassicPress Theme Directory and in the site’s dashboard. It should be unique.
Theme URI: The home page of the theme, which should be a unique URL, preferably on your own website. This must be unique to your theme. You cannot use a WordPress.org or ClassicPress.net URL here.
Description: A short description of the theme, as displayed in the ClassicPress Theme Directory and in the site’s dashboard. Keep this description to fewer than 140 characters.
This header is unnecessary if using a README.md file.
Version: The current version of the theme (e.g. 1.0 or 2.1.1); for ClassicPress themes the version should follow semantic versioning.
Requires at least: This WordPress header is used to set the lowest WordPress version that the theme will work on. This field is required for themes stored on the WordPress Repository. ClassicPress will use it to determine compatibility. If set, the version should not be higher than 6.2. (For ClassicPress version 1 this was 4.9.)
Requires PHP: The minimum required PHP version.
Requires CP: This ClassicPress header is used to set the lowest ClassicPress version that the theme will work on. If set, theme updates from the WordPress Repository are disabled. If the theme is listed in the ClassicPress Directory, users should install the ClassicPress Directory Integration plugin to receive updates. But if updates are provided elsewhere, you could use the Update URI header, to override this behavior.
Author: The name of the theme author. Multiple authors may be listed using commas.
Author URI: The author’s website or profile on another website, such as WordPress.org or ClassicPress Forum Profile.
License: The short name (slug) of the theme’s license (e.g. GPLv2). All themes submitted to the ClassicPress Theme Directory must be licensed under a GPL license or have a GPL compatible license.
License URI: A link to the full text of the license, such as http://www.gnu.org/licenses/gpl-2.0.html.
Update URI: This header could be used for themes hosted outside the ClassicPress Directory and WordPress Repository. It allows these themes to avoid accidentally being overwritten with an update of a theme of a similar name from the ClassicPress Directory or the WordPress Repository. The Update URI should be a full URL to (for example) the theme page (https://example.com/my-theme/).
Text Domain: The gettext text domain of the theme. This should be unique per theme and should be same as the one used in load_theme_textdomain().
Domain Path: The folder location of the translations; this is only useful if the translations are in a folder above the theme’s base path. For example, if .mo files are located in the languages folder then Domain Path will be /languages and must have the first slash.
Network: Whether the theme can only be activated network-wide. Can only be set to true, and should be left out when not needed.
This is an example of a properly formatted Theme Header:
/*
Theme Name: My Basics theme
Theme URI: https://example.com/themes/the-basics/
Description: Handle the basics with this theme.
Version: 1.10.3
Requires at least: 4.9.15
Requires PHP: 7.2
Requires CP: 1.3
Author: John Smith
Author URI: https://author.example.com/
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-basics-theme
Domain Path: /languages
*/