Skip to content

Latest commit

 

History

History
397 lines (251 loc) · 15.9 KB

File metadata and controls

397 lines (251 loc) · 15.9 KB

Lawnicons contributing guide

Welcome to the Lawnicons contributing guide!

In case of unclear wording, ask us in our Discord. If you find errors or want to suggest improvements in the guide itself, create an issue.

Our Discord

Involvement

Contributors

The Lawnchair team is focused on development only. Our community (basically everyone who wants to) makes icons and sometimes touches the code too.

Our contributorsLawnchair

Development

The main tasks are to maintain Lawnicons and interaction with launchers, fix bugs, add new features and automate organizational processes. Please see our issues for more details.

Icons

You can contribute your icons, fulfill icon requests, add missing app IDs, refine and update existing icons, clean up dead apps and duplicates. Mastering the Lawnicons design guidelines in practice will allow you to do icon reviews.

Icon requests dashboard

Contributing code

Code-related contributions are welcome. Significant changes to the UI should be discussed in our Discord. Generally, we want to keep things clean and simple.

Visit the Lawnicons developer wiki for developer information regarding Lawnicons.

Lawnicons developer wiki

Contributing icons TL;DR

  1. Study the Lawnicons design guidelines in practice (for example, in Figma) and create a suitable icon (*.svg).
  2. Learn how to find the app ID that you will need to link with the created icon.
  3. Learn how to fork the Lawnicons repository and make a local copy for yourself, where you will add the created icon.
  4. Add the created icon and the app ID to your local copy and push the changes to your fork on GitHub.
  5. Create a pull request to the Lawnicons repository and wait for a review.

Lawnicons design guidelines

The contributors who laid the foundations: GrabsterTV and Chefski.

Tip

The design guidelines are also available in Figma, you can practice there.
View in Figma

Common issues

Approach

The Lawnicons style is built on strong fundamentals and a commitment to quality. To minimize the need for rework, please read these guidelines carefully. Our main goal is to create high-quality icons that clearly represent their respective apps. To achieve this goal, you may sometimes need to redesign an icon from scratch.

Tips

  • Make no more than 5 icons at a time, as long as your PRs require rework.
  • Prioritize quality.
  • Use the Lawnicons style, rather than trying to reproduce the original exactly.
  • Practice on easy-to-make icons to understand the whole process.
  • See how other contributors have made pull requests (PRs).

Merged PRs

Naming

TL;DR

_2048.svg | 2048
lawnicons.svg | Lawnicons
habitacao_caixa.svg | Habitação Caixa
beijing_card.svg | 北京一卡通 ~~ Beijing Card
a_and_w.svg | A&W

App name

The main app name should be in its main language. It can be found in app stores or primary sources.

Apps with non-English names require an additional name based on the English alphabet. At best it will be a localized official app name. If an app name is mostly made up of letters from the English alphabet, it doesn't need an additional one.

Tips

  • Add localized names if available.
  • Transliterate non-English names when there are no localized ones.
  • Separate app names using ~~. First, the main app name, then the additional one.
  • Delete things that aren't part of an app name.
  • Use the HTML character references for special symbols: for instance, & instead of "&".

Icon name (drawable)

Repeat the app name. Use a–z, 0–9, and _ for spaces. Insert _ before a digit at the beginning of an icon name.

Tips

  • When multiple apps are linked to the same icon, choose the most popular app name for it.
  • Replace non-English letters with English letters.

Fundamentals

1 Canvas

1 Canvas

192 × 192 px. Use the correct canvas size to create a safe zone around icons.

2 Abstract icons

2 Abstract icons

Determine the abstract icon size before you start. The exact size is determined by the stroke's position, weight, and the graphic editor used. For a 12 px center stroke in Figma, the icon content area is 148 × 148 px.

Tips

  • Follow the blue guides.
  • Use existing icons as an example.
  • Aim for pixel-perfect.
  • The margin of error is <0.1 px.

3 Square icons

3 Square icons

Determine the square icon size before you start. These are icons with 50% or more of the edges running along the square. The exact size is determined by the stroke's position, weight, and the graphic editor used. For a 12 px center stroke in Figma, the square icon content area is 142 × 142 px.

