Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions THIRD-PARTY-NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,9 @@ app as its payload. Filee 1.x's installer was built with Inno Setup, which is no

The GitHub Sponsors, Patreon, Ko-fi and PayPal names and logos are trademarks of their owners and are used only to link
to each service.

## Documentation theme examples

The optional JSON recipes in `docs/themes/` adapt palette data from Catppuccin, Nord, Dracula and VS Code's classic
Monokai theme. Their source links, colour adjustments and copyright/license notices are in
[docs/themes/NOTICE.md](docs/themes/NOTICE.md). These are documentation examples, not runtime dependencies.
40 changes: 38 additions & 2 deletions docs/CUSTOM-THEMES.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,44 @@ Filee's own colours can be replaced with a `theme.json` file in the folder that
Keep `text` and `textSecondary` readable on `page`, `surface` and `surfaceAlt`: they are drawn on all three.

Keep `dark` colours dark and `light` colours light. In Filee's default Soft style, text boxes,
drop-downs, check boxes, menus, tooltips and plain buttons come from Avalonia's Fluent theme and
keep its standard light/dark look; they do not follow `theme.json`. Under the Material You style,
drop-downs, check boxes, menus and tooltips come from Avalonia's Fluent theme and keep its standard
light/dark look; they do not follow `theme.json`. Plain buttons use `surface` for their normal background
and `surfaceAlt` on hover. Under the Material You style,
text boxes, drop-downs and check boxes follow the dynamic tonal surface colors and corner radii
from `theme.json` and the accent colour. A white `page` in the `dark` variant would put white-on-white
controls on it.

## Ready-to-use examples

These examples adapt familiar palettes to Filee's surface, text and status colours. The accent colour stays the one
you chose in **Settings > Theme**, and the control-style limits above still apply.

| Example | Light | Dark |
|---|---|---|
| [Catppuccin](themes/catppuccin.json) | Latte | Mocha |
| [Nord](themes/nord.json) | Snow Storm-based colours | Polar Night-based colours |
| [Dracula](themes/dracula.json) | Alucard Classic | Dracula Classic |
| [Monokai](themes/monokai.json) | Filee's built-in light colours | Classic Monokai |

They are application-specific adaptations, not official ports. Some secondary text and status colours are adjusted
for readability on the example surfaces; see the [sources, adjustments and license notices](themes/NOTICE.md).
Accent-derived colours, focus and other control states still depend on your settings and style.

### Apply an example

1. Quit Filee, including its tray/menu-bar process.
2. Find your data folder using the paths at the top of this page. If `theme.json` already exists, save a copy under
another name outside that folder before replacing it.
3. Open one of the JSON links above, choose **Raw**, and save the JSON as `theme.json` in your data folder. Make sure
the file is named `theme.json`, rather than `theme.json.txt`.
4. Start Filee. Choose **Light**, **Dark** or **System** in **Settings > Theme** to use the corresponding variant.

Each example replaces the whole `theme.json` file. To keep parts of your own theme, merge the desired colour entries
into its existing `light` and `dark` objects instead. Monokai defines only `dark`: in Light mode, or when System
follows a light appearance, Filee uses its built-in light colours.

### Restore your previous colours

Quit Filee and move the example `theme.json` out of the data folder. To restore your previous custom theme, put your
backup back as `theme.json`; to use Filee's built-in colours, leave that file absent. Start Filee again. The accent
and your other appearance settings stay as chosen in **Settings > Theme**.
148 changes: 148 additions & 0 deletions docs/themes/NOTICE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# Theme example sources and notices

The JSON files in this folder map these palettes to Filee's existing colour roles. They are optional
documentation examples. The light/dark mappings and foreground adjustments are Filee-specific adaptations.

| Example | Palette source (fixed revision) | License notice |
|---|---|---|
| [Catppuccin](catppuccin.json) | [catppuccin/palette `07d02aa1`](https://raw.githubusercontent.com/catppuccin/palette/07d02aa110ef9eb7e7427afca5c73ba9cf7f8ebd/palette.json) | [MIT](https://raw.githubusercontent.com/catppuccin/palette/07d02aa110ef9eb7e7427afca5c73ba9cf7f8ebd/LICENSE) |
| [Nord](nord.json) | [nordtheme/nord `1cef7160`](https://raw.githubusercontent.com/nordtheme/nord/1cef71605416a222e57225b544540ce0fcec18d4/src/nord.scss) | [MIT](https://raw.githubusercontent.com/nordtheme/nord/1cef71605416a222e57225b544540ce0fcec18d4/license) |
| [Dracula / Alucard Classic](dracula.json) | [dracula/draculatheme.com `88fbf0b3`](https://raw.githubusercontent.com/dracula/draculatheme.com/88fbf0b34e53d8f785546da3c2246b7edb73931e/content/spec.mdx) | [MIT](https://raw.githubusercontent.com/dracula/template/d36c038a7df2e0bd7567f539e7a5816df8145057/LICENSE) |
| [Classic Monokai (VS Code)](monokai.json) | [microsoft/vscode `a383e086`](https://raw.githubusercontent.com/microsoft/vscode/a383e08626828ceb9c32f45f4a2940070a2f27f1/extensions/theme-monokai/themes/monokai-color-theme.json) | [MIT](https://raw.githubusercontent.com/microsoft/vscode/a383e08626828ceb9c32f45f4a2940070a2f27f1/LICENSE.txt) |

Nord's surface roles follow its [colour guidelines](https://www.nordtheme.com/docs/colors-and-palettes/).
Dracula's values follow its specification; the MIT notice below is from its community-port template.
The Monokai example uses the classic palette from VS Code, without Monokai Pro assets.

## Foreground adjustments

The following secondary/status colours differ from the source palettes. Each is blended towards white
in the dark variant, or black in the light variant, in 1% steps until its contrast is at least 4.5:1
on all three example backgrounds (`page`, `surface`, `surfaceAlt`). Other colours are direct role mappings.
This covers these foreground/background pairs, not all controls, accent-derived colours or user edits.

| Example | Variant | Role | Source | Adapted |
|---|---|---|---|---|
| catppuccin | light | `danger` | `#D20F39` | `#C50E36` |
| catppuccin | light | `success` | `#40A02B` | `#2D701E` |
| catppuccin | light | `warning` | `#DF8E1D` | `#8A5812` |
| nord | light | `danger` | `#BF616A` | `#954C53` |
| nord | light | `success` | `#A3BE8C` | `#56654A` |
| nord | light | `warning` | `#EBCB8B` | `#6E5F41` |
| nord | dark | `danger` | `#BF616A` | `#DFB0B4` |
| nord | dark | `success` | `#A3BE8C` | `#ABC496` |
| dracula | light | `danger` | `#DE5735` | `#B2462A` |
| dracula | light | `success` | `#089108` | `#077A07` |
| dracula | light | `warning` | `#A39514` | `#746A0E` |
| dracula | dark | `textSecondary` | `#6272A4` | `#96A1C2` |
| dracula | dark | `danger` | `#DE5735` | `#E7866E` |
| dracula | dark | `success` | `#089108` | `#57B457` |
| dracula | dark | `warning` | `#A39514` | `#AFA333` |
| monokai | dark | `textSecondary` | `#90908A` | `#AEAEAA` |
| monokai | dark | `danger` | `#F92672` | `#FC8AB3` |

## License notices

### Catppuccin

```text
MIT License
Copyright (c) 2021 Catppuccin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

### Nord

```text
MIT License (MIT)
Copyright (c) 2016-present Sven Greb <development@svengreb.de> (https://www.svengreb.de)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

### Dracula

```text
MIT License
Copyright (c) 2023 Dracula Theme
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

### VS Code

```text
MIT License
Copyright (c) 2015 - present Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
24 changes: 24 additions & 0 deletions docs/themes/catppuccin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"light": {
"page": "#E6E9EF",
"surface": "#EFF1F5",
"surfaceAlt": "#DCE0E8",
"border": "#9CA0B0",
"text": "#4C4F69",
"textSecondary": "#5C5F77",
"danger": "#C50E36",
"success": "#2D701E",
"warning": "#8A5812"
},
"dark": {
"page": "#181825",
"surface": "#1E1E2E",
"surfaceAlt": "#313244",
"border": "#45475A",
"text": "#CDD6F4",
"textSecondary": "#BAC2DE",
"danger": "#F38BA8",
"success": "#A6E3A1",
"warning": "#F9E2AF"
}
}
24 changes: 24 additions & 0 deletions docs/themes/dracula.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"light": {
"page": "#FFFBEB",
"surface": "#EFEDDC",
"surfaceAlt": "#ECE9DF",
"border": "#CFCFDE",
"text": "#1F1F1F",
"textSecondary": "#6C664B",
"danger": "#B2462A",
"success": "#077A07",
"warning": "#746A0E"
},
"dark": {
"page": "#21222C",
"surface": "#282A36",
"surfaceAlt": "#343746",
"border": "#6272A4",
"text": "#F8F8F2",
"textSecondary": "#96A1C2",
"danger": "#E7866E",
"success": "#57B457",
"warning": "#AFA333"
}
}
13 changes: 13 additions & 0 deletions docs/themes/monokai.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"dark": {
"page": "#1E1F1C",
"surface": "#272822",
"surfaceAlt": "#414339",
"border": "#75715E",
"text": "#F8F8F2",
"textSecondary": "#AEAEAA",
"danger": "#FC8AB3",
"success": "#A6E22E",
"warning": "#E6DB74"
}
}
24 changes: 24 additions & 0 deletions docs/themes/nord.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"light": {
"page": "#ECEFF4",
"surface": "#E5E9F0",
"surfaceAlt": "#D8DEE9",
"border": "#4C566A",
"text": "#2E3440",
"textSecondary": "#4C566A",
"danger": "#954C53",
"success": "#56654A",
"warning": "#6E5F41"
},
"dark": {
"page": "#2E3440",
"surface": "#3B4252",
"surfaceAlt": "#434C5E",
"border": "#4C566A",
"text": "#ECEFF4",
"textSecondary": "#D8DEE9",
"danger": "#DFB0B4",
"success": "#ABC496",
"warning": "#EBCB8B"
}
}