-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Add docs for icon theme extensions
- Loading branch information
1 parent
e2d6d4b
commit 7afd9d4
Showing
4 changed files
with
67 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# Icon Themes | ||
|
||
Extensions may provide icon themes in order to change the icons Zed uses for folders and files. | ||
|
||
## Example extension | ||
|
||
The [Material Icon Theme](https://github.com/zed-extensions/material-icon-theme) serves as an example for the structure of an extension containing an icon theme. | ||
|
||
## Directory structure | ||
|
||
There are two important directories for an icon theme extension: | ||
|
||
- `icon_themes`: This directory will contain one or more JSON files containing the icon theme definitions. | ||
- `icons`: This directory contains the icons assets that will be distributed with the extension. You can created subdirectories in this directory, if so desired. | ||
|
||
Each icon theme file should adhere to the JSON schema specified at [`https://zed.dev/schema/icon_themes/v0.1.0.json`](https://zed.dev/schema/icon_themes/v0.1.0.json). | ||
|
||
Here is an example of the structure of an icon theme: | ||
|
||
```json | ||
{ | ||
"$schema": "https://zed.dev/schema/icon_themes/v0.1.0.json", | ||
"name": "My Icon Theme", | ||
"author": "Your Name", | ||
"themes": [ | ||
{ | ||
"name": "My Icon Theme", | ||
"appearance": "dark", | ||
"directory_icons": { | ||
"collapsed": "./icons/folder.svg", | ||
"expanded": "./icons/folder-open.svg" | ||
}, | ||
"chevon_icons": { | ||
"collapsed": "./icons/chevron-right.svg", | ||
"expanded": "./icons/chevron-down.svg" | ||
}, | ||
"file_icons": { | ||
"audio": { "path": "./icons/audio.svg" }, | ||
"default": { "path": "./icons/file.svg" }, | ||
"rust": { "path": "./icons/rust.svg" } | ||
// ... | ||
} | ||
} | ||
] | ||
} | ||
``` | ||
|
||
Each icon path is resolved relative to the root of the extension directory. | ||
|
||
In this example, the extension would have a structure like so: | ||
|
||
``` | ||
extension.toml | ||
icon_themes/ | ||
my-icon-theme.json | ||
icons/ | ||
audio.svg | ||
chevron-down.svg | ||
chevron-right.svg | ||
file.svg | ||
folder-open.svg | ||
folder.svg | ||
rust.svg | ||
``` |