Tips

  • Follow the golden guides.
  • Use existing icons as an example.
  • Aim for pixel-perfect.
  • The margin of error is <0.1 px.

4 Color

4 Color

All lines must be non-transparent black color: #000000.

5 Stroke weights

5 Stroke weights

Core stroke weight: 12 px
Minimal icons: 14 px
Dense icons: 10 px
Ellipses, rectangles and fine details: 12 px10 px, 8 px, 6 px

Tips

  • No margin of error.
  • Don’t use a fill.
  • Remember to adjust the size of icons when you change the stroke weights.

6 Caps and joints

6 Caps and joints

Caps and joints should be rounded.

7 Corner radius

7 Corner radius

Use 6–32 px for 90° angles. Refer to the original icon to select a value from the range. It's allowed to leave a 0 px radius in cases when the others spoil the shape: for instance, when 90° angles are formed of short lines.

Quality

1 Consistency

*1 Consistency

All shapes should be outlined.

2 Visual balance

2 Visual balance

Avoid drastic changes in stroke weights. For instance, using a 12 px stroke and suddenly decreasing it to 8 px creates an unbalanced visual effect.

Tips

  • Use a gradual transition if it makes sense. For instance, 12 px10 px → 8 px.
  • Change the main stroke weight depending on an icon density.

3 Black spots

3 Black spots

Avoid black spots as much as possible.

Tips

  • Trim lines.
  • Reduce stroke weights.
  • Simplify or redraw.

4 Excessive density

4 Excessive density

Keep at least 8 px between lines, using an 8 × 8 px rectangle to verify the spacing.
It’s better to make the distance a little more, especially in closed shapes.

Tips

  • Move lines further apart.
  • Combine parallel lines into one.
  • Trim or extend lines.
  • Reduce stroke weights.
  • Enlarge original icons to make the main features easier to draw.
  • Simplify or redraw.

5 Alignment

5 Alignment

Icons should be centered, but shape-aware. Align them to the optical center as much as possible within the icon content area. The optical aligment is where your icon looks and feels centered.

6 Text icons

6 Text icons

Text longer than 3 letters in 1 line usually don’t fit the Lawnicons style. Brands and apps with text icons often need to be studied in order to create a recognizable Lawnicons-style icon.

If you want to keep only a text, then it should be of high quality and occupy at least ¹⁄₃ of the icon content area.

7 Complex icons

7 Complex icons

First, try to make a complex icon based on the original. When it’s clear that the original icon can’t be conveyed in the Lawnicons style, you need to study the visual part of an app or a game. Whatever you come to, the result should be at least logical and high-quality.

Sources for creating a recognizable icon

  • Branding guidelines.
  • UI or gameplay.
  • Website’s favicons.
  • In-app icons.
  • Essence of an app or a game.
  • Combination of recognizable features and your own ideas.

8 Minimal icons

8 Minimal icons

Some minimal icons should be detailed based on an app design to become more recognizable. Add distinctive features to them when it makes sense.

9 Version badges

9 Version badges

Use one of our version badges to highlight a separate version of an app if the original icons are indistinguishable. For instance, it could be nightly builds, paid apps with a free one available, or lite versions. Keep in mind that cases such as Opera Mini or Firefox Klar are different.

Tips

  • Create a safe zone around the version badge by cutting lines (refer to the Excessive density section).
  • The default location for the badge is the lower right corner, but a lot depends on the icon shape.
  • Avoid shifting icons for the sake of the badge.
  • Create an issue if there aren’t enough version badges.

Icon contribution tools

Vector graphics editor

To create icons, you need a vector graphics editor, which allows you to save icons in SVG format. Mobile vector editors won't work. We recommend Figma because it has easier quality control. You can use Advanced SVG Export to save optimized SVGs in Figma.

Figma • Advanced SVG Export

GitHub Desktop

You can use it to create a local copy of your repository on GitHub and upload all the changes. Before getting into your repository, the changes must appear in your local copy.

GitHub Desktop

App ID search tool

You can use it to find app IDs. If you fulfill icon requests from our table, all the app IDs are there.

