You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
3.3 KiB
Markdown

<p align="center">
<h2 align="center">🤝 Contributing</h2>
</p>
<p align="center">
Creating Catppuccin ports
</p>
&nbsp;
### What's a port?
A port is basically an adaptation of Catppuccin's palettes for an app to use. Think of it as a colorscheme for a program that styles every UI component it consists of!
&nbsp;
### Creation
You can create ports using [this](https://github.com/catppuccin/template) public template as a blueprint. However, you must **not** create it the traditional way (by clicking **Use this template**), because this leaves a _small_ tag under the repos' name that says `generated from <template>`. To avoid this, follow the instructions below:
1. Create the repo and leave it empty:
```
mkdir name_of_your_port
cd name_of_your_port
git init
```
2. Add this template as a remote:
```
git remote add template https://github.com/catppuccin/template.git
```
3. Pull from it:
```
git pull template main
```
4. Delete the remote:
```
git remote remove template
```
5. Make the template its own repository by running
```
git reset $(git commit-tree HEAD^{tree} -m "feat: initial commit")
```
6. Set up the rest of your port, and push it to your user repository!
&nbsp;
### Styling!
Although you just created the repo successfully, it's important to style it properly to ensure consistency:
- The name of the repo must be the simplest version of the app's name (e.g `nvim` instead of `NeoVim`). You may use hyphens if needed (e.g. `windows-files`).
- Put the images under `assets/`. If there are a bunch of them consider [creating an empty branch](https://gist.github.com/joncardasis/e6494afd538a400722545163eb2e1fa5) (e.g. `assets`) and storing them there.
- Format the repo's description as "`<emoji>` Soothing pastel theme for `<app name>`".
- `<emoji>` should be an emoji that you feel represents the app best.
- `<app name>` is the name of the app, capitalized properly.
- Add `catppuccin` to the topics.
- Ensure uppercase meta files (e.g. `README.md`)
- Don't add health files (e.g. `CODE_OF_CONDUCTS.md`, `SUPPORT.md`), those are organization-wide files stored [here](https://github.com/catppuccin/.github).
&nbsp;
### Tools
Since Catppuccin is available in 4 palettes it's understandable that it may not be quite as easy to make 4 versions of a port. So to help with that, we have built a bunch of tools to make life easier when creating Catppuccin ports. You'll find them all (with instructions) under our [catppuccin/toolbox](https://github.com/catppuccin/toolbox) repo. Particularly, for the initial problem stated, you'd want to take a look at the [Puccinier](https://github.com/catppuccin/toolbox#%EF%B8%8F-puccinier) tool.
&nbsp;
### Submission
Raise a discussion under main repository [here!](https://github.com/catppuccin/catppuccin/discussions/new?category=port-requests)
The title should be the **simplest** name of the application/tool/website in **lower-kebab-case** that you are wanting ported over.
E.g. **NeoVim** -> **neovim**
If you have already created a repository containing the work, make sure to include it within the description for others to see! Feel free to join our [Discord](https://discord.com/invite/r6Mdz5dpFc) and share it there too!
The discussion will be transferred to an issue once the [staff team](https://github.com/orgs/catppuccin/teams/staff/members)
have deemed the port ready to be reviewed and merged!