If you have questions about implementation details, help or support, then please use our dedicated community forum at GitHub Discussions PLEASE NOTE: If you choose to instead open an issue for your question, your issue will be immediately closed and redirected to the forum.
If you have found what you think is a bug, please file an issue. PLEASE NOTE: Issues that are identified as implementation questions or non-issues will be immediately closed and redirected to GitHub Discussions
If you are here to suggest a feature, feel free to start a discussion. From there, we will discuss use-cases for the feature and then finally discuss how it could be implemented.
The fastest way to work on the repository is by using Stackblitz's Codeflow
- Click the
Open in Codeflow
button on this repo's README (or go directly to this link) - Run the build using
pnpm run watch
- Implement your changes and tests to files in the
src/
directory and corresponding test files - Use the example repos to integration test changes
- Document your changes in the appropriate doc page
- Git stage your required changes and commit (see below commit guidelines)
- Submit PR for review
If you prefer to not use Stackblitz for faster development, you can still do this the old fashioned way.
- Fork this repository
- Install pnpm
- Install dependencies by running
pnpm install
- Run the build using
pnpm run watch
- Implement your changes and tests to files in the
src/
directory and corresponding test files - Use the example repos to integration test changes
- Document your changes in the appropriate doc page
- Git stage your required changes and commit (see below commit guidelines)
- Submit PR for review
All examples are located in the examples
directory of this repo.
- Run
pnpm run watch
in the root oftailwindcss-themer
to build the plugin and watch for any changes - Replace the
"tailwindcss-themer": "latest"
line in the example project'spackage.json
with"tailwindcss-themer": "file:../../"
- Run
npm install
in the repo's root directory (The examples usenpm
as a package manager, notpnpm
) - Run
npm run start
in the selected example's directory - After making a change to the plugin, restart the example's server (i.e. rerun
npm run start
) so that it picks up the changes
For e2e testing we use Playwright.
- Run
pnpm install
to install dependencies - Run
pnpm run build
to build the plugin - Change directories to the
e2e
directory - Run
pnpm install
to install the playwright dependencies and browsers- This step should handle setting up playwright but if this isn't working, their documentation for more help on setting up your environment
- If you use WSL, you might find this comment to be helpful
- Run
pnpm run e2e
to run the playwright tests
tailwindcss-themer
is using Angular Commit Message Conventions. Please consult the guide for details on these conventions. Your PR might not be accepted if it does not abide by these conventions.
We have very precise rules over how our git commit messages can be formatted. This leads to more readable messages that are easy to follow when looking through the project history. This also makes releases automatable since version bumping is automated from commit messages using semantic-release.
For pull requests to be merged, they need to meet the following criteria:
- The feature/bug has a corresponding issue or discussion to track it
- The feature/bug has been identified as desired
- Tests are added for any changes
- All tests pass
- The code is readable
- i.e. Others unfamiliar with your code can easy deduce it's meaning and future maintenance/extensions on it is easy to perform
- Your code may be amazing, but you likely won't be the one maintaining it in the future so this goes a LONG way to ensure the long term health of the project
- This also makes the project easier and more welcoming to contribute from others/newcomers
Maintainers merge pull requests by squashing all commits and editing the commit message if necessary using the GitHub user interface.
Use an appropriate commit type. Be especially careful with breaking changes.