How to find app IDs

Other tools

File explorer. It will help you copy icons to a local copy of your repository.

Text editor. It will help you to link icons and app IDs in appfilter.xml. This is how icon packs work.

Terminal (command line). It will add convenience if you regularly contribute dozens of icons.

How to find app IDs

An app ID is a record consisting of a package and an activity, separated by /. App IDs allow you to link icons and apps.

Sample (Lawnicons)
Package: app.lawnchair.lawnicons
Activity: app.lawnchair.lawnicons.MainActivity
App ID: app.lawnchair.lawnicons/app.lawnchair.lawnicons.MainActivity

Lawnicons

This method is suitable if you are interested in installed apps that aren't supported in Lawnicons.

  1. Install and open Lawnicons.
  2. Long press our logo.
  3. Swipe down.
  4. Copy missing app IDs to clipboard.
  5. Save it wherever it's convenient.

Download Lawnicons

Icon Request

  1. Download and launch Icon Request.
  2. Tap one of the options:
  • UPDATE EXISTING — to copy app IDs.
  • REQUEST NEW — to save icon images and app IDs. This option is better if you are creating icons.
  1. Use the Icon Request toolbar to select apps.
  2. Copy, save or share.

Google PlayGitHub

Icon Pusher

  1. Download and launch Icon Pusher.
  2. Select the icons you want to upload or select all by pressing the square in the top right.
  3. Submit the selected apps.
  4. View your submission on the Icon Pusher website.

Google PlayWebsite

Android Debug Bridge (adb)

  1. Connect your Android device or emulator to your laptop/desktop PC that has adb installed.
  2. Open the app whose details you want to inspect (e.g. Telegram).
  3. Open a new Command Prompt or Terminal window and input adb devices.
  4. Finally, type the below-given command to get the information about the currently open app.

How to install ADB

Mac or Linux

adb shell dumpsys window | grep 'mCurrentFocus'

Windows

adb shell dumpsys window | findstr "mCurrentFocus"

Adding icons and missing app IDs to Lawnicons

You need to link SVGs and app IDs correctly, create a PR to our repository through your fork, and wait for it to be reviewed.

Tips

  • Avoid name conflicts.
  • Add missing app IDs to icons that are identical to the originals.
  • Make sure your icons or missing app IDs haven't been added earlier: search the appfilter.xml and check PRs.

Simplified icon contributionHow to find app IDsIcon contribution toolsappfilter.xmlPRs

Manual process

Let's imagine that you have an icon in SVG format, an app name and an app ID.

Icon: lawnicons.svg
App name: Lawnicons
App ID: app.lawnchair.lawnicons/app.lawnchair.lawnicons.MainActivity

  1. Fork the Lawnicons repository.
  2. Clone the fork via GitHub Desktop.
  3. Open it with a file explorer. This is your local copy.
  4. Сopy lawnicons.svg to the svgs/ folder. Note the icon name.
  5. Open app/assets/appfilter.xml and add a new line using the same template as the existing lines.
Do
<item component="ComponentInfo{app.lawnchair.lawnicons/app.lawnchair.lawnicons.MainActivity}" drawable="lawnicons" name="Lawnicons" />

Template
<item component="ComponentInfo{APP_ID}" drawable="ICON_NAME" name="APP_NAME" />
  1. Save changes and push it to your fork via GitHub Desktop.
  2. Open your fork in a web browser and create a PR: Contribute → Open pull request. Describe your PR according to our templates.
  3. Make sure that the build went without errors and await a review (better to do a self-review).
  4. We will merge your PR, fix the little things, or leave a comment asking you to rework.

Clean commit history

A commit history appears after your PR is merged. Please keep your repository up to date if you plan to create more than one PR, otherwise you may drag the commit history through all your PRs. There are two main ways to do this:

  • Open Terminal on the local copy of your repository via GitHub Desktop. Run git reset --hard upstream/develop. Overwrite your repository with your local copy via GitHub Desktop: Force push origin.
  • Or delete your repository and start the contribution process from scratch.

icontool.py

This tool will help you if you regularly contribute icons or missing app IDs.

icontool.py guide