From 77f5258f022c028b0ff7f02c9e4d0e09d07b5002 Mon Sep 17 00:00:00 2001 From: Sophia Atkinson Date: Sat, 17 Jan 2026 09:05:28 -0800 Subject: [PATCH] First patch in almost 2 years! I removed the install script as it is outdated and honestly its easier to just manually install it. added some patches to the scss files to make it compatible with the latest gitea version. Later i hope to add more themes to this one file, and change it to a theme pack. updated the app.ini, make sure for this commit to change your app.ini to match the new one. --- README.md | 3 +- gitea-blurple.sh | 83 -------------- public/assets/css/theme-blurple-dyslexia.css | 110 +++++++++++-------- public/assets/css/theme-blurple.css | 110 +++++++++++-------- templates/app.ini | 5 +- templates/scss/partials/_blurple_roots.scss | 87 ++++++++------- templates/scss/partials/_theme_blurple.scss | 30 ++--- 7 files changed, 194 insertions(+), 234 deletions(-) delete mode 100644 gitea-blurple.sh diff --git a/README.md b/README.md index 35777b6..43fa497 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ # Gitea Blurple -## We have made a nice little script for you to install this. -## `wget -O gitea-blurple.sh https://sop.wtf/tpkauf && bash gitea-blurple.sh` \ No newline at end of file +It's a blurple theme for Gitea. diff --git a/gitea-blurple.sh b/gitea-blurple.sh deleted file mode 100644 index a690c84..0000000 --- a/gitea-blurple.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash - -log_message() { - local level=$1 - local message=$2 - local timestamp=$(date +"%Y-%m-%d %H:%M:%S") - echo "[$timestamp] [$level] $message" >> /var/log/gitea_blurple.log -} - -handle_error() { - local message=$1 - local level=${2:-"ERROR"} - log_message "$level" "$message" - echo "Error: $message" >&2 - exit 1 -} - -clone_repository() { - local retries=3 - local attempt=1 - until git clone https://git.oldgate.org/OGS/Gitea-Blurple.git; do - ((attempt++)) - if [ $attempt -gt $retries ]; then - handle_error "Failed to clone repository after $retries attempts" - fi - log_message "WARNING" "Failed to clone repository, retrying... (Attempt $attempt)" - sleep 5 - done -} - -backup_file() { - local file=$1 - if [ -e "$file" ]; then - cp "$file" "$file.bak" || handle_error "Failed to backup $file" - log_message "INFO" "Backup created for $file" - else - log_message "WARNING" "File $file does not exist, skipping backup" - fi -} - -append_to_file() { - local content=$1 - local file=$2 - echo "$content" >> "$file" || handle_error "Failed to append content to $file" -} - -main() { - local repository_dir="Gitea-Blurple" - local gitea_service="gitea" - local gitea_config="/etc/gitea/app.ini" - local custom_dir="/var/lib/gitea/custom" - local custom_public_dir="$custom_dir/public" - - cd /tmp || handle_error "Failed to change directory to /tmp" - clone_repository || handle_error "Failed to clone repository" - - sudo systemctl stop "$gitea_service" || handle_error "Failed to stop Gitea service" - - backup_file "$custom_public_dir" - - sudo cp -r "$repository_dir/public/" "$custom_public_dir" || handle_error "Failed to copy new custom/public directory" - - sudo chown -R git:git "$custom_dir" || handle_error "Failed to set ownership" - sudo chmod -R 750 "$custom_dir" || handle_error "Failed to set permissions" - - if grep -q "\[ui\]" "$gitea_config"; then - sudo systemctl restart "$gitea_service" || handle_error "Failed to restart Gitea service" - else - backup_file "$gitea_config" - append_to_file "$(cat "$repository_dir/templates/app.ini")" "$gitea_config" - sudo chown root:git "$gitea_config" || handle_error "Failed to set ownership for app.ini" - sudo chmod 770 "$gitea_config" || handle_error "Failed to set permissions for app.ini" - sudo systemctl restart "$gitea_service" || handle_error "Failed to restart Gitea service" - fi - - echo -e "==================================================================" - echo "Clear your cache for the changes to appear" - echo -e "==================================================================" - - log_message "INFO" "Script execution completed successfully" -} - -main diff --git a/public/assets/css/theme-blurple-dyslexia.css b/public/assets/css/theme-blurple-dyslexia.css index d985cb4..9bceedd 100644 --- a/public/assets/css/theme-blurple-dyslexia.css +++ b/public/assets/css/theme-blurple-dyslexia.css @@ -158,16 +158,18 @@ --color-grey: #505665; --color-grey-light: #8d919b; --color-gold: #b1983b; - --color-white: #fff; - --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-white: #ffffff; + --color-diff-added-linenum-bg: #274227; + --color-diff-added-row-bg: #203224; --color-diff-added-row-border: #314a37; - --color-diff-inactive: #353846; + --color-diff-added-word-bg: #3c653c; + --color-diff-moved-row-bg: #818044; + --color-diff-moved-row-border: #bcca6f; + --color-diff-removed-linenum-bg: #482121; + --color-diff-removed-row-bg: #301e1e; + --color-diff-removed-row-border: #634343; + --color-diff-removed-word-bg: #6f3333; + --color-diff-inactive: #22282d; --color-error-border: #a04141; --color-error-bg: #522; --color-error-bg-active: #744; @@ -212,44 +214,53 @@ --color-input-toggle-background: #454a57; --color-input-border: var(--color-secondary); --color-input-border-hover: var(--color-secondary-dark-1); - --color-header-wrapper: #202430; - --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: #ffffff0d; - --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-light: #00001728; + --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled))); + --color-light-border: #e8f3ff28; + --color-hover: #e8f3ff19; + --color-hover-opaque: #21252a; + --color-active: #e8f3ff24; + --color-menu: #2E323E; + --color-card: #2E323E; + --color-markup-table-row: #e8f3ff0f; + --color-markup-code-block: #e8f3ff12; + --color-markup-code-inline: #e8f3ff28; + --color-button: #2E323E; + --color-code-bg: #14171a; + --color-shadow: #00001758; + --color-shadow-opaque: #000017; + --color-secondary-bg: #2a3137; + --color-expand-button: #2f363d; + --color-placeholder-text: var(--color-text-light-3); --color-editor-line-highlight: var(--color-primary-light-5); - --color-project-board-bg: var(--color-secondary-light-2); + --color-project-column-bg: var(--color-secondary-light-2); --color-caret: var(--color-text); - --color-reaction-bg: #ffffff12; + --color-reaction-bg: #e8f3ff12; --color-reaction-hover-bg: var(--color-primary-light-4); --color-reaction-active-bg: var(--color-primary-light-5); - --color-tooltip-text: #fff; - --color-tooltip-bg: #000000f0; + --color-tooltip-text: #f9fafb; + --color-tooltip-bg: #000b17f0; --color-nav-bg: #232834; - --color-nav-hover-bg: #383c47; - --color-label-text: #dfe3ec; - --color-label-bg: #7c84974b; - --color-label-hover-bg: #7c8497a0; - --color-label-active-bg: #7c8497ff; + --color-nav-hover-bg: var(--color-secondary-light-1); + --color-nav-text: var(--color-text); + --color-secondary-nav-bg: #383C4A; + --color-label-text: var(--color-text); + --color-label-bg: #7282924b; + --color-label-hover-bg: #728292a0; + --color-label-active-bg: #728292ff; --color-accent: var(--color-primary-light-1); --color-small-accent: var(--color-primary-light-5); - --color-active-line: #534d1b; + --color-highlight-fg: #87651e; + --color-highlight-bg: #352c1c; --color-overlay-backdrop: #080808c0; accent-color: var(--color-accent); color-scheme: dark; + --color-diff-added-linenum-bg: #1979fd46; + --color-diff-added-row-bg: #1979fd20; + --color-diff-added-word-bg: #1979fd66; + --color-diff-removed-linenum-bg: #c8622146; + --color-diff-removed-row-bg: #c8622120; + --color-diff-removed-word-bg: #c8622166 ; } } /** @@ -517,26 +528,29 @@ DO NOT INCLUEDE ANY :root(s) IN THIS FILE!!! .CodeMirror.cm-s-paper .cm-error { color: #dbdbeb; } - .emoji[aria-label=check\ mark], - .emoji[aria-label=currency\ exchange], - .emoji[aria-label=TOP\ arrow], - .emoji[aria-label=END\ arrow], + gitea-theme-meta-info { + --theme-display-name: "Dark" ; + } + .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="SOON arrow"], .emoji[aria-label="heavy dollar sign"], .emoji[aria-label=copyright], .emoji[aria-label=registered], - .emoji[aria-label=trade\ mark], + .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="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] { + .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); } } \ No newline at end of file diff --git a/public/assets/css/theme-blurple.css b/public/assets/css/theme-blurple.css index 7e018c9..1ae64a9 100644 --- a/public/assets/css/theme-blurple.css +++ b/public/assets/css/theme-blurple.css @@ -133,16 +133,18 @@ --color-grey: #505665; --color-grey-light: #8d919b; --color-gold: #b1983b; - --color-white: #fff; - --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-white: #ffffff; + --color-diff-added-linenum-bg: #274227; + --color-diff-added-row-bg: #203224; --color-diff-added-row-border: #314a37; - --color-diff-inactive: #353846; + --color-diff-added-word-bg: #3c653c; + --color-diff-moved-row-bg: #818044; + --color-diff-moved-row-border: #bcca6f; + --color-diff-removed-linenum-bg: #482121; + --color-diff-removed-row-bg: #301e1e; + --color-diff-removed-row-border: #634343; + --color-diff-removed-word-bg: #6f3333; + --color-diff-inactive: #22282d; --color-error-border: #a04141; --color-error-bg: #522; --color-error-bg-active: #744; @@ -187,44 +189,53 @@ --color-input-toggle-background: #454a57; --color-input-border: var(--color-secondary); --color-input-border-hover: var(--color-secondary-dark-1); - --color-header-wrapper: #202430; - --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: #ffffff0d; - --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-light: #00001728; + --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled))); + --color-light-border: #e8f3ff28; + --color-hover: #e8f3ff19; + --color-hover-opaque: #21252a; + --color-active: #e8f3ff24; + --color-menu: #2E323E; + --color-card: #2E323E; + --color-markup-table-row: #e8f3ff0f; + --color-markup-code-block: #e8f3ff12; + --color-markup-code-inline: #e8f3ff28; + --color-button: #2E323E; + --color-code-bg: #14171a; + --color-shadow: #00001758; + --color-shadow-opaque: #000017; + --color-secondary-bg: #2a3137; + --color-expand-button: #2f363d; + --color-placeholder-text: var(--color-text-light-3); --color-editor-line-highlight: var(--color-primary-light-5); - --color-project-board-bg: var(--color-secondary-light-2); + --color-project-column-bg: var(--color-secondary-light-2); --color-caret: var(--color-text); - --color-reaction-bg: #ffffff12; + --color-reaction-bg: #e8f3ff12; --color-reaction-hover-bg: var(--color-primary-light-4); --color-reaction-active-bg: var(--color-primary-light-5); - --color-tooltip-text: #fff; - --color-tooltip-bg: #000000f0; + --color-tooltip-text: #f9fafb; + --color-tooltip-bg: #000b17f0; --color-nav-bg: #232834; - --color-nav-hover-bg: #383c47; - --color-label-text: #dfe3ec; - --color-label-bg: #7c84974b; - --color-label-hover-bg: #7c8497a0; - --color-label-active-bg: #7c8497ff; + --color-nav-hover-bg: var(--color-secondary-light-1); + --color-nav-text: var(--color-text); + --color-secondary-nav-bg: #383C4A; + --color-label-text: var(--color-text); + --color-label-bg: #7282924b; + --color-label-hover-bg: #728292a0; + --color-label-active-bg: #728292ff; --color-accent: var(--color-primary-light-1); --color-small-accent: var(--color-primary-light-5); - --color-active-line: #534d1b; + --color-highlight-fg: #87651e; + --color-highlight-bg: #352c1c; --color-overlay-backdrop: #080808c0; accent-color: var(--color-accent); color-scheme: dark; + --color-diff-added-linenum-bg: #1979fd46; + --color-diff-added-row-bg: #1979fd20; + --color-diff-added-word-bg: #1979fd66; + --color-diff-removed-linenum-bg: #c8622146; + --color-diff-removed-row-bg: #c8622120; + --color-diff-removed-word-bg: #c8622166 ; } } /** @@ -492,26 +503,29 @@ DO NOT INCLUEDE ANY :root(s) IN THIS FILE!!! .CodeMirror.cm-s-paper .cm-error { color: #dbdbeb; } - .emoji[aria-label=check\ mark], - .emoji[aria-label=currency\ exchange], - .emoji[aria-label=TOP\ arrow], - .emoji[aria-label=END\ arrow], + gitea-theme-meta-info { + --theme-display-name: "Dark" ; + } + .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="SOON arrow"], .emoji[aria-label="heavy dollar sign"], .emoji[aria-label=copyright], .emoji[aria-label=registered], - .emoji[aria-label=trade\ mark], + .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="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] { + .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); } } \ No newline at end of file diff --git a/templates/app.ini b/templates/app.ini index cb1079a..64815ed 100644 --- a/templates/app.ini +++ b/templates/app.ini @@ -1,3 +1,4 @@ [ui] -DEFAULT_THEME = blurple -THEMES = blurple,blurple-dyslexia,gitea,arc-green \ No newline at end of file +THEME_COLOR_META_TAG = "#7289DA" +DEFAULT_THEME = blurple +THEMES = blurple,blurple-dyslexia,gitea-auto-protanopia-deuteranopia,gitea-dark-protanopia-deuteranopia,gitea-light,gitea-light-protanopia-deuteranopia \ No newline at end of file diff --git a/templates/scss/partials/_blurple_roots.scss b/templates/scss/partials/_blurple_roots.scss index 67ae1f7..86dfb4a 100644 --- a/templates/scss/partials/_blurple_roots.scss +++ b/templates/scss/partials/_blurple_roots.scss @@ -133,16 +133,18 @@ --color-grey: #505665; --color-grey-light: #8d919b; --color-gold: #b1983b; - --color-white: #fff; - --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-white: #ffffff; + --color-diff-added-linenum-bg: #274227; + --color-diff-added-row-bg: #203224; --color-diff-added-row-border: #314a37; - --color-diff-inactive: #353846; + --color-diff-added-word-bg: #3c653c; + --color-diff-moved-row-bg: #818044; + --color-diff-moved-row-border: #bcca6f; + --color-diff-removed-linenum-bg: #482121; + --color-diff-removed-row-bg: #301e1e; + --color-diff-removed-row-border: #634343; + --color-diff-removed-word-bg: #6f3333; + --color-diff-inactive: #22282d; --color-error-border: #a04141; --color-error-bg: #522; --color-error-bg-active: #744; @@ -187,43 +189,52 @@ --color-input-toggle-background: #454a57; --color-input-border: var(--color-secondary); --color-input-border-hover: var(--color-secondary-dark-1); - --color-header-wrapper: #202430; - --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: #ffffff0d; - --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-light: #00001728; + --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled))); + --color-light-border: #e8f3ff28; + --color-hover: #e8f3ff19; + --color-hover-opaque: #21252a; + --color-active: #e8f3ff24; + --color-menu: #2E323E; + --color-card: #2E323E; + --color-markup-table-row: #e8f3ff0f; + --color-markup-code-block: #e8f3ff12; + --color-markup-code-inline: #e8f3ff28; + --color-button: #2E323E; + --color-code-bg: #14171a; + --color-shadow: #00001758; + --color-shadow-opaque: #000017; + --color-secondary-bg: #2a3137; + --color-expand-button: #2f363d; + --color-placeholder-text: var(--color-text-light-3); --color-editor-line-highlight: var(--color-primary-light-5); - --color-project-board-bg: var(--color-secondary-light-2); + --color-project-column-bg: var(--color-secondary-light-2); --color-caret: var(--color-text); - --color-reaction-bg: #ffffff12; + --color-reaction-bg: #e8f3ff12; --color-reaction-hover-bg: var(--color-primary-light-4); --color-reaction-active-bg: var(--color-primary-light-5); - --color-tooltip-text: #fff; - --color-tooltip-bg: #000000f0; + --color-tooltip-text: #f9fafb; + --color-tooltip-bg: #000b17f0; --color-nav-bg: #232834; - --color-nav-hover-bg: #383c47; - --color-label-text: #dfe3ec; - --color-label-bg: #7c84974b; - --color-label-hover-bg: #7c8497a0; - --color-label-active-bg: #7c8497ff; + --color-nav-hover-bg: var(--color-secondary-light-1); + --color-nav-text: var(--color-text); + --color-secondary-nav-bg: #383C4A; + --color-label-text: var(--color-text); + --color-label-bg: #7282924b; + --color-label-hover-bg: #728292a0; + --color-label-active-bg: #728292ff; --color-accent: var(--color-primary-light-1); --color-small-accent: var(--color-primary-light-5); - --color-active-line: #534d1b; + --color-highlight-fg: #87651e; + --color-highlight-bg: #352c1c; --color-overlay-backdrop: #080808c0; accent-color: var(--color-accent); - color-scheme: dark + color-scheme: dark; + --color-diff-added-linenum-bg: #1979fd46; + --color-diff-added-row-bg: #1979fd20; + --color-diff-added-word-bg: #1979fd66; + --color-diff-removed-linenum-bg: #c8622146; + --color-diff-removed-row-bg: #c8622120; + --color-diff-removed-word-bg: #c8622166 } } \ No newline at end of file diff --git a/templates/scss/partials/_theme_blurple.scss b/templates/scss/partials/_theme_blurple.scss index d05660b..c1a168d 100644 --- a/templates/scss/partials/_theme_blurple.scss +++ b/templates/scss/partials/_theme_blurple.scss @@ -337,26 +337,30 @@ DO NOT INCLUEDE ANY :root(s) IN THIS FILE!!! color: #dbdbeb } - .emoji[aria-label=check\ mark], - .emoji[aria-label=currency\ exchange], - .emoji[aria-label=TOP\ arrow], - .emoji[aria-label=END\ arrow], + gitea-theme-meta-info { + --theme-display-name: "Dark" + } + + .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="SOON arrow"], .emoji[aria-label="heavy dollar sign"], .emoji[aria-label=copyright], .emoji[aria-label=registered], - .emoji[aria-label=trade\ mark], + .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="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) - } + .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) + } } \ No newline at end of file