# Theme based on https://github.com/rebelot/kanagawa.nvim
let
  inkBlack = "#090618";
  sumiInk0 = "#16161D";
  sumiInk1b = "#181820";
  sumiInk1 = "#1F1F28";
  sumiInk2 = "#2A2A37";
  sumiInk3 = "#363646";
  sumiInk4 = "#54546D";

  waveBlue1 = "#223249";
  waveBlue2 = "#2D4F67";

  winterGreen = "#2B3328";
  winterYellow = "#49443C";
  winterRed = "#43242B";
  winterBlue = "#252535";
  autumnGreen = "#76946A";
  autumnRed = "#C34043";
  autumnYellow = "#DCA561";

  samuraiRed = "#E82424";
  roninYellow = "#FF9E3B";
  waveAqua1 = "#6A9589";
  dragonBlue = "#658594";

  oldWhite = "#C8C093";
  fujiWhite = "#DCD7BA";
  fujiGray = "#727169";
  springViolet1 = "#938AA9";

  oniViolet = "#957FB8";
  crystalBlue = "#7E9CD8";
  springViolet2 = "#9CABCA";
  springBlue = "#7FB4CA";
  lightBlue = "#A3D4D5";
  waveAqua2 = "#7AA89F";

  springGreen = "#98BB6C";
  boatYellow1 = "#938056";
  boatYellow2 = "#C0A36E";
  carpYellow = "#E6C384";

  sakuraPink = "#D27E99";
  waveRed = "#E46876";
  peachRed = "#FF5D62";
  surimiOrange = "#FFA066";
  katanaGray = "#717C7C";
in {
  primary = {
    background = sumiInk1;
    foreground = fujiWhite;
  };
  # Selection etc.
  secondary = {
    background = waveBlue2;
    foreground = oldWhite;
  };

  dark = {
    black = inkBlack;
    red = autumnRed;
    green = autumnGreen;
    yellow = boatYellow2;
    blue = crystalBlue;
    magenta = oniViolet;
    cyan = waveAqua1;
    white = oldWhite;

    # Extra colors
    orange = peachRed;
    gray = sumiInk1b;
  };
  bright = {
    black = fujiGray;
    red = samuraiRed;
    green = springGreen;
    yellow = carpYellow;
    blue = springBlue;
    magenta = springViolet1;
    cyan = waveAqua2;
    white = fujiWhite;

    # Extra colors
    orange = surimiOrange;
    gray = sumiInk2;
  };

  # Extra terminal colors besides the default 16
  extra = {
    idx16 = surimiOrange;
    idx17 = peachRed;
  };
}