Skip to content

Latest commit

 

History

History
113 lines (81 loc) · 6.75 KB

CONTRIBUTING.md

File metadata and controls

113 lines (81 loc) · 6.75 KB

Contributing

This is a comprehensive guide on how to contribute to Mutant Remix and help us achieve full unicode coverage. Mutant Remix welcomes contributions from everyone.

Potential contributors are encouraged to read this guide in full.

Check the coverage table to see what emojis are missing in the pack.

General notes

  • High quality contributions are preferred over quantity
  • Emojis must follow the design guidelines and fit with the rest of the pack
  • Commit names must follow the conventional commits specification.

In most cases, feat: <something> #<issue number> or fix: <something> #<issue number>.

Communities

We encourage you to join our communities to discuss the changes you want to make, and to get help if you need it.

Setting up the workspace

This guide assumes general familiarity with git and the command line. If you are not familiar with these, you should join the communities listed above and ask for help.

Cloning the repository

  • Fork the mutant-remix repository to your own account

  • Clone your fork of the mutant-remix repository recursively to get the submodules

git clone --recursive https://github.com/YOUR-USERNAME/mutant-remix
cd mutant-remix

You will then be able to add emojis to your fork and open a pull request to have it merged into Mutant Remix.

Building the pack

You may not need to do this step. CI will automatically build the pack for you when you open the PR and check for errors. This is only needed if you want to test your changes locally before opening a PR. Continue with the adding content section if you'd like to skip this step.

Issues

Open an issue before working on anything. This way we can discuss the changes you want to make and make sure they fit with the project and that somebody else isn't working on the same thing as you. This is to make sure you don't waste your time working on something that won't be merged.

Adding content

Check out the general notes section before adding content.

The coverage table contains a list of all emojis that are in the scope of this pack with their corresponding unicode codepoints and links to relevant emojipedia searches.

Avoiding merge conflicts

It is recommended to pull the latest changes before making any changes to avoid merge conflicts. If you are working on a fork, sync it with the upstream repository before making any changes.

Workflow

  • Check the issues to see if that emoji is already being worked on. If an issue doesn't have anyone assigned to it, it means that it is open for anyone to work on. Comment on the issue to let everyone know that you are working on it.
  • Open your own issue on the mutant-remix repository if you are working on something new.

For example:

Add tricolor flag emojis

The tricolor flag emojis are missing from the pack. I would like to add them.

Codepoints: 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F

  • If you are not sure that your issue is valid, you can wait for feedback from the maintainers before working on it to make sure you don't waste your time.

Attribution

If you wish to be included in the contributors list, you can add your name to it in your PR. Same PR is fine, but use separate commits for the actual content and the attribution.

Structure

Emojis consist of two parts:

  • The SVG file located in ./assets/svg/<category>/<subcategory>/<name>.svg
  • The metadata located in ./assets/manifest/emoji/<category>/<subcategory>.orx

SVG format

  • 32x32 of size (in svg units)
  • Transparent background

Design software

You can use any software you want to create the SVG files, but we recommend using Inkscape as it is free and open source. If you are more comfortable with other software, you can use that instead.

  • Export in the Optimized SVG format
  • Check the Convert CSS attributes to XML attributes option
  • Check the Remove metadata option

Metadata

Refer to existing metadata for examples of how to write metadata and check out the metadata guide for orxporter for syntax information.

We are working on a replacement for orxporter, the manifest format will be completely different and written in TOML.

Naming

The name of the emoji should (usually) be the same as in the coverage table, but with underscores instead of spaces. For example, :grinning_face: would be grinning_face.svg.

Non-unicode emojis

If you want to add an emoji that is not in the coverage table, you may do so. However, it will not be included in the codepoint version of the pack, but only in the shortcode version. Don't make up codepoints for emojis that don't have them, but you can make up shortcodes for them.

Codepoints

For repeating codepoints, you should use a variable, such as $zwj and $vs16. You do not need to define these variables yourself.

$zwj = #200d
$vs16 = #fe0f

Color variations

If some emojis are just color variations of each other (for example, skin tones, some flags, colored shapes), you should consider making a template emoji colored in shades of magenta. Then, you may use colormaps in the metadata to color it during the build process.

This will make sure that the emojis are consistent with each other and that they are all updated when one of them is changed, as well as keep the structure of the project more tidy.