From 1c5082397e7545583611539b3bcfd9671b63169b Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 9 Apr 2024 00:39:34 +0200 Subject: [PATCH] Initial commit --- .gitignore | 1 + default.nix | 10 + flake.lock | 26 ++ flake.nix | 52 +++ module.nix | 36 ++ theme-monokai.less | 832 +++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 957 insertions(+) create mode 100644 .gitignore create mode 100644 default.nix create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 module.nix create mode 100644 theme-monokai.less diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2be92b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..0447657 --- /dev/null +++ b/default.nix @@ -0,0 +1,10 @@ +{ runCommand +, lessc +}: + +runCommand "gitea-monokai-theme" { + buildInputs = [ lessc ]; +} '' + mkdir $out + lessc ${./theme-monokai.less} $out/share/gitea/custom/public/assets/css/theme-monokai.css +'' diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..4966d14 --- /dev/null +++ b/flake.lock @@ -0,0 +1,26 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1712437997, + "narHash": "sha256-g0whLLwRvgO2FsyhY8fNk+TWenS3jg5UdlWL4uqgFeo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e38d7cb66ea4f7a0eb6681920615dfcc30fc2920", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-23.11", + "type": "indirect" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..608d4f4 --- /dev/null +++ b/flake.nix @@ -0,0 +1,52 @@ +{ + inputs = { + nixpkgs.url = "nixpkgs/nixos-23.11"; + }; + + outputs = { self, nixpkgs }: + let + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + forAllSystems = f: nixpkgs.lib.genAttrs systems (system: let + pkgs = nixpkgs.legacyPackages.${system}; + in f system pkgs); + in { + packages = forAllSystems (system: pkgs: { + default = self.packages.${system}.gitea-theme-monokai; + gitea-theme-monokai = pkgs.callPackage ./default.nix { }; + + test-machine = let + system = "x86_64-linux"; + in (nixpkgs.lib.nixosSystem { + inherit system; + + pkgs = import nixpkgs { + inherit system; + overlays = [ self.overlays.default ]; + }; + + modules = [ + self.nixosModules.default + { + system.stateVersion = "23.11"; + boot.isContainer = true; + } + { + services.gitea.enable = true; + services.gitea-themes.monokai.enable = true; + } + ]; + }).config.system.build.toplevel; + }); + + overlays.default = final: prev: { + inherit (self.packages.${final.system}) gitea-theme-monokai; + }; + + nixosModules.default = ./module.nix; + }; +} diff --git a/module.nix b/module.nix new file mode 100644 index 0000000..6dca74a --- /dev/null +++ b/module.nix @@ -0,0 +1,36 @@ +{ config, pkgs, lib, ... }: +let + cfg = config.services.gitea-themes.monokai; + giteaCfg = config.services.gitea; +in +{ + options.services.gitea-themes.monokai = { + enable = lib.mkEnableOption "monokai theme for gitea"; + package = lib.mkPackageOption pkgs "gitea-theme-monokai" { }; + }; + + config = lib.mkIf (cfg.enable && giteaCfg.enable) { + services.gitea.settings.ui.THEMES = lib.strings.concatStringsSep "," [ + "gitea" + "arc-green" + "monokai" + ]; + + systemd.services.install-gitea-theme-monokai = { + wantedBy = [ "gitea.service" ]; + requiredBy = [ "gitea.service" ]; + + serviceConfig = { + Type = "oneshot"; + User = giteaCfg.user; + Group = giteaCfg.group; + }; + script = '' + mkdir -p "${giteaCfg.customDir}/public/assets/css" + if ! [ -f "${giteaCfg.customDir}/public/assets/css/theme-monokai.css" ]; then + ln -s "${cfg.package}/share/gitea/public/assets/css/theme-monokai.css" "${giteaCfg.customDir}/public/assets/css/theme-monokai.css" + fi + ''; + }; + }; +} diff --git a/theme-monokai.less b/theme-monokai.less new file mode 100644 index 0000000..e79b7b7 --- /dev/null +++ b/theme-monokai.less @@ -0,0 +1,832 @@ +// This is only a rough approximation, and needs a lot of polishing. + +// 'mk' is a prefix 'for monokai' + +@mk-bg-dark: #1e1f1c; + +@mk-bg0: #272820; +@mk-bg1: #3e3d32; +@mk-bg2: #75715e; + +@mk-fg0: #f8f8f2; +@mk-fg1: #cfcfc2; + +@mk-red: #f92672; +@mk-green: #a6e22e; +@mk-blue: #66d9ef; +@mk-violet: #ae81ff; +@mk-cyan: #a1efe4; +@mk-magenta: #fd5ff0; +@mk-yellow: #e6db74; + + +// Extra additions +@mk-orange: #fd971f; +@mk-forest-green: #2d693b; +@mk-success-green: #21ba45; +@mk-error-red: #ff4433; + +@primary: @mk-green; + +/* @import "../chroma/dark.less"; */ +// Code higlighting colors + +.chroma .hl { background-color: #3f424d; } /* LineHighlight */ +.chroma .lnt { color: @mk-fg1; } /* LineNumbersTable */ +.chroma .ln { color: @mk-fg1; } /* LineNumbers */ +.chroma .k { color: @mk-red; } /* Keyword */ +.chroma .kc { color: @mk-red; } /* KeywordConstant */ +.chroma .kd { color: @mk-red; } /* KeywordDeclaration */ +.chroma .kn { color: @mk-orange; } /* KeywordNamespace */ +.chroma .kp { color: @mk-red; } /* KeywordPseudo */ +.chroma .kr { color: @mk-red; } /* KeywordReserved */ +.chroma .kt { color: @mk-blue; } /* KeywordType */ +.chroma .n { color: @mk-green; } /* Generic Name */ +.chroma .na { color: @mk-fg0; } /* NameAttribute */ +.chroma .nb { color: @mk-red; } /* NameBuiltin */ +.chroma .bp { color: @mk-red; } /* NameBuiltinPseudo */ +.chroma .nc { color: @mk-blue; } /* NameClass */ +.chroma .no { color: @mk-violet; } /* NameConstant */ +.chroma .nd { color: @mk-violet; } /* NameDecorator */ +.chroma .ni { color: @mk-violet; } /* NameEntity */ +.chroma .ne { color: @mk-violet; } /* NameException */ +.chroma .nf { color: @mk-green; } /* NameFunction */ +.chroma .nl { color: @mk-orange; } /* NameLabel */ +.chroma .nn { color: @mk-cyan; } /* NameNamespace */ +.chroma .nx { color: @mk-blue; } /* NameOther */ +.chroma .nt { color: @mk-red; } /* NameTag */ +.chroma .nv { color: @mk-fg0; } /* NameVariable */ +.chroma .vc { color: @mk-fg0; } /* NameVariableClass */ +.chroma .vg { color: @mk-fg0; } /* NameVariableGlobal */ +.chroma .vi { color: @mk-fg0; } /* NameVariableInstance */ +.chroma .s { color: @mk-yellow; } /* LiteralString */ +.chroma .sa { color: @mk-yellow; } /* LiteralStringAffix */ +.chroma .sb { color: @mk-yellow; } /* LiteralStringBacktick */ +.chroma .sc { color: @mk-yellow; } /* LiteralStringChar */ +.chroma .dl { color: @mk-yellow; } /* LiteralStringDelimiter */ +.chroma .sd { color: @mk-yellow; } /* LiteralStringDoc */ +.chroma .s2 { color: @mk-yellow; } /* LiteralStringDouble */ +.chroma .se { color: @mk-orange; } /* LiteralStringEscape */ +.chroma .sh { color: @mk-yellow; } /* LiteralStringHeredoc */ +.chroma .si { color: @mk-yellow; } /* LiteralStringInterpol */ +.chroma .sx { color: @mk-yellow; } /* LiteralStringOther */ +.chroma .sr { color: @mk-orange; } /* LiteralStringRegex */ +.chroma .s1 { color: @mk-yellow; } /* LiteralStringSingle */ +.chroma .ss { color: @mk-yellow; } /* LiteralStringSymbol */ +.chroma .m { color: @mk-cyan; } /* LiteralNumber */ +.chroma .mb { color: @mk-cyan; } /* LiteralNumberBin */ +.chroma .mf { color: @mk-cyan; } /* LiteralNumberFloat */ +.chroma .mh { color: @mk-cyan; } /* LiteralNumberHex */ +.chroma .mi { color: @mk-cyan; } /* LiteralNumberInteger */ +.chroma .il { color: @mk-cyan; } /* LiteralNumberIntegerLong */ +.chroma .mo { color: @mk-cyan; } /* LiteralNumberOct */ +.chroma .o { color: @mk-red; } /* Operator */ +.chroma .ow { color: @mk-red; } /* OperatorWord */ +.chroma .c { color: @mk-bg2; } /* Comment */ +.chroma .ch { color: @mk-bg2; } /* CommentHashbang */ +.chroma .cm { color: @mk-bg2; } /* CommentMultiline */ +.chroma .c1 { color: @mk-bg2; } /* CommentSingle */ +.chroma .cs { color: lighten(@mk-bg2, 10%); } /* CommentSpecial */ +.chroma .cp { color: lighten(@mk-red, 20%); } /* CommentPreproc */ +.chroma .cpf { color: @mk-yellow; } /* CommentPreprocFile */ + +// TODO: +.chroma .gd { color: #fff; background-color: #5f3737; } /* GenericDeleted */ +.chroma .ge { color: #ef5; } /* GenericEmph */ +.chroma .gr { color: #f33; } /* GenericError */ +.chroma .gh { color: #fa1; } /* GenericHeading */ +.chroma .gi { color: #fff; background-color: #3a523a; } /* GenericInserted */ +.chroma .go { color: #888888; } /* GenericOutput */ +.chroma .gp { color: #555555; } /* GenericPrompt */ +.chroma .gu { color: #9daccc; } /* GenericSubheading */ +.chroma .gt { color: #f63; } /* GenericTraceback */ +.chroma .w { color: #bbbbbb; } /* TextWhitespace */ + +/* @import "../codemirror/dark.less"; */ +// what is this? + +.CodeMirror { + &.cm-s-default, + &.cm-s-paper { + .cm-property { + color: #a0cc75; + } + + .cm-header { + color: #9daccc; + } + + .cm-quote { + color: #009900; + } + + .cm-keyword { + color: #cc8a61; + } + + .cm-atom { + color: #ef5e77; + } + + .cm-number { + color: #ff5656; + } + + .cm-def { + color: #e4e4e4; + } + + .cm-variable-2 { + color: #00bdbf; + } + + .cm-variable-3 { + color: #008855; + } + + .cm-comment { + color: #8e9ab3; + } + + .cm-string { + color: #a77272; + } + + .cm-string-2 { + color: #ff5500; + } + + .cm-meta, + .cm-qualifier { + color: #ffb176; + } + + .cm-builtin { + color: #b7c951; + } + + .cm-bracket { + color: #999977; + } + + .cm-tag { + color: #f1d273; + } + + .cm-attribute { + color: #bfcc70; + } + + .cm-hr { + color: #999999; + } + + .cm-url { + color: #c5cfd0; + } + + .cm-link { + color: #d8c792; + } + + .cm-error { + color: #dbdbeb; + } + } +} + +/* theme */ + +:root { + --is-dark-theme: true; + --color-primary: @primary; + --color-primary-dark-1: lighten(@primary, 10%); + --color-primary-dark-2: lighten(@primary, 15%); + --color-primary-dark-3: lighten(@primary, 20%); + --color-primary-dark-4: lighten(@primary, 25%); + --color-primary-dark-5: lighten(@primary, 40%); + --color-primary-dark-6: lighten(@primary, 60%); + --color-primary-dark-7: lighten(@primary, 80%); + --color-primary-light-1: darken(@primary, 10%); + --color-primary-light-2: darken(@primary, 15%); + --color-primary-light-3: darken(@primary, 20%); + --color-primary-light-4: darken(@primary, 25%); + --color-primary-light-5: darken(@primary, 40%); + --color-primary-light-6: darken(@primary, 60%); + --color-primary-light-7: darken(@primary, 80%); + --color-primary-alpha-10: fade(@primary, 10%); + --color-primary-alpha-20: fade(@primary, 20%); + --color-primary-alpha-30: fade(@primary, 30%); + --color-primary-alpha-40: fade(@primary, 40%); + --color-primary-alpha-50: fade(@primary, 50%); + --color-primary-alpha-60: fade(@primary, 60%); + --color-primary-alpha-70: fade(@primary, 70%); + --color-primary-alpha-80: fade(@primary, 80%); + --color-primary-alpha-90: fade(@primary, 90%); + --color-secondary: #454a57; + --color-secondary-dark-1: #505665; + --color-secondary-dark-2: #5b6273; + --color-secondary-dark-3: #71798e; + --color-secondary-dark-4: #7f8699; + --color-secondary-dark-5: #8c93a4; + --color-secondary-dark-6: #9aa0af; + --color-secondary-dark-7: #a8adba; + --color-secondary-dark-8: #b6bac5; + --color-secondary-dark-9: #c4c7d0; + --color-secondary-dark-10: #d2d4db; + --color-secondary-dark-11: #dfe1e6; + --color-secondary-dark-12: #edeef1; + --color-secondary-dark-13: #fbfbfc; + --color-secondary-light-1: #373b46; + --color-secondary-light-2: #292c34; + --color-secondary-light-3: #1c1e23; + --color-secondary-light-4: #0e0f11; + --color-secondary-alpha-10: #454a5719; + --color-secondary-alpha-20: #454a5733; + --color-secondary-alpha-30: #454a574b; + --color-secondary-alpha-40: #454a5766; + --color-secondary-alpha-50: #454a5780; + --color-secondary-alpha-60: #454a5799; + --color-secondary-alpha-70: #454a57b3; + --color-secondary-alpha-80: #454a57cc; + --color-secondary-alpha-90: #454a57e1; + /* colors */ + --color-red: #db2828; + --color-orange: #f2711c; + --color-yellow: #fbbd08; + --color-olive: #b5cc18; + --color-green: #21ba45; + --color-teal: #00b5ad; + --color-blue: #2185d0; + --color-violet: #6435c9; + --color-purple: #a333c8; + --color-pink: #e03997; + --color-brown: #a5673f; + --color-grey: #767a85; + --color-black: #1e222e; + --color-gold: #a1882b; + --color-white: #ffffff; + + --color-diff-removed-word-bg: @mk-red; + --color-diff-added-word-bg: @mk-green; + --color-diff-removed-row-bg: #3c2626; + --color-diff-moved-row-bg: #818044; + --color-diff-added-row-bg: #283e2d; + --color-diff-removed-row-border: #634343; + --color-diff-moved-row-border: #bcca6f; + --color-diff-added-row-border: #314a37; + --color-diff-inactive: #353846; + + --color-error-border: darken(@mk-error-red, 20%); + --color-error-bg: @mk-bg-dark; + --color-error-text: @mk-error-red; + --color-success-border: darken(@mk-success-green, 20%); + --color-success-bg: @mk-bg-dark; + --color-success-text: @mk-success-green; + --color-warning-border: darken(@mk-orange, 20%); + --color-warning-bg: @mk-bg-dark; + --color-warning-text: @mk-orange; + --color-info-border: darken(@mk-blue, 20%); + --color-info-bg: @mk-bg-dark; + --color-info-text: @mk-blue; + /* target-based colors */ + --color-body: @mk-bg0; + --color-box-header: @mk-bg-dark; + --color-box-body: @mk-bg-dark; + --color-text-dark: lighten(@mk-fg0, 10%); + --color-text: @mk-fg0; + --color-text-light: @mk-fg1; + --color-text-light-2: @mk-fg1; + --color-text-light-3: @mk-fg1; + --color-footer: @mk-bg1; + --color-timeline: #4c525e; + --color-input-text: @mk-fg1; + --color-input-background: @mk-bg-dark; + --color-input-border: @mk-bg1; + --color-input-border-hover: @mk-bg2; + --color-navbar: @mk-bg1; + --color-navbar-transparent: fade(@mk-bg1, 0%); + --color-light: #00000028; + --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled))); + --color-light-border: #ffffff28; + --color-hover: #ffffff10; + --color-active: #ffffff16; + --color-menu: @mk-bg-dark; + --color-card: @mk-bg1; + --color-markup-table-row: lighten(@mk-bg-dark, 5%); + --color-markup-code-block: @mk-bg1; + --color-button: #353846; + --color-code-bg: @mk-bg-dark; + --color-code-sidebar-bg: #2e323e; + --color-shadow: #00000060; + --color-secondary-bg: #2a2e3a; + --color-text-focus: #fff; + --color-expand-button: #3c404d; + --color-placeholder-text: #6a737d; + --color-editor-line-highlight: var(--color-primary-light-5); + --color-project-board-bg: var(--color-secondary-light-2); + --color-caret: var(--color-text); /* should ideally be --color-text-dark, see #15651 */ + --color-reaction-bg: #ffffff12; + --color-reaction-active-bg: var(--color-primary-alpha-40); +} + +::-webkit-calendar-picker-indicator { + filter: invert(.8); +} + +.markup { + & h1, + & h2 { + border-bottom: 1px solid @mk-bg2; + } + + & table { + & tr + { + border-top: 1px solid @mk-bg2; + } + & td, + & th { + border: 1px solid @mk-bg2 !important; + } + } +} + +.ui { + &.card { + background: var(--color-card); + border: 1px solid @mk-bg1; + + & > .content { + border-color: @mk-bg2; + } + + & > .extra { + border-top-color: @mk-bg2; + } + } + + &.dropdown .menu, + &.menu { + background: var(--color-menu); + border: 1px solid @mk-bg1; + } + + &.segment, + &.segments, + &.attached.segment, + &.attached.header { + background: var(--color-box-body); + color: var(--color-text); + border-color: @mk-bg1; + } + + &.repository.list.item:not(:first-child) { + border-top: 1px solid @mk-bg2; + } + + &.divider { + border-bottom-color: @mk-bg2; + } + + &.button { + background-color: @mk-bg1; + } + + &.primary { + &.button, + &.buttons .button { + color: black; + background-color: @primary; + } + + &.button:hover, + &.buttons .button:hover { + color: black; + background-color: lighten(@primary, 15%); + } + } + + &.green { + &.button, + &.buttons .button { + color: black; + background-color: @mk-success-green; + } + + &.button:hover, + &.buttons .button:hover { + color: black; + background-color: lighten(@mk-success-green, 15%); + } + } + + &.blue { + &.button, + &.buttons .button { + color: black; + background-color: @mk-blue; + } + + &.button:hover, + &.buttons .button:hover { + color: black; + background-color: lighten(@mk-blue, 15%); + } + } + + &.red { + &.button, + &.buttons .button { + color: white; + background-color: @mk-error-red; + } + + &.button:hover, + &.buttons .button:hover { + color: white; + background-color: darken(@mk-error-red, 15%); + } + } + + &.basic { + &.primary { + &.button, + &.buttons .button { + color: black !important; + background-color: @primary !important; + box-shadow: inset 0 0 0 1px @primary !important; + } + + &.button:hover, + &.buttons .button:hover { + color: black !important; + background-color: lighten(@primary, 15%) !important; + } + } + + &.green { + &.button, + &.buttons .button { + color: black !important; + background-color: @mk-success-green !important; + box-shadow: inset 0 0 0 1px @mk-success-green !important; + } + + &.button:hover, + &.buttons .button:hover { + color: black !important; + background-color: lighten(@mk-success-green, 15%) !important; + } + } + + &.blue { + &.button, + &.buttons .button { + color: black !important; + background-color: @mk-blue !important; + box-shadow: inset 0 0 0 1px @mk-blue !important; + } + + &.button:hover, + &.buttons .button:hover { + color: black !important; + background-color: lighten(@mk-blue, 15%) !important; + } + } + + &.red { + &.button, + &.buttons .button { + color: white; + background-color: @mk-error-red; + } + + &.button:hover, + &.buttons .button:hover { + color: white; + background-color: darken(@mk-error-red, 15%); + } + } + } +} + +.ui.horizontal.segments > .segment { + background-color: @mk-bg-dark; + border-color: @mk-bg1; +} + +.ui.green.progress .bar { + background-color: #668844; +} + +.ui.progress.success .bar { + background-color: #7b9e57 !important; +} + +.repository { + &.file.list #repo-files-table tr { + background: @mk-bg-dark; + &:hover { + background-color: lighten(@mk-bg-dark, 20%) !important; + } + } + + & .navbar .active.item, + & .navbar .active.item:hover { + border-color: transparent !important; + } + + & .diff-stats li { + border-color: var(--color-secondary); + } + + &.release #release-list { + border-top: 1px solid @mk-bg2; + & > li .detail .dot { + background-color: #505667; + border-color: #383c4a; + } + } + + & .repo-header .ui.huge.breadcrumb.repo-title .repo-header-icon .avatar { + color: #2a2e3a; + } + + &.labels .ui.basic.black.label { + background-color: #bbbbbb !important; + } +} + +.following.bar.light { + background: @mk-bg1; + border-color: var(--color-secondary-alpha-40); +} + +.following.bar .top.menu a.item:hover { + color: #fff; +} + +.feeds .list ul li.private { + background: #353945; +} + +.ui.red.label, +.ui.red.labels .label { + background-color: #7d3434 !important; + border-color: #8a2121 !important; +} + +.ui.yellow.label, +.ui.yellow.labels .label { + border-color: #664d02 !important; + background-color: #936e00 !important; +} + +.ui.accordion .title:not(.ui) { + color: #dbdbdb; +} + +.ui.green.label, +.ui.green.labels .label, +.ui.basic.green.label { + background-color: #2d693b !important; + border-color: #2d693b !important; +} + +.ui.green.labels a.label:hover, +.ui.basic.green.labels a.label:hover, +a.ui.ui.ui.green.label:hover, +a.ui.basic.green.label:hover { + background-color: #3d794b !important; + border-color: #3d794b !important; + color: #fff !important; +} + +// .ui.divider:not(.vertical):not(.horizontal) { +// border-bottom-color: var(--color-secondary); +// border-top-color: transparent; +// } + +.form .help { + color: @mk-fg1; +} + +.ui .text.light.grey { + color: #7f8699 !important; +} + +.ui.form .fields.error .field textarea, +.ui.form .fields.error .field select, +.ui.form .fields.error .field input:not([type]), +.ui.form .fields.error .field input[type="date"], +.ui.form .fields.error .field input[type="datetime-local"], +.ui.form .fields.error .field input[type="email"], +.ui.form .fields.error .field input[type="number"], +.ui.form .fields.error .field input[type="password"], +.ui.form .fields.error .field input[type="search"], +.ui.form .fields.error .field input[type="tel"], +.ui.form .fields.error .field input[type="time"], +.ui.form .fields.error .field input[type="text"], +.ui.form .fields.error .field input[type="file"], +.ui.form .fields.error .field input[type="url"], +.ui.form .field.error textarea, +.ui.form .field.error select, +.ui.form .field.error input:not([type]), +.ui.form .field.error input[type="date"], +.ui.form .field.error input[type="datetime-local"], +.ui.form .field.error input[type="email"], +.ui.form .field.error input[type="number"], +.ui.form .field.error input[type="password"], +.ui.form .field.error input[type="search"], +.ui.form .field.error input[type="tel"], +.ui.form .field.error input[type="time"], +.ui.form .field.error input[type="text"], +.ui.form .field.error input[type="file"], +.ui.form .field.error input[type="url"] { + background-color: @mk-error-red; + border: 1px solid darken(@mk-error-red, 30%); + color: lighten(@mk-error-red, 90%); +} + +.ui.form .field.error select:focus, +.ui.form .field.error input:not([type]):focus, +.ui.form .field.error input[type="date"]:focus, +.ui.form .field.error input[type="datetime-local"]:focus, +.ui.form .field.error input[type="email"]:focus, +.ui.form .field.error input[type="number"]:focus, +.ui.form .field.error input[type="password"]:focus, +.ui.form .field.error input[type="search"]:focus, +.ui.form .field.error input[type="tel"]:focus, +.ui.form .field.error input[type="time"]:focus, +.ui.form .field.error input[type="text"]:focus, +.ui.form .field.error input[type="file"]:focus, +.ui.form .field.error input[type="url"]:focus { + background-color: #522; + border: 1px solid #a04141; + color: #f9cbcb; +} + +.ui.search > .results { + background: @mk-bg-dark; + // border-color: @mk-bg0-dark; +} + +.ui.search > .results .result:hover, +.ui.category.search > .results .category .result:hover { + background: @mk-bg-dark; +} + +.ui.search > .results .result .title { + color: @mk-fg0; +} + +.ui.table { + border-color: @mk-bg1; + + thead > tr > th { + background: @mk-bg-dark; + color: @mk-fg0 !important; + } +} + + +.overflow.menu .items .item { + color: #9d9d9d; +} + +.overflow.menu .items .item:hover { + color: #dbdbdb; +} + +.ui.list > .item > .content { + color: var(--color-secondary-dark-6) !important; +} + + +.tag-code, +.tag-code td { + background: #353945 !important; + +} +.tag-code td.lines-num { + background-color: #3a3e4c !important; +} + +.tag-code td.lines-type-marker, +td.blob-hunk { + color: #dbdbdb !important; +} + +.ui.list .list > .item .header, +.ui.list > .item .header { + color: #dedede; +} + +.ui.list .list > .item .description, +.ui.list > .item .description { + color: var(--color-secondary-dark-6); +} + +.lines-num { + color: var(--color-secondary-dark-6) !important; + border-color: var(--color-secondary) !important; +} + +td.blob-excerpt { + background-color: rgba(0, 0, 0, .15); +} + +.lines-code.active, +.lines-code .active { + background: #534d1b !important; +} + +.ui.ui.ui.ui.table tr.active, +.ui.ui.table td.active { + color: #dbdbdb; +} + +.ui.active.label { + background: #393d4a; + border-color: #393d4a; + color: #dbdbdb; +} + +.ui.header .sub.header { + color: var(--color-secondary-dark-6); +} + +.ui.dividing.header { + border-bottom: 1px solid var(--color-secondary); +} + +.ui.modal > .header { + background: var(--color-secondary); + color: #dbdbdb; +} + +.ui.modal > .actions { + background: var(--color-secondary); + border-color: var(--color-secondary); +} + +.ui.modal > .content { + background: #383c4a; +} + +.minicolors-panel { + background: var(--color-secondary) !important; + border-color: #6a737d !important; +} + +/* invert emojis that are hard to read otherwise */ +.emoji[aria-label="check mark"], +.emoji[aria-label="currency exchange"], +.emoji[aria-label="TOP arrow"], +.emoji[aria-label="END arrow"], +.emoji[aria-label="ON! arrow"], +.emoji[aria-label="SOON arrow"], +.emoji[aria-label="heavy dollar sign"], +.emoji[aria-label="copyright"], +.emoji[aria-label="registered"], +.emoji[aria-label="trade mark"], +.emoji[aria-label="multiply"], +.emoji[aria-label="plus"], +.emoji[aria-label="minus"], +.emoji[aria-label="divide"], +.emoji[aria-label="curly loop"], +.emoji[aria-label="double curly loop"], +.emoji[aria-label="wavy dash"], +.emoji[aria-label="paw prints"], +.emoji[aria-label="musical note"], +.emoji[aria-label="musical notes"] { + filter: invert(100%) hue-rotate(180deg); +} + +.edit-diff > div > .ui.table { + border-left-color: var(--color-secondary) !important; + border-right-color: var(--color-secondary) !important; +} + +footer .container .links > * { + border-left-color: #888; +} + +.tribute-container { + box-shadow: 0 .25rem .5rem rgba(0, 0, 0, .6); +} + + +img[src$="/img/matrix.svg"] { + filter: invert(80%); +} + +.is-loading::after { + border-color: #4a4c58 #4a4c58 #d7d7da #d7d7da; +} + +.markup-block-error { + border: 1px solid rgba(121, 71, 66, .5) !important; + border-bottom: none !important; +}