commit dc29fa058b159e90722feb9028227c9f1a611f57 Author: fjord-themes-bot Date: Wed Mar 25 02:57:46 2026 +0000 chore: update theme (fjord-core@c95a4c8) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ffeed71 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 jshuntley + +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..20b3984 --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# Fjord Theme for Zed + +A dusk-blue base with soft leaf-green accents, amber selections, and crisp blue/cyan separation for the Zed editor. + +## 🎨 Color Palette + +### Core Colors + +| Color | Name | +| ---- | ----------------- | +| ![background](https://img.shields.io/badge/%231B2532-1B2532) | **background** | +| ![backgroundAlt](https://img.shields.io/badge/%23222E3F-222E3F) | **backgroundAlt** | +| ![surface](https://img.shields.io/badge/%231F2A39-1F2A39) | **surface** | +| ![line](https://img.shields.io/badge/%23233141-233141) | **line** | +| ![foreground](https://img.shields.io/badge/%23E8F0F3-E8F0F3) | **foreground** | +| ![muted](https://img.shields.io/badge/%236C7A86-6C7A86) | **muted** | +| ![mutedDim](https://img.shields.io/badge/%2351606B-51606B) | **mutedDim** | + +### Accent Colors + +| Color | Name | +| ---- | ---------------------------- | +| ![green](https://img.shields.io/badge/%239DD99A-9DD99A) | **green** _(primary accent)_ | +| ![blue](https://img.shields.io/badge/%235DA6EA-5DA6EA) | **blue** | +| ![yellow](https://img.shields.io/badge/%23FFD285-FFD285) | **yellow** | +| ![purple](https://img.shields.io/badge/%23B9A0F8-B9A0F8) | **purple** | +| ![red](https://img.shields.io/badge/%23F37C7C-F37C7C) | **red** | +| ![cyan](https://img.shields.io/badge/%23B8E7E9-B8E7E9) | **cyan** | + +## 📦 Installation + + +### Manual Installation + + +1. Clone the theme to your config directory: + +```bash +mkdir -p ~/.config/zed/themes/ +git clone https://git.jshuntley.com/fjord-theme/fjord-zed.git --depth 1 ~/.config/zed/themes/fjord-zed +``` + + +2. Open the theme picker (`Ctrl+K Ctrl+T` on Linux/Windows, `Cmd+K Cmd+T` on macOS) and select **Fjord**. + + +## 🔧 Configuration + +The theme is designed to work transparently with your terminal colors while providing optimal contrast and readability in Zed. + +## 🔄 Updates + +This theme is automatically generated from [fjord-core](https://git.jshuntley.com/fjord-theme/fjord-core) and deployed on every release. For an overview of all supported platforms and the full color palette, visit the [Fjord theme page](https://git.jshuntley.com/fjord-theme). +## ☕ Support My Work + +If you enjoy the Fjord theme and find it useful, consider supporting my work: + +[![Buy Me A Coffee](https://img.shields.io/badge/Buy_Me_A_Coffee-99dd9a?style=for-the-badge&logo=buy-me-a-coffee&logoColor=FFD285&logoSize=auto&labelColor=1B2532)](https://buymeacoffee.com/jshuntley) +## 📄 License + +MIT License - see [LICENSE](LICENSE) file for details. +## 🤝 Contributing + +For theme suggestions or issues, please open an issue on [fjord-core](https://git.jshuntley.com/fjord-theme/fjord-core). For an overview of the project, visit the [Fjord theme page](https://git.jshuntley.com/fjord-theme). \ No newline at end of file diff --git a/themes/fjord.json b/themes/fjord.json new file mode 100644 index 0000000..c46eb8f --- /dev/null +++ b/themes/fjord.json @@ -0,0 +1,401 @@ +{ + "$schema": "https://zed.dev/schema/themes/v0.1.0.json", + "name": "Fjord", + "author": "jshuntley", + "themes": [ + { + "name": "Fjord", + "appearance": "dark", + "style": { + "border": "#233141", + "border.variant": "#233141", + "border.focused": "#2D3D52", + "border.selected": "#233141", + "border.transparent": "#233141", + "border.disabled": "#233141", + "elevated_surface.background": "#222E3F", + "surface.background": "#1F2A39", + "background": "#1B2532", + "element.background": "#2D3D52", + "element.hover": "#2A3647", + "element.active": null, + "element.selected": "#2D3D52", + "element.disabled": null, + "drop_target.background": "#1F2A39", + "ghost_element.background": null, + "ghost_element.hover": null, + "ghost_element.active": null, + "ghost_element.selected": null, + "ghost_element.disabled": null, + "text": "#E8F0F3", + "text.muted": "#6C7A86", + "text.placeholder": "#51606B", + "text.disabled": "#51606B", + "text.accent": "#5DA6EA", + "icon": "#E8F0F3", + "icon.muted": "#6C7A86", + "icon.disabled": "#51606B", + "icon.placeholder": "#51606B", + "icon.accent": "#5DA6EA", + "status_bar.background": "#17202C", + "title_bar.background": "#17202C", + "toolbar.background": "#1B2532", + "tab_bar.background": "#17202C", + "tab.inactive_background": "#17202C", + "tab.active_background": "#1B2532", + "search.match_background": "#2D3D52", + "panel.background": "#17202C", + "panel.focused_border": "#5DA6EA", + "pane.focused_border": "#5DA6EA", + "scrollbar_thumb.background": "#51606B80", + "scrollbar.thumb.hover_background": "#51606B", + "scrollbar.thumb.border": "#51606B80", + "scrollbar.track.background": "#1B253200", + "scrollbar.track.border": "#1B253200", + "editor.foreground": "#E8F0F3", + "editor.background": "#1B2532", + "editor.gutter.background": "#1B2532", + "editor.subheader.background": null, + "editor.active_line.background": "#1F2A39", + "editor.highlighted_line.background": null, + "editor.line_number": "#51606Ba0", + "editor.active_line_number": "#E8F0F3", + "editor.invisible": "#51606B", + "editor.wrap_guide": "#233141", + "editor.active_wrap_guide": "#2D3D52", + "editor.document_highlight.read_background": "#2D3D5280", + "editor.document_highlight.write_background": "#2D3D52", + "terminal.background": "#1B2532", + "terminal.foreground": "#E8F0F3", + "terminal.bright_foreground": "#EFFAFF", + "terminal.dim_foreground": "#6C7A86", + "terminal.ansi.black": "#212128", + "terminal.ansi.bright_black": "#51606B", + "terminal.ansi.dim_black": null, + "terminal.ansi.red": "#F37C7C", + "terminal.ansi.bright_red": "#FF9B9B", + "terminal.ansi.dim_red": null, + "terminal.ansi.green": "#9DD99A", + "terminal.ansi.bright_green": "#A3D5A0", + "terminal.ansi.dim_green": null, + "terminal.ansi.yellow": "#FFD285", + "terminal.ansi.bright_yellow": "#FFE0A3", + "terminal.ansi.dim_yellow": null, + "terminal.ansi.blue": "#5DA6EA", + "terminal.ansi.bright_blue": "#7BB8FF", + "terminal.ansi.dim_blue": null, + "terminal.ansi.magenta": "#B9A0F8", + "terminal.ansi.bright_magenta": "#D4C6F7", + "terminal.ansi.dim_magenta": null, + "terminal.ansi.cyan": "#B8E7E9", + "terminal.ansi.bright_cyan": "#A1E9DE", + "terminal.ansi.dim_cyan": null, + "terminal.ansi.white": "#E8F0F3", + "terminal.ansi.bright_white": "#EFFAFF", + "terminal.ansi.dim_white": null, + "link_text.hover": "#5DA6EA", + "conflict": "#C89CFDa0", + "conflict.background": null, + "conflict.border": null, + "created": "#9DD99Aa0", + "created.background": null, + "created.border": null, + "deleted": "#F37C7Ca0", + "deleted.background": null, + "deleted.border": null, + "error": "#F37C7C", + "error.background": "#F37C7C20", + "error.border": null, + "hidden": "#6C7A86", + "hidden.background": null, + "hidden.border": null, + "hint": "#B8E7E9a0", + "hint.background": null, + "hint.border": null, + "ignored": "#51606B", + "ignored.background": null, + "ignored.border": null, + "info": "#5DA6EA", + "info.background": "#5DA6EA20", + "info.border": null, + "modified": "#6FAFF2a0", + "modified.background": null, + "modified.border": null, + "predictive": "#6C7A86", + "predictive.background": null, + "predictive.border": null, + "renamed": "#5DA6EA", + "renamed.background": null, + "renamed.border": null, + "success": "#9DD99A", + "success.background": "#9DD99A20", + "success.border": null, + "unreachable": null, + "unreachable.background": null, + "unreachable.border": null, + "warning": "#FFD285", + "warning.background": "#FFD28520", + "warning.border": null, + "players": [ + { + "cursor": "#E8F0F3", + "selection": "#2D3D52", + "background": "#2D3D52" + }, + { + "cursor": "#9DD99A", + "selection": "#9DD99A40", + "background": "#9DD99A" + }, + { + "cursor": "#B9A0F8", + "selection": "#B9A0F840", + "background": "#B9A0F8" + }, + { + "cursor": "#FFD285", + "selection": "#FFD28540", + "background": "#FFD285" + } + ], + "syntax": { + "attribute": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "boolean": { + "color": "#7BB8FF", + "font_style": null, + "font_weight": null + }, + "comment": { + "color": "#6C7A86", + "font_style": "italic", + "font_weight": null + }, + "comment.doc": { + "color": "#6C7A86", + "font_style": "italic", + "font_weight": null + }, + "constant": { + "color": "#7BB8FF", + "font_style": null, + "font_weight": null + }, + "constructor": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": null + }, + "embedded": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "emphasis": { + "color": "#E8F0F3", + "font_style": "italic", + "font_weight": null + }, + "emphasis.strong": { + "color": "#E8F0F3", + "font_style": null, + "font_weight": 700 + }, + "enum": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": null + }, + "function": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "function.builtin": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "function.method": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "function.special": { + "color": "#D4C6F7", + "font_style": null, + "font_weight": null + }, + "hint": { + "color": "#6C7A86", + "font_style": "italic", + "font_weight": null + }, + "keyword": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": null + }, + "keyword.control": { + "color": "#7BB8FF", + "font_style": null, + "font_weight": null + }, + "label": { + "color": "#D4C6F7", + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#5DA6EA", + "font_style": "italic", + "font_weight": null + }, + "link_uri": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": null + }, + "number": { + "color": "#7BB8FF", + "font_style": null, + "font_weight": null + }, + "operator": { + "color": "#7BB8FF", + "font_style": null, + "font_weight": null + }, + "predictive": { + "color": "#6C7A86", + "font_style": "italic", + "font_weight": null + }, + "preproc": { + "color": "#7BB8FF", + "font_style": null, + "font_weight": null + }, + "primary": { + "color": "#E8F0F3", + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "punctuation": { + "color": "#E8F0F3", + "font_style": null, + "font_weight": null + }, + "punctuation.bracket": { + "color": "#E8F0F3", + "font_style": null, + "font_weight": null + }, + "punctuation.delimiter": { + "color": "#E8F0F3", + "font_style": null, + "font_weight": null + }, + "punctuation.list_marker": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "punctuation.special": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "string": { + "color": "#9DD99A", + "font_style": null, + "font_weight": null + }, + "string.escape": { + "color": "#A1E9DE", + "font_style": null, + "font_weight": null + }, + "string.regex": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "string.special": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": null + }, + "string.special.symbol": { + "color": "#F37C7C", + "font_style": null, + "font_weight": null + }, + "tag": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": null + }, + "text.literal": { + "color": "#9DD99A", + "font_style": null, + "font_weight": null + }, + "title": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": 700 + }, + "type": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#7BB8FF", + "font_style": null, + "font_weight": null + }, + "type.interface": { + "color": "#5DA6EA", + "font_style": "italic", + "font_weight": null + }, + "variable": { + "color": "#E8F0F3", + "font_style": null, + "font_weight": null + }, + "variable.builtin": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "variable.member": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#B8E7E9", + "font_style": null, + "font_weight": null + }, + "variant": { + "color": "#5DA6EA", + "font_style": null, + "font_weight": null + } + } + } + } + ] +}