From f1d6a1fffc9d9712f0973b51c850f10d0872a7ea Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Thu, 5 Jul 2018 17:25:04 -0400 Subject: [PATCH] Add the ability to have built in themes in Gitea (#4198) This makes it easier for user who want to theme but don't have the ability to know how to customize templates all that is required is a change in a config option The reason why I chose the DEFAULT_THEME as variable, as perhaps in the future we will allow users to chose their theme whon logged in just like we do with languages --- Makefile | 6 +- custom/conf/app.ini.sample | 2 + .../doc/advanced/config-cheat-sheet.en-us.md | 1 + .../doc/advanced/customizing-gitea.en-us.md | 4 + modules/setting/setting.go | 2 + modules/templates/helper.go | 3 + package-lock.json | 148 ++-- public/css/theme-arc-green.css | 1 + public/less/themes/_base.less | 3 + public/less/themes/arc-green.less | 751 ++++++++++++++++++ templates/base/head.tmpl | 3 + 11 files changed, 849 insertions(+), 75 deletions(-) create mode 100644 public/css/theme-arc-green.css create mode 100644 public/less/themes/_base.less create mode 100644 public/less/themes/arc-green.less diff --git a/Makefile b/Makefile index c052ebbb0..a4ca20e08 100644 --- a/Makefile +++ b/Makefile @@ -55,6 +55,9 @@ else endif endif +# $(call strip-suffix,filename) +strip-suffix = $(firstword $(subst ., ,$(1))) + .PHONY: all all: build @@ -301,7 +304,7 @@ public/js/index.js: $(JAVASCRIPTS) .PHONY: stylesheets-check stylesheets-check: generate-stylesheets - @diff=$$(git diff public/css/index.css); \ + @diff=$$(git diff public/css/*); \ if [ -n "$$diff" ]; then \ echo "Please run 'make generate-stylesheets' and commit the result:"; \ echo "$${diff}"; \ @@ -311,6 +314,7 @@ stylesheets-check: generate-stylesheets .PHONY: generate-stylesheets generate-stylesheets: node_modules/.bin/lessc --clean-css public/less/index.less public/css/index.css + $(foreach file, $(filter-out public/less/themes/_base.less, $(wildcard public/less/themes/*)),node_modules/.bin/lessc --clean-css public/less/themes/$(notdir $(file)) > public/css/theme-$(notdir $(call strip-suffix,$(file))).css;) .PHONY: swagger-ui swagger-ui: diff --git a/custom/conf/app.ini.sample b/custom/conf/app.ini.sample index 931a525d7..c4dd741ca 100644 --- a/custom/conf/app.ini.sample +++ b/custom/conf/app.ini.sample @@ -75,6 +75,8 @@ THEME_COLOR_META_TAG = `#6cc644` MAX_DISPLAY_FILE_SIZE = 8388608 ; Whether the email of the user should be shown in the Explore Users page SHOW_USER_EMAIL = true +; Set the default theme for the Gitea install +DEFAULT_THEME = gitea [ui.admin] ; Number of users that are displayed on one page diff --git a/docs/content/doc/advanced/config-cheat-sheet.en-us.md b/docs/content/doc/advanced/config-cheat-sheet.en-us.md index de4ce6b18..88ebd4053 100644 --- a/docs/content/doc/advanced/config-cheat-sheet.en-us.md +++ b/docs/content/doc/advanced/config-cheat-sheet.en-us.md @@ -68,6 +68,7 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`. - `EXPLORE_PAGING_NUM`: **20**: Number of repositories that are shown in one explore page. - `ISSUE_PAGING_NUM`: **10**: Number of issues that are shown in one page (for all pages that list issues). - `FEED_MAX_COMMIT_NUM`: **5**: Number of maximum commits shown in one activity feed. +- `DEFAULT_THEME`: **gitea**: \[gitea, arc-green\]: Set the default theme for the Gitea install. ### UI - Admin (`ui.admin`) diff --git a/docs/content/doc/advanced/customizing-gitea.en-us.md b/docs/content/doc/advanced/customizing-gitea.en-us.md index 9343b0636..f9a0d0d9f 100644 --- a/docs/content/doc/advanced/customizing-gitea.en-us.md +++ b/docs/content/doc/advanced/customizing-gitea.en-us.md @@ -91,3 +91,7 @@ Apart from `extra_links.tmpl` and `extra_tabs.tmpl`, there are other useful temp ## Customizing gitignores, labels, licenses, locales, and readmes. Place custom files in corresponding sub-folder under `custom/options`. + +## Customizing the look of Gitea + +Gitea has two built-in themes, the default theme `gitea`, and a dark theme `arc-green`. To change the look of your Gitea install change the value of `DEFAULT_THEME` in the [ui](https://docs.gitea.io/en-us/config-cheat-sheet/#ui-ui) section of `app.ini` to another one of the available options. diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 5230307ca..410cdfbfb 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -280,6 +280,7 @@ var ( ThemeColorMetaTag string MaxDisplayFileSize int64 ShowUserEmail bool + DefaultTheme string Admin struct { UserPagingNum int @@ -303,6 +304,7 @@ var ( ReactionMaxUserNum: 10, ThemeColorMetaTag: `#6cc644`, MaxDisplayFileSize: 8388608, + DefaultTheme: `gitea`, Admin: struct { UserPagingNum int RepoPagingNum int diff --git a/modules/templates/helper.go b/modules/templates/helper.go index b6c835ad4..8e1a79bc5 100644 --- a/modules/templates/helper.go +++ b/modules/templates/helper.go @@ -186,6 +186,9 @@ func NewFuncMap() []template.FuncMap { "ParseDeadline": func(deadline string) []string { return strings.Split(deadline, "|") }, + "DefaultTheme": func() string { + return setting.UI.DefaultTheme + }, }} } diff --git a/package-lock.json b/package-lock.json index 0269b9ace..bb58a82ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "caseless": { @@ -59,8 +59,8 @@ "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", "dev": true, "requires": { - "commander": "2.8.1", - "source-map": "0.4.4" + "commander": "2.8.x", + "source-map": "0.4.x" }, "dependencies": { "source-map": { @@ -69,7 +69,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -87,7 +87,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -96,7 +96,7 @@ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "core-util-is": { @@ -113,7 +113,7 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -138,7 +138,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "errno": { @@ -148,7 +148,7 @@ "dev": true, "optional": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "extend": { @@ -192,7 +192,7 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -294,14 +294,14 @@ "integrity": "sha512-q3SyEnPKbk9zh4l36PGeW2fgynKu+FpbhiUNx/yaiBUQ3V0CbACCgb9FzYWcRgI2DJlP6eI4jc8XPrCTi55YcQ==", "dev": true, "requires": { - "errno": "0.1.7", - "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.85.0", - "source-map": "0.6.1" + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" }, "dependencies": { "ajv": { @@ -311,10 +311,10 @@ "dev": true, "optional": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "assert-plus": { @@ -338,7 +338,7 @@ "dev": true, "optional": true, "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "cryptiles": { @@ -348,7 +348,7 @@ "dev": true, "optional": true, "requires": { - "boom": "5.2.0" + "boom": "5.x.x" }, "dependencies": { "boom": { @@ -358,7 +358,7 @@ "dev": true, "optional": true, "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } } } @@ -370,9 +370,9 @@ "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "har-schema": { @@ -389,8 +389,8 @@ "dev": true, "optional": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "hawk": { @@ -400,10 +400,10 @@ "dev": true, "optional": true, "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" + "boom": "4.x.x", + "cryptiles": "3.x.x", + "hoek": "4.x.x", + "sntp": "2.x.x" } }, "hoek": { @@ -419,9 +419,9 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "performance-now": { @@ -445,28 +445,28 @@ "dev": true, "optional": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "hawk": "~6.0.2", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "stringstream": "~0.0.5", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "sntp": { @@ -476,7 +476,7 @@ "dev": true, "optional": true, "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "source-map": { @@ -494,7 +494,7 @@ "integrity": "sha1-zFeveqM5iVflbezr5jy2DCNClwM=", "dev": true, "requires": { - "clean-css": "3.4.28" + "clean-css": "^3.0.1" } }, "mime": { @@ -516,7 +516,7 @@ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "dev": true, "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "minimist": { @@ -550,7 +550,7 @@ "dev": true, "optional": true, "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "prr": { @@ -580,14 +580,14 @@ "dev": true, "optional": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -613,7 +613,7 @@ "dev": true, "optional": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -623,7 +623,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -647,9 +647,9 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" }, "dependencies": { "assert-plus": { diff --git a/public/css/theme-arc-green.css b/public/css/theme-arc-green.css new file mode 100644 index 000000000..a901c0809 --- /dev/null +++ b/public/css/theme-arc-green.css @@ -0,0 +1 @@ +.hljs{display:block;overflow-x:auto;padding:.5em;background-color:#2b2b2b!important;color:#bababa}.repository.file.list .non-diff-file-content .code-view .lines-code ol,.repository.file.list .non-diff-file-content .code-view .lines-num{background-color:#2b2b2b!important}.hljs-emphasis,.hljs-strong{color:#a8a8a2}.hljs-bullet,.hljs-link,.hljs-literal,.hljs-number,.hljs-quote,.hljs-regexp{color:#6896ba}.hljs-code,.hljs-selector-class{color:#a6e22e}.hljs-emphasis{font-style:italic}.hljs-attribute,.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-variable{color:#cb7832}.hljs-params{color:#b9b9b9}.hljs-string{color:#6a8759}.hljs-addition,.hljs-built_in,.hljs-builtin-name,.hljs-selector-attr,.hljs-selector-id,.hljs-selector-pseudo,.hljs-subst,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-type{color:#e0c46c}.hljs-comment,.hljs-deletion,.hljs-meta{color:#7f7f7f}.repository .ui.segment.sub-menu .list .item a{color:#dbdbdb}.ui.horizontal.segments>.segment{background-color:#383c4a}body{background:#383c4a;color:#9e9e9e}a{color:#87ab63}a:hover{color:#a0cc75}.ui.card>.extra a:not(.ui):hover,.ui.cards>.card>.extra a:not(.ui):hover{color:#a0cc75}.ui.breadcrumb a:hover{color:#a0cc75}.ui.breadcrumb a{color:#87ab63}.repository .metas .ui.list a .text{color:#87ab63}.repository .metas .ui.list a .text:hover{color:#a0cc75}.repository .label.list .item a{color:#87ab63}.repository .label.list .item a:hover{color:#a0cc75}.repository .milestone.list>.item>a{color:#87ab63}.repository .milestone.list>.item>a:hover{color:#a0cc75}.repository.release #release-list{border-top:1px solid #4c505c}.repository .milestone.list>.item .operate>a{color:#87ab63}.repository .milestone.list>.item .operate>a:hover{color:#a0cc75}.ui.green.progress .bar{background-color:#684}.ui.progress.success .bar{background-color:#7b9e57!important}.following.bar.light{background:#2e323e}.ui.secondary.menu .active.item{color:#dbdbdb}.ui.secondary.menu .item{color:#9e9e9e}.following.bar .top.menu a.item:hover{color:#fff}.repository.view.issue .comment-list .comment .content>.bottom.segment a{border:solid 1px #353945;background-color:#353945}.following.bar.light{border-bottom:1px solid #313131}.ui.attached.header{background:#404552;border:1px solid #404552;color:#dbdbdb}.ui.attached.table{border:1px solid #304251;background:#304251}.feeds .list ul li:not(:last-child){border-bottom:1px solid #333640}.feeds .list ul li.private{background:#353945;border:1px solid #333640}.ui.secondary.menu .dropdown.item:hover,.ui.secondary.menu .link.item:hover,.ui.secondary.menu a.item:hover{color:#fff}.ui.menu .ui.dropdown .menu>.item{background:#2c303a!important;color:#9e9e9e!important}.ui.secondary.menu .dropdown.item>.menu,.ui.text.menu .dropdown.item>.menu{border:1px solid #434444}footer{background:#2e323e;border-top:1px solid #313131}.ui.menu .dropdown.item .menu{background:#2c303a}.ui.menu .ui.dropdown .menu>.item:hover,.ui.menu .ui.dropdown .menu>.selected.item{color:#fff!important}.ui.dropdown .menu>.header{color:#dbdbdb}.ui.red.label,.ui.red.labels .label{background-color:#7d3434!important;border-color:#8a2121!important}.ui.menu{background:#404552;border:1px solid #353945}.ui.menu .active.item:hover,.ui.vertical.menu .active.item:hover{color:#dbdbdb;background:#4B5162}.ui.link.menu .item:hover,.ui.menu .dropdown.item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover{color:#dbdbdb;background:#454b5a}.ui.menu .active.item{background:#4B5162;color:#dbdbdb}.ui.input input{background:#404552;border:2px solid #353945;color:#dbdbdb}.ui.input input:focus,.ui.input.focus input{background:#404552;border:2px solid #353945;color:#dbdbdb}.ui.label{color:#dbdbdb;background-color:#404552}.issue.list>.item .title{color:#87ab63}.issue.list>.item .title:hover{color:#a0cc75}.issue.list>.item{border-bottom:1px dashed #475767}.ui.green.label,.ui.green.labels .label{background-color:#2d693b!important;border-color:#2d693b!important}.issue.list>.item .comment{color:#129c92}.ui.basic.button,.ui.basic.buttons .button{color:#797979!important}.ui.basic.red.active.button,.ui.basic.red.buttons .active.button{box-shadow:0 0 0 1px #c75252 inset!important;color:#c75252!important}.ui.basic.button:focus,.ui.basic.button:hover,.ui.basic.buttons .button:focus,.ui.basic.buttons .button:hover{background:0 0!important;color:#dbdbdb!important}.ui.menu .item{background:#404552;color:#9e9e9e}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{color:#626773}.ui.pagination.menu .active.item{color:#dbdbdb;background-color:#609926}.repository .header-wrapper{background-color:#2a2e3a}.ui.tabular.menu .active.item{background:#383c4a;color:#dbdbdb;border-left:1px solid transparent;border-right:1px solid transparent;border-top:none}.ui.tabular.menu .item{color:#9e9e9e}.ui.tabular.menu .item:hover{color:#dbdbdb}.ui.breadcrumb .divider,.ui.header{color:#9e9e9e}.ui.blue.label,.ui.blue.labels .label{background-color:#26577b!important;border-color:#26577b!important}.ui.menu .item>.label{background:#565454}.ui.blue.button,.ui.blue.buttons .button{background-color:#609926}.ui.blue.button:hover,.ui.blue.buttons .button:hover{background-color:#73ad36}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url]{background:#404552;border:2px solid #353945}.ui.form input:not([type]):focus,.ui.form input[type=date]:focus,.ui.form input[type=datetime-local]:focus,.ui.form input[type=email]:focus,.ui.form input[type=number]:focus,.ui.form input[type=password]:focus,.ui.form input[type=search]:focus,.ui.form input[type=tel]:focus,.ui.form input[type=text]:focus,.ui.form input[type=time]:focus,.ui.form input[type=url]:focus{background:#404552;border:2px solid #4b505f;color:#dbdbdb}.ui.action.input:not([class*="left action"]) input:focus{border-right-color:#4b505f!important}.ui.green.button,.ui.green.buttons .button{background-color:#609926}.ui.green.button:hover,.ui.green.buttons .button:hover{background-color:#73ad36}.ui.button{background:#383c4a;border:1px solid #4c505c;color:#dbdbdb}.ui.labeled.button:not([class*="left labeled"])>.label,.ui[class*="left labeled"].button>.button{background:#404552;border:1px solid #4c505c;color:#87ab63}.ui.button:hover{background-color:#404552;color:#dbdbdb}.ui.table thead th{background:#404552;color:#dbdbdb}.repository.file.list #repo-files-table tr:hover{background-color:#393d4a}.ui.table{color:#a5a5a5!important;border:1px solid #4c505c;background:#353945}.ui.table tbody tr{border-bottom:1px solid #333640;background:#2a2e3a}.ui .text.grey{color:#808084!important}.ui.attached.table.segment{background:#353945;color:#dbdbdb!important}.markdown:not(code) h2{border-bottom:1px solid #304251}.hljs,.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#9daccc}.markdown:not(code) .highlight pre,.markdown:not(code) pre{background-color:#2a2e3a;border:1px solid #404552}.ui.dropdown .menu{background:#2c303a}.ui.dropdown .menu>.message:not(.ui){color:#636363}.ui.input{color:#dbdbdb}.overflow.menu .items .item{color:#9d9d9d}.overflow.menu .items .item:hover{color:#dbdbdb}.ui.segment{background:#353945;color:#9e9e9e!important;border:1px solid #404552}.ui.active.button:active,.ui.button:active,.ui.button:focus{background-color:#2e3e4e;color:#dbdbdb}.ui.dropdown .menu .selected.item,.ui.dropdown.selected{color:#dbdbdb}.ui.dropdown .menu>.item:hover{color:#dbdbdb}.ui.dropdown .menu>.item{color:#9e9e9e}.ui.attached.segment{border:1px solid #404552}.repository.view.issue .comment-list .comment .content>.bottom.segment{background:#353945}.repository.view.issue .comment-list .comment .content .header{color:#dbdbdb;background-color:#404552;border-bottom:1px solid #353944}.ui .text.grey a{color:#b3b3b3!important}.ui.comments .comment .actions a{color:#dbdbdb}.repository.view.issue .comment-list .comment .content .header:after{border-right-color:#404552}.repository.new.issue .comment.form .content:after{border-right-color:#353945}.repository.view.issue .comment-list .comment .content .header:before{border-right-color:#404552}.repository.new.issue .comment.form .content:before{border-right-color:#353945}.repository.view.issue .comment-list:before{background-color:#313c47}.repository .comment.form .content .form:after{border-right-color:#313c47}.repository .comment.form .content .form:before{border-right-color:#313c47}.ui .text.grey a{color:#dbdbdb!important}.ui .text.grey a:hover{color:#dbdbdb!important}.ui.basic.green.active.button,.ui.basic.green.buttons .active.button{color:#13ae38!important}.ui.form textarea,.ui.form textarea:focus{background:#1a2632;border:1px solid #313c47;color:#dbdbdb}.ui.form textarea:focus{border:1px solid #456580}.ui .info.segment.top{background-color:#404552!important}.repository .diff-file-box .code-diff-unified tbody tr.del-code td{background-color:#3c2626!important;border-color:#634343!important}.repository .diff-file-box .code-diff-unified tbody tr.add-code td{background-color:#283e2d!important;border-color:#314a37!important}.repository .diff-file-box .code-diff tbody tr .added-code{background-color:#3a523a}.repository .diff-file-box .code-diff .lines-num{border-right:1px solid #2d2d2d}.repository .diff-file-box .file-body.file-code .lines-num{color:#9e9e9e;background:#2e323e}.repository .diff-file-box .code-diff tbody tr td.tag-code,.repository .diff-file-box .code-diff tbody tr.tag-code td{border-color:#2d2d2d!important}.repository .diff-file-box .file-body.file-code .lines-num-old{border-right:1px solid #2d2d2d}.hljs-section,.hljs-selector-id,.hljs-title{color:#986c88}.hljs-doctag,.hljs-string{color:#949494}.repository .diff-file-box .code-diff tbody tr .removed-code{background-color:#5f3737}.repository .diff-file-box .code-diff tbody tr td.tag-code,.repository .diff-file-box .code-diff tbody tr.tag-code td{background-color:#292727!important}.ui.vertical.menu .active.item{background:#4B5162}.ui.vertical.menu .item{background:#353945}.ui.vertical.menu .header.item{background:#404552}.ui.vertical.menu{background:#353945;border:1px solid #333640}.ui.repository.list .item:not(:first-child){border-top:1px solid #4c505c}.ui .text.blue{color:#609926!important}.ui.selection.active.dropdown,.ui.selection.active.dropdown .menu{border-color:#4e5361;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.active.dropdown:hover,.ui.selection.active.dropdown:hover .menu{border-color:#4e5361;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.dropdown{background:#404552;border:1px solid #404552;color:#9e9e9e}.ui.menu .ui.dropdown .menu>.active.item{color:#dbdbdb!important}.ui.tabular.menu{border-bottom:1px solid #313c47}.ui.card,.ui.cards>.card{background:#353945;box-shadow:0 1px 3px 0 #4c505c,0 0 0 1px #4c505c}.ui.card>.content>.header,.ui.cards>.card>.content>.header{color:#dbdbdb}.ui.card>.extra a:not(.ui),.ui.cards>.card>.extra a:not(.ui){color:#87ab63}.ui .text.black{color:#9e9e9e}.ui .text.black:hover{color:#dbdbdb}.ui.secondary.segment{background:#353945}.ui.secondary.pointing.menu .active.item{border-color:#609926;color:#dbdbdb;background:#404552}.ui.user.list .item:not(:first-child){border-top:1px solid #4c505c}.ui.secondary.pointing.menu .active.item:hover{border-color:#af8b4c;color:#dbdbdb;background:#4b5162}.ui.secondary.pointing.menu .dropdown.item:hover,.ui.secondary.pointing.menu .link.item:hover,.ui.secondary.pointing.menu a.item:hover{color:#dbdbdb}.ui.checkbox label,.ui.checkbox+label,.ui.form .field>label{color:#9e9e9e}.ui.form .inline.field>label,.ui.form .inline.field>p,.ui.form .inline.fields .field>label,.ui.form .inline.fields .field>p,.ui.form .inline.fields>label{color:#9e9e9e}.user.settings .email.list .item:not(:first-child){border-top:1px solid #3f4451}.explore .navbar{background-color:#2a2e3a!important}.ui.menu.new-menu{background-color:#2a2e3a!important}input{background:#2e323e}.ui.secondary.pointing.menu .active.item{border:none;background:#383c4a}.settings .key.list .item:not(:first-child){border-top:1px solid #404552}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url]{color:#9e9e9e}.ui.attached.info.message,.ui.info.message{box-shadow:0 0 0 1px #4b5e71 inset,0 0 0 0 transparent}.ui.info.message{background-color:#2c3b4a;color:#9ebcc5}.ui .warning.header{background-color:#5d3a22!important;border-color:#794f31}.ui.red.message{background-color:rgba(80,23,17,.6);color:#f9cbcb;box-shadow:0 0 0 1px rgba(121,71,66,.5) inset,0 0 0 0 transparent}.ui.red.button,.ui.red.buttons .button{background-color:#7d3434}.ui.red.button:hover,.ui.red.buttons .button:hover{background-color:#984646}.ui.checkbox label:hover,.ui.checkbox+label:hover{color:#dbdbdb!important}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{color:#7f98ad}.ui.checkbox input:checked~.box:before,.ui.checkbox input:checked~label:before{background:#304251}.ui.checkbox .box:hover::before,.ui.checkbox label:hover::before{background:#304251}.ui.checkbox .box:before,.ui.checkbox label:before{background:#304251;border:1px solid #304251}.ui.checkbox .box:active::before,.ui.checkbox label:active::before{background:#304251;border-color:rgba(34,36,38,.35)}.ui.checkbox input:checked~.box:before,.ui.checkbox input:checked~label:before{border-color:#304251;background:#304251}.ui.checkbox input:focus~.box:before,.ui.checkbox input:focus~label:before{border-color:#304251;background:#304251}.ui.checkbox input:checked:focus~.box:before,.ui.checkbox input:checked:focus~label:before,.ui.checkbox input:not([type=radio]):indeterminate:focus~.box:before,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:before{border-color:#304251;background:#304251}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{opacity:1;color:#7f98ad}.ui.checkbox input:checked:focus~.box:after,.ui.checkbox input:checked:focus~label:after,.ui.checkbox input:not([type=radio]):indeterminate:focus~.box:after,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:after{color:#7f98ad}.ui.checkbox input:focus~.box:after,.ui.checkbox input:focus~label,.ui.checkbox input:focus~label:after{color:#9a9a9a}.ui.selection.dropdown:hover{border-color:rgba(34,36,38,.35);border:1px solid #456580}.ui.selection.dropdown .menu>.item{border-top:1px solid #313c47}.ui.selection.visible.dropdown>.text:not(.default){color:#9e9e9e}.ui.negative.message{background-color:rgba(80,23,17,.6);color:#f9cbcb;box-shadow:0 0 0 1px rgba(121,71,66,.5) inset,0 0 0 0 transparent}.hljs-attribute,.hljs-name,.hljs-tag{color:#ef5e77}.user.profile .ui.card .extra.content ul li:not(:last-child){border-bottom:1px solid #4c505c}.ui.form textarea,.ui.form textarea:focus{background:#404552;border:2px solid #353945}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:#bd84bf}.hljs-doctag,.hljs-string{color:#8ab398}.ui.form .dropzone{border:2px dashed #4c505c}.ui.basic.red.button,.ui.basic.red.buttons .button{box-shadow:0 0 0 1px #a04141 inset!important;color:#a04141!important}.ui.list .list>.item .header,.ui.list>.item .header{color:#dedede}.ui.list .list>.item .description,.ui.list>.item .description{color:#9e9e9e}.ui.user.list .item .description a{color:#668cb1}.repository.file.list #file-content .code-view .lines-num{background:#2e323e}.repository.file.list #repo-files-table tbody .octicon.octicon-file-directory,.repository.file.list #repo-files-table tbody .octicon.octicon-file-submodule{color:#7c9b5e}.ui.blue.button:focus,.ui.blue.buttons .button:focus{background-color:#609926}.ui.basic.blue.button:hover,.ui.basic.blue.buttons .button:hover{box-shadow:0 0 0 1px #609926 inset!important;color:#609926!important}.ui.basic.blue.button:focus,.ui.basic.blue.buttons .button:focus{box-shadow:0 0 0 1px #609926 inset!important;color:#609926!important}.repository.file.list #file-content .code-view .lines-code .hljs,.repository.file.list #file-content .code-view .lines-code ol,.repository.file.list #file-content .code-view .lines-code pre,.repository.file.list #file-content .code-view .lines-num .hljs,.repository.file.list #file-content .code-view .lines-num ol,.repository.file.list #file-content .code-view .lines-num pre{background-color:#2a2e3a}a.ui.label:hover,a.ui.labels .label:hover{background-color:#505667;color:#dbdbdb}.repository .label.list .item{border-bottom:1px dashed #4c505c}.repository.file.list #file-content .code-view .lines-num{background:#2e323e}.repository.file.list #repo-files-table tbody .octicon.octicon-file-directory,.repository.file.list #repo-files-table tbody .octicon.octicon-file-submodule{color:#7c9b5e}.ui.basic.blue.button,.ui.basic.blue.buttons .button{box-shadow:0 0 0 1px #a27558 inset!important;color:#a27558!important}.repository.file.list #file-content .code-view .lines-code .hljs,.repository.file.list #file-content .code-view .lines-code ol,.repository.file.list #file-content .code-view .lines-code pre,.repository.file.list #file-content .code-view .lines-num .hljs,.repository.file.list #file-content .code-view .lines-num ol,.repository.file.list #file-content .code-view .lines-num pre{background-color:#2a2e3a}a.ui.label:hover,a.ui.labels .label:hover{background-color:#505667;color:#dbdbdb}.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(1),.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(2),.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(3),.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(4){background-color:#2a2e3a}.repository .diff-file-box .code-diff-split tbody tr td.add-code,.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(3),.repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(4){background-color:#283e2d!important;border-color:#314a37!important}.repository .diff-file-box .code-diff-split tbody tr td.del-code,.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(1),.repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(2){background-color:#3c2626!important;border-color:#634343!important}.ui.blue.button:focus,.ui.blue.buttons .button:focus{background-color:#a27558}.ui.blue.button:active,.ui.blue.buttons .button:active{background-color:#a27558}#git-graph-container li a{color:#c79575}#git-graph-container li .author{color:#c79575}.ui.header .sub.header{color:#9e9e9e}.ui.dividing.header{border-bottom:1px solid #4c505c}.ui.modal>.header{background:#404552;color:#dbdbdb}.ui.modal>.actions{background:#404552;border-top:1px solid #404552}.ui.modal>.content{background:#383c4a}.ui.basic.blue.button,.ui.basic.blue.buttons .button{box-shadow:0 0 0 1px #609926 inset!important;color:#609926!important} \ No newline at end of file diff --git a/public/less/themes/_base.less b/public/less/themes/_base.less new file mode 100644 index 000000000..18d4f068c --- /dev/null +++ b/public/less/themes/_base.less @@ -0,0 +1,3 @@ +// TODO: Instead of having each theme file define each +// CSS/LESS item in this file and then overide +// in the theme files \ No newline at end of file diff --git a/public/less/themes/arc-green.less b/public/less/themes/arc-green.less new file mode 100644 index 000000000..5d5500410 --- /dev/null +++ b/public/less/themes/arc-green.less @@ -0,0 +1,751 @@ +@import "_base"; + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background-color: #2b2b2b !important; + color: #bababa; +} + .repository.file.list .non-diff-file-content .code-view .lines-num, .repository.file.list .non-diff-file-content .code-view .lines-code ol { + background-color: #2b2b2b !important; +} + .hljs-strong, .hljs-emphasis { + color: #a8a8a2; +} + .hljs-bullet, .hljs-quote, .hljs-link, .hljs-number, .hljs-regexp, .hljs-literal { + color: #6896ba; +} + .hljs-code, .hljs-selector-class { + color: #a6e22e; +} + .hljs-emphasis { + font-style: italic; +} + .hljs-keyword, .hljs-selector-tag, .hljs-section, .hljs-attribute, .hljs-name, .hljs-variable { + color: #cb7832; +} + .hljs-params { + color: #b9b9b9; +} + .hljs-string { + color: #6a8759; +} + .hljs-subst, .hljs-type, .hljs-built_in, .hljs-builtin-name, .hljs-symbol, .hljs-selector-id, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-template-tag, .hljs-template-variable, .hljs-addition { + color: #e0c46c; +} + .hljs-comment, .hljs-deletion, .hljs-meta { + color: #7f7f7f; +} + .repository .ui.segment.sub-menu .list .item a { + color:#dbdbdb; +} + .ui.horizontal.segments > .segment { + background-color: #383c4a; +} + body { + background: #383c4a; + color: #9e9e9e; +} + a { + color: #87ab63; +} + a:hover { + color: #a0cc75; +} + .ui.card>.extra a:not(.ui):hover, .ui.cards>.card>.extra a:not(.ui):hover { + color: #a0cc75; +} + .ui.breadcrumb a:hover { + color: #a0cc75; +} + .ui.breadcrumb a { + color: #87ab63; +} + .repository .metas .ui.list a .text { + color: #87ab63; +} + .repository .metas .ui.list a .text:hover { + color: #a0cc75; +} + .repository .label.list .item a { + color: #87ab63; +} + .repository .label.list .item a:hover { + color: #a0cc75; +} + .repository .milestone.list > .item > a { + color: #87ab63; +} + .repository .milestone.list > .item > a:hover { + color: #a0cc75; +} + .repository.release #release-list { + border-top: 1px solid #4c505c; +} + .repository .milestone.list > .item .operate > a { + color: #87ab63; +} + .repository .milestone.list > .item .operate > a:hover { + color: #a0cc75; +} + .ui.green.progress .bar { + background-color: #668844; +} + .ui.progress.success .bar { + background-color: #7b9e57!important; +} + .following.bar.light { + background: #2e323e; +} + .ui.secondary.menu .active.item { + color: #dbdbdb; +} + .ui.secondary.menu .item { + color: #9e9e9e; +} + .following.bar .top.menu a.item:hover { + color: #fff; +} + .repository.view.issue .comment-list .comment .content > .bottom.segment a { + border: solid 1px #353945; + background-color: #353945; +} + .following.bar.light { + border-bottom: 1px solid #313131; +} + .ui.attached.header { + background: #404552; + border: 1px solid #404552; + color: #dbdbdb; +} + .ui.attached.table { + border: 1px solid #304251; + background: #304251; +} + .feeds .list ul li:not(:last-child) { + border-bottom: 1px solid #333640; +} + .feeds .list ul li.private { + background: #353945; + border: 1px solid #333640; +} + .ui.secondary.menu .dropdown.item:hover, .ui.secondary.menu .link.item:hover, .ui.secondary.menu a.item:hover { + color: #fff; +} + .ui.menu .ui.dropdown .menu>.item { + background: #2c303a !important; + color: #9e9e9e !important; +} + .ui.secondary.menu .dropdown.item>.menu, .ui.text.menu .dropdown.item>.menu { + border: 1px solid #434444; +} + footer { + background: #2e323e; + border-top: 1px solid #313131; +} + .ui.menu .dropdown.item .menu { + background: #2c303a; +} + .ui.menu .ui.dropdown .menu>.item:hover, .ui.menu .ui.dropdown .menu>.selected.item { + color: #fff!important; +} + .ui.dropdown .menu>.header { + color: #dbdbdb; +} + .ui.red.label, .ui.red.labels .label { + background-color: #7d3434!important; + border-color: #8a2121!important; +} + .ui.menu { + background: #404552; + border: 1px solid #353945; +} + .ui.menu .active.item:hover, .ui.vertical.menu .active.item:hover { + color: #dbdbdb; + background: #4B5162; +} + .ui.link.menu .item:hover, .ui.menu .dropdown.item:hover, .ui.menu .link.item:hover, .ui.menu a.item:hover { + color: #dbdbdb; + background: #454b5a; +} + .ui.menu .active.item { + background: #4B5162; + color: #dbdbdb; +} + .ui.input input { + background: #404552; + border: 2px solid #353945; + color: #dbdbdb; +} + .ui.input input:focus, .ui.input.focus input { + background: #404552; + border: 2px solid #353945; + color: #dbdbdb; +} + .ui.label { + color: #dbdbdb; + background-color: #404552; +} + .issue.list > .item .title { + color: #87ab63; +} + .issue.list > .item .title:hover { + color: #a0cc75; +} + .issue.list > .item { + border-bottom: 1px dashed #475767; +} + .ui.green.label, .ui.green.labels .label { + background-color: #2d693b!important; + border-color: #2d693b!important; +} + .issue.list > .item .comment { + color: #129c92; +} + .ui.basic.button, .ui.basic.buttons .button { + color: #797979!important; +} + .ui.basic.red.active.button, .ui.basic.red.buttons .active.button { + box-shadow: 0 0 0 1px #c75252 inset!important; + color: #c75252!important; +} + .ui.basic.button:focus, .ui.basic.button:hover, .ui.basic.buttons .button:focus, .ui.basic.buttons .button:hover { + background: transparent!important; + color: #dbdbdb!important; +} + .ui.menu .item { + background: #404552; + color: #9e9e9e; +} + .ui.menu .item.disabled, .ui.menu .item.disabled:hover { + color: #626773; +} + .ui.pagination.menu .active.item { + color: #dbdbdb; + background-color: #609926; +} + .repository .header-wrapper { + background-color: #2a2e3a; +} + .ui.tabular.menu .active.item { + background: #383c4a; + color: #dbdbdb; + border-left: 1px solid transparent; + border-right: 1px solid transparent; + border-top: none; +} + .ui.tabular.menu .item { + color: #9e9e9e; +} + .ui.tabular.menu .item:hover { + color: #dbdbdb; +} + .ui.header, .ui.breadcrumb .divider { + color: #9e9e9e; +} + .ui.blue.label, .ui.blue.labels .label { + background-color: #26577b!important; + border-color: #26577b!important; +} + .ui.menu .item>.label { + background: #565454; +} + .ui.blue.button, .ui.blue.buttons .button { + background-color: #609926; +} + .ui.blue.button:hover, .ui.blue.buttons .button:hover { + background-color: #73ad36; +} + .ui.form input:not([type]), .ui.form input[type=text], .ui.form input[type=email], .ui.form input[type=search], .ui.form input[type=password], .ui.form input[type=date], .ui.form input[type=datetime-local], .ui.form input[type=tel], .ui.form input[type=time], .ui.form input[type=url], .ui.form input[type=number] { + background: #404552; + border: 2px solid #353945; +} + .ui.form input:not([type]):focus, .ui.form input[type=text]:focus, .ui.form input[type=email]:focus, .ui.form input[type=search]:focus, .ui.form input[type=password]:focus, .ui.form input[type=date]:focus, .ui.form input[type=datetime-local]:focus, .ui.form input[type=tel]:focus, .ui.form input[type=time]:focus, .ui.form input[type=url]:focus, .ui.form input[type=number]:focus { + background: #404552; + border: 2px solid #4b505f; + color: #dbdbdb; +} + .ui.action.input:not([class*="left action"]) input:focus { + border-right-color: #4b505f!important; +} + .ui.green.button, .ui.green.buttons .button { + background-color: #609926; +} + .ui.green.button:hover, .ui.green.buttons .button:hover { + background-color: #73ad36; +} + .ui.button { + background: #383c4a; + border: 1px solid #4c505c; + color: #dbdbdb; +} + .ui.labeled.button:not([class*="left labeled"])>.label, .ui[class*="left labeled"].button>.button { + background: #404552; + border: 1px solid #4c505c; + color: #87ab63; +} + .ui.button:hover { + background-color: #404552; + color: #dbdbdb; +} + .ui.table thead th { + background: #404552; + color: #dbdbdb; +} + .repository.file.list #repo-files-table tr:hover { + background-color: #393d4a; +} + .ui.table { + color: #a5a5a5!important; + border: 1px solid #4c505c; + background: #353945; +} + .ui.table tbody tr { + border-bottom: 1px solid #333640; + background: #2a2e3a; +} + .ui .text.grey { + color: #808084 !important; +} + .ui.attached.table.segment { + background: #353945; + color: #dbdbdb!important; +} + .markdown:not(code) h2 { + border-bottom: 1px solid #304251; +} + .hljs, .hljs-keyword, .hljs-selector-tag, .hljs-subst { + color: #9daccc; +} + .markdown:not(code) .highlight pre, .markdown:not(code) pre { + background-color: #2a2e3a; + border: 1px solid #404552; +} + .ui.dropdown .menu { + background: #2c303a; +} + .ui.dropdown .menu>.message:not(.ui) { + color: rgb(99, 99, 99); +} + .ui.input { + color: #dbdbdb; +} + .overflow.menu .items .item { + color: #9d9d9d; +} + .overflow.menu .items .item:hover { + color: #dbdbdb; +} + .ui.segment { + background: #353945; + color: #9e9e9e!important; + border: 1px solid #404552; +} + .ui.active.button:active, .ui.button:active, .ui.button:focus { + background-color: #2e3e4e; + color: #dbdbdb; +} + .ui.dropdown .menu .selected.item, .ui.dropdown.selected { + color: #dbdbdb; +} + .ui.dropdown .menu>.item:hover { + color: #dbdbdb; +} + .ui.dropdown .menu>.item { + color: #9e9e9e; +} + .ui.attached.segment { + border: 1px solid #404552; +} + .repository.view.issue .comment-list .comment .content > .bottom.segment { + background: #353945; +} + .repository.view.issue .comment-list .comment .content .header { + color: #dbdbdb; + background-color: #404552; + border-bottom: 1px solid #353944; +} + .ui .text.grey a { + color: #b3b3b3 !important; +} + .ui.comments .comment .actions a { + color: #dbdbdb; +} + .repository.view.issue .comment-list .comment .content .header:after { + border-right-color: #404552; +} + .repository.new.issue .comment.form .content:after { + border-right-color: #353945; +} + .repository.view.issue .comment-list .comment .content .header:before { + border-right-color: #404552; +} + .repository.new.issue .comment.form .content:before { + border-right-color: #353945; +} + .repository.view.issue .comment-list:before { + background-color: #313c47; +} + .repository .comment.form .content .form:after { + border-right-color: #313c47; +} + .repository .comment.form .content .form:before { + border-right-color: #313c47; +} + .ui .text.grey a { + color: #dbdbdb !important; +} + .ui .text.grey a:hover { + color: #dbdbdb !important; +} + .ui.basic.green.active.button, .ui.basic.green.buttons .active.button { + color: #13ae38!important; +} + .ui.form textarea, .ui.form textarea:focus { + background: #1a2632; + border: 1px solid #313c47; + color: #dbdbdb; +} + .ui.form textarea:focus { + border: 1px solid #456580; +} + .ui .info.segment.top { + background-color: #404552 !important; +} + .repository .diff-file-box .code-diff-unified tbody tr.del-code td { + background-color: #3c2626 !important; + border-color: #634343 !important; +} + .repository .diff-file-box .code-diff-unified tbody tr.add-code td { + background-color: rgb(40, 62, 45) !important; + border-color: #314a37 !important; +} + .repository .diff-file-box .code-diff tbody tr .added-code { + background-color: #3a523a; +} + .repository .diff-file-box .code-diff .lines-num { + border-right: 1px solid #2d2d2d; +} + .repository .diff-file-box .file-body.file-code .lines-num { + color: #9e9e9e; + background: #2e323e; +} + .repository .diff-file-box .code-diff tbody tr.tag-code td, .repository .diff-file-box .code-diff tbody tr td.tag-code { + border-color: #2d2d2d !important; +} + .repository .diff-file-box .file-body.file-code .lines-num-old { + border-right: 1px solid #2d2d2d; +} + .hljs-title, .hljs-section, .hljs-selector-id { + color: #986c88; +} + .hljs-string, .hljs-doctag { + color: #949494; +} + .repository .diff-file-box .code-diff tbody tr .removed-code { + background-color: #5f3737; +} + .repository .diff-file-box .code-diff tbody tr.tag-code td, .repository .diff-file-box .code-diff tbody tr td.tag-code { + background-color: #292727 !important; +} + .ui.vertical.menu .active.item { + background: #4B5162; +} + .ui.vertical.menu .item { + background: #353945; +} + .ui.vertical.menu .header.item { + background: #404552; +} + .ui.vertical.menu { + background: #353945; + border: 1px solid #333640; +} + .ui.repository.list .item:not(:first-child) { + border-top: 1px solid #4c505c; +} + .ui .text.blue { + color: #609926 !important; +} + .ui.selection.active.dropdown, .ui.selection.active.dropdown .menu { + border-color: #4e5361; + box-shadow: 0 2px 3px 0 rgba(34,36,38,.15); +} + .ui.selection.active.dropdown:hover, .ui.selection.active.dropdown:hover .menu { + border-color: #4e5361; + box-shadow: 0 2px 3px 0 rgba(34,36,38,.15); +} + .ui.selection.dropdown { + background: #404552; + border: 1px solid rgb(64, 69, 82); + color: #9e9e9e; +} + .ui.menu .ui.dropdown .menu>.active.item { + color: #dbdbdb !important; +} + .ui.tabular.menu { + border-bottom: 1px solid #313c47; +} + .ui.card, .ui.cards>.card { + background: #353945; + box-shadow: 0 1px 3px 0 #4c505c, 0 0 0 1px #4c505c; +} + .ui.card>.content>.header, .ui.cards>.card>.content>.header { + color: #dbdbdb; +} + .ui.card>.extra a:not(.ui), .ui.cards>.card>.extra a:not(.ui) { + color: #87ab63; +} + .ui .text.black { + color: #9e9e9e; +} + .ui .text.black:hover { + color: #dbdbdb; +} + .ui.secondary.segment { + background: #353945; +} + .ui.secondary.pointing.menu .active.item { + border-color: #609926; + color: #dbdbdb; + background: #404552; +} + .ui.user.list .item:not(:first-child) { + border-top: 1px solid #4c505c; +} + .ui.secondary.pointing.menu .active.item:hover { + border-color: #af8b4c; + color: #dbdbdb; + background: #4b5162; +} + .ui.secondary.pointing.menu .dropdown.item:hover, .ui.secondary.pointing.menu .link.item:hover, .ui.secondary.pointing.menu a.item:hover { + color: #dbdbdb; +} + .ui.checkbox label, .ui.checkbox+label, .ui.form .field>label { + color: #9e9e9e; +} + .ui.form .inline.field>label, .ui.form .inline.field>p, .ui.form .inline.fields .field>label, .ui.form .inline.fields .field>p, .ui.form .inline.fields>label { + color: #9e9e9e; +} + .user.settings .email.list .item:not(:first-child) { + border-top: 1px solid #3f4451; +} + .explore .navbar { + background-color: #2a2e3a!important; +} + .ui.menu.new-menu { + background-color: #2a2e3a!important; +} + input { + background: #2e323e; +} + .ui.secondary.pointing.menu .active.item { + border: none; + background: #383c4a; +} + .settings .key.list .item:not(:first-child) { + border-top: 1px solid #404552; +} + .ui.form input:not([type]), .ui.form input[type=text], .ui.form input[type=email], .ui.form input[type=search], .ui.form input[type=password], .ui.form input[type=date], .ui.form input[type=datetime-local], .ui.form input[type=tel], .ui.form input[type=time], .ui.form input[type=url], .ui.form input[type=number] { + color: #9e9e9e; +} + .ui.attached.info.message, .ui.info.message { + box-shadow: 0 0 0 1px #4b5e71 inset, 0 0 0 0 transparent; +} + .ui.info.message { + background-color: #2c3b4a; + color: #9ebcc5; +} + .ui .warning.header { + background-color: #5d3a22 !important; + border-color: #794f31; +} + .ui.red.message { + background-color: rgba(80, 23, 17, 0.6); + color: #f9cbcb; + box-shadow: 0 0 0 1px rgba(121, 71, 66, 0.5) inset, 0 0 0 0 transparent; +} + .ui.red.button, .ui.red.buttons .button { + background-color: #7d3434; +} + .ui.red.button:hover, .ui.red.buttons .button:hover { + background-color: #984646; +} + .ui.checkbox label:hover, .ui.checkbox+label:hover { + color: #dbdbdb !important; +} + .ui.checkbox input:checked~.box:after, .ui.checkbox input:checked~label:after { + color: rgb(127, 152, 173); +} + .ui.checkbox input:checked~.box:before, .ui.checkbox input:checked~label:before { + background: #304251; +} + .ui.checkbox .box:hover::before, .ui.checkbox label:hover::before { + background: #304251; +} + .ui.checkbox .box:before, .ui.checkbox label:before { + background: #304251; + border: 1px solid #304251; +} + .ui.checkbox .box:active::before, .ui.checkbox label:active::before { + background: #304251; + border-color: rgba(34,36,38,.35); +} + .ui.checkbox input:checked~.box:before, .ui.checkbox input:checked~label:before { + border-color: #304251; + background: #304251; +} + .ui.checkbox input:focus~.box:before, .ui.checkbox input:focus~label:before { + border-color: #304251; + background: #304251; +} + .ui.checkbox input:checked:focus~.box:before, .ui.checkbox input:checked:focus~label:before, .ui.checkbox input:not([type=radio]):indeterminate:focus~.box:before, .ui.checkbox input:not([type=radio]):indeterminate:focus~label:before { + border-color: #304251; + background: #304251; +} + .ui.checkbox input:checked~.box:after, .ui.checkbox input:checked~label:after { + opacity: 1; + color: rgb(127, 152, 173); +} + .ui.checkbox input:checked:focus~.box:after, .ui.checkbox input:checked:focus~label:after, .ui.checkbox input:not([type=radio]):indeterminate:focus~.box:after, .ui.checkbox input:not([type=radio]):indeterminate:focus~label:after { + color: rgb(127, 152, 173); +} + .ui.checkbox input:focus~.box:after, .ui.checkbox input:focus~label, .ui.checkbox input:focus~label:after { + color: #9a9a9a; +} + .ui.selection.dropdown:hover { + border-color: rgba(34,36,38,.35); + border: 1px solid #456580; +} + .ui.selection.dropdown .menu>.item { + border-top: 1px solid #313c47; +} + .ui.selection.visible.dropdown>.text:not(.default) { + color: #9e9e9e; +} + .ui.negative.message { + background-color: rgba(80, 23, 17, 0.6); + color: #f9cbcb; + box-shadow: 0 0 0 1px rgba(121, 71, 66, 0.5) inset, 0 0 0 0 transparent; +} + .hljs-tag, .hljs-name, .hljs-attribute { + color: #ef5e77; +} + .user.profile .ui.card .extra.content ul li:not(:last-child) { + border-bottom: 1px solid #4c505c; +} + .ui.form textarea, .ui.form textarea:focus { + background: #404552; + border: 2px solid #353945; +} + .hljs-number, .hljs-literal, .hljs-variable, .hljs-template-variable, .hljs-tag .hljs-attr { + color: #bd84bf; +} + .hljs-string, .hljs-doctag { + color: #8ab398; +} + .ui.form .dropzone { + border: 2px dashed #4c505c; +} + .ui.basic.red.button, .ui.basic.red.buttons .button { + box-shadow: 0 0 0 1px #a04141 inset!important; + color: #a04141!important; +} + .ui.list .list>.item .header, .ui.list>.item .header { + color: #dedede; +} + .ui.list .list>.item .description, .ui.list>.item .description { + color: #9e9e9e; +} + .ui.user.list .item .description a { + color: #668cb1; +} + .repository.file.list #file-content .code-view .lines-num { + background: #2e323e; +} + .repository.file.list #repo-files-table tbody .octicon.octicon-file-directory, .repository.file.list #repo-files-table tbody .octicon.octicon-file-submodule { + color: #7c9b5e; +} + .ui.blue.button:focus, .ui.blue.buttons .button:focus { + background-color: #609926; +} + .ui.basic.blue.button:hover, .ui.basic.blue.buttons .button:hover { + box-shadow: 0 0 0 1px #609926 inset!important; + color: #609926!important; +} + .ui.basic.blue.button:focus, .ui.basic.blue.buttons .button:focus { + box-shadow: 0 0 0 1px #609926 inset!important; + color: #609926!important; +} + .repository.file.list #file-content .code-view .lines-num pre, .repository.file.list #file-content .code-view .lines-code pre, .repository.file.list #file-content .code-view .lines-num ol, .repository.file.list #file-content .code-view .lines-code ol, .repository.file.list #file-content .code-view .lines-num .hljs, .repository.file.list #file-content .code-view .lines-code .hljs { + background-color: #2a2e3a; +} + a.ui.label:hover, a.ui.labels .label:hover { + background-color: #505667; + color: rgb(219, 219, 219); +} + .repository .label.list .item { + border-bottom: 1px dashed #4c505c; +} + .repository.file.list #file-content .code-view .lines-num { + background: #2e323e; +} + .repository.file.list #repo-files-table tbody .octicon.octicon-file-directory, .repository.file.list #repo-files-table tbody .octicon.octicon-file-submodule { + color: #7c9b5e; +} + .ui.basic.blue.button, .ui.basic.blue.buttons .button { + box-shadow: 0 0 0 1px #a27558 inset !important; + color: #a27558 !important; +} + .repository.file.list #file-content .code-view .lines-num pre, .repository.file.list #file-content .code-view .lines-code pre, .repository.file.list #file-content .code-view .lines-num ol, .repository.file.list #file-content .code-view .lines-code ol, .repository.file.list #file-content .code-view .lines-num .hljs, .repository.file.list #file-content .code-view .lines-code .hljs { + background-color: #2a2e3a; +} + a.ui.label:hover, a.ui.labels .label:hover { + background-color: #505667; + color: rgb(219, 219, 219); +} + .repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(1), .repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(2), .repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(3), .repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(4) { + background-color: #2a2e3a; +} + .repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(3), .repository .diff-file-box .code-diff-split tbody tr.add-code td:nth-child(4), .repository .diff-file-box .code-diff-split tbody tr td.add-code { + background-color: #283e2d !important; + border-color: #314a37 !important; +} + .repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(1), .repository .diff-file-box .code-diff-split tbody tr.del-code td:nth-child(2), .repository .diff-file-box .code-diff-split tbody tr td.del-code { + background-color: #3c2626 !important; + border-color: #634343 !important; +} + .ui.blue.button:focus, .ui.blue.buttons .button:focus { + background-color: #a27558; +} + .ui.blue.button:active, .ui.blue.buttons .button:active { + background-color: #a27558; +} + #git-graph-container li a { + color: #c79575; +} + #git-graph-container li .author { + color: #c79575; +} + .ui.header .sub.header { + color: #9e9e9e; +} + .ui.dividing.header { + border-bottom: 1px solid #4c505c; +} + .ui.modal>.header { + background: #404552; + color: #dbdbdb; +} + .ui.modal>.actions { + background: #404552; + border-top: 1px solid #404552; +} + .ui.modal>.content { + background: #383c4a; +} + .ui.basic.blue.button, .ui.basic.blue.buttons .button { + box-shadow: 0 0 0 1px #609926 inset!important; + color: #609926!important; +} diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index 53d3de1e9..a59341496 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -127,6 +127,9 @@ {{end}} +{{if ne DefaultTheme "gitea"}} + +{{end}} {{template "custom/header" .}}