diff --git a/README.md b/README.md
index f8ba765..847771d 100644
--- a/README.md
+++ b/README.md
@@ -59,6 +59,7 @@ colorscheme rosebones " Rosé Pine flavor - https://rosepinetheme.com
colorscheme forestbones " Everforest flavor - https://github.com/sainnhe/everforest
colorscheme nordbones " Nord flavor - https://www.nordtheme.com/docs/colors-and-palettes
colorscheme tokyobones " Tokyo Night flavor - https://github.com/enkia/tokyo-night-vscode-theme#color-palette
+colorscheme duckbones " Spaceduck flavor - https://pineapplegiant.github.io/spaceduck
```
## [Configuration and other documentations](doc/zenbones.md)
diff --git a/colors/duckbones.lua b/colors/duckbones.lua
new file mode 100644
index 0000000..04b938b
--- /dev/null
+++ b/colors/duckbones.lua
@@ -0,0 +1,12 @@
+if vim.g.colors_name then
+ vim.api.nvim_command "highlight clear"
+end
+
+vim.g.colors_name = "duckbones"
+vim.opt.background = "dark"
+
+package.loaded["duckbones"] = nil
+require "lush"(require "duckbones", { force_clean = false })
+
+local p = require("duckbones.palette").dark
+require("zenbones.term").apply_colors(p)
diff --git a/doc/showcase.md b/doc/showcase.md
index 81f389c..1772bdf 100644
--- a/doc/showcase.md
+++ b/doc/showcase.md
@@ -32,3 +32,7 @@
+
+## Duckbones
+
+
diff --git a/doc/zenbones.md b/doc/zenbones.md
index 20d79e8..1f88c9b 100644
--- a/doc/zenbones.md
+++ b/doc/zenbones.md
@@ -21,6 +21,7 @@ colorscheme rosebones " Rosé Pine flavor - https://rosepinetheme.com
colorscheme forestbones " Everforest flavor - https://github.com/sainnhe/everforest
colorscheme nordbones " Nord flavor - https://www.nordtheme.com/docs/colors-and-palettes
colorscheme tokyobones " Tokyo Night flavor - https://github.com/enkia/tokyo-night-vscode-theme#color-palette
+colorscheme duckbones " Spaceduck flavor - https://pineapplegiant.github.io/spaceduck
```
It works pretty much the same as the first one but pretty handy when extending
diff --git a/lua/duckbones/init.lua b/lua/duckbones/init.lua
new file mode 100644
index 0000000..22a688b
--- /dev/null
+++ b/lua/duckbones/init.lua
@@ -0,0 +1,17 @@
+local lush = require "lush"
+local generator = require "zenbones.specs"
+local p = require("duckbones.palette").dark
+
+local specs = generator.generate(p, "dark", generator.get_global_config("duckbones", "dark"))
+
+return lush.extends({ specs }).with(function()
+ ---@diagnostic disable: undefined-global
+ -- selene: allow(undefined_variable)
+ return {
+ Statement { specs.Statement, fg = p.blossom },
+ Special { fg = p.leaf },
+ PreProc { fg = p.sky },
+ }
+ -- selene: deny(undefined_variable)
+ ---@diagnostic enable: undefined-global
+end)
diff --git a/lua/duckbones/palette.lua b/lua/duckbones/palette.lua
new file mode 100644
index 0000000..d61c2d1
--- /dev/null
+++ b/lua/duckbones/palette.lua
@@ -0,0 +1,19 @@
+local util = require "zenbones.util"
+local lush = require "lush"
+local hsluv = lush.hsluv
+
+local M = {}
+
+M.dark = util.palette_extend {
+ bg = hsluv "#0f111b",
+ fg = hsluv "#ecf0c1",
+ rose = hsluv "#e33400",
+ leaf = hsluv "#5ccc96",
+ wood = hsluv "#e39400",
+ water = hsluv "#00a3cc",
+ blossom = hsluv "#7a5ccc",
+ blossom1 = hsluv "#b3a1e6",
+ sky = hsluv "#00a3cc",
+}
+
+return M