Copy in original gitea files for modifying

This commit is contained in:
Jack F 2022-07-01 17:01:26 +12:00
parent a253695ad3
commit 98eec4832c
12 changed files with 1496 additions and 2 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/node_modules

4
.husky/pre-commit Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged -v

6
.lintstagedrc.cjs Normal file
View File

@ -0,0 +1,6 @@
module.exports = {
'{css/less/**/*.less}': [
() => 'npx lessc css/less/themes/theme-od.less css/dist/theme-od.css',
'git add css/dist/theme-od.css'
]
};

View File

@ -1,3 +1,35 @@
# gitea_customization
# [Opening Design][] [Gitea][] Customization
Gitea instance customization files
Gitea instance customization files
## Installation
The components of the repository are mapped onto the [Opening Design][]
[Gitea][] instance using the
[customizing Gitea](https://docs.gitea.io/en-us/customizing-gitea/)
instructions:
- the *templates* folder is mapped to *$GITEA_CUSTOM/templates/custom/*
- the *images* contents is mapped into *$GITEA_CUSTOM/public/img*
- the *css/dist* contents is mapped into *$GITEA_CUSTOM/public/css/*
## Development
The source is hosted on
[Gitea](https://hub.openingdesign.com/OpeningDesign/gitea_customization) and
uses [prettier][], [lint-staged][] and [husky][] to keep things pretty.
As such, when you first [clone][git-clone] the repository, as well as
installing the npm dependencies, you will also need to install [husky][].
```bash
# Install NPM dependencies
npm install
# Set up husky Git hooks stored in .husky
npx husky install
```
[opening design]: http://openingdesign.com/
[gitea]: https://gitea.io/
[husky]: https://typicode.github.io/husky
[git-clone]: https://www.git-scm.com/docs/git-clone
[prettier]: https://prettier.io/
[lint-staged]: https://github.com/okonet/lint-staged#readme

757
css/dist/theme-od.css vendored Normal file
View File

@ -0,0 +1,757 @@
@media (prefers-color-scheme: dark) {
.chroma .hl {
background-color: #3f424d;
}
/* LineHighlight */
.chroma .lnt {
color: #7f7f7f;
}
/* LineNumbersTable */
.chroma .ln {
color: #7f7f7f;
}
/* LineNumbers */
.chroma .k {
color: #f63;
}
/* Keyword */
.chroma .kc {
color: #fa1;
}
/* KeywordConstant */
.chroma .kd {
color: #9daccc;
}
/* KeywordDeclaration */
.chroma .kn {
color: #fa1;
}
/* KeywordNamespace */
.chroma .kp {
color: #5f8700;
}
/* KeywordPseudo */
.chroma .kr {
color: #f63;
}
/* KeywordReserved */
.chroma .kt {
color: #9daccc;
}
/* KeywordType */
.chroma .na {
color: #8a8a8a;
}
/* NameAttribute */
.chroma .nb {
color: #9daccc;
}
/* NameBuiltin */
.chroma .bp {
color: #9daccc;
}
/* NameBuiltinPseudo */
.chroma .nc {
color: #fa1;
}
/* NameClass */
.chroma .no {
color: #fa1;
}
/* NameConstant */
.chroma .nd {
color: #9daccc;
}
/* NameDecorator */
.chroma .ni {
color: #fa1;
}
/* NameEntity */
.chroma .ne {
color: #af8700;
}
/* NameException */
.chroma .nf {
color: #9daccc;
}
/* NameFunction */
.chroma .nl {
color: #fa1;
}
/* NameLabel */
.chroma .nn {
color: #fa1;
}
/* NameNamespace */
.chroma .nx {
color: #9daccc;
}
/* NameOther */
.chroma .nt {
color: #9daccc;
}
/* NameTag */
.chroma .nv {
color: #9daccc;
}
/* NameVariable */
.chroma .vc {
color: #f81;
}
/* NameVariableClass */
.chroma .vg {
color: #fa1;
}
/* NameVariableGlobal */
.chroma .vi {
color: #fa1;
}
/* NameVariableInstance */
.chroma .s {
color: #1af;
}
/* LiteralString */
.chroma .sa {
color: #1af;
}
/* LiteralStringAffix */
.chroma .sb {
color: #a0cc75;
}
/* LiteralStringBacktick */
.chroma .sc {
color: #1af;
}
/* LiteralStringChar */
.chroma .dl {
color: #1af;
}
/* LiteralStringDelimiter */
.chroma .sd {
color: #6a737d;
}
/* LiteralStringDoc */
.chroma .s2 {
color: #a0cc75;
}
/* LiteralStringDouble */
.chroma .se {
color: #f63;
}
/* LiteralStringEscape */
.chroma .sh {
color: #1af;
}
/* LiteralStringHeredoc */
.chroma .si {
color: #fa1;
}
/* LiteralStringInterpol */
.chroma .sx {
color: #fa1;
}
/* LiteralStringOther */
.chroma .sr {
color: #97c;
}
/* LiteralStringRegex */
.chroma .s1 {
color: #a0cc75;
}
/* LiteralStringSingle */
.chroma .ss {
color: #fa1;
}
/* LiteralStringSymbol */
.chroma .m {
color: #1af;
}
/* LiteralNumber */
.chroma .mb {
color: #1af;
}
/* LiteralNumberBin */
.chroma .mf {
color: #1af;
}
/* LiteralNumberFloat */
.chroma .mh {
color: #1af;
}
/* LiteralNumberHex */
.chroma .mi {
color: #1af;
}
/* LiteralNumberInteger */
.chroma .il {
color: #1af;
}
/* LiteralNumberIntegerLong */
.chroma .mo {
color: #1af;
}
/* LiteralNumberOct */
.chroma .o {
color: #f63;
}
/* Operator */
.chroma .ow {
color: #5f8700;
}
/* OperatorWord */
.chroma .c {
color: #6a737d;
}
/* Comment */
.chroma .ch {
color: #6a737d;
}
/* CommentHashbang */
.chroma .cm {
color: #6a737d;
}
/* CommentMultiline */
.chroma .c1 {
color: #6a737d;
}
/* CommentSingle */
.chroma .cs {
color: #95ad;
}
/* CommentSpecial */
.chroma .cp {
color: #fc6;
}
/* CommentPreproc */
.chroma .cpf {
color: #03dfff;
}
/* CommentPreprocFile */
.chroma .gd {
color: #fff;
background-color: #5f3737;
}
/* GenericDeleted */
.chroma .ge {
color: #ef5;
}
/* GenericEmph */
.chroma .gr {
color: #f33;
}
/* GenericError */
.chroma .gh {
color: #fa1;
}
/* GenericHeading */
.chroma .gi {
color: #fff;
background-color: #3a523a;
}
/* GenericInserted */
.chroma .go {
color: #888888;
}
/* GenericOutput */
.chroma .gp {
color: #555555;
}
/* GenericPrompt */
.chroma .gu {
color: #9daccc;
}
/* GenericSubheading */
.chroma .gt {
color: #f63;
}
/* GenericTraceback */
.chroma .w {
color: #bbbbbb;
}
/* TextWhitespace */
.CodeMirror.cm-s-default .cm-property,
.CodeMirror.cm-s-paper .cm-property {
color: #a0cc75;
}
.CodeMirror.cm-s-default .cm-header,
.CodeMirror.cm-s-paper .cm-header {
color: #9daccc;
}
.CodeMirror.cm-s-default .cm-quote,
.CodeMirror.cm-s-paper .cm-quote {
color: #009900;
}
.CodeMirror.cm-s-default .cm-keyword,
.CodeMirror.cm-s-paper .cm-keyword {
color: #cc8a61;
}
.CodeMirror.cm-s-default .cm-atom,
.CodeMirror.cm-s-paper .cm-atom {
color: #ef5e77;
}
.CodeMirror.cm-s-default .cm-number,
.CodeMirror.cm-s-paper .cm-number {
color: #ff5656;
}
.CodeMirror.cm-s-default .cm-def,
.CodeMirror.cm-s-paper .cm-def {
color: #e4e4e4;
}
.CodeMirror.cm-s-default .cm-variable-2,
.CodeMirror.cm-s-paper .cm-variable-2 {
color: #00bdbf;
}
.CodeMirror.cm-s-default .cm-variable-3,
.CodeMirror.cm-s-paper .cm-variable-3 {
color: #008855;
}
.CodeMirror.cm-s-default .cm-comment,
.CodeMirror.cm-s-paper .cm-comment {
color: #8e9ab3;
}
.CodeMirror.cm-s-default .cm-string,
.CodeMirror.cm-s-paper .cm-string {
color: #a77272;
}
.CodeMirror.cm-s-default .cm-string-2,
.CodeMirror.cm-s-paper .cm-string-2 {
color: #ff5500;
}
.CodeMirror.cm-s-default .cm-meta,
.CodeMirror.cm-s-paper .cm-meta,
.CodeMirror.cm-s-default .cm-qualifier,
.CodeMirror.cm-s-paper .cm-qualifier {
color: #ffb176;
}
.CodeMirror.cm-s-default .cm-builtin,
.CodeMirror.cm-s-paper .cm-builtin {
color: #b7c951;
}
.CodeMirror.cm-s-default .cm-bracket,
.CodeMirror.cm-s-paper .cm-bracket {
color: #999977;
}
.CodeMirror.cm-s-default .cm-tag,
.CodeMirror.cm-s-paper .cm-tag {
color: #f1d273;
}
.CodeMirror.cm-s-default .cm-attribute,
.CodeMirror.cm-s-paper .cm-attribute {
color: #bfcc70;
}
.CodeMirror.cm-s-default .cm-hr,
.CodeMirror.cm-s-paper .cm-hr {
color: #999999;
}
.CodeMirror.cm-s-default .cm-url,
.CodeMirror.cm-s-paper .cm-url {
color: #c5cfd0;
}
.CodeMirror.cm-s-default .cm-link,
.CodeMirror.cm-s-paper .cm-link {
color: #d8c792;
}
.CodeMirror.cm-s-default .cm-error,
.CodeMirror.cm-s-paper .cm-error {
color: #dbdbeb;
}
:root {
--is-dark-theme: true;
--color-primary: #87ab63;
--color-primary-dark-1: #93b373;
--color-primary-dark-2: #9fbc82;
--color-primary-dark-3: #abc492;
--color-primary-dark-4: #b7cda1;
--color-primary-dark-5: #cfddc1;
--color-primary-dark-6: #e7eee0;
--color-primary-dark-7: #f8faf6;
--color-primary-light-1: #7a9e55;
--color-primary-light-2: #6c8c4c;
--color-primary-light-3: #5f7b42;
--color-primary-light-4: #516939;
--color-primary-light-5: #364626;
--color-primary-light-6: #1b2313;
--color-primary-light-7: #080b06;
--color-primary-alpha-10: #87ab6319;
--color-primary-alpha-20: #87ab6333;
--color-primary-alpha-30: #87ab634b;
--color-primary-alpha-40: #87ab6366;
--color-primary-alpha-50: #87ab6380;
--color-primary-alpha-60: #87ab6399;
--color-primary-alpha-70: #87ab63b3;
--color-primary-alpha-80: #87ab63cc;
--color-primary-alpha-90: #87ab63e1;
--color-secondary: #454a57;
--color-secondary-dark-1: #505665;
--color-secondary-dark-2: #5b6273;
--color-secondary-dark-3: #71798e;
--color-secondary-dark-4: #7f8699;
--color-secondary-dark-5: #8c93a4;
--color-secondary-dark-6: #9aa0af;
--color-secondary-dark-7: #a8adba;
--color-secondary-dark-8: #b6bac5;
--color-secondary-dark-9: #c4c7d0;
--color-secondary-dark-10: #d2d4db;
--color-secondary-dark-11: #dfe1e6;
--color-secondary-dark-12: #edeef1;
--color-secondary-dark-13: #fbfbfc;
--color-secondary-light-1: #373b46;
--color-secondary-light-2: #292c34;
--color-secondary-light-3: #1c1e23;
--color-secondary-light-4: #0e0f11;
--color-secondary-alpha-10: #454a5719;
--color-secondary-alpha-20: #454a5733;
--color-secondary-alpha-30: #454a574b;
--color-secondary-alpha-40: #454a5766;
--color-secondary-alpha-50: #454a5780;
--color-secondary-alpha-60: #454a5799;
--color-secondary-alpha-70: #454a57b3;
--color-secondary-alpha-80: #454a57cc;
--color-secondary-alpha-90: #454a57e1;
/* colors */
--color-red: #db2828;
--color-orange: #f2711c;
--color-yellow: #fbbd08;
--color-olive: #b5cc18;
--color-green: #21ba45;
--color-teal: #00b5ad;
--color-blue: #2185d0;
--color-violet: #6435c9;
--color-purple: #a333c8;
--color-pink: #e03997;
--color-brown: #a5673f;
--color-grey: #767a85;
--color-black: #1e222e;
--color-gold: #a1882b;
--color-white: #ffffff;
--color-diff-removed-word-bg: #6f3333;
--color-diff-added-word-bg: #3c653c;
--color-diff-removed-row-bg: #3c2626;
--color-diff-moved-row-bg: #818044;
--color-diff-added-row-bg: #283e2d;
--color-diff-removed-row-border: #634343;
--color-diff-moved-row-border: #bcca6f;
--color-diff-added-row-border: #314a37;
--color-diff-inactive: #353846;
--color-error-border: #a53a37;
--color-error-bg: #482c2c;
--color-error-text: #ff4433;
--color-success-border: #458a57;
--color-success-bg: #284034;
--color-success-text: #6cc664;
--color-warning-border: #bb9d00;
--color-warning-bg: #3a3a30;
--color-warning-text: #fbbd08;
--color-info-border: #306090;
--color-info-bg: #26354c;
--color-info-text: #38a8e8;
/* target-based colors */
--color-body: #383c4a;
--color-box-header: #404652;
--color-box-body: #303440;
--color-text-dark: #dbe0ea;
--color-text: #bbc0ca;
--color-text-light: #a6aab5;
--color-text-light-2: #8a8e99;
--color-text-light-3: #707687;
--color-footer: #2e323e;
--color-timeline: #4c525e;
--color-input-text: #d5dbe6;
--color-input-background: #292d39;
--color-input-border: #454a57;
--color-input-border-hover: #505667;
--color-navbar: #2a2e3a;
--color-navbar-transparent: #2a2e3a00;
--color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #ffffff28;
--color-hover: #ffffff10;
--color-active: #ffffff16;
--color-menu: #2e323e;
--color-card: #2e323e;
--color-markup-table-row: #ffffff06;
--color-markup-code-block: #292d39;
--color-button: #353846;
--color-code-bg: #2a2e3a;
--color-code-sidebar-bg: #2e323e;
--color-shadow: #00000060;
--color-secondary-bg: #2a2e3a;
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: #6a737d;
--color-editor-line-highlight: var(--color-primary-light-5);
--color-project-board-bg: var(--color-secondary-light-2);
--color-caret: var(--color-text);
/* should ideally be --color-text-dark, see #15651 */
--color-reaction-bg: #ffffff12;
--color-reaction-active-bg: var(--color-primary-alpha-40);
}
::-webkit-calendar-picker-indicator {
filter: invert(0.8);
}
.ui.horizontal.segments > .segment {
background-color: #383c4a;
}
.following.bar.light {
background: #2e323e;
border-color: var(--color-secondary-alpha-40);
}
.following.bar .top.menu a.item:hover {
color: #fff;
}
.feeds .list ul li.private {
background: #353945;
}
.ui.red.label,
.ui.red.labels .label {
background-color: #7d3434 !important;
border-color: #8a2121 !important;
}
.ui.yellow.label,
.ui.yellow.labels .label {
border-color: #664d02 !important;
background-color: #936e00 !important;
}
.ui.accordion .title:not(.ui) {
color: #dbdbdb;
}
.ui.green.label,
.ui.green.labels .label,
.ui.basic.green.label {
background-color: #2d693b !important;
border-color: #2d693b !important;
}
.ui.green.labels a.label:hover,
.ui.basic.green.labels a.label:hover,
a.ui.ui.ui.green.label:hover,
a.ui.basic.green.label:hover {
background-color: #3d794b !important;
border-color: #3d794b !important;
color: #fff !important;
}
.ui.divider:not(.vertical):not(.horizontal) {
border-bottom-color: var(--color-secondary);
border-top-color: transparent;
}
.form .help {
color: #7f8699;
}
.ui .text.light.grey {
color: #7f8699 !important;
}
.ui.form .fields.error .field textarea,
.ui.form .fields.error .field select,
.ui.form .fields.error .field input:not([type]),
.ui.form .fields.error .field input[type="date"],
.ui.form .fields.error .field input[type="datetime-local"],
.ui.form .fields.error .field input[type="email"],
.ui.form .fields.error .field input[type="number"],
.ui.form .fields.error .field input[type="password"],
.ui.form .fields.error .field input[type="search"],
.ui.form .fields.error .field input[type="tel"],
.ui.form .fields.error .field input[type="time"],
.ui.form .fields.error .field input[type="text"],
.ui.form .fields.error .field input[type="file"],
.ui.form .fields.error .field input[type="url"],
.ui.form .field.error textarea,
.ui.form .field.error select,
.ui.form .field.error input:not([type]),
.ui.form .field.error input[type="date"],
.ui.form .field.error input[type="datetime-local"],
.ui.form .field.error input[type="email"],
.ui.form .field.error input[type="number"],
.ui.form .field.error input[type="password"],
.ui.form .field.error input[type="search"],
.ui.form .field.error input[type="tel"],
.ui.form .field.error input[type="time"],
.ui.form .field.error input[type="text"],
.ui.form .field.error input[type="file"],
.ui.form .field.error input[type="url"] {
background-color: #522;
border: 1px solid #7d3434;
color: #f9cbcb;
}
.ui.form .field.error select:focus,
.ui.form .field.error input:not([type]):focus,
.ui.form .field.error input[type="date"]:focus,
.ui.form .field.error input[type="datetime-local"]:focus,
.ui.form .field.error input[type="email"]:focus,
.ui.form .field.error input[type="number"]:focus,
.ui.form .field.error input[type="password"]:focus,
.ui.form .field.error input[type="search"]:focus,
.ui.form .field.error input[type="tel"]:focus,
.ui.form .field.error input[type="time"]:focus,
.ui.form .field.error input[type="text"]:focus,
.ui.form .field.error input[type="file"]:focus,
.ui.form .field.error input[type="url"]:focus {
background-color: #522;
border: 1px solid #a04141;
color: #f9cbcb;
}
.ui.green.button,
.ui.green.buttons .button {
background-color: #87ab63;
}
.ui.green.button:hover,
.ui.green.buttons .button:hover {
background-color: #a0cc75;
}
.ui.search > .results {
background: #383c4a;
border-color: var(--color-secondary);
}
.ui.search > .results .result:hover,
.ui.category.search > .results .category .result:hover {
background: var(--color-secondary);
}
.ui.search > .results .result .title {
color: #dbdbdb;
}
.ui.table > thead > tr > th {
background: var(--color-secondary);
color: #dbdbdb !important;
}
.repository.file.list #repo-files-table tr {
background: #2a2e3a;
}
.repository.file.list #repo-files-table tr:hover {
background-color: #393d4a !important;
}
.overflow.menu .items .item {
color: #9d9d9d;
}
.overflow.menu .items .item:hover {
color: #dbdbdb;
}
.ui.list > .item > .content {
color: var(--color-secondary-dark-6) !important;
}
.repository .navbar .active.item,
.repository .navbar .active.item:hover {
border-color: transparent !important;
}
.repository .diff-stats li {
border-color: var(--color-secondary);
}
.tag-code,
.tag-code td {
background: #353945 !important;
}
.tag-code td.lines-num {
background-color: #3a3e4c !important;
}
.tag-code td.lines-type-marker,
td.blob-hunk {
color: #dbdbdb !important;
}
.ui.red.button,
.ui.red.buttons .button {
background-color: #7d3434;
}
.ui.red.button:hover,
.ui.red.buttons .button:hover {
background-color: #984646;
}
.ui.list .list > .item .header,
.ui.list > .item .header {
color: #dedede;
}
.ui.list .list > .item .description,
.ui.list > .item .description {
color: var(--color-secondary-dark-6);
}
.repository.labels .ui.basic.black.label {
background-color: #bbbbbb !important;
}
.lines-num {
color: var(--color-secondary-dark-6) !important;
border-color: var(--color-secondary) !important;
}
td.blob-excerpt {
background-color: rgba(0, 0, 0, 0.15);
}
.lines-code.active,
.lines-code .active {
background: #534d1b !important;
}
.ui.ui.ui.ui.table tr.active,
.ui.ui.table td.active {
color: #dbdbdb;
}
.ui.active.label {
background: #393d4a;
border-color: #393d4a;
color: #dbdbdb;
}
.ui.header .sub.header {
color: var(--color-secondary-dark-6);
}
.ui.dividing.header {
border-bottom: 1px solid var(--color-secondary);
}
.ui.modal > .header {
background: var(--color-secondary);
color: #dbdbdb;
}
.ui.modal > .actions {
background: var(--color-secondary);
border-color: var(--color-secondary);
}
.ui.modal > .content {
background: #383c4a;
}
.minicolors-panel {
background: var(--color-secondary) !important;
border-color: #6a737d !important;
}
/* invert emojis that are hard to read otherwise */
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label="copyright"],
.emoji[aria-label="registered"],
.emoji[aria-label="trade mark"],
.emoji[aria-label="multiply"],
.emoji[aria-label="plus"],
.emoji[aria-label="minus"],
.emoji[aria-label="divide"],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
filter: invert(100%) hue-rotate(180deg);
}
.edit-diff > div > .ui.table {
border-left-color: var(--color-secondary) !important;
border-right-color: var(--color-secondary) !important;
}
footer .container .links > * {
border-left-color: #888;
}
.repository.release #release-list > li .detail .dot {
background-color: #505667;
border-color: #383c4a;
}
.tribute-container {
box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.6);
}
.repository .repo-header .ui.huge.breadcrumb.repo-title .repo-header-icon .avatar {
color: #2a2e3a;
}
img[src$="/img/matrix.svg"] {
filter: invert(80%);
}
.is-loading::after {
border-color: #4a4c58 #4a4c58 #d7d7da #d7d7da;
}
.markup-block-error {
border: 1px solid rgba(121, 71, 66, 0.5) !important;
border-bottom: none !important;
}
}

67
css/less/chroma/dark.less Normal file
View File

@ -0,0 +1,67 @@
.chroma .hl { background-color: #3f424d; } /* LineHighlight */
.chroma .lnt { color: #7f7f7f; } /* LineNumbersTable */
.chroma .ln { color: #7f7f7f; } /* LineNumbers */
.chroma .k { color: #f63; } /* Keyword */
.chroma .kc { color: #fa1; } /* KeywordConstant */
.chroma .kd { color: #9daccc; } /* KeywordDeclaration */
.chroma .kn { color: #fa1; } /* KeywordNamespace */
.chroma .kp { color: #5f8700; } /* KeywordPseudo */
.chroma .kr { color: #f63; } /* KeywordReserved */
.chroma .kt { color: #9daccc; } /* KeywordType */
.chroma .na { color: #8a8a8a; } /* NameAttribute */
.chroma .nb { color: #9daccc; } /* NameBuiltin */
.chroma .bp { color: #9daccc; } /* NameBuiltinPseudo */
.chroma .nc { color: #fa1; } /* NameClass */
.chroma .no { color: #fa1; } /* NameConstant */
.chroma .nd { color: #9daccc; } /* NameDecorator */
.chroma .ni { color: #fa1; } /* NameEntity */
.chroma .ne { color: #af8700; } /* NameException */
.chroma .nf { color: #9daccc; } /* NameFunction */
.chroma .nl { color: #fa1; } /* NameLabel */
.chroma .nn { color: #fa1; } /* NameNamespace */
.chroma .nx { color: #9daccc; } /* NameOther */
.chroma .nt { color: #9daccc; } /* NameTag */
.chroma .nv { color: #9daccc; } /* NameVariable */
.chroma .vc { color: #f81; } /* NameVariableClass */
.chroma .vg { color: #fa1; } /* NameVariableGlobal */
.chroma .vi { color: #fa1; } /* NameVariableInstance */
.chroma .s { color: #1af; } /* LiteralString */
.chroma .sa { color: #1af; } /* LiteralStringAffix */
.chroma .sb { color: #a0cc75; } /* LiteralStringBacktick */
.chroma .sc { color: #1af; } /* LiteralStringChar */
.chroma .dl { color: #1af; } /* LiteralStringDelimiter */
.chroma .sd { color: #6a737d; } /* LiteralStringDoc */
.chroma .s2 { color: #a0cc75; } /* LiteralStringDouble */
.chroma .se { color: #f63; } /* LiteralStringEscape */
.chroma .sh { color: #1af; } /* LiteralStringHeredoc */
.chroma .si { color: #fa1; } /* LiteralStringInterpol */
.chroma .sx { color: #fa1; } /* LiteralStringOther */
.chroma .sr { color: #97c; } /* LiteralStringRegex */
.chroma .s1 { color: #a0cc75; } /* LiteralStringSingle */
.chroma .ss { color: #fa1; } /* LiteralStringSymbol */
.chroma .m { color: #1af; } /* LiteralNumber */
.chroma .mb { color: #1af; } /* LiteralNumberBin */
.chroma .mf { color: #1af; } /* LiteralNumberFloat */
.chroma .mh { color: #1af; } /* LiteralNumberHex */
.chroma .mi { color: #1af; } /* LiteralNumberInteger */
.chroma .il { color: #1af; } /* LiteralNumberIntegerLong */
.chroma .mo { color: #1af; } /* LiteralNumberOct */
.chroma .o { color: #f63; } /* Operator */
.chroma .ow { color: #5f8700; } /* OperatorWord */
.chroma .c { color: #6a737d; } /* Comment */
.chroma .ch { color: #6a737d; } /* CommentHashbang */
.chroma .cm { color: #6a737d; } /* CommentMultiline */
.chroma .c1 { color: #6a737d; } /* CommentSingle */
.chroma .cs { color: #95ad; } /* CommentSpecial */
.chroma .cp { color: #fc6; } /* CommentPreproc */
.chroma .cpf { color: #03dfff; } /* CommentPreprocFile */
.chroma .gd { color: #fff; background-color: #5f3737; } /* GenericDeleted */
.chroma .ge { color: #ef5; } /* GenericEmph */
.chroma .gr { color: #f33; } /* GenericError */
.chroma .gh { color: #fa1; } /* GenericHeading */
.chroma .gi { color: #fff; background-color: #3a523a; } /* GenericInserted */
.chroma .go { color: #888888; } /* GenericOutput */
.chroma .gp { color: #555555; } /* GenericPrompt */
.chroma .gu { color: #9daccc; } /* GenericSubheading */
.chroma .gt { color: #f63; } /* GenericTraceback */
.chroma .w { color: #bbbbbb; } /* TextWhitespace */

View File

@ -0,0 +1,89 @@
.CodeMirror {
&.cm-s-default,
&.cm-s-paper {
.cm-property {
color: #a0cc75;
}
.cm-header {
color: #9daccc;
}
.cm-quote {
color: #009900;
}
.cm-keyword {
color: #cc8a61;
}
.cm-atom {
color: #ef5e77;
}
.cm-number {
color: #ff5656;
}
.cm-def {
color: #e4e4e4;
}
.cm-variable-2 {
color: #00bdbf;
}
.cm-variable-3 {
color: #008855;
}
.cm-comment {
color: #8e9ab3;
}
.cm-string {
color: #a77272;
}
.cm-string-2 {
color: #ff5500;
}
.cm-meta,
.cm-qualifier {
color: #ffb176;
}
.cm-builtin {
color: #b7c951;
}
.cm-bracket {
color: #999977;
}
.cm-tag {
color: #f1d273;
}
.cm-attribute {
color: #bfcc70;
}
.cm-hr {
color: #999999;
}
.cm-url {
color: #c5cfd0;
}
.cm-link {
color: #d8c792;
}
.cm-error {
color: #dbdbeb;
}
}
}

View File

@ -0,0 +1,457 @@
@import "../chroma/dark.less";
@import "../codemirror/dark.less";
:root {
--is-dark-theme: true;
--color-primary: #87ab63;
--color-primary-dark-1: #93b373;
--color-primary-dark-2: #9fbc82;
--color-primary-dark-3: #abc492;
--color-primary-dark-4: #b7cda1;
--color-primary-dark-5: #cfddc1;
--color-primary-dark-6: #e7eee0;
--color-primary-dark-7: #f8faf6;
--color-primary-light-1: #7a9e55;
--color-primary-light-2: #6c8c4c;
--color-primary-light-3: #5f7b42;
--color-primary-light-4: #516939;
--color-primary-light-5: #364626;
--color-primary-light-6: #1b2313;
--color-primary-light-7: #080b06;
--color-primary-alpha-10: #87ab6319;
--color-primary-alpha-20: #87ab6333;
--color-primary-alpha-30: #87ab634b;
--color-primary-alpha-40: #87ab6366;
--color-primary-alpha-50: #87ab6380;
--color-primary-alpha-60: #87ab6399;
--color-primary-alpha-70: #87ab63b3;
--color-primary-alpha-80: #87ab63cc;
--color-primary-alpha-90: #87ab63e1;
--color-secondary: #454a57;
--color-secondary-dark-1: #505665;
--color-secondary-dark-2: #5b6273;
--color-secondary-dark-3: #71798e;
--color-secondary-dark-4: #7f8699;
--color-secondary-dark-5: #8c93a4;
--color-secondary-dark-6: #9aa0af;
--color-secondary-dark-7: #a8adba;
--color-secondary-dark-8: #b6bac5;
--color-secondary-dark-9: #c4c7d0;
--color-secondary-dark-10: #d2d4db;
--color-secondary-dark-11: #dfe1e6;
--color-secondary-dark-12: #edeef1;
--color-secondary-dark-13: #fbfbfc;
--color-secondary-light-1: #373b46;
--color-secondary-light-2: #292c34;
--color-secondary-light-3: #1c1e23;
--color-secondary-light-4: #0e0f11;
--color-secondary-alpha-10: #454a5719;
--color-secondary-alpha-20: #454a5733;
--color-secondary-alpha-30: #454a574b;
--color-secondary-alpha-40: #454a5766;
--color-secondary-alpha-50: #454a5780;
--color-secondary-alpha-60: #454a5799;
--color-secondary-alpha-70: #454a57b3;
--color-secondary-alpha-80: #454a57cc;
--color-secondary-alpha-90: #454a57e1;
/* colors */
--color-red: #db2828;
--color-orange: #f2711c;
--color-yellow: #fbbd08;
--color-olive: #b5cc18;
--color-green: #21ba45;
--color-teal: #00b5ad;
--color-blue: #2185d0;
--color-violet: #6435c9;
--color-purple: #a333c8;
--color-pink: #e03997;
--color-brown: #a5673f;
--color-grey: #767a85;
--color-black: #1e222e;
--color-gold: #a1882b;
--color-white: #ffffff;
--color-diff-removed-word-bg: #6f3333;
--color-diff-added-word-bg: #3c653c;
--color-diff-removed-row-bg: #3c2626;
--color-diff-moved-row-bg: #818044;
--color-diff-added-row-bg: #283e2d;
--color-diff-removed-row-border: #634343;
--color-diff-moved-row-border: #bcca6f;
--color-diff-added-row-border: #314a37;
--color-diff-inactive: #353846;
--color-error-border: #a53a37;
--color-error-bg: #482c2c;
--color-error-text: #ff4433;
--color-success-border: #458a57;
--color-success-bg: #284034;
--color-success-text: #6cc664;
--color-warning-border: #bb9d00;
--color-warning-bg: #3a3a30;
--color-warning-text: #fbbd08;
--color-info-border: #306090;
--color-info-bg: #26354c;
--color-info-text: #38a8e8;
/* target-based colors */
--color-body: #383c4a;
--color-box-header: #404652;
--color-box-body: #303440;
--color-text-dark: #dbe0ea;
--color-text: #bbc0ca;
--color-text-light: #a6aab5;
--color-text-light-2: #8a8e99;
--color-text-light-3: #707687;
--color-footer: #2e323e;
--color-timeline: #4c525e;
--color-input-text: #d5dbe6;
--color-input-background: #292d39;
--color-input-border: #454a57;
--color-input-border-hover: #505667;
--color-navbar: #2a2e3a;
--color-navbar-transparent: #2a2e3a00;
--color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #ffffff28;
--color-hover: #ffffff10;
--color-active: #ffffff16;
--color-menu: #2e323e;
--color-card: #2e323e;
--color-markup-table-row: #ffffff06;
--color-markup-code-block: #292d39;
--color-button: #353846;
--color-code-bg: #2a2e3a;
--color-code-sidebar-bg: #2e323e;
--color-shadow: #00000060;
--color-secondary-bg: #2a2e3a;
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: #6a737d;
--color-editor-line-highlight: var(--color-primary-light-5);
--color-project-board-bg: var(--color-secondary-light-2);
--color-caret: var(--color-text); /* should ideally be --color-text-dark, see #15651 */
--color-reaction-bg: #ffffff12;
--color-reaction-active-bg: var(--color-primary-alpha-40);
}
::-webkit-calendar-picker-indicator {
filter: invert(.8);
}
.ui.horizontal.segments > .segment {
background-color: #383c4a;
}
.following.bar.light {
background: #2e323e;
border-color: var(--color-secondary-alpha-40);
}
.following.bar .top.menu a.item:hover {
color: #fff;
}
.feeds .list ul li.private {
background: #353945;
}
.ui.red.label,
.ui.red.labels .label {
background-color: #7d3434 !important;
border-color: #8a2121 !important;
}
.ui.yellow.label,
.ui.yellow.labels .label {
border-color: #664d02 !important;
background-color: #936e00 !important;
}
.ui.accordion .title:not(.ui) {
color: #dbdbdb;
}
.ui.green.label,
.ui.green.labels .label,
.ui.basic.green.label {
background-color: #2d693b !important;
border-color: #2d693b !important;
}
.ui.green.labels a.label:hover,
.ui.basic.green.labels a.label:hover,
a.ui.ui.ui.green.label:hover,
a.ui.basic.green.label:hover {
background-color: #3d794b !important;
border-color: #3d794b !important;
color: #fff !important;
}
.ui.divider:not(.vertical):not(.horizontal) {
border-bottom-color: var(--color-secondary);
border-top-color: transparent;
}
.form .help {
color: #7f8699;
}
.ui .text.light.grey {
color: #7f8699 !important;
}
.ui.form .fields.error .field textarea,
.ui.form .fields.error .field select,
.ui.form .fields.error .field input:not([type]),
.ui.form .fields.error .field input[type="date"],
.ui.form .fields.error .field input[type="datetime-local"],
.ui.form .fields.error .field input[type="email"],
.ui.form .fields.error .field input[type="number"],
.ui.form .fields.error .field input[type="password"],
.ui.form .fields.error .field input[type="search"],
.ui.form .fields.error .field input[type="tel"],
.ui.form .fields.error .field input[type="time"],
.ui.form .fields.error .field input[type="text"],
.ui.form .fields.error .field input[type="file"],
.ui.form .fields.error .field input[type="url"],
.ui.form .field.error textarea,
.ui.form .field.error select,
.ui.form .field.error input:not([type]),
.ui.form .field.error input[type="date"],
.ui.form .field.error input[type="datetime-local"],
.ui.form .field.error input[type="email"],
.ui.form .field.error input[type="number"],
.ui.form .field.error input[type="password"],
.ui.form .field.error input[type="search"],
.ui.form .field.error input[type="tel"],
.ui.form .field.error input[type="time"],
.ui.form .field.error input[type="text"],
.ui.form .field.error input[type="file"],
.ui.form .field.error input[type="url"] {
background-color: #522;
border: 1px solid #7d3434;
color: #f9cbcb;
}
.ui.form .field.error select:focus,
.ui.form .field.error input:not([type]):focus,
.ui.form .field.error input[type="date"]:focus,
.ui.form .field.error input[type="datetime-local"]:focus,
.ui.form .field.error input[type="email"]:focus,
.ui.form .field.error input[type="number"]:focus,
.ui.form .field.error input[type="password"]:focus,
.ui.form .field.error input[type="search"]:focus,
.ui.form .field.error input[type="tel"]:focus,
.ui.form .field.error input[type="time"]:focus,
.ui.form .field.error input[type="text"]:focus,
.ui.form .field.error input[type="file"]:focus,
.ui.form .field.error input[type="url"]:focus {
background-color: #522;
border: 1px solid #a04141;
color: #f9cbcb;
}
.ui.green.button,
.ui.green.buttons .button {
background-color: #87ab63;
}
.ui.green.button:hover,
.ui.green.buttons .button:hover {
background-color: #a0cc75;
}
.ui.search > .results {
background: #383c4a;
border-color: var(--color-secondary);
}
.ui.search > .results .result:hover,
.ui.category.search > .results .category .result:hover {
background: var(--color-secondary);
}
.ui.search > .results .result .title {
color: #dbdbdb;
}
.ui.table > thead > tr > th {
background: var(--color-secondary);
color: #dbdbdb !important;
}
.repository.file.list #repo-files-table tr {
background: #2a2e3a;
}
.repository.file.list #repo-files-table tr:hover {
background-color: #393d4a !important;
}
.overflow.menu .items .item {
color: #9d9d9d;
}
.overflow.menu .items .item:hover {
color: #dbdbdb;
}
.ui.list > .item > .content {
color: var(--color-secondary-dark-6) !important;
}
.repository .navbar .active.item,
.repository .navbar .active.item:hover {
border-color: transparent !important;
}
.repository .diff-stats li {
border-color: var(--color-secondary);
}
.tag-code,
.tag-code td {
background: #353945 !important;
}
.tag-code td.lines-num {
background-color: #3a3e4c !important;
}
.tag-code td.lines-type-marker,
td.blob-hunk {
color: #dbdbdb !important;
}
.ui.red.button,
.ui.red.buttons .button {
background-color: #7d3434;
}
.ui.red.button:hover,
.ui.red.buttons .button:hover {
background-color: #984646;
}
.ui.list .list > .item .header,
.ui.list > .item .header {
color: #dedede;
}
.ui.list .list > .item .description,
.ui.list > .item .description {
color: var(--color-secondary-dark-6);
}
.repository.labels .ui.basic.black.label {
background-color: #bbbbbb !important;
}
.lines-num {
color: var(--color-secondary-dark-6) !important;
border-color: var(--color-secondary) !important;
}
td.blob-excerpt {
background-color: rgba(0, 0, 0, .15);
}
.lines-code.active,
.lines-code .active {
background: #534d1b !important;
}
.ui.ui.ui.ui.table tr.active,
.ui.ui.table td.active {
color: #dbdbdb;
}
.ui.active.label {
background: #393d4a;
border-color: #393d4a;
color: #dbdbdb;
}
.ui.header .sub.header {
color: var(--color-secondary-dark-6);
}
.ui.dividing.header {
border-bottom: 1px solid var(--color-secondary);
}
.ui.modal > .header {
background: var(--color-secondary);
color: #dbdbdb;
}
.ui.modal > .actions {
background: var(--color-secondary);
border-color: var(--color-secondary);
}
.ui.modal > .content {
background: #383c4a;
}
.minicolors-panel {
background: var(--color-secondary) !important;
border-color: #6a737d !important;
}
/* invert emojis that are hard to read otherwise */
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label="copyright"],
.emoji[aria-label="registered"],
.emoji[aria-label="trade mark"],
.emoji[aria-label="multiply"],
.emoji[aria-label="plus"],
.emoji[aria-label="minus"],
.emoji[aria-label="divide"],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
filter: invert(100%) hue-rotate(180deg);
}
.edit-diff > div > .ui.table {
border-left-color: var(--color-secondary) !important;
border-right-color: var(--color-secondary) !important;
}
footer .container .links > * {
border-left-color: #888;
}
.repository.release #release-list > li .detail .dot {
background-color: #505667;
border-color: #383c4a;
}
.tribute-container {
box-shadow: 0 .25rem .5rem rgba(0, 0, 0, .6);
}
.repository .repo-header .ui.huge.breadcrumb.repo-title .repo-header-icon .avatar {
color: #2a2e3a;
}
img[src$="/img/matrix.svg"] {
filter: invert(80%);
}
.is-loading::after {
border-color: #4a4c58 #4a4c58 #d7d7da #d7d7da;
}
.markup-block-error {
border: 1px solid rgba(121, 71, 66, .5) !important;
border-bottom: none !important;
}

View File

@ -0,0 +1,3 @@
@media (prefers-color-scheme: dark) {
@import "theme-arc-green.less";
}

0
img/.gitkeep Normal file
View File

25
package.json Normal file
View File

@ -0,0 +1,25 @@
{
"name": "od_gitea_customization",
"version": "1.0.0",
"description": "Opening Design Gitea theming",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://hub.openingdesign.com/OpeningDesign/gitea_customization"
},
"keywords": [
"gitea",
"them"
],
"author": "",
"license": "GPL-3.0",
"devDependencies": {
"husky": "^8.0.1",
"less": "^4.1.3",
"lint-staged": "^13.0.3",
"prettier": "^2.7.1"
}
}

53
templates/home.tmpl Normal file
View File

@ -0,0 +1,53 @@
{{template "base/head" .}}
<div class="page-content home">
<div class="ui stackable middle very relaxed page grid">
<div class="sixteen wide center aligned centered column">
<div>
<img class="logo" width="220" height="220" src="{{AssetUrlPrefix}}/img/logo.svg"/>
</div>
<div class="hero">
<h1 class="ui icon header title">
{{AppName}}
</h1>
<h2>{{.locale.Tr "startpage.app_desc"}}</h2>
</div>
</div>
</div>
<div class="ui stackable middle very relaxed page grid">
<div class="eight wide center column">
<h1 class="hero ui icon header">
{{svg "octicon-flame"}} {{.locale.Tr "startpage.install"}}
</h1>
<p class="large">
{{.locale.Tr "startpage.install_desc" | Str2html}}
</p>
</div>
<div class="eight wide center column">
<h1 class="hero ui icon header">
{{svg "octicon-device-desktop"}} {{.locale.Tr "startpage.platform"}}
</h1>
<p class="large">
{{.locale.Tr "startpage.platform_desc" | Str2html}}
</p>
</div>
</div>
<div class="ui stackable middle very relaxed page grid">
<div class="eight wide center column">
<h1 class="hero ui icon header">
{{svg "octicon-rocket"}} {{.locale.Tr "startpage.lightweight"}}
</h1>
<p class="large">
{{.locale.Tr "startpage.lightweight_desc" | Str2html}}
</p>
</div>
<div class="eight wide center column">
<h1 class="hero ui icon header">
{{svg "octicon-code"}} {{.locale.Tr "startpage.license"}}
</h1>
<p class="large">
{{.locale.Tr "startpage.license_desc" | Str2html}}
</p>
</div>
</div>
</div>
{{template "base/footer" .}}