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" .}}