.github | ||
.husky | ||
affinity | ||
altofocus | ||
alves | ||
ames | ||
apostrophe-2 | ||
arbutus | ||
archeo | ||
attar | ||
balasana | ||
barnett | ||
barnsbury | ||
bennett | ||
blank-canvas | ||
blank-canvas-blocks | ||
block-canvas | ||
blockbase | ||
brompton | ||
button-2 | ||
calm-business | ||
calvin | ||
canard | ||
coutoire | ||
curator | ||
dalston | ||
dara | ||
dorna | ||
dyad-2 | ||
elegant-business | ||
exford | ||
farrow | ||
friendly-business | ||
gazette | ||
geologist | ||
geologist-blue | ||
geologist-cream | ||
geologist-slate | ||
geologist-yellow | ||
hari | ||
heiwa | ||
hever | ||
ibis | ||
illustratr | ||
independent-publisher-2 | ||
intergalactic-2 | ||
ixion | ||
jackson | ||
karuna | ||
kingsley | ||
leven | ||
libre-2 | ||
libretto | ||
livro | ||
lodestar | ||
marl | ||
mayland | ||
mayland-blocks | ||
maywood | ||
meraki | ||
modern-business | ||
morden | ||
pendant | ||
penscratch-2 | ||
photos | ||
pique | ||
professional-business | ||
publication | ||
quadrat | ||
quadrat-black | ||
quadrat-green | ||
quadrat-red | ||
quadrat-white | ||
quadrat-yellow | ||
radcliffe-2 | ||
rebalance | ||
redhill | ||
remote | ||
rivington | ||
rockfield | ||
russell | ||
scratchpad | ||
seedlet | ||
seedlet-blocks | ||
shawburn | ||
shoreditch | ||
skatepark | ||
sketch | ||
sophisticated-business | ||
spearhead | ||
stewart | ||
stow | ||
stratford | ||
textbook | ||
toujours | ||
twentytwentytwo-blue | ||
twentytwentytwo-mint | ||
twentytwentytwo-pink | ||
twentytwentytwo-red | ||
twentytwentytwo-swiss | ||
varia | ||
variations | ||
videomaker | ||
videomaker-white | ||
winkel | ||
zoologist | ||
.gitignore | ||
.sandbox-ignore | ||
.stylelintrc.json | ||
.wp-env.json | ||
composer.json | ||
composer.lock | ||
create-a-theme-checklist.js | ||
deploy-dotorg.sh | ||
dotorg-exclude.txt | ||
LICENSE | ||
package-dotorg.sh | ||
package-lock.json | ||
package.json | ||
phpcs.xml.dist | ||
pre-commit-hook.js | ||
README.md | ||
theme-batch-utils.sh | ||
theme-utils.mjs |
Automattic Themes
The development repository for themes maintained by the Automattic Theme Team.
What's Here
We're committed to imagining and creating the future of themes. Our latest themes are block themes — they depend on the latest features available in the Gutenberg plugin. Read about our latest themes built to support full-site editing here.
Contributing
Issues
Before submitting your issue, please search for an existing or related ticket here.
Here are some tips to consider for writing a useful report:
- Share steps for replicating the issue.
- Add screenshots and videos where helpful.
- Share your environment details, including what version of WordPress and Gutenberg you're using
Code
Patches and ideas in the form of code are always welcome! Here are a couple tips for crafting a great pull request:
- Include the purpose of your PR. Be explicit about the idea or issue your PR solves.
- Reference any existing issues that relate to your PR. This allows everyone to easily see all related discussions.
By contributing code to our free themes, you grant its use under the GNU General Public License v2 (or later).
Testing pull requests
Using GitHub
- Clone repository locally
git clone git@github.com:Automattic/themes.git
- Identify the branch of the pull request, e.g.
update/#1889
- Check out featured branch of pull request, e.g.
git checkout update/#1889
- Symlink or copy affected theme OR zip affected theme and import into WordPress site
Manually download
- Identify and visit the branch of the pull request.
- Change the
/tree/
part of the branch's URL toarchive
, and add a.zip
to the end to download a zip of the branch. e.g.https://github.com/Automattic/themes/tree/update/%231889
would becomehttps://github.com/Automattic/themes/archive/update/%231889.zip
- Unzip the zipped featured branch
- Zip affected theme and import into WordPress site
Note: In case the affected theme already exists on the WordPress site, it needs to be deleted before the theme zip file gets uploaded.
Coding Standards
Themes code should adhere to the WordPress coding standards. This repo contains a pre-commit hook which enables you to detect and fix code that doesn't follow the standards.
To set this up follow these instructions:
- Run
npm i
in the root of the repo. - Run
composer install
Now when you commit changes to a file PHPCBF will attempt to fix any issues with the file.
This will also install the WordPress-standard Prettier Configuration which can (optionally) be used in your IDE or command-line to format your code via (Prettier)[https://prettier.io/docs/en/editors.html].
Packaging for WordPress.org Themes Showcase
The code in this repository mirrors the code needed for the theme to function correctly on WordPress.com. To prepare a theme.zip that passes the WordPress.org theme review automated test, do the following:
- From the top-level directory, run
./package-dotorg.sh [theme-slug]
- View the generated zip in the respective theme's sub-directory
Note that this script rebuilds the theme to strip it of .com-specific functionality, and discards any changes via git after doing so. Make sure you have committed any working changes before running this script.
Sandbox Tools
If you use a sandbox to test or develop your themes you can use a couple of utilities to operate on that sandbox.
-
From the top-level directory, run
node ./theme-utils.mjs clean-sandbox
to bring the public themes GIT repository to a clean state. (This will only matter if your sandbox uses GIT such as how WordPress.com is currently managed.) Alternately you can trigger that as an npm script:npm run sandbox:clean
.npm run sandbox:clean-all
will clean the entire sandbox. -
From the top-level directory, run
node ./theme-utils.mjs push-to-sandbox
to push your entire working copy to the public themes folder of your sandbox. Alternately you can trigger this as an npm script:npm run deploy:push:all
This command will rsync your local copy with the exception of anything in the.sandbox-ignore
file. You should clean your sandbox before pushing any changes to it.node ./theme-utils.mjs push-changes-to-sandbox
ornpm run deploy:push:changes
alternatively will push only files that have changed since the last deployment.