feat: tada

This commit is contained in:
Dennis Paulus 2024-02-02 17:30:32 +01:00
parent 3aae0ef53b
commit 0ca24b623a
6 changed files with 585 additions and 2 deletions

4
.editorconfig Normal file
View file

@ -0,0 +1,4 @@
root = true
[*]
tab_width = 4

3
.prettierrc Normal file
View file

@ -0,0 +1,3 @@
{
"tabWidth": 4
}

View file

@ -1,6 +1,9 @@
MIT License
Copyright (c) 2024 fanwikis
Copyright (c) 2024 fanwikis.org
Copyright (c) 2022 The Forgejo Authors
Copyright (c) 2016 The Gitea Authors
Copyright (c) 2015 The Gogs Authors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

View file

@ -1,3 +1,5 @@
# forgejo-themes
fanwikis.org's Forgejo Themes
The themes of fanwikis.org's Forgejo instance. These are based on Forgejo's default themes but with some modifications to fit the design language of fanwikis.org.
These are pretty rushed, some things may not be perfect yet.

346
themes-fanwikis-dark.css Normal file
View file

@ -0,0 +1,346 @@
/*
This theme is based on the "Forgejo Light" Theme by Forgejo under the MIT License:
https://codeberg.org/forgejo/forgejo/src/branch/forgejo/web_src/css/themes/theme-forgejo-light.css
*/
@import "../chroma/dark.css";
@import "../codemirror/dark.css";
:root {
--steel-900: #170f0f;
--steel-850: #170f0f;
--steel-800: #1f1414;
--steel-750: #261717;
--steel-700: #301d1d;
--steel-650: #301d1d;
--steel-600: #3b2424;
--steel-550: #4a2d2d;
--steel-500: #533;
--steel-450: #c79c9c;
--steel-400: #d8aaaa;
--steel-350: #f0bdbd;
--steel-300: #e7c8c8;
--steel-250: #e7d7d7;
--steel-200: #e9e3e3;
--steel-150: #e7dddd;
--steel-100: #e7dddd;
--is-dark-theme: true;
--color-primary: #bb0000;
--color-primary-contrast: #fff;
--color-primary-dark-1: #9d0000;
--color-primary-dark-2: #7b0000;
--color-primary-dark-3: #820000;
--color-primary-dark-4: #640000;
--color-primary-dark-5: #510000;
--color-primary-dark-6: #310000;
--color-primary-dark-7: #170000;
--color-primary-light-1: #d20b0b;
--color-primary-light-2: #ce2b2b;
--color-primary-light-3: #d04343;
--color-primary-light-4: #ff7b7b;
--color-primary-light-5: #ff9595;
--color-primary-light-6: #ffb6b6;
--color-primary-light-7: #ffd7d7;
--color-primary-alpha-10: #bb000019;
--color-primary-alpha-20: #bb000033;
--color-primary-alpha-30: #bb00004b;
--color-primary-alpha-40: #bb000066;
--color-primary-alpha-50: #bb000080;
--color-primary-alpha-60: #bb000099;
--color-primary-alpha-70: #bb0000b3;
--color-primary-alpha-80: #bb0000cc;
--color-primary-alpha-90: #bb0000e1;
--color-link: #ca454a;
--color-primary-hover: var(--color-primary-light-1);
--color-primary-active: var(--color-primary-light-2);
--color-secondary: var(--steel-700);
--color-secondary-dark-1: var(--steel-550);
--color-secondary-dark-2: var(--steel-500);
--color-secondary-dark-3: var(--steel-450);
--color-secondary-dark-4: var(--steel-400);
--color-secondary-dark-5: var(--steel-350);
--color-secondary-dark-6: var(--steel-300);
--color-secondary-dark-7: var(--steel-250);
--color-secondary-dark-8: var(--steel-200);
--color-secondary-dark-9: var(--steel-150);
--color-secondary-dark-10: var(--steel-100);
--color-secondary-dark-11: var(--steel-100);
--color-secondary-dark-12: var(--steel-100);
--color-secondary-dark-13: var(--steel-100);
--color-secondary-light-1: var(--steel-650);
--color-secondary-light-2: var(--steel-700);
--color-secondary-light-3: var(--steel-750);
--color-secondary-light-4: var(--steel-800);
--color-secondary-alpha-10: #2b364219;
--color-secondary-alpha-20: #2b364233;
--color-secondary-alpha-30: #2b36424b;
--color-secondary-alpha-40: #2b364266;
--color-secondary-alpha-50: #2b364280;
--color-secondary-alpha-60: #2b364299;
--color-secondary-alpha-70: #2b3642b3;
--color-secondary-alpha-80: #2b3642cc;
--color-secondary-alpha-90: #2b3642e1;
--color-secondary-hover: var(--color-secondary-light-1);
--color-secondary-active: var(--color-secondary-light-2);
/* colors */
--color-red: #b91c1c;
--color-orange: #ea580c;
--color-yellow: #ca8a04;
--color-olive: #91a313;
--color-green: #15803d;
--color-teal: #0d9488;
--color-blue: #2563eb;
--color-violet: #7c3aed;
--color-purple: #9333ea;
--color-pink: #db2777;
--color-brown: #a47252;
--color-grey: var(--steel-500);
--color-black: #111827;
/* light variants */
--color-red-light: #dc2626;
--color-orange-light: #f97316;
--color-yellow-light: #eab308;
--color-olive-light: #839311;
--color-green-light: #16a34a;
--color-teal-light: #14b8a6;
--color-blue-light: #3b82f6;
--color-violet-light: #8b5cf6;
--color-purple-light: #a855f7;
--color-pink-light: #ec4899;
--color-brown-light: #94674a;
--color-grey-light: var(--steel-300);
--color-black-light: #1f2937;
/* dark 1 variants produced via Sass scale-color(color, $lightness: -10%) */
--color-red-dark-1: #a71919;
--color-orange-dark-1: #d34f0b;
--color-yellow-dark-1: #b67c04;
--color-olive-dark-1: #839311;
--color-green-dark-1: #137337;
--color-teal-dark-1: #0c857a;
--color-blue-dark-1: #1554e0;
--color-violet-dark-1: #6a1feb;
--color-purple-dark-1: #8519e7;
--color-pink-dark-1: #c7216b;
--color-brown-dark-1: #94674a;
--color-black-dark-1: #0f1623;
/* dark 2 variants produced via Sass scale-color(color, $lightness: -20%) */
--color-red-dark-2: #941616;
--color-orange-dark-2: #bb460a;
--color-yellow-dark-2: #ca8a04;
--color-olive-dark-2: #91a313;
--color-green-dark-2: #15803d;
--color-teal-dark-2: #0a766d;
--color-blue-dark-2: #2563eb;
--color-violet-dark-2: #5c14d8;
--color-purple-dark-2: #7c3aed;
--color-pink-dark-2: #b11d5f;
--color-brown-dark-2: #a47252;
--color-black-dark-2: #111827;
/* other colors */
--color-gold: #b1983b;
--color-white: #ffffff;
--color-diff-removed-word-bg: #783030;
--color-diff-added-word-bg: #255c39;
--color-diff-removed-row-bg: #432121;
--color-diff-moved-row-bg: #825718;
--color-diff-added-row-bg: #1b3625;
--color-diff-removed-row-border: #783030;
--color-diff-moved-row-border: #a67a1d;
--color-diff-added-row-border: #255c39;
--color-diff-inactive: var(--steel-650);
--color-error-border: #783030;
--color-error-bg: #5f2525;
--color-error-bg-active: #783030;
--color-error-bg-hover: #783030;
--color-error-text: #fef2f2;
--color-success-border: #1f6e3c;
--color-success-bg: #1d462c;
--color-success-text: #f0fdf4;
--color-warning-border: #a67a1d;
--color-warning-bg: #644821;
--color-warning-text: #fefce8;
--color-info-border: #2e50b0;
--color-info-bg: #2a396b;
--color-info-text: var(--steel-100);
--color-red-badge: #b91c1c;
--color-red-badge-bg: #b91c1c22;
--color-red-badge-hover-bg: #b91c1c44;
--color-green-badge: #16a34a;
--color-green-badge-bg: #16a34a22;
--color-green-badge-hover-bg: #16a34a44;
--color-yellow-badge: #ca8a04;
--color-yellow-badge-bg: #ca8a0422;
--color-yellow-badge-hover-bg: #ca8a0444;
--color-orange-badge: #ea580c;
--color-orange-badge-bg: #ea580c22;
--color-orange-badge-hover-bg: #ea580c44;
--color-git: #f05133;
/* target-based colors */
--color-body: var(--steel-800);
--color-box-header: var(--steel-700);
--color-box-body: var(--steel-750);
--color-box-body-highlight: var(--steel-650);
--color-text-dark: #fff;
--color-text: var(--steel-100);
--color-text-light: var(--steel-150);
--color-text-light-1: var(--steel-150);
--color-text-light-2: var(--steel-200);
--color-text-light-3: var(--steel-200);
--color-footer: var(--steel-900);
--color-timeline: var(--steel-650);
--color-input-text: var(--steel-100);
--color-input-background: var(--steel-650);
--color-input-toggle-background: var(--steel-650);
--color-input-border: var(--steel-550);
--color-input-border-hover: var(--steel-450);
--color-header-wrapper: var(--steel-850);
--color-header-wrapper-transparent: #242d3800;
--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: var(--steel-600);
--color-active: var(--steel-650);
--color-menu: var(--steel-700);
--color-card: var(--steel-700);
--color-markup-table-row: #ffffff06;
--color-markup-code-block: var(--steel-800);
--color-button: var(--steel-600);
--color-code-bg: var(--steel-750);
--color-code-sidebar-bg: var(--steel-600);
--color-shadow: #00000060;
--color-secondary-bg: var(--steel-700);
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: var(--steel-450);
--color-editor-line-highlight: var(--steel-700);
--color-project-board-bg: var(--color-secondary-light-3);
--color-project-board-dark-label: var(--color-text-light-3);
--color-caret: var(--color-text);
/* should ideally be --color-text-dark, see #15651 */
--color-reaction-bg: #ffffff12;
--color-reaction-active-bg: var(--color-primary-alpha-30);
--color-tooltip-text: #ffffff;
--color-tooltip-bg: #000000f0;
--color-nav-bg: var(--steel-900);
--color-nav-hover-bg: var(--steel-600);
--color-label-text: #fff;
--color-label-bg: #393939;
--color-label-hover-bg: #5f5f5f;
--color-label-active-bg: #4c4c4c;
--color-accent: var(--color-primary-light-1);
--color-small-accent: var(--color-primary-light-5);
--color-active-line: var(--color-primary-alpha-20);
--color-overlay-backdrop: #080808c0;
accent-color: var(--color-accent);
color-scheme: dark;
}
/* invert emojis that are hard to read otherwise */
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label="copyright"],
.emoji[aria-label="registered"],
.emoji[aria-label="trade mark"],
.emoji[aria-label="multiply"],
.emoji[aria-label="plus"],
.emoji[aria-label="minus"],
.emoji[aria-label="divide"],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
filter: invert(100%) hue-rotate(180deg);
}
.following.bar.light {
border-bottom-color: #ffffff11 !important;
}
.text.green.svg {
color: #16a34a !important;
}
i.grey.icon.icon.icon.icon {
color: var(--steel-350) !important;
}
.ui.red.button,
.ui.negative.button {
background-color: #7f1d1d;
}
.ui.red.button:hover,
.ui.negative.button:hover {
background-color: #991b1b;
}
.ui.red.button:active,
.ui.negative.button:active {
background-color: #aa1919;
}
.ui.secondary.vertical.menu {
border-radius: 0.28571429rem !important;
overflow: hidden;
}
.ui.secondary.vertical.menu > .item {
border-radius: 0 !important;
}
.ui.basic.primary.button.item {
background-color: var(--color-active) !important;
color: var(--color-text) !important;
box-shadow: none !important;
}
.ui.red.label.notification_count,
.ui.primary.label,
.ui.primary.labels .label {
background-color: var(--color-primary-light-3) !important;
}
.repository.view.issue .comment-list .code-comment + .code-comment {
margin: 1.25rem 0 !important;
padding-top: 1.25rem !important;
border-top-color: var(--steel-650) !important;
}
.ui.labeled.icon.buttons > .button > .icon,
.ui.labeled.icon.button > .icon {
background-color: rgba(0, 0, 0, 0.05) !important;
}
#review-box .review-comments-counter {
background-color: #00000088 !important;
color: #fff !important;
margin-left: 0.5em;
}
.ui.tabs .ui.primary.label,
.ui.menu .ui.primary.label {
background-color: rgba(192, 192, 255, 0.2) !important;
color: var(--color-text-dark) !important;
}
.ui.basic.yellow.label.pending-label {
background: var(--color-light) !important;
}
.ui.tertiary.button {
color: #fff9;
}
.ui.tertiary.button:hover {
color: #ccc;
}
::selection {
background: var(--steel-100) !important;
color: #000 !important;
}
a {
color: var(--color-link);
}
nav#navbar {
border-top: 0.5rem solid var(--color-primary);
}
nav#navbar #navbar-logo img {
width: 20px;
height: 20px;
}

225
themes-fanwikis-light.css Normal file
View file

@ -0,0 +1,225 @@
/*
This theme is based on the "Forgejo Light" Theme by Forgejo under the MIT License:
https://codeberg.org/forgejo/forgejo/src/branch/forgejo/web_src/css/themes/theme-forgejo-light.css
*/
@import "../chroma/light.css";
@import "../codemirror/light.css";
:root {
--steel-900: #170f0f;
--steel-850: #170f0f;
--steel-800: #1f1414;
--steel-750: #261717;
--steel-700: #301d1d;
--steel-650: #301d1d;
--steel-600: #3b2424;
--steel-550: #4a2d2d;
--steel-500: #533;
--steel-450: #c79c9c;
--steel-400: #d8aaaa;
--steel-350: #f0bdbd;
--steel-300: #e7c8c8;
--steel-250: #e7d7d7;
--steel-200: #e9e3e3;
--steel-150: #e7dddd;
--steel-100: #e7dddd;
--zinc-50: #fafafa;
--zinc-100: #f4f4f5;
--zinc-150: #ececee;
--zinc-200: #e4e4e7;
--zinc-250: #dcdce0;
--zinc-300: #d4d4d8;
--zinc-350: #babac1;
--zinc-400: #a1a1aa;
--zinc-450: #898992;
--zinc-500: #71717a;
--zinc-550: #61616a;
--zinc-600: #52525b;
--zinc-650: #484850;
--zinc-700: #3f3f46;
--zinc-750: #333338;
--zinc-800: #27272a;
--zinc-850: #1f1f23;
--zinc-900: #18181b;
--color-primary: #bb0000;
--color-primary-contrast: #fff;
--color-primary-dark-1: #9d0000;
--color-primary-dark-2: #7b0000;
--color-primary-dark-3: #820000;
--color-primary-dark-4: #640000;
--color-primary-dark-5: #510000;
--color-primary-dark-6: #310000;
--color-primary-dark-7: #170000;
--color-primary-light-1: #d20b0b;
--color-primary-light-2: #ce2b2b;
--color-primary-light-3: #d04343;
--color-primary-light-4: #ff7b7b;
--color-primary-light-5: #ff9595;
--color-primary-light-6: #ffb6b6;
--color-primary-light-7: #ffd7d7;
--color-primary-alpha-10: #bb000019;
--color-primary-alpha-20: #bb000033;
--color-primary-alpha-30: #bb00004b;
--color-primary-alpha-40: #bb000066;
--color-primary-alpha-50: #bb000080;
--color-primary-alpha-60: #bb000099;
--color-primary-alpha-70: #bb0000b3;
--color-primary-alpha-80: #bb0000cc;
--color-primary-alpha-90: #bb0000e1;
--color-secondary: var(--zinc-200);
--color-secondary-dark-1: var(--zinc-200);
--color-secondary-dark-2: var(--zinc-300);
--color-secondary-dark-3: var(--zinc-300);
--color-secondary-dark-4: var(--zinc-400);
--color-secondary-dark-5: var(--zinc-400);
--color-secondary-dark-6: var(--zinc-500);
--color-secondary-dark-7: var(--zinc-500);
--color-secondary-dark-8: var(--zinc-600);
--color-secondary-dark-9: var(--zinc-600);
--color-secondary-dark-10: var(--zinc-700);
--color-secondary-dark-11: var(--zinc-700);
--color-secondary-dark-12: var(--zinc-800);
--color-secondary-dark-13: var(--zinc-800);
--color-secondary-light-1: var(--zinc-200);
--color-secondary-light-2: var(--zinc-100);
--color-secondary-light-3: var(--zinc-100);
--color-secondary-light-4: var(--zinc-50);
--color-secondary-alpha-10: #d4d4d819;
--color-secondary-alpha-20: #d4d4d833;
--color-secondary-alpha-30: #d4d4d84b;
--color-secondary-alpha-40: #d4d4d866;
--color-secondary-alpha-50: #d4d4d880;
--color-secondary-alpha-60: #d4d4d899;
--color-secondary-alpha-70: #d4d4d8b3;
--color-secondary-alpha-80: #d4d4d8cc;
--color-secondary-alpha-90: #d4d4d8e1;
--color-red: #dc2626;
--color-orange: #ea580c;
--color-yellow: #ca8a04;
--color-olive: #91a313;
--color-green: #15803d;
--color-teal: #0d9488;
--color-blue: #2563eb;
--color-violet: #7c3aed;
--color-purple: #9333ea;
--color-pink: #db2777;
--color-brown: #a47252;
--color-grey: #4b5563;
--color-black: #000;
--color-red-light: #ef4444;
--color-orange-light: #f97316;
--color-yellow-light: #eab308;
--color-olive-light: #839311;
--color-green-light: #16a34a;
--color-teal-light: #14b8a6;
--color-blue-light: #3b82f6;
--color-violet-light: #8b5cf6;
--color-purple-light: #a855f7;
--color-pink-light: #ec4899;
--color-brown-light: #94674a;
--color-grey-light: #6b7280;
--color-black-light: #181818;
--color-gold: #b1983b;
--color-white: #fff;
--color-diff-removed-word-bg: #fca5a5;
--color-diff-added-word-bg: #86efac;
--color-diff-removed-row-bg: #fee2e2;
--color-diff-moved-row-bg: #fef9c3;
--color-diff-added-row-bg: #dcfce7;
--color-diff-removed-row-border: #fca5a5;
--color-diff-moved-row-border: #fde047;
--color-diff-added-row-border: #86efac;
--color-diff-inactive: var(--zinc-100);
--color-error-border: #fecaca;
--color-error-bg: #fee2e2;
--color-error-bg-active: #fca5a5;
--color-error-bg-hover: #fecaca;
--color-error-text: #7f1d1d;
--color-success-border: #bbf7d0;
--color-success-bg: #dcfce7;
--color-success-text: #14532d;
--color-warning-border: #fde047;
--color-warning-bg: #fef3c7;
--color-warning-text: #78350f;
--color-info-border: #bae6fd;
--color-info-bg: #e0f2fe;
--color-info-text: #0c4a6e;
--color-red-badge: #b91c1c;
--color-red-badge-bg: #b91c1c22;
--color-red-badge-hover-bg: #b91c1c44;
--color-green-badge: #16a34a;
--color-green-badge-bg: #16a34a22;
--color-green-badge-hover-bg: #16a34a44;
--color-yellow-badge: #ca8a04;
--color-yellow-badge-bg: #ca8a0422;
--color-yellow-badge-hover-bg: #ca8a0444;
--color-orange-badge: #ea580c;
--color-orange-badge-bg: #ea580c22;
--color-orange-badge-hover-bg: #ea580c44;
--color-git: #f05133;
--color-body: #fff;
--color-box-header: var(--zinc-100);
--color-box-body: var(--zinc-50);
--color-box-body-highlight: var(--zinc-200);
--color-text-dark: #000;
--color-text: var(--zinc-900);
--color-text-light: var(--zinc-700);
--color-text-light-1: var(--zinc-650);
--color-text-light-2: var(--zinc-600);
--color-text-light-3: var(--zinc-550);
--color-footer: var(--zinc-100);
--color-timeline: var(--zinc-200);
--color-input-text: var(--zinc-800);
--color-input-background: #fff;
--color-input-toggle-background: #fff;
--color-input-border: var(--zinc-300);
--color-input-border-hover: var(--zinc-400);
--color-header-wrapper: var(--zinc-50);
--color-header-wrapper-transparent: #d2e0f000;
--color-light: #fffc;
--color-light-mimic-enabled: rgba(
0,
0,
0,
calc(6 / 255 * 222 / 255 / var(--opacity-disabled))
);
--color-light-border: #0000001d;
--color-hover: #e4e4e4aa;
--color-active: #d4d4d8aa;
--color-menu: var(--zinc-100);
--color-card: var(--zinc-50);
--color-markup-table-row: #ffffff06;
--color-markup-code-block: var(--zinc-150);
--color-button: var(--zinc-150);
--color-code-bg: var(--zinc-50);
--color-code-sidebar-bg: var(--zinc-100);
--color-shadow: #00000060;
--color-secondary-bg: var(--zinc-100);
--color-text-focus: #fff;
--color-expand-button: var(--zinc-200);
--color-placeholder-text: var(--zinc-400);
--color-editor-line-highlight: var(--zinc-100);
--color-project-board-bg: var(--color-secondary-light-2);
--color-project-board-dark-label: var(--color-text-light-3);
--color-caret: var(--color-text);
--color-reaction-bg: #0000000a;
--color-reaction-active-bg: var(--color-primary-alpha-20);
--color-nav-bg: var(--zinc-100);
--color-nav-hover-bg: var(--zinc-300);
--color-label-active-bg: #4c525e;
--color-accent: var(--color-primary-light-1);
--color-small-accent: var(--color-primary-light-5);
--color-active-line: var(--color-primary-light-6);
accent-color: var(--color-accent);
color-scheme: light;
}
nav#navbar {
border-top: 0.5rem solid var(--color-primary);
}
nav#navbar #navbar-logo img {
width: 20px;
height: 20px;
}