Skip to content

Commit

Permalink
docs: Add docs for icon theme extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
maxdeviant committed Feb 4, 2025
1 parent e2d6d4b commit 7afd9d4
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
- [Developing Extensions](./extensions/developing-extensions.md)
- [Language Extensions](./extensions/languages.md)
- [Theme Extensions](./extensions/themes.md)
- [Icon Theme Extensions](./extensions/icon-themes.md)
- [Slash Command Extensions](./extensions/slash-commands.md)
- [Context Server Extensions](./extensions/context-servers.md)

Expand Down
1 change: 1 addition & 0 deletions docs/src/extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ Zed lets you add new functionality using user-defined extensions.
- [Developing Extensions](./extensions/developing-extensions.md)
- [Developing Language Extensions](./extensions/languages.md)
- [Developing Themes](./extensions/themes.md)
- [Developing Icon Themes](./extensions/icon-themes.md)
- [Developing Slash Commands](./extensions/slash-commands.md)
1 change: 1 addition & 0 deletions docs/src/extensions/developing-extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Extensions can add the following capabilities to Zed:

- [Languages](./languages.md)
- [Themes](./themes.md)
- [Icon Themes](./icon-themes.md)
- [Slash Commands](./slash-commands.md)
- [Context Servers](./context-servers.md)

Expand Down
64 changes: 64 additions & 0 deletions docs/src/extensions/icon-themes.md
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
```

0 comments on commit 7afd9d4

Please sign in to comment.