From 9c4e64af09782e2b505212e5fa93b9788f4f0353 Mon Sep 17 00:00:00 2001 From: Naomi Carrigan Date: Tue, 3 Feb 2026 11:08:41 -0800 Subject: [PATCH] chore: sync current state --- conf/app.ini | 9 +- public/assets/css/theme-trans-pride-dark.css | 922 +++++++++--------- public/assets/css/theme-trans-pride.css | 922 +++++++++--------- public/assets/css/theme-witch.css | 940 +++++++++++++++++++ templates/base/footer.tmpl | 129 +-- templates/custom/header.tmpl | 2 +- 6 files changed, 1910 insertions(+), 1014 deletions(-) create mode 100644 public/assets/css/theme-witch.css diff --git a/conf/app.ini b/conf/app.ini index 6a8fe36..7ad2c85 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -9,6 +9,7 @@ DISABLE_REGULAR_ORG_CREATION=true [repository] ROOT = /data/git/repositories MAX_CREATION_LIMIT = 0 +ALLOW_FORK_WITHOUT_MAXIMUM_LIMIT = false [repository.local] LOCAL_COPY_PATH = /data/gitea/tmp/local-repo @@ -66,7 +67,7 @@ INSTALL_LOCK = true SECRET_KEY = REVERSE_PROXY_LIMIT = 1 REVERSE_PROXY_TRUSTED_PROXIES = * -INTERNAL_TOKEN = +INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3Mzc1NzgzMzl9.RU-_Fbr2ONiw-F2mADFaWwvXXVsQezy5jjgSQNE61sg PASSWORD_HASH_ALGO = pbkdf2 [service] @@ -96,7 +97,7 @@ PROTOCOL = smtps SMTP_ADDR = mail.nhcarrigan.com SMTP_PORT = 465 USER = noreply@nhcarrigan.com -PASSWD = +PASSWD = `PhBY8Ag4XcNh` [openid] ENABLE_OPENID_SIGNIN = false @@ -115,5 +116,5 @@ DEFAULT_TRUST_MODEL = committer JWT_SECRET = [ui] -DEFAULT_THEME = trans-pride -THEMES = trans-pride,trans-pride-dark \ No newline at end of file +DEFAULT_THEME = witch +THEMES = trans-pride,trans-pride-dark,witch \ No newline at end of file diff --git a/public/assets/css/theme-trans-pride-dark.css b/public/assets/css/theme-trans-pride-dark.css index 206b9f3..74e475c 100644 --- a/public/assets/css/theme-trans-pride-dark.css +++ b/public/assets/css/theme-trans-pride-dark.css @@ -1,468 +1,468 @@ /* Trans Wrath - A dark mode variant of Trans Pride for Gitea */ @font-face { - font-family: 'Vampyr'; - src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype'); - } - - :root { - --fonts-regular: "Vampyr" !important; - --fonts-proportional: "Vampyr" !important; - --fonts-monospace: "Vampyr" !important; - --fonts-emoji: "Vampyr" !important; - --is-dark-theme: true; - - /* Primary (pinks) */ - --color-primary: #ff6b94; /* flag pink pop */ - --color-primary-dark: #ff3b6f; /* deeper pink for hover/active */ - --color-primary-light: #ffb6c1; /* soft pink for subtle accents */ - --color-primary-very-light: #3a1a2a; /* dim pink-plum for muted fills */ - - /* Main Text & Background */ - --color-text: #ffe6ee; /* near-white with pink warmth */ - --color-text-light: #ffd1dc; /* lighter/paler text */ - --color-text-dark: #ffc0cb; /* headings/links emphasis */ - --color-body: #2a0a18; /* your existing plum base */ - - /* UI (blues for contrast = trans stripes!) */ - --color-secondary: #3b6ea8; /* medium trans-blue */ - --color-secondary-dark: #2d5a8b; /* hover/active */ - --color-secondary-light: #4f84c2; /* borders/badges */ - - /* State Colors */ - --color-success: #87cefa; /* sky blue success */ - --color-success-dark: #5dade2; - --color-success-light: #add8e6; - --color-danger: #ff4f7a; /* pinkish red */ - --color-danger-dark: #ff2f66; - --color-danger-light: #ff7fa1; - --color-warning: #ffc3a0; /* peach pairs nicely */ - --color-warning-dark: #ffb78f; - --color-warning-light: #ffd4b7; - --color-info: #5dade2; /* bright info blue */ - --color-info-dark: #3f8ecb; - --color-info-light: #87c7f1; - - /* Other UI Elements */ - --color-menu: #2a0a18; - --color-card: #241624; /* slightly darker than body */ - --color-markup-table-row: #2f1b30; /* alternating rows */ - --color-markup-code-block: #2f1b30; /* code blocks */ - --color-button: #ff6b94; /* primary buttons = pink */ - --color-border: #3a2847; /* muted plum border */ - --color-input-border: #4f84c2; /* blue focus ring vibe */ - --color-input-background: #241624; - --color-small-accent: #add8e6; /* tiny blue sparkles */ - - /* Diff Colors (trans-tinted, still readable) */ - --color-diff-add-line: #162235; /* blue-tinted add */ - --color-diff-add-word: #203149; - --color-diff-del-line: #2a1620; /* pink-tinted delete */ - --color-diff-del-word: #3b2030; - --color-diff-section: #1e1b2a; /* neutral section bg */ - - /* Code Syntax Highlighting (blue + pink duo) */ - --color-code-keyword: #1e90ff; /* keywords = trans blue */ - --color-code-function: #ff3b6f; /* functions = deep pink */ - --color-code-string: #ff9aac; /* strings = soft pink */ - --color-code-number: #5dade2; /* numbers = bright blue */ - --color-code-comment: #c79bb1; /* gentle mauve comment */ - --color-code-type: #87cefa; /* types = sky blue */ - - --vscode-editor-background: #151a28; /* cooler dark editor well */ - --color-footer: #2a0a18; - --color-nav-bg: #2a0a18; - } - - - /* Header */ - .ui.menu.inverted { - background-color: var(--color-secondary); - color: var(--color-text); - } - - .ui.secondary.menu .item { - color: var(--color-text); - } - - .ui.secondary.menu .active.item { - background-color: var(--color-primary-very-light); - } - - /* Repository header */ - .repository.header { - background-color: var(--color-menu); - } - - /* Buttons */ - .ui.primary.button { - background-color: var(--color-primary); - } - - .ui.primary.button:hover { - background-color: var(--color-primary-dark); - } - - .ui.basic.button { - box-shadow: 0 0 0 1px var(--color-border) inset; - color: var(--color-text) !important; - } - - .ui.basic.button:hover { - background-color: var(--color-primary-very-light) !important; - color: var(--color-text-dark) !important; - } - - /* Tabs */ - .ui.tabular.menu .item { - color: var(--color-text-light); - } - - .ui.tabular.menu .active.item { - background-color: var(--color-primary-very-light); - color: var(--color-text); - border-color: var(--color-border); - } - - /* Tables */ - .ui.table thead th { - background: var(--color-menu); - color: var(--color-text); - } - - .ui.table { - border-color: var(--color-border); - } - - /* Form inputs */ - .ui.input input { - background-color: var(--color-input-background); - border-color: var(--color-input-border); - color: var(--color-text); - } - - .ui.input input:focus { - border-color: var(--color-primary); - } - - /* Labels */ - .ui.label { - background-color: var(--color-primary-very-light); - color: var(--color-text); - } - - /* Markdown Content */ - .markdown:not(code) { - color: var(--color-text); - } - - .markdown code, .markdown pre { - background-color: var(--color-markup-code-block); - border-color: var(--color-border); - } - - /* Sidebar */ - .ui.vertical.menu { - background-color: var(--color-menu); - } - - .ui.vertical.menu .item { - color: var(--color-text); - } - - .ui.vertical.menu .active.item { - background-color: var(--color-primary-very-light); - } - - /* Status tags */ - .ui.green.label { - background-color: var(--color-success) !important; - color: var(--color-body) !important; - } - - .ui.red.label { - background-color: var(--color-danger) !important; - color: var(--color-body) !important; - } - - .ui.yellow.label { - background-color: var(--color-warning) !important; - color: var(--color-text-dark) !important; - } - - .ui.blue.label { - background-color: var(--color-info) !important; - color: var(--color-body) !important; - } - - /* Dashboard cards */ - .dashboard-card { - background-color: var(--color-card); - border-color: var(--color-border); - } - - /* Timeline and activities */ - .timeline-item { - border-color: var(--color-border); - } - - .timeline-item .badge { - background-color: var(--color-primary-very-light); - color: var(--color-text); - } - - /* Code diff view */ - .diff-file-box .code-diff-split .add-code { - background-color: var(--color-diff-add-line); - } - - .diff-file-box .code-diff-split .del-code { - background-color: var(--color-diff-del-line); - } - - .diff-file-box .code-diff-split .add-code .add-line { - background-color: var(--color-diff-add-word); - } - - .diff-file-box .code-diff-split .del-code .del-line { - background-color: var(--color-diff-del-word); - } - - .monaco-editor, .monaco-diff-editor, .monaco-component, .monaco-editor-background, .monaco-editor .margin { - background: var(--vscode-editor-background) !important; - } - - .monaco-editor { - --vscode-editor-selectionBackground: var(--color-primary) !important; - --vscode-editor-inactiveSelectionBackground: var(--color-primary) !important; - --vscode-editor-lineHighlightBackground: var(--color-primary) !important; - } - - .monaco-editor .view-overlays .current-line { - background-color: var(--color-primary) !important; - } - - .monaco-editor .margin { - background-color: transparent !important; - } - - .monaco-editor .margin-view-overlays .current-line-margin { - background-color: var(--color-primary) !important; - } - - .active-line-number { - background-color: transparent !important; - } - /* Scrollbar */ - ::-webkit-scrollbar-thumb { - background: var(--color-primary-light); - } - - ::-webkit-scrollbar-thumb:hover { - background: var(--color-primary); - } - - ::-webkit-scrollbar-track { - background: var(--color-primary-very-light); - } - - body::before { - background: url(https://cdn.nhcarrigan.com/background.png); - background-size: cover; - background-position: center; - width: 100%; - height: 100%; - z-index: -100; - content: ""; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - opacity: 1; - pointer-events: none; - } - - body::after { - background: var(--color-body); - opacity: 0.8; - width: 100%; - height: 100%; - z-index: -50; - content: ""; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - pointer-events: none; - } - - html { - cursor: url('https://cdn.nhcarrigan.com/cursors/cursor.cur'), auto; - font-family: "Vampyr"; - } - - a, button, .button, .dropdown { - cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer !important; - } - + font-family: 'Vampyr'; + src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype'); +} + +:root { + --fonts-regular: "Vampyr" !important; + --fonts-proportional: "Vampyr" !important; + --fonts-monospace: "Vampyr" !important; + --fonts-emoji: "Vampyr" !important; + --is-dark-theme: true; + + /* Primary (pinks) */ + --color-primary: #ff6b94; /* flag pink pop */ + --color-primary-dark: #ff3b6f; /* deeper pink for hover/active */ + --color-primary-light: #ffb6c1; /* soft pink for subtle accents */ + --color-primary-very-light: #3a1a2a; /* dim pink-plum for muted fills */ + + /* Main Text & Background */ + --color-text: #ffe6ee; /* near-white with pink warmth */ + --color-text-light: #ffd1dc; /* lighter/paler text */ + --color-text-dark: #ffc0cb; /* headings/links emphasis */ + --color-body: #2a0a18; /* your existing plum base */ + + /* UI (blues for contrast = trans stripes!) */ + --color-secondary: #3b6ea8; /* medium trans-blue */ + --color-secondary-dark: #2d5a8b; /* hover/active */ + --color-secondary-light: #4f84c2; /* borders/badges */ + + /* State Colors */ + --color-success: #87cefa; /* sky blue success */ + --color-success-dark: #5dade2; + --color-success-light: #add8e6; + --color-danger: #ff4f7a; /* pinkish red */ + --color-danger-dark: #ff2f66; + --color-danger-light: #ff7fa1; + --color-warning: #ffc3a0; /* peach pairs nicely */ + --color-warning-dark: #ffb78f; + --color-warning-light: #ffd4b7; + --color-info: #5dade2; /* bright info blue */ + --color-info-dark: #3f8ecb; + --color-info-light: #87c7f1; + + /* Other UI Elements */ + --color-menu: #2a0a18; + --color-card: #241624; /* slightly darker than body */ + --color-markup-table-row: #2f1b30; /* alternating rows */ + --color-markup-code-block: #2f1b30; /* code blocks */ + --color-button: #ff6b94; /* primary buttons = pink */ + --color-border: #3a2847; /* muted plum border */ + --color-input-border: #4f84c2; /* blue focus ring vibe */ + --color-input-background: #241624; + --color-small-accent: #add8e6; /* tiny blue sparkles */ + + /* Diff Colors (trans-tinted, still readable) */ + --color-diff-add-line: #162235; /* blue-tinted add */ + --color-diff-add-word: #203149; + --color-diff-del-line: #2a1620; /* pink-tinted delete */ + --color-diff-del-word: #3b2030; + --color-diff-section: #1e1b2a; /* neutral section bg */ + + /* Code Syntax Highlighting (blue + pink duo) */ + --color-code-keyword: #1e90ff; /* keywords = trans blue */ + --color-code-function: #ff3b6f; /* functions = deep pink */ + --color-code-string: #ff9aac; /* strings = soft pink */ + --color-code-number: #5dade2; /* numbers = bright blue */ + --color-code-comment: #c79bb1; /* gentle mauve comment */ + --color-code-type: #87cefa; /* types = sky blue */ + + --vscode-editor-background: #151a28; /* cooler dark editor well */ + --color-footer: #2a0a18; + --color-nav-bg: #2a0a18; +} + + +/* Header */ +.ui.menu.inverted { + background-color: var(--color-secondary); + color: var(--color-text); +} + +.ui.secondary.menu .item { + color: var(--color-text); +} + +.ui.secondary.menu .active.item { + background-color: var(--color-primary-very-light); +} + +/* Repository header */ +.repository.header { + background-color: var(--color-menu); +} + +/* Buttons */ +.ui.primary.button { + background-color: var(--color-primary); +} + +.ui.primary.button:hover { + background-color: var(--color-primary-dark); +} + +.ui.basic.button { + box-shadow: 0 0 0 1px var(--color-border) inset; + color: var(--color-text) !important; +} + +.ui.basic.button:hover { + background-color: var(--color-primary-very-light) !important; + color: var(--color-text-dark) !important; +} + +/* Tabs */ +.ui.tabular.menu .item { + color: var(--color-text-light); +} + +.ui.tabular.menu .active.item { + background-color: var(--color-primary-very-light); + color: var(--color-text); + border-color: var(--color-border); +} + +/* Tables */ +.ui.table thead th { + background: var(--color-menu); + color: var(--color-text); +} + +.ui.table { + border-color: var(--color-border); +} + +/* Form inputs */ +.ui.input input { + background-color: var(--color-input-background); + border-color: var(--color-input-border); + color: var(--color-text); +} + +.ui.input input:focus { + border-color: var(--color-primary); +} + +/* Labels */ +.ui.label { + background-color: var(--color-primary-very-light); + color: var(--color-text); +} + +/* Markdown Content */ +.markdown:not(code) { + color: var(--color-text); +} + +.markdown code, .markdown pre { + background-color: var(--color-markup-code-block); + border-color: var(--color-border); +} + +/* Sidebar */ +.ui.vertical.menu { + background-color: var(--color-menu); +} + +.ui.vertical.menu .item { + color: var(--color-text); +} + +.ui.vertical.menu .active.item { + background-color: var(--color-primary-very-light); +} + +/* Status tags */ +.ui.green.label { + background-color: var(--color-success) !important; + color: var(--color-body) !important; +} + +.ui.red.label { + background-color: var(--color-danger) !important; + color: var(--color-body) !important; +} + +.ui.yellow.label { + background-color: var(--color-warning) !important; + color: var(--color-text-dark) !important; +} + +.ui.blue.label { + background-color: var(--color-info) !important; + color: var(--color-body) !important; +} + +/* Dashboard cards */ +.dashboard-card { + background-color: var(--color-card); + border-color: var(--color-border); +} + +/* Timeline and activities */ +.timeline-item { + border-color: var(--color-border); +} + +.timeline-item .badge { + background-color: var(--color-primary-very-light); + color: var(--color-text); +} + +/* Code diff view */ +.diff-file-box .code-diff-split .add-code { + background-color: var(--color-diff-add-line); +} + +.diff-file-box .code-diff-split .del-code { + background-color: var(--color-diff-del-line); +} + +.diff-file-box .code-diff-split .add-code .add-line { + background-color: var(--color-diff-add-word); +} + +.diff-file-box .code-diff-split .del-code .del-line { + background-color: var(--color-diff-del-word); +} + +.monaco-editor, .monaco-diff-editor, .monaco-component, .monaco-editor-background, .monaco-editor .margin { + background: var(--vscode-editor-background) !important; +} + +.monaco-editor { + --vscode-editor-selectionBackground: var(--color-primary) !important; + --vscode-editor-inactiveSelectionBackground: var(--color-primary) !important; + --vscode-editor-lineHighlightBackground: var(--color-primary) !important; +} + +.monaco-editor .view-overlays .current-line { + background-color: var(--color-primary) !important; +} + +.monaco-editor .margin { + background-color: transparent !important; +} + +.monaco-editor .margin-view-overlays .current-line-margin { + background-color: var(--color-primary) !important; +} + +.active-line-number { + background-color: transparent !important; +} +/* Scrollbar */ +::-webkit-scrollbar-thumb { + background: var(--color-primary-light); +} + +::-webkit-scrollbar-thumb:hover { + background: var(--color-primary); +} + +::-webkit-scrollbar-track { + background: var(--color-primary-very-light); +} + +body::before { + background: url(https://cdn.nhcarrigan.com/background.png); + background-size: cover; + background-position: center; + width: 100%; + height: 100%; + z-index: -100; + content: ""; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 1; + pointer-events: none; +} + +body::after { + background: var(--color-body); + opacity: 0.8; + width: 100%; + height: 100%; + z-index: -50; + content: ""; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + pointer-events: none; +} + +html { + cursor: url('https://cdn.nhcarrigan.com/cursors/cursor.cur'), auto; + font-family: "Vampyr"; +} + +a, button, .button, .dropdown { + cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer !important; +} + +#tree-nation-offset-website { + display: flex; + align-items: center; +} +@media screen and (max-width: 885px) { #tree-nation-offset-website { - display: flex; - align-items: center; - } - @media screen and (max-width: 885px) { - #tree-nation-offset-website { - display: none; - } - } - - footer { - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - color: var(--foreground); - background-color: var(--background); - position: fixed; - bottom: 0; - height: 75px; - padding: 0 10px; - } - - @media (max-width: 880px) { - .page-footer { - flex-direction: row; - } - } - - #navbar { - position: fixed; - top: 0; - height: 50px; - width: 100%; - z-index: 1; - } - - .page-content { - margin-top: 50px; - } - - *::selection { - color: var(--color-body) !important; - background: var(--color-text) !important; - } - - @media screen and (max-width: 768px) { - - .navbar-right > .item { - justify-content: right !important; - width: 50% !important; - right: 0 !important; - margin-right: 0 !important; - margin-left: auto !important; - background: var(--color-nav-bg) !important; - } - - .navbar-left > .item { - justify-content: left !important; - width: 50% !important; - left: 0 !important; - margin-left: 0 !important; - margin-right: auto !important; - background: var(--color-nav-bg) !important; - } - } - - .home a { - text-decoration: underline !important; - } - - .home ul { - list-style-type: none !important; - padding-left: 0 !important; - } - - - #show-socials-button { - background: none; - border: none; - cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer; - color: var(--color-text); - font-size: 1rem; - } - #show-socials-button > i { - font-size: 1.5rem; - } - #social-list { - position: absolute; - bottom: 75px; - left: 0; - right: 0; - width: 100vw; - max-width: 400px; - padding: 10px; - background-color: var(--header_background); - color: var(--color-text); - border-radius: 10px; - border: 1px solid var(--color-text); display: none; - z-index: 1000; } - .social-list-item { - padding: 10px; +} + +footer { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + color: var(--foreground); + background-color: var(--background); + position: fixed; + bottom: 0; + height: 75px; + padding: 0 10px; +} + +@media (max-width: 880px) { + .page-footer { + flex-direction: row; } - .social-list-item > a { - display: flex; - align-items: center; - justify-content: space-between; - text-decoration: none; - } - .social-list-divider { - border: 0.5px solid var(--color-text); - } - .social-list-item:hover { - background-color: var(--color-text); - color: var(--header_background); - } - #show-socials-button { - background: none; - border: none; - cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer; - color: var(--color-text); - font-size: 1rem; - } - #show-socials-button > i { - font-size: 1.5rem; - } - #social-list { - position: absolute; - bottom: 75px; - left: 0; - right: 0; - width: 100vw; - max-width: 400px; - padding: 10px; - background-color: var(--header_background); - color: var(--color-text); - border-radius: 10px; - border: 1px solid var(--color-text); - display: none; - z-index: 1000; - } - .social-list-item { - padding: 10px; - } - .social-list-item > a { - display: flex; - align-items: center; - justify-content: space-between; - text-decoration: none; - } - .social-list-divider { - border: 0.5px solid var(--color-text); - } - .social-list-item:hover { - background-color: var(--color-text); - color: var(--header_background); - } \ No newline at end of file +} + +#navbar { + position: fixed; + top: 0; + height: 50px; + width: 100%; + z-index: 1; +} + +.page-content { + margin-top: 50px; +} + +*::selection { + color: var(--color-body) !important; + background: var(--color-text) !important; +} + +@media screen and (max-width: 768px) { + +.navbar-right > .item { + justify-content: right !important; + width: 50% !important; + right: 0 !important; + margin-right: 0 !important; + margin-left: auto !important; + background: var(--color-nav-bg) !important; +} + +.navbar-left > .item { + justify-content: left !important; + width: 50% !important; + left: 0 !important; + margin-left: 0 !important; + margin-right: auto !important; + background: var(--color-nav-bg) !important; +} +} + +.home a { + text-decoration: underline !important; +} + +.home ul { + list-style-type: none !important; + padding-left: 0 !important; +} + + +#show-socials-button { + background: none; + border: none; + cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer; + color: var(--color-text); + font-size: 1rem; +} +#show-socials-button > i { + font-size: 1.5rem; +} +#social-list { + position: absolute; + bottom: 75px; + left: 0; + right: 0; + width: 100vw; + max-width: 400px; + padding: 10px; + background-color: var(--header_background); + color: var(--color-text); + border-radius: 10px; + border: 1px solid var(--color-text); + display: none; + z-index: 1000; +} +.social-list-item { + padding: 10px; +} +.social-list-item > a { + display: flex; + align-items: center; + justify-content: space-between; + text-decoration: none; +} +.social-list-divider { + border: 0.5px solid var(--color-text); +} +.social-list-item:hover { + background-color: var(--color-text); + color: var(--header_background); +} +#show-socials-button { + background: none; + border: none; + cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer; + color: var(--color-text); + font-size: 1rem; +} +#show-socials-button > i { + font-size: 1.5rem; +} +#social-list { + position: absolute; + bottom: 75px; + left: 0; + right: 0; + width: 100vw; + max-width: 400px; + padding: 10px; + background-color: var(--header_background); + color: var(--color-text); + border-radius: 10px; + border: 1px solid var(--color-text); + display: none; + z-index: 1000; +} +.social-list-item { + padding: 10px; +} +.social-list-item > a { + display: flex; + align-items: center; + justify-content: space-between; + text-decoration: none; +} +.social-list-divider { + border: 0.5px solid var(--color-text); +} +.social-list-item:hover { + background-color: var(--color-text); + color: var(--header_background); +} \ No newline at end of file diff --git a/public/assets/css/theme-trans-pride.css b/public/assets/css/theme-trans-pride.css index 731a2d7..be521cd 100644 --- a/public/assets/css/theme-trans-pride.css +++ b/public/assets/css/theme-trans-pride.css @@ -1,468 +1,468 @@ /* Trans Pride - A light theme for Gitea */ @font-face { - font-family: 'Vampyr'; - src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype'); - } - - :root { - --is-dark-theme: false; - --fonts-regular: "Vampyr" !important; - --fonts-proportional: "Vampyr" !important; - --fonts-monospace: "Vampyr" !important; - --fonts-emoji: "Vampyr" !important; - /* Primary (pinks) */ - --color-primary: #ff6b94; /* flag pink pop */ - --color-primary-dark: #db7093; /* medium pink for hover/active */ - --color-primary-light: #ffc0cb; /* soft pastel pink */ - --color-primary-very-light: #ffe6ee;/* pale pink background fills */ - - /* Main Text & Background */ - --color-text: #2a0a18; /* deep plum text */ - --color-text-light: #4d2037; /* muted variant */ - --color-text-dark: #000000; /* headings/strong */ - --color-body: #DAFFFC; /* almost white with pink tint */ - - /* UI (trans blues for balance) */ - --color-secondary: #87cefa; /* sky blue */ - --color-secondary-dark: #5dade2; /* medium bright blue */ - --color-secondary-light: #add8e6; /* pastel blue */ - - /* State Colors */ - --color-success: #5dade2; /* success = strong blue */ - --color-success-dark: #1e90ff; - --color-success-light: #87cefa; - --color-danger: #ff4f7a; /* pinkish red */ - --color-danger-dark: #ff2f66; - --color-danger-light: #ff7fa1; - --color-warning: #ffb347; /* warm orange */ - --color-warning-dark: #ff9f1a; - --color-warning-light: #ffd699; - --color-info: #1e90ff; /* crisp blue */ - --color-info-dark: #187bcd; - --color-info-light: #87cefa; - - /* Other UI Elements */ - --color-menu: #fff9fb; - --color-card: #ffffff; /* pure white cards */ - --color-markup-table-row: #f5f9ff; /* faint blue row */ - --color-markup-code-block: #fff0f6; /* faint pink block */ - --color-button: #ff6b94; /* primary = pink */ - --color-border: #ffd1dc; /* pale pink border */ - --color-input-border: #add8e6; /* soft blue border */ - --color-input-background: #ffffff; - --color-small-accent: #87cefa; /* tiny blue accent */ - - /* Diff Colors (soft pink/blue tints) */ - --color-diff-add-line: #e6f6ff; /* pale blue add */ - --color-diff-add-word: #cceeff; - --color-diff-del-line: #ffe6f0; /* pale pink delete */ - --color-diff-del-word: #ffccd9; - --color-diff-section: #f0f6ff; - - /* Code Syntax Highlighting (balanced) */ - --color-code-keyword: #1e90ff; /* keywords = bright blue */ - --color-code-function: #ff3b6f; /* functions = hot pink */ - --color-code-string: #db7093; /* strings = medium pink */ - --color-code-number: #5dade2; /* numbers = medium blue */ - --color-code-comment: #8a6b78; /* muted plum comment */ - --color-code-type: #87cefa; /* types = sky blue */ - - --vscode-editor-background: #fff9fb;/* soft background */ - --color-footer: #DAFFFC; - --color-nav-bg: #DAFFFC; - } - - - /* Header */ - .ui.menu.inverted { - background-color: var(--color-secondary); - color: var(--color-text); - } - - .ui.secondary.menu .item { - color: var(--color-text); - } - - .ui.secondary.menu .active.item { - background-color: var(--color-primary-very-light); - } - - /* Repository header */ - .repository.header { - background-color: var(--color-menu); - } - - /* Buttons */ - .ui.primary.button { - background-color: var(--color-primary); - } - - .ui.primary.button:hover { - background-color: var(--color-primary-dark); - } - - .ui.basic.button { - box-shadow: 0 0 0 1px var(--color-border) inset; - color: var(--color-text) !important; - } - - .ui.basic.button:hover { - background-color: var(--color-primary-very-light) !important; - color: var(--color-text-dark) !important; - } - - /* Tabs */ - .ui.tabular.menu .item { - color: var(--color-text-light); - } - - .ui.tabular.menu .active.item { - background-color: var(--color-primary-very-light); - color: var(--color-text); - border-color: var(--color-border); - } - - /* Tables */ - .ui.table thead th { - background: var(--color-menu); - color: var(--color-text); - } - - .ui.table { - border-color: var(--color-border); - } - - /* Form inputs */ - .ui.input input { - background-color: var(--color-input-background); - border-color: var(--color-input-border); - color: var(--color-text); - } - - .ui.input input:focus { - border-color: var(--color-primary); - } - - /* Labels */ - .ui.label { - background-color: var(--color-primary-very-light); - color: var(--color-text); - } - - /* Markdown Content */ - .markdown:not(code) { - color: var(--color-text); - } - - .markdown code, .markdown pre { - background-color: var(--color-markup-code-block); - border-color: var(--color-border); - } - - /* Sidebar */ - .ui.vertical.menu { - background-color: var(--color-menu); - } - - .ui.vertical.menu .item { - color: var(--color-text); - } - - .ui.vertical.menu .active.item { - background-color: var(--color-primary-very-light); - } - - /* Status tags */ - .ui.green.label { - background-color: var(--color-success) !important; - color: var(--color-body) !important; - } - - .ui.red.label { - background-color: var(--color-danger) !important; - color: var(--color-body) !important; - } - - .ui.yellow.label { - background-color: var(--color-warning) !important; - color: var(--color-text-dark) !important; - } - - .ui.blue.label { - background-color: var(--color-info) !important; - color: var(--color-body) !important; - } - - /* Dashboard cards */ - .dashboard-card { - background-color: var(--color-card); - border-color: var(--color-border); - } - - /* Timeline and activities */ - .timeline-item { - border-color: var(--color-border); - } - - .timeline-item .badge { - background-color: var(--color-primary-very-light); - color: var(--color-text); - } - - /* Code diff view */ - .diff-file-box .code-diff-split .add-code { - background-color: var(--color-diff-add-line); - } - - .diff-file-box .code-diff-split .del-code { - background-color: var(--color-diff-del-line); - } - - .diff-file-box .code-diff-split .add-code .add-line { - background-color: var(--color-diff-add-word); - } - - .diff-file-box .code-diff-split .del-code .del-line { - background-color: var(--color-diff-del-word); - } - - .monaco-editor, .monaco-diff-editor, .monaco-component, .monaco-editor-background, .monaco-editor .margin { - background: #fff5f8 !important; - } - - .monaco-editor { - --vscode-editor-selectionBackground: var(--color-primary) !important; - --vscode-editor-inactiveSelectionBackground: var(--color-primary) !important; - --vscode-editor-lineHighlightBackground: var(--color-primary) !important; - } - - .monaco-editor .view-overlays .current-line { - background-color: var(--color-primary) !important; - } - - .monaco-editor .margin { - background-color: transparent !important; - } - - .monaco-editor .margin-view-overlays .current-line-margin { - background-color: var(--color-primary) !important; - } - - .active-line-number { - background-color: transparent !important; - } - - /* Scrollbar */ - ::-webkit-scrollbar-thumb { - background: var(--color-primary-light); - } - - ::-webkit-scrollbar-thumb:hover { - background: var(--color-primary); - } - - ::-webkit-scrollbar-track { - background: var(--color-primary-very-light); - } - - body::before { - background: url(https://cdn.nhcarrigan.com/background.png); - background-size: cover; - background-position: center; - width: 100%; - height: 100%; - z-index: -100; - content: ""; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - opacity: 1; - pointer-events: none; - } - - body::after { - background: var(--color-body); - opacity: 0.8; - width: 100%; - height: 100%; - z-index: -50; - content: ""; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - pointer-events: none; - } - - html { - cursor: url('https://cdn.nhcarrigan.com/cursors/cursor.cur'), auto; - font-family: "Vampyr"; - } - - a, button, .button, .dropdown { - cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer !important; - } - + font-family: 'Vampyr'; + src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype'); +} + +:root { + --is-dark-theme: false; + --fonts-regular: "Vampyr" !important; + --fonts-proportional: "Vampyr" !important; + --fonts-monospace: "Vampyr" !important; + --fonts-emoji: "Vampyr" !important; + /* Primary (pinks) */ + --color-primary: #ff6b94; /* flag pink pop */ + --color-primary-dark: #db7093; /* medium pink for hover/active */ + --color-primary-light: #ffc0cb; /* soft pastel pink */ + --color-primary-very-light: #ffe6ee;/* pale pink background fills */ + + /* Main Text & Background */ + --color-text: #2a0a18; /* deep plum text */ + --color-text-light: #4d2037; /* muted variant */ + --color-text-dark: #000000; /* headings/strong */ + --color-body: #DAFFFC; /* almost white with pink tint */ + + /* UI (trans blues for balance) */ + --color-secondary: #87cefa; /* sky blue */ + --color-secondary-dark: #5dade2; /* medium bright blue */ + --color-secondary-light: #add8e6; /* pastel blue */ + + /* State Colors */ + --color-success: #5dade2; /* success = strong blue */ + --color-success-dark: #1e90ff; + --color-success-light: #87cefa; + --color-danger: #ff4f7a; /* pinkish red */ + --color-danger-dark: #ff2f66; + --color-danger-light: #ff7fa1; + --color-warning: #ffb347; /* warm orange */ + --color-warning-dark: #ff9f1a; + --color-warning-light: #ffd699; + --color-info: #1e90ff; /* crisp blue */ + --color-info-dark: #187bcd; + --color-info-light: #87cefa; + + /* Other UI Elements */ + --color-menu: #fff9fb; + --color-card: #ffffff; /* pure white cards */ + --color-markup-table-row: #f5f9ff; /* faint blue row */ + --color-markup-code-block: #fff0f6; /* faint pink block */ + --color-button: #ff6b94; /* primary = pink */ + --color-border: #ffd1dc; /* pale pink border */ + --color-input-border: #add8e6; /* soft blue border */ + --color-input-background: #ffffff; + --color-small-accent: #87cefa; /* tiny blue accent */ + + /* Diff Colors (soft pink/blue tints) */ + --color-diff-add-line: #e6f6ff; /* pale blue add */ + --color-diff-add-word: #cceeff; + --color-diff-del-line: #ffe6f0; /* pale pink delete */ + --color-diff-del-word: #ffccd9; + --color-diff-section: #f0f6ff; + + /* Code Syntax Highlighting (balanced) */ + --color-code-keyword: #1e90ff; /* keywords = bright blue */ + --color-code-function: #ff3b6f; /* functions = hot pink */ + --color-code-string: #db7093; /* strings = medium pink */ + --color-code-number: #5dade2; /* numbers = medium blue */ + --color-code-comment: #8a6b78; /* muted plum comment */ + --color-code-type: #87cefa; /* types = sky blue */ + + --vscode-editor-background: #fff9fb;/* soft background */ + --color-footer: #DAFFFC; + --color-nav-bg: #DAFFFC; +} + + +/* Header */ +.ui.menu.inverted { + background-color: var(--color-secondary); + color: var(--color-text); +} + +.ui.secondary.menu .item { + color: var(--color-text); +} + +.ui.secondary.menu .active.item { + background-color: var(--color-primary-very-light); +} + +/* Repository header */ +.repository.header { + background-color: var(--color-menu); +} + +/* Buttons */ +.ui.primary.button { + background-color: var(--color-primary); +} + +.ui.primary.button:hover { + background-color: var(--color-primary-dark); +} + +.ui.basic.button { + box-shadow: 0 0 0 1px var(--color-border) inset; + color: var(--color-text) !important; +} + +.ui.basic.button:hover { + background-color: var(--color-primary-very-light) !important; + color: var(--color-text-dark) !important; +} + +/* Tabs */ +.ui.tabular.menu .item { + color: var(--color-text-light); +} + +.ui.tabular.menu .active.item { + background-color: var(--color-primary-very-light); + color: var(--color-text); + border-color: var(--color-border); +} + +/* Tables */ +.ui.table thead th { + background: var(--color-menu); + color: var(--color-text); +} + +.ui.table { + border-color: var(--color-border); +} + +/* Form inputs */ +.ui.input input { + background-color: var(--color-input-background); + border-color: var(--color-input-border); + color: var(--color-text); +} + +.ui.input input:focus { + border-color: var(--color-primary); +} + +/* Labels */ +.ui.label { + background-color: var(--color-primary-very-light); + color: var(--color-text); +} + +/* Markdown Content */ +.markdown:not(code) { + color: var(--color-text); +} + +.markdown code, .markdown pre { + background-color: var(--color-markup-code-block); + border-color: var(--color-border); +} + +/* Sidebar */ +.ui.vertical.menu { + background-color: var(--color-menu); +} + +.ui.vertical.menu .item { + color: var(--color-text); +} + +.ui.vertical.menu .active.item { + background-color: var(--color-primary-very-light); +} + +/* Status tags */ +.ui.green.label { + background-color: var(--color-success) !important; + color: var(--color-body) !important; +} + +.ui.red.label { + background-color: var(--color-danger) !important; + color: var(--color-body) !important; +} + +.ui.yellow.label { + background-color: var(--color-warning) !important; + color: var(--color-text-dark) !important; +} + +.ui.blue.label { + background-color: var(--color-info) !important; + color: var(--color-body) !important; +} + +/* Dashboard cards */ +.dashboard-card { + background-color: var(--color-card); + border-color: var(--color-border); +} + +/* Timeline and activities */ +.timeline-item { + border-color: var(--color-border); +} + +.timeline-item .badge { + background-color: var(--color-primary-very-light); + color: var(--color-text); +} + +/* Code diff view */ +.diff-file-box .code-diff-split .add-code { + background-color: var(--color-diff-add-line); +} + +.diff-file-box .code-diff-split .del-code { + background-color: var(--color-diff-del-line); +} + +.diff-file-box .code-diff-split .add-code .add-line { + background-color: var(--color-diff-add-word); +} + +.diff-file-box .code-diff-split .del-code .del-line { + background-color: var(--color-diff-del-word); +} + +.monaco-editor, .monaco-diff-editor, .monaco-component, .monaco-editor-background, .monaco-editor .margin { + background: #fff5f8 !important; +} + +.monaco-editor { + --vscode-editor-selectionBackground: var(--color-primary) !important; + --vscode-editor-inactiveSelectionBackground: var(--color-primary) !important; + --vscode-editor-lineHighlightBackground: var(--color-primary) !important; +} + +.monaco-editor .view-overlays .current-line { + background-color: var(--color-primary) !important; +} + +.monaco-editor .margin { + background-color: transparent !important; +} + +.monaco-editor .margin-view-overlays .current-line-margin { + background-color: var(--color-primary) !important; +} + +.active-line-number { + background-color: transparent !important; +} + +/* Scrollbar */ +::-webkit-scrollbar-thumb { + background: var(--color-primary-light); +} + +::-webkit-scrollbar-thumb:hover { + background: var(--color-primary); +} + +::-webkit-scrollbar-track { + background: var(--color-primary-very-light); +} + +body::before { + background: url(https://cdn.nhcarrigan.com/background.png); + background-size: cover; + background-position: center; + width: 100%; + height: 100%; + z-index: -100; + content: ""; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 1; + pointer-events: none; +} + +body::after { + background: var(--color-body); + opacity: 0.8; + width: 100%; + height: 100%; + z-index: -50; + content: ""; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + pointer-events: none; +} + +html { + cursor: url('https://cdn.nhcarrigan.com/cursors/cursor.cur'), auto; + font-family: "Vampyr"; +} + +a, button, .button, .dropdown { + cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer !important; +} + +#tree-nation-offset-website { + display: flex; + align-items: center; +} +@media screen and (max-width: 885px) { #tree-nation-offset-website { - display: flex; - align-items: center; - } - @media screen and (max-width: 885px) { - #tree-nation-offset-website { - display: none; - } - } - - footer { - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - color: var(--foreground); - background-color: var(--background); - position: fixed; - bottom: 0; - height: 75px; - padding: 0 10px; - } - - @media (max-width: 880px) { - .page-footer { - flex-direction: row; - } - } - - #navbar { - position: fixed; - top: 0; - height: 50px; - width: 100%; - z-index: 1; - } - - .page-content { - margin-top: 50px; - } - - *::selection { - color: var(--color-body) !important; - background: var(--color-text) !important; - } - - @media screen and (max-width: 768px) { - - .navbar-right > .item { - justify-content: right !important; - width: 50% !important; - right: 0 !important; - margin-right: 0 !important; - margin-left: auto !important; - background: var(--color-nav-bg) !important; - } - - .navbar-left > .item { - justify-content: left !important; - width: 50% !important; - left: 0 !important; - margin-left: 0 !important; - margin-right: auto !important; - background: var(--color-nav-bg) !important; - } - } - - .home a { - text-decoration: underline !important; - } - - .home ul { - list-style-type: none !important; - padding-left: 0 !important; - } - - - #show-socials-button { - background: none; - border: none; - cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer; - color: var(--color-text); - font-size: 1rem; - } - #show-socials-button > i { - font-size: 1.5rem; - } - #social-list { - position: absolute; - bottom: 75px; - left: 0; - right: 0; - width: 100vw; - max-width: 400px; - padding: 10px; - background-color: var(--header_background); - color: var(--color-text); - border-radius: 10px; - border: 1px solid var(--color-text); display: none; - z-index: 1000; } - .social-list-item { - padding: 10px; +} + +footer { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + color: var(--foreground); + background-color: var(--background); + position: fixed; + bottom: 0; + height: 75px; + padding: 0 10px; +} + +@media (max-width: 880px) { + .page-footer { + flex-direction: row; } - .social-list-item > a { - display: flex; - align-items: center; - justify-content: space-between; - text-decoration: none; - } - .social-list-divider { - border: 0.5px solid var(--color-text); - } - .social-list-item:hover { - background-color: var(--color-text); - color: var(--header_background); - } - #show-socials-button { - background: none; - border: none; - cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer; - color: var(--color-text); - font-size: 1rem; - } - #show-socials-button > i { - font-size: 1.5rem; - } - #social-list { - position: absolute; - bottom: 75px; - left: 0; - right: 0; - width: 100vw; - max-width: 400px; - padding: 10px; - background-color: var(--header_background); - color: var(--color-text); - border-radius: 10px; - border: 1px solid var(--color-text); - display: none; - z-index: 1000; - } - .social-list-item { - padding: 10px; - } - .social-list-item > a { - display: flex; - align-items: center; - justify-content: space-between; - text-decoration: none; - } - .social-list-divider { - border: 0.5px solid var(--color-text); - } - .social-list-item:hover { - background-color: var(--color-text); - color: var(--header_background); - } \ No newline at end of file +} + +#navbar { + position: fixed; + top: 0; + height: 50px; + width: 100%; + z-index: 1; +} + +.page-content { + margin-top: 50px; +} + +*::selection { + color: var(--color-body) !important; + background: var(--color-text) !important; +} + +@media screen and (max-width: 768px) { + +.navbar-right > .item { + justify-content: right !important; + width: 50% !important; + right: 0 !important; + margin-right: 0 !important; + margin-left: auto !important; + background: var(--color-nav-bg) !important; +} + +.navbar-left > .item { + justify-content: left !important; + width: 50% !important; + left: 0 !important; + margin-left: 0 !important; + margin-right: auto !important; + background: var(--color-nav-bg) !important; +} +} + +.home a { + text-decoration: underline !important; +} + +.home ul { + list-style-type: none !important; + padding-left: 0 !important; +} + + +#show-socials-button { + background: none; + border: none; + cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer; + color: var(--color-text); + font-size: 1rem; +} +#show-socials-button > i { + font-size: 1.5rem; +} +#social-list { + position: absolute; + bottom: 75px; + left: 0; + right: 0; + width: 100vw; + max-width: 400px; + padding: 10px; + background-color: var(--header_background); + color: var(--color-text); + border-radius: 10px; + border: 1px solid var(--color-text); + display: none; + z-index: 1000; +} +.social-list-item { + padding: 10px; +} +.social-list-item > a { + display: flex; + align-items: center; + justify-content: space-between; + text-decoration: none; +} +.social-list-divider { + border: 0.5px solid var(--color-text); +} +.social-list-item:hover { + background-color: var(--color-text); + color: var(--header_background); +} +#show-socials-button { + background: none; + border: none; + cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer; + color: var(--color-text); + font-size: 1rem; +} +#show-socials-button > i { + font-size: 1.5rem; +} +#social-list { + position: absolute; + bottom: 75px; + left: 0; + right: 0; + width: 100vw; + max-width: 400px; + padding: 10px; + background-color: var(--header_background); + color: var(--color-text); + border-radius: 10px; + border: 1px solid var(--color-text); + display: none; + z-index: 1000; +} +.social-list-item { + padding: 10px; +} +.social-list-item > a { + display: flex; + align-items: center; + justify-content: space-between; + text-decoration: none; +} +.social-list-divider { + border: 0.5px solid var(--color-text); +} +.social-list-item:hover { + background-color: var(--color-text); + color: var(--header_background); +} \ No newline at end of file diff --git a/public/assets/css/theme-witch.css b/public/assets/css/theme-witch.css new file mode 100644 index 0000000..f4b9be1 --- /dev/null +++ b/public/assets/css/theme-witch.css @@ -0,0 +1,940 @@ +/* Witchy Purple Rose - A mystical theme for Gitea */ + +@font-face { + font-family: 'Vampyr'; + src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype'); + } + + @import url('https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Creepster&family=Griffy&family=Henny+Penny&display=swap'); + + :root { + --is-dark-theme: false; + --fonts-regular: "Kalam", cursive !important; + --fonts-proportional: "Griffy", cursive !important; + --fonts-monospace: "Courier New", monospace !important; + --fonts-emoji: "Apple Color Emoji", "Segoe UI Emoji" !important; + + /* Witchy Purple Rose Palette */ + --witch-purple: #2B1B3D; + --witch-plum: #44275A; + --witch-rose: #A8577E; + --witch-mauve: #D4A5C7; + --witch-lavender: #E8D5E8; + --witch-black: #0A0009; + --witch-silver: #C0C0C0; + --witch-moon: #F5F5F5; + --witch-shadow: rgba(10, 0, 9, 0.7); + + /* Primary (roses) */ + --color-primary: #A8577E; + --color-primary-dark: #8B4567; + --color-primary-light: #D4A5C7; + --color-primary-very-light: #F0E0EC; + + /* Main Text & Background */ + --color-text: #2B1B3D; + --color-text-light: #44275A; + --color-text-dark: #0A0009; + --color-body: #F5F5F5; + + /* UI (mystical purples) */ + --color-secondary: #44275A; + --color-secondary-dark: #2B1B3D; + --color-secondary-light: #6B4C7A; + + /* State Colors */ + --color-success: #5D7A5C; + --color-success-dark: #4A614A; + --color-success-light: #7A9779; + --color-danger: #8B3A3A; + --color-danger-dark: #6B2C2C; + --color-danger-light: #A85555; + --color-warning: #8B6914; + --color-warning-dark: #6B5010; + --color-warning-light: #B8902B; + --color-info: #4C5B8B; + --color-info-dark: #3A4669; + --color-info-light: #6B7AA8; + + /* Other UI Elements */ + --color-menu: #FBF9FC; + --color-card: #FFFFFF; + --color-markup-table-row: #F8F5FA; + --color-markup-code-block: #FCF8FB; + --color-button: #A8577E; + --color-border: #E8D5E8; + --color-input-border: #D4A5C7; + --color-input-background: #FFFFFF; + --color-small-accent: #D4A5C7; + + /* Diff Colors (rose/plum tints) */ + --color-diff-add-line: #E8F0E8; + --color-diff-add-word: #D0E0D0; + --color-diff-del-line: #F8E8F0; + --color-diff-del-word: #F0D0E0; + --color-diff-section: #F0E8F8; + + /* Code Syntax Highlighting */ + --color-code-keyword: #44275A; + --color-code-function: #A8577E; + --color-code-string: #8B4567; + --color-code-number: #6B4C7A; + --color-code-comment: #8A6B78; + --color-code-type: #5B4A6B; + + --vscode-editor-background: #FCF9FB; + --color-footer: #2B1B3D; + --color-nav-bg: #44275A; + + /* Editor selection colors - this is what Gitea uses */ + --color-editor-line-highlight: var(--witch-lavender); + --color-code-bg: #FDF9FC; + } + + /* Custom Cursors */ + html { + cursor: url('data:image/svg+xml;utf8,') 0 0, auto; + font-family: "Kalam", cursive; + } + + a, button, .button, .dropdown, .ui.button, .ui.dropdown { + cursor: url('data:image/svg+xml;utf8,') 0 0, pointer !important; + } + + input[type="text"], input[type="email"], input[type="password"], textarea { + cursor: url('data:image/svg+xml;utf8,') 12 24, text !important; + } + + /* Body base styling - color NOT set here to preserve syntax highlighting */ + body { + font-family: "Kalam", cursive !important; + font-size: 16px; + line-height: 1.6; + } + + /* Set default text color on specific containers, not body/code */ + .ui.container:not(.file-view):not(.code-view), + .ui.segment:not(.file-view):not(.code-view), + .ui.card, + .ui.message, + .repository-summary, + .activity-container { + color: var(--witch-purple); + } + + /* Typography */ + h1, h2, h3, h4, h5, h6, .ui.header { + font-family: "Griffy", cursive !important; + font-weight: 400 !important; + letter-spacing: 1px !important; + color: var(--witch-plum) !important; + } + + /* Ensure all text is readable - but NOT code syntax highlighting */ + p, li, label { + color: var(--witch-purple); + } + + /* Table cells - but not in code views */ + td:not(.lines-code td):not(.lines-num td), + th:not(.lines-code th) { + color: var(--witch-purple); + } + + a { + color: var(--witch-rose) !important; + transition: all 0.3s ease; + } + + a:hover { + color: var(--witch-plum) !important; + text-decoration: underline; + } + + h1, .ui.huge.header { + text-shadow: 2px 2px 0px var(--witch-rose), + 3px 3px 6px rgba(168, 87, 126, 0.3); + } + + /* Background Effects */ + body::before { + content: ""; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: url(https://cdn.nhcarrigan.com/background.png); + background-size: cover; + background-position: center; + z-index: -2; + pointer-events: none; + } + + body::after { + content: ""; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: + radial-gradient(circle at 20% 50%, rgba(168, 87, 126, 0.15) 0%, transparent 60%), + radial-gradient(circle at 80% 80%, rgba(68, 39, 90, 0.15) 0%, transparent 60%), + linear-gradient(180deg, + rgba(10, 0, 9, 0.3) 0%, + rgba(43, 27, 61, 0.1) 50%, + rgba(43, 27, 61, 0.2) 100% + ); + z-index: -1; + pointer-events: none; + } + + /* Main Content - with margins for fixed nav/footer */ + body { + padding-top: 52px !important; + padding-bottom: 75px !important; + } + + .page-content, .home, .full.height { + background: transparent !important; + padding-top: 10px !important; + padding-bottom: 10px !important; + min-height: calc(100vh - 145px) !important; + } + + /* Main container backgrounds - TRANSLUCENT so background shows */ + .ui.container { + background: rgba(255, 255, 255, 0.75) !important; + backdrop-filter: blur(8px) !important; + border-radius: 10px !important; + padding: 20px !important; + margin-top: 10px !important; + margin-bottom: 10px !important; + box-shadow: 0 0 40px rgba(168, 87, 126, 0.15) !important; + } + + /* Grid columns should be transparent */ + .ui.grid > .column, .ui.grid > .row > .column { + background: transparent !important; + } + + /* Repository/user pages */ + .repository, .user { + background: transparent !important; + } + + /* Header/Navigation - FIXED at top */ + #navbar, .ui.top.secondary.menu.navbar { + position: fixed !important; + top: 0 !important; + left: 0 !important; + right: 0 !important; + z-index: 1000 !important; + height: 52px !important; + background: linear-gradient(135deg, var(--witch-plum) 0%, var(--witch-purple) 100%) !important; + box-shadow: 0 5px 20px var(--witch-shadow) !important; + border: none !important; + } + + /* Nav items - LIGHT text on dark background */ + #navbar .item, #navbar a.item, .ui.secondary.menu .item, .navbar .item { + color: var(--witch-moon) !important; + transition: all 0.3s ease; + } + + #navbar .item:hover, #navbar a.item:hover, .ui.secondary.menu .item:hover { + background-color: rgba(212, 165, 199, 0.3) !important; + color: white !important; + } + + #navbar .active.item, .ui.secondary.menu .active.item { + background-color: rgba(212, 165, 199, 0.4) !important; + color: white !important; + } + + /* Icons in navbar should also be light */ + #navbar .item i, #navbar .item svg, #navbar .item .icon { + color: var(--witch-moon) !important; + } + + /* Repository header */ + .repository.header { + background: linear-gradient(to right, + var(--color-menu) 0%, + rgba(232, 213, 232, 0.5) 100%); + border-bottom: 2px solid var(--witch-mauve); + } + + /* Buttons */ + .ui.primary.button, .ui.green.button { + background: linear-gradient(135deg, + var(--witch-plum) 0%, + var(--witch-purple) 100%) !important; + color: var(--witch-moon) !important; + border: none !important; + font-family: "Griffy", cursive !important; + letter-spacing: 1px; + transition: all 0.3s ease !important; + box-shadow: 0 4px 15px rgba(68, 39, 90, 0.3); + } + + .ui.primary.button:hover, .ui.green.button:hover { + transform: translateY(-2px) scale(1.05) !important; + box-shadow: 0 6px 20px rgba(68, 39, 90, 0.4), + 0 0 25px rgba(168, 87, 126, 0.3) !important; + } + + .ui.basic.button { + border: 2px solid var(--witch-plum) !important; + color: var(--witch-plum) !important; + background: transparent !important; + transition: all 0.3s ease !important; + } + + .ui.basic.button:hover { + background: var(--witch-lavender) !important; + color: var(--witch-purple) !important; + border-color: var(--witch-rose) !important; + transform: translateY(-1px); + } + + /* Cards & Panels */ + .ui.card, .ui.segment, .dashboard-card { + background: rgba(255, 255, 255, 0.95) !important; + border: 1px solid var(--witch-mauve) !important; + box-shadow: 0 4px 20px rgba(168, 87, 126, 0.1), + 0 0 40px rgba(68, 39, 90, 0.05) !important; + transition: all 0.3s ease; + } + + .ui.card:hover, .dashboard-card:hover { + transform: translateY(-2px); + box-shadow: 0 6px 25px rgba(168, 87, 126, 0.15), + 0 0 50px rgba(68, 39, 90, 0.08) !important; + } + + /* Tabs - NOT the main nav styling */ + .ui.tabular.menu { + background: transparent !important; + box-shadow: none !important; + } + + .ui.tabular.menu .item { + color: var(--witch-plum) !important; + background: transparent !important; + font-family: "Kalam", cursive !important; + font-weight: 700; + transition: all 0.3s ease; + } + + .ui.tabular.menu .item:hover { + background: rgba(232, 213, 232, 0.3) !important; + color: var(--witch-purple) !important; + } + + .ui.tabular.menu .active.item { + background: rgba(255, 255, 255, 0.8) !important; + color: var(--witch-purple) !important; + border-color: var(--witch-rose) !important; + border-bottom: 3px solid var(--witch-rose) !important; + } + + /* Vertical menu should not be dark either */ + .ui.vertical.menu { + background: rgba(255, 255, 255, 0.85) !important; + } + + .ui.vertical.menu .item { + color: var(--witch-purple) !important; + } + + /* Forms */ + .ui.input input, .ui.form input, .ui.form textarea { + background: rgba(255, 255, 255, 0.95) !important; + border: 2px solid var(--witch-mauve) !important; + color: var(--witch-purple) !important; + font-family: "Kalam", cursive !important; + border-radius: 10px !important; + transition: all 0.3s ease !important; + } + + .ui.input input:focus, .ui.form input:focus, .ui.form textarea:focus { + border-color: var(--witch-rose) !important; + box-shadow: 0 0 0 3px rgba(168, 87, 126, 0.2) !important; + background: white !important; + } + + /* Labels & Tags */ + .ui.label { + background: linear-gradient(135deg, + var(--witch-mauve) 0%, + var(--witch-lavender) 100%) !important; + color: var(--witch-purple) !important; + font-family: "Kalam", cursive !important; + font-weight: 700; + border: 1px solid var(--witch-rose); + } + + /* Status Colors */ + .ui.green.label { + background: linear-gradient(135deg, #7A9779 0%, #5D7A5C 100%) !important; + color: white !important; + border: 1px solid #5D7A5C; + } + + .ui.red.label { + background: linear-gradient(135deg, #A85555 0%, #8B3A3A 100%) !important; + color: white !important; + border: 1px solid #8B3A3A; + } + + /* Code Blocks - preserve syntax highlighting */ + + /* IMPORTANT: Do NOT set color on code elements - let Chroma/Monaco handle it */ + .code-view, .file-view, .lines-code, .code-inner { + color: unset !important; + } + + /* Gitea's code syntax CSS variables */ + :root { + /* Code highlighting colors (witchy theme) */ + --color-code-bg: #FDF9FC; + --color-code-fg: #2B1B3D; + --color-code-keyword: #44275A; + --color-code-constant: #4C5B8B; + --color-code-string: #5D7A5C; + --color-code-comment: #8A6B78; + --color-code-number: #4C5B8B; + --color-code-tag: #A8577E; + --color-code-attribute: #6B4C7A; + --color-code-symbol: #8B4567; + --color-code-class: #8B4567; + --color-code-function: #A8577E; + --color-code-variable: #6B4C7A; + --color-code-operator: #44275A; + --color-code-builtin: #A8577E; + --color-code-inserted: #5D7A5C; + --color-code-deleted: #8B3A3A; + } + + /* Monaco editor (code editing) - light background */ + .monaco-editor, + .monaco-diff-editor, + .monaco-component, + .monaco-editor .monaco-editor-background, + .monaco-editor .margin, + .monaco-editor .inputarea.ime-input, + .monaco-editor .overflow-guard, + .monaco-editor .lines-content, + .monaco-editor .view-lines, + .monaco-editor .minimap, + .monaco-editor .minimap-slider { + background: #FDF9FC !important; + background-color: #FDF9FC !important; + } + + /* Monaco editor text - do NOT set color, let Monaco handle syntax */ + .monaco-editor .view-line { + background: transparent !important; + } + + /* Monaco editor CSS variables for syntax highlighting */ + .monaco-editor { + --vscode-editor-background: #FDF9FC !important; + --vscode-editor-foreground: #2B1B3D !important; + --vscode-editorLineNumber-foreground: #8A6B78 !important; + --vscode-editorLineNumber-activeForeground: #44275A !important; + --vscode-editor-selectionBackground: rgba(168, 87, 126, 0.5) !important; + --vscode-editor-inactiveSelectionBackground: rgba(168, 87, 126, 0.3) !important; + --vscode-editor-lineHighlightBackground: rgba(232, 213, 232, 0.4) !important; + --vscode-editorGutter-background: #FDF9FC !important; + } + + /* ======================================== + CODE EDITOR SELECTION STYLES + Gitea uses CodeMirror, not Monaco! + ======================================== */ + + /* CodeMirror selection - this is what Gitea actually uses */ + .CodeMirror-selected, + .CodeMirror-focused .CodeMirror-selected, + .CodeMirror-line::selection, + .CodeMirror-line > span::selection, + .CodeMirror-line > span > span::selection { + background: #A8577E !important; + color: #FFFFFF !important; + } + + /* CodeMirror cursor */ + .CodeMirror-cursor { + border-left-color: var(--witch-purple) !important; + } + + /* CodeMirror active line */ + .CodeMirror-activeline-background { + background: var(--witch-lavender) !important; + } + + /* CodeMirror gutter */ + .CodeMirror-gutters { + background: #FDF9FC !important; + border-right-color: var(--witch-mauve) !important; + } + + .CodeMirror-linenumber { + color: var(--witch-rose) !important; + } + + /* Monaco editor fallback (in case some views use it) */ + .monaco-editor { + --vscode-editor-selectionBackground: #A8577E !important; + --vscode-editor-inactiveSelectionBackground: rgba(168, 87, 126, 0.5) !important; + --vscode-editor-selectionForeground: #FFFFFF !important; + --vscode-editor-selectionHighlightBackground: rgba(168, 87, 126, 0.4) !important; + } + + /* Monaco selection overlay */ + .monaco-editor .view-overlays .selected-text, + .monaco-editor .selected-text { + background-color: #A8577E !important; + background: #A8577E !important; + opacity: 1 !important; + } + + /* Native selection fallback for all editors */ + .monaco-editor *::selection, + .CodeMirror *::selection, + .code-editor *::selection { + background-color: #A8577E !important; + color: #FFFFFF !important; + } + + /* Fix current line highlight in the main content area */ + .monaco-editor .view-overlays .current-line, + .monaco-editor .current-line { + background-color: rgba(232, 213, 232, 0.4) !important; + border: none !important; + } + + /* Fix margin/gutter area - prevent black background on selected line */ + .monaco-editor .margin, + .monaco-editor .margin-view-overlays { + background-color: #FDF9FC !important; + } + + .monaco-editor .margin-view-overlays .current-line-margin, + .monaco-editor .current-line-margin { + background-color: rgba(232, 213, 232, 0.4) !important; + border: none !important; + } + + /* Active line number row background */ + .monaco-editor .margin-view-overlays .line-numbers.active-line-number { + background-color: rgba(232, 213, 232, 0.4) !important; + } + + /* Monaco syntax token colors */ + .monaco-editor .mtk1 { color: #2B1B3D !important; } /* Default text */ + .monaco-editor .mtk2 { color: #8A6B78 !important; } /* Comments */ + .monaco-editor .mtk3 { color: #5D7A5C !important; } /* Strings */ + .monaco-editor .mtk4 { color: #4C5B8B !important; } /* Numbers */ + .monaco-editor .mtk5 { color: #44275A !important; } /* Keywords */ + .monaco-editor .mtk6 { color: #A8577E !important; } /* Functions */ + .monaco-editor .mtk7 { color: #6B4C7A !important; } /* Variables */ + .monaco-editor .mtk8 { color: #8B4567 !important; } /* Types/Classes */ + .monaco-editor .mtk9 { color: #44275A !important; } /* Operators */ + .monaco-editor .mtk10 { color: #A8577E !important; } /* Built-ins */ + .monaco-editor .mtk11 { color: #6B4C7A !important; } /* Attributes */ + .monaco-editor .mtk12 { color: #5D7A5C !important; } /* String escape */ + + /* Monaco editor gutter/margin */ + .monaco-editor .margin-view-overlays .line-numbers { + color: #8A6B78 !important; + } + + .monaco-editor .current-line ~ .line-numbers { + color: #44275A !important; + } + + /* Only style inline code in markdown, not code blocks */ + .markup code, + .markdown code { + background: rgba(232, 213, 232, 0.3) !important; + color: var(--witch-purple) !important; + font-family: 'Courier New', monospace !important; + border: 1px solid var(--witch-lavender); + border-radius: 5px; + padding: 2px 6px; + } + + /* Code view container - add bottom margin for fixed footer */ + .code-view, .file-view { + background: rgba(255, 255, 255, 0.95) !important; + margin-bottom: 80px !important; + padding-bottom: 20px !important; + } + + /* File content wrapper needs space too */ + .file-content, .view-raw { + padding-bottom: 100px !important; + } + + /* ======================================== + CHROMA SYNTAX HIGHLIGHTING (Gitea uses this) + Witchy purple/rose theme + ======================================== */ + + /* Code block container - let child elements have their own colors */ + .chroma { + background: rgba(252, 248, 251, 0.95) !important; + } + + /* Lines of code container */ + .lines-code, .lines-num, .code-inner, .file-view .code { + background: transparent !important; + } + + /* Individual code cells */ + .lines-code td, .code-inner code { + color: inherit !important; + } + + /* Error */ + .chroma .err { color: #8B3A3A !important; } + + /* Line link, line highlight, line numbers, line table */ + .chroma .lnlinks { outline: none; text-decoration: none; color: inherit; } + .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } + .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } + .chroma .hl { background-color: rgba(212, 165, 199, 0.3) !important; } + .chroma .ln, .chroma .lnt { color: #8A6B78 !important; padding: 0 8px; } + + /* Keyword */ + .chroma .k { color: #44275A !important; font-weight: bold; } + .chroma .kc { color: #44275A !important; font-weight: bold; } /* Keyword.Constant */ + .chroma .kd { color: #44275A !important; font-weight: bold; } /* Keyword.Declaration */ + .chroma .kn { color: #44275A !important; font-weight: bold; } /* Keyword.Namespace */ + .chroma .kp { color: #44275A !important; } /* Keyword.Pseudo */ + .chroma .kr { color: #44275A !important; font-weight: bold; } /* Keyword.Reserved */ + .chroma .kt { color: #5B4A6B !important; } /* Keyword.Type */ + + /* Name */ + .chroma .n { color: var(--witch-purple) !important; } + .chroma .na { color: #6B4C7A !important; } /* Name.Attribute */ + .chroma .nb { color: #A8577E !important; } /* Name.Builtin */ + .chroma .nc { color: #8B4567 !important; font-weight: bold; } /* Name.Class */ + .chroma .no { color: #6B4C7A !important; } /* Name.Constant */ + .chroma .nd { color: #A8577E !important; } /* Name.Decorator */ + .chroma .ni { color: var(--witch-purple) !important; font-weight: bold; } /* Name.Entity */ + .chroma .ne { color: #8B3A3A !important; font-weight: bold; } /* Name.Exception */ + .chroma .nf { color: #A8577E !important; } /* Name.Function */ + .chroma .nl { color: var(--witch-purple) !important; } /* Name.Label */ + .chroma .nn { color: #44275A !important; } /* Name.Namespace */ + .chroma .nt { color: #44275A !important; font-weight: bold; } /* Name.Tag */ + .chroma .nv { color: #6B4C7A !important; } /* Name.Variable */ + .chroma .bp { color: #A8577E !important; } /* Name.Builtin.Pseudo */ + .chroma .vc { color: #6B4C7A !important; } /* Name.Variable.Class */ + .chroma .vg { color: #6B4C7A !important; } /* Name.Variable.Global */ + .chroma .vi { color: #6B4C7A !important; } /* Name.Variable.Instance */ + .chroma .vm { color: #6B4C7A !important; } /* Name.Variable.Magic */ + + /* Literal */ + .chroma .l { color: #8B4567 !important; } + .chroma .ld { color: #5D7A5C !important; } /* Literal.Date */ + .chroma .s { color: #5D7A5C !important; } /* String */ + .chroma .sa { color: #5D7A5C !important; } /* String.Affix */ + .chroma .sb { color: #5D7A5C !important; } /* String.Backtick */ + .chroma .sc { color: #5D7A5C !important; } /* String.Char */ + .chroma .dl { color: #5D7A5C !important; } /* String.Delimiter */ + .chroma .sd { color: #5D7A5C !important; font-style: italic; } /* String.Doc */ + .chroma .s2 { color: #5D7A5C !important; } /* String.Double */ + .chroma .se { color: #8B4567 !important; font-weight: bold; } /* String.Escape */ + .chroma .sh { color: #5D7A5C !important; } /* String.Heredoc */ + .chroma .si { color: #8B4567 !important; } /* String.Interpol */ + .chroma .sx { color: #5D7A5C !important; } /* String.Other */ + .chroma .sr { color: #A8577E !important; } /* String.Regex */ + .chroma .s1 { color: #5D7A5C !important; } /* String.Single */ + .chroma .ss { color: #A8577E !important; } /* String.Symbol */ + + /* Number */ + .chroma .m { color: #4C5B8B !important; } /* Number */ + .chroma .mb { color: #4C5B8B !important; } /* Number.Bin */ + .chroma .mf { color: #4C5B8B !important; } /* Number.Float */ + .chroma .mh { color: #4C5B8B !important; } /* Number.Hex */ + .chroma .mi { color: #4C5B8B !important; } /* Number.Integer */ + .chroma .il { color: #4C5B8B !important; } /* Number.Integer.Long */ + .chroma .mo { color: #4C5B8B !important; } /* Number.Oct */ + + /* Operator */ + .chroma .o { color: #44275A !important; } /* Operator */ + .chroma .ow { color: #44275A !important; font-weight: bold; } /* Operator.Word */ + + /* Punctuation */ + .chroma .p { color: var(--witch-purple) !important; } + + /* Comment */ + .chroma .c { color: #8A6B78 !important; font-style: italic; } + .chroma .ch { color: #8A6B78 !important; font-style: italic; } /* Comment.Hashbang */ + .chroma .cm { color: #8A6B78 !important; font-style: italic; } /* Comment.Multiline */ + .chroma .cp { color: #6B4C7A !important; } /* Comment.Preproc */ + .chroma .cpf { color: #8A6B78 !important; font-style: italic; } /* Comment.PreprocFile */ + .chroma .c1 { color: #8A6B78 !important; font-style: italic; } /* Comment.Single */ + .chroma .cs { color: #8A6B78 !important; font-style: italic; font-weight: bold; } /* Comment.Special */ + + /* Generic */ + .chroma .gd { color: #8B3A3A !important; background-color: rgba(255, 200, 200, 0.3); } /* Generic.Deleted */ + .chroma .ge { font-style: italic; } /* Generic.Emph */ + .chroma .gr { color: #8B3A3A !important; } /* Generic.Error */ + .chroma .gh { color: #44275A !important; font-weight: bold; } /* Generic.Heading */ + .chroma .gi { color: #5D7A5C !important; background-color: rgba(200, 255, 200, 0.3); } /* Generic.Inserted */ + .chroma .go { color: #8A6B78 !important; } /* Generic.Output */ + .chroma .gp { color: #A8577E !important; font-weight: bold; } /* Generic.Prompt */ + .chroma .gs { font-weight: bold; } /* Generic.Strong */ + .chroma .gu { color: #6B4C7A !important; font-weight: bold; } /* Generic.Subheading */ + .chroma .gt { color: #8B3A3A !important; } /* Generic.Traceback */ + .chroma .gl { text-decoration: underline; } /* Generic.Underline */ + + /* Also style highlight.js classes in case Gitea uses those */ + .hljs { background: rgba(252, 248, 251, 0.95) !important; } + .hljs-keyword, .hljs-selector-tag, .hljs-literal { color: #44275A !important; font-weight: bold; } + .hljs-string, .hljs-doctag { color: #5D7A5C !important; } + .hljs-number, .hljs-literal { color: #4C5B8B !important; } + .hljs-comment { color: #8A6B78 !important; font-style: italic; } + .hljs-function, .hljs-title { color: #A8577E !important; } + .hljs-class, .hljs-type { color: #8B4567 !important; font-weight: bold; } + .hljs-variable, .hljs-attr { color: #6B4C7A !important; } + .hljs-built_in, .hljs-builtin-name { color: #A8577E !important; } + + /* Gitea's code-lines styling */ + .code-line { + background: transparent !important; + } + + /* Make sure span elements INSIDE code views inherit color from parent */ + .code-view span, + .file-view span, + .lines-code span, + .chroma span, + .hljs span { + color: inherit; + } + + /* Tables */ + .ui.table { + border: 1px solid var(--witch-mauve) !important; + } + + .ui.table thead th { + background: linear-gradient(to right, + var(--witch-lavender) 0%, + rgba(232, 213, 232, 0.7) 100%) !important; + color: var(--witch-purple) !important; + font-family: "Griffy", cursive !important; + font-weight: 400; + letter-spacing: 1px; + } + + .ui.table tbody tr:hover { + background: rgba(212, 165, 199, 0.1) !important; + } + + /* Scrollbars */ + ::-webkit-scrollbar { + width: 12px; + height: 12px; + } + + ::-webkit-scrollbar-track { + background: var(--witch-lavender); + border-radius: 6px; + } + + ::-webkit-scrollbar-thumb { + background: linear-gradient(to bottom, + var(--witch-rose) 0%, + var(--witch-plum) 100%); + border-radius: 6px; + border: 2px solid var(--witch-lavender); + } + + ::-webkit-scrollbar-thumb:hover { + background: var(--witch-purple); + } + + /* Selection */ + ::selection { + background: var(--witch-rose) !important; + color: var(--witch-moon) !important; + } + + /* Footer - FIXED at bottom */ + footer, .page-footer { + position: fixed !important; + bottom: 0 !important; + left: 0 !important; + right: 0 !important; + z-index: 1000 !important; + height: 75px !important; + display: flex !important; + align-items: center !important; + justify-content: space-between !important; + padding: 0 20px !important; + background: linear-gradient(135deg, var(--witch-purple) 0%, var(--witch-plum) 100%) !important; + color: var(--witch-moon) !important; + border-top: 2px solid var(--witch-mauve) !important; + box-shadow: 0 -5px 20px rgba(168, 87, 126, 0.3) !important; + } + + footer *, .page-footer * { + color: var(--witch-moon) !important; + } + + footer a, .page-footer a { + color: var(--witch-mauve) !important; + transition: all 0.3s ease; + } + + footer a:hover, .page-footer a:hover { + color: white !important; + text-shadow: 0 0 10px rgba(212, 165, 199, 0.5); + } + + /* Footer links container */ + footer .ui.container, .page-footer .ui.container { + background: transparent !important; + box-shadow: none !important; + padding: 0 !important; + margin: 0 !important; + display: flex !important; + align-items: center !important; + justify-content: space-between !important; + width: 100% !important; + max-width: 100% !important; + } + + /* Fun animations */ + @keyframes float { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-10px); } + } + + .repository .icon { + animation: float 6s ease-in-out infinite; + } + + /* Special hover effects */ + .ui.menu .item::after { + content: ''; + position: absolute; + bottom: 0; + left: 50%; + width: 0; + height: 2px; + background: var(--witch-rose); + transition: all 0.3s ease; + transform: translateX(-50%); + } + + .ui.menu .item:hover::after { + width: 80%; + } + + /* Modal overlays */ + .ui.modal { + background: rgba(255, 255, 255, 0.98) !important; + border: 2px solid var(--witch-mauve) !important; + box-shadow: 0 0 60px rgba(168, 87, 126, 0.4), + 0 20px 40px rgba(68, 39, 90, 0.3) !important; + } + + .ui.dimmer { + background: rgba(10, 0, 9, 0.8) !important; + backdrop-filter: blur(5px); + } + + /* Sidebar/Vertical Menu - already styled above, just active state */ + .ui.vertical.menu .active.item { + background: var(--witch-lavender) !important; + color: var(--witch-plum) !important; + border-left: 3px solid var(--witch-rose) !important; + } + + /* Dropdown menus - INCLUDING navbar dropdowns */ + .ui.dropdown .menu, + #navbar .ui.dropdown .menu, + .ui.top.secondary.menu .ui.dropdown .menu { + background: rgba(255, 255, 255, 0.98) !important; + border: 1px solid var(--witch-mauve) !important; + box-shadow: 0 4px 20px rgba(168, 87, 126, 0.2) !important; + } + + .ui.dropdown .menu .item, + #navbar .ui.dropdown .menu .item, + .ui.top.secondary.menu .ui.dropdown .menu .item { + color: var(--witch-purple) !important; + background: transparent !important; + } + + .ui.dropdown .menu .item:hover, + #navbar .ui.dropdown .menu .item:hover, + .ui.top.secondary.menu .ui.dropdown .menu .item:hover { + background: var(--witch-lavender) !important; + color: var(--witch-plum) !important; + } + + /* Dropdown menu text must be dark */ + .ui.dropdown .menu .item *, + #navbar .ui.dropdown .menu .item * { + color: var(--witch-purple) !important; + } + + .ui.dropdown .menu .item:hover *, + #navbar .ui.dropdown .menu .item:hover * { + color: var(--witch-plum) !important; + } + + /* Message/alert boxes */ + .ui.message { + background: rgba(255, 255, 255, 0.95) !important; + border: 1px solid var(--witch-mauve) !important; + color: var(--witch-purple) !important; + } + + .ui.info.message { + background: rgba(232, 213, 232, 0.5) !important; + border-color: var(--witch-rose) !important; + } + + .ui.warning.message { + background: rgba(255, 243, 205, 0.8) !important; + border-color: var(--color-warning) !important; + } + + .ui.error.message, .ui.negative.message { + background: rgba(255, 230, 230, 0.8) !important; + border-color: var(--color-danger) !important; + } + + .ui.success.message, .ui.positive.message { + background: rgba(230, 255, 230, 0.8) !important; + border-color: var(--color-success) !important; + } + + /* List items */ + .ui.list .item, .ui.list .item .content { + color: var(--witch-purple) !important; + } + + /* Breadcrumbs */ + .ui.breadcrumb { + color: var(--witch-plum) !important; + } + + .ui.breadcrumb a { + color: var(--witch-rose) !important; + } + + .ui.breadcrumb .divider { + color: var(--witch-mauve) !important; + } \ No newline at end of file diff --git a/templates/base/footer.tmpl b/templates/base/footer.tmpl index 98f24df..3eba5c8 100644 --- a/templates/base/footer.tmpl +++ b/templates/base/footer.tmpl @@ -1,94 +1,49 @@ + + - - - { + const tree = document.querySelector("#tree-nation-offset-website"); + if (tree && typeof TreeNationOffsetWebsite !== 'undefined') { + TreeNationOffsetWebsite({ + code: "a17464e0cd351220", + lang: "en", + theme: "dark", + }).render("#tree-nation-offset-website"); + clearInterval(interval); + } + }, 1000); + \ No newline at end of file diff --git a/templates/custom/header.tmpl b/templates/custom/header.tmpl index a9df164..07837c1 100644 --- a/templates/custom/header.tmpl +++ b/templates/custom/header.tmpl @@ -11,4 +11,4 @@ - \ No newline at end of file + \ No newline at end of file