Icon Resources
The following are the current community-maintained notification icon resource rules. You can review these rules or go to the contribution section to request adaptations or submit new icon adaptations.
Loading icon manifests…
Trademark Disclaimer
The product names, logos, and brands displayed in the above resources are the property of their respective owners. All company, product, and service names used in the icon resources are for identification, compatibility, and illustrative purposes only. Use of these names, logos, and brands does not imply endorsement.
Structure Description
The resource rules directory is fixed into the following structure, all located in the project's
iconsdirectory.Third-party app rules are located at icons/app
Game rules are located at icons/game
System rules are located at icons/system
In each directory, if there are no direct sub-projects, there will be a manifest.json file, and the corresponding registered icon resources are located in the res directory.
ANIP provides a brand-new rule file structure. Below is a complete example of the rules.
"com.example.app": {
"label": "Example",
"format": "svg",
"color": "#4F7CF7",
"overlay": false,
"contributors": "peter, jane"
}label: The official name of the app, supports i18nformat: The format of the icon file, must match the file extension in theresdirectorycolor: The color used in the icon, format must be uppercase #RRGGBB, no alpha channel allowedoverlay: Whether to force overlay all notification icons pushed by the app, regardless of whether they are native monochromecontributors: List of contributor names, multiple contributors separated by,(with a space following)
The label, format, and contributors fields are required.
The i18n support format for label is as follows, using standard BCP 47 language tags, with - separating the language and region.
"label": {
"en": "Example",
"zh-CN": "示例应用"
}Similarly, this rule must have a corresponding com.example.app.svg file in the res directory, with the package name as the file name and format as the extension.
In general, the file name and extension must be in lowercase.
To address the resource duplication caused by Base64 bloat in older formats and repeated adaptation of icons in channel packages, ANIP provides the target parameter to inherit icon resources from other package names, avoiding repeated resource occupation.
Below is an example of a rule using the target parameter.
"com.example.app.foo": {
"target": "com.example.app",
"label": "Example (Foo)"
}In this example, the icon resource for com.example.app.foo will inherit the icon resource from com.example.app. As long as the target parameter is declared, there is no need for a com.example.app.foo.svg file in the res directory. The other parameters are obtained through inheritance, and you can override them, but note that overriding the format parameter is invalid and will be automatically discarded.
Want to contribute to icon resources? Please go to Ready to Submit to participate immediately.
Usage Instruction
All icon resources of ANIP are free, open, and maintained by contributors. Anyone can use, modify, and distribute the resources of this project in compliance with the Apache-2.0 license. You can check here to see the projects currently using ANIP.
Each contributed icon will be automatically packaged. The latest icon resources are available in the Releases page of the current repository, tagged with the SHA-1 hash of each submission. The file name is similar to anip-bundle-<SHA1>.zip, and the package structure is as follows.
anip-bundle-<SHA1>.zip
├─ app/
├─ game/
└─ system/The same release also provides a release manifest with the fixed name anip-release.json. It describes the current resource bundle and provides integrity verification information in the following structure.
{
"schemaVersion": 1,
"tag": "1a2b3c4",
"timestamp": 1788451200000,
"assetName": "anip-bundle-1a2b3c4.zip",
"downloadUrl": "anip-bundle-1a2b3c4.zip",
"size": 1234567,
"sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
}schemaVersion: Release manifest schema version, currently fixed at1tag: Current release tag, consisting of the first seven characters of the corresponding main-branch commit SHA-1timestamp: Unix timestamp of the corresponding commit, in millisecondsassetName: Full file name of the current icon resource archivedownloadUrl: Download address of the icon resource archive, either an absolute URL or a path relative to the release manifest URLsize: Icon resource archive size in bytessha256: SHA-256 checksum of the icon resource archive
We do not recommend using the project's resources directly through raw. Instead, pull the latest release package for use, or use the ANIP's Official SDK.