Files
kotikot-gitea/public/assets/css/theme-neogothic.css
T
hh 5ca0249911 feat(themes): redesign neogothic as marble glass, fix pinkie composite controls, self-host SF Pro
neogothic: near-invisible marble background, glass panels and inputs,
moon accent instead of gold, Tenor Sans headings, Onest UI, Mona Sans
content with Onest fallback, muted commit hashes, dropdown stacking fix.
pinkie: joined labeled buttons and action inputs, muted default buttons,
plain commit hashes, minimal portfolio, self-hosted SF Pro Text/Display.
portfolio: 2-column grid under 1100px, refit barcode titles after font load.
2026-09-09 23:29:31 +02:00

1447 lines
41 KiB
CSS

@import url('https://fonts.googleapis.com/css2?family=Tenor+Sans&family=Onest:wght@400;500;600&family=Mona+Sans:ital,wght@0,400;0,500;0,600;1,400&family=JetBrains+Mono:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap');
gitea-theme-meta-info {
--theme-display-name: "neogothic";
--theme-color-scheme: "dark";
}
:root {
--is-dark-theme: true;
--color-primary: #8A9299;
--color-primary-contrast: #0A0B0D;
--color-primary-dark-1: #A3ABB2;
--color-primary-dark-2: #BCC3C9;
--color-primary-dark-3: #D5DADF;
--color-primary-dark-4: #E6E9EC;
--color-primary-dark-5: #EEF0F2;
--color-primary-dark-6: #F5F6F7;
--color-primary-dark-7: #FBFBFC;
--color-primary-light-1: #6B757D;
--color-primary-light-2: #4E5962;
--color-primary-light-3: #3A434A;
--color-primary-light-4: #272E33;
--color-primary-light-5: #1C2125;
--color-primary-light-6: #121518;
--color-primary-light-7: #0B0D0F;
--color-primary-alpha-10: #8A929919;
--color-primary-alpha-20: #8A929933;
--color-primary-alpha-30: #8A92994b;
--color-primary-alpha-40: #8A929966;
--color-primary-alpha-50: #8A929980;
--color-primary-alpha-60: #8A929999;
--color-primary-alpha-70: #8A9299b3;
--color-primary-alpha-80: #8A9299cc;
--color-primary-alpha-90: #8A9299e1;
--color-primary-hover: var(--color-primary-dark-1);
--color-primary-active: var(--color-primary-dark-2);
--color-secondary: #1E2227;
--color-secondary-dark-1: #262B30;
--color-secondary-dark-2: #2F353B;
--color-secondary-dark-3: #3A4148;
--color-secondary-dark-4: #464E56;
--color-secondary-dark-5: #535B64;
--color-secondary-dark-6: #616971;
--color-secondary-dark-7: #6F777F;
--color-secondary-dark-8: #7E858C;
--color-secondary-dark-9: #8C9399;
--color-secondary-dark-10: #9AA0A6;
--color-secondary-dark-11: #A9AEB3;
--color-secondary-dark-12: #B8BCC0;
--color-secondary-dark-13: #C6C9CD;
--color-secondary-light-1: #181B1F;
--color-secondary-light-2: #131619;
--color-secondary-light-3: #0F1114;
--color-secondary-light-4: #0B0D0F;
--color-secondary-alpha-10: #1E222719;
--color-secondary-alpha-20: #1E222733;
--color-secondary-alpha-30: #1E22274b;
--color-secondary-alpha-40: #1E222766;
--color-secondary-alpha-50: #1E222780;
--color-secondary-alpha-60: #1E222799;
--color-secondary-alpha-70: #1E2227b3;
--color-secondary-alpha-80: #1E2227cc;
--color-secondary-alpha-90: #1E2227e1;
--color-secondary-button: var(--color-secondary-dark-4);
--color-secondary-hover: var(--color-secondary-dark-3);
--color-secondary-active: var(--color-secondary-dark-2);
--color-console-fg: #E2E4E6;
--color-console-fg-subtle: #9BA0A5;
--color-console-bg: #0C0E10;
--color-console-border: #1E2227;
--color-console-hover-bg: #14171B;
--color-console-active-bg: #1A1E22;
--color-console-menu-bg: #0F1114;
--color-console-menu-border: #262B30;
--color-console-link: #9BA0A5;
--color-red: #cc4848;
--color-orange: #cc580c;
--color-yellow: #cc9903;
--color-olive: #91a313;
--color-green: #87ab63;
--color-teal: #00918a;
--color-blue: #3a8ac6;
--color-violet: #906ae1;
--color-purple: #b259d0;
--color-pink: #d22e8b;
--color-brown: #a47252;
--color-black: #16191C;
--color-red-light: #d15a5a;
--color-orange-light: #f6a066;
--color-yellow-light: #eaaf03;
--color-olive-light: #abc016;
--color-green-light: #93b373;
--color-teal-light: #00b6ad;
--color-blue-light: #4e96cc;
--color-violet-light: #9b79e4;
--color-purple-light: #ba6ad5;
--color-pink-light: #d74397;
--color-brown-light: #b08061;
--color-black-light: #262B30;
--color-red-dark-1: #c23636;
--color-orange-dark-1: #f38236;
--color-yellow-dark-1: #b88a03;
--color-olive-dark-1: #839311;
--color-green-dark-1: #7a9e55;
--color-teal-dark-1: #00837c;
--color-blue-dark-1: #347cb3;
--color-violet-dark-1: #7b4edb;
--color-purple-dark-1: #a742c9;
--color-pink-dark-1: #be297d;
--color-brown-dark-1: #94674a;
--color-black-dark-1: #121518;
--color-red-dark-2: #ad3030;
--color-orange-dark-2: #f16e17;
--color-yellow-dark-2: #a37a02;
--color-olive-dark-2: #74820f;
--color-green-dark-2: #6c8c4c;
--color-teal-dark-2: #00746e;
--color-blue-dark-2: #2e6e9f;
--color-violet-dark-2: #6733d6;
--color-purple-dark-2: #9834b9;
--color-pink-dark-2: #a9246f;
--color-brown-dark-2: #835b42;
--color-black-dark-2: #0E1013;
--color-ansi-black: #16191C;
--color-ansi-red: #cc4848;
--color-ansi-green: #87ab63;
--color-ansi-yellow: #cc9903;
--color-ansi-blue: #3a8ac6;
--color-ansi-magenta: #d22e8b;
--color-ansi-cyan: #00918a;
--color-ansi-white: var(--color-console-fg-subtle);
--color-ansi-bright-black: #464E56;
--color-ansi-bright-red: #d15a5a;
--color-ansi-bright-green: #93b373;
--color-ansi-bright-yellow: #eaaf03;
--color-ansi-bright-blue: #4e96cc;
--color-ansi-bright-magenta: #d74397;
--color-ansi-bright-cyan: #00b6ad;
--color-ansi-bright-white: var(--color-console-fg);
--color-series-16-0: #7db233;
--color-series-16-1: #499a37;
--color-series-16-2: #ce4751;
--color-series-16-3: #8f9121;
--color-series-16-4: #ac32a6;
--color-series-16-5: #7445e9;
--color-series-16-6: #c67d28;
--color-series-16-7: #4db392;
--color-series-16-8: #aa4d30;
--color-series-16-9: #2a6f84;
--color-series-16-10: #c45327;
--color-series-16-11: #3d965c;
--color-series-16-12: #792a93;
--color-series-16-13: #439d73;
--color-series-16-14: #103aad;
--color-series-16-15: #982e85;
--color-grey: #2F353B;
--color-grey-light: #7E858C;
--color-gold: #A89064;
--color-white: #ffffff;
--color-diff-added-fg: #7CB05C;
--color-diff-added-linenum-bg: #1C2A1C;
--color-diff-added-row-bg: #141C14;
--color-diff-added-row-border: #26382A;
--color-diff-added-word-bg: #2E4A2E;
--color-diff-moved-row-bg: #5F5A2A;
--color-diff-moved-row-border: #8E8A55;
--color-diff-removed-fg: #E07070;
--color-diff-removed-linenum-bg: #2E1A1A;
--color-diff-removed-row-bg: #1E1414;
--color-diff-removed-row-border: #3E2626;
--color-diff-removed-word-bg: #4E2A2A;
--color-diff-inactive: #141618;
--color-error-border: #5A2B2B;
--color-error-bg: #1F1315;
--color-error-bg-active: #2C1A1C;
--color-error-bg-hover: #261618;
--color-error-text: #E07070;
--color-success-border: #2A4A2A;
--color-success-bg: #131D13;
--color-success-text: #7CB05C;
--color-warning-border: #5A4A2A;
--color-warning-bg: #1F1A10;
--color-warning-text: #C4AB7A;
--color-info-border: #2B3F5A;
--color-info-bg: #121A24;
--color-info-text: #7AA8D6;
--color-priority-border: #4A3A7A;
--color-priority-bg: #1A1524;
--color-priority-text: #A895E0;
--color-red-badge: #db2828;
--color-red-badge-bg: #db28281a;
--color-red-badge-hover-bg: #db28284d;
--color-green-badge: #21ba45;
--color-green-badge-bg: #21ba451a;
--color-green-badge-hover-bg: #21ba454d;
--color-yellow-badge: #fbbd08;
--color-yellow-badge-bg: #fbbd081a;
--color-yellow-badge-hover-bg: #fbbd084d;
--color-orange-badge: #f2711c;
--color-orange-badge-bg: #f2711c1a;
--color-orange-badge-hover-bg: #f2711c4d;
--color-git: #f05133;
--color-logo: #609926;
--color-body: #0A0B0D;
--color-box-header: #0E1013;
--color-box-body: #0C0E10;
--color-box-body-highlight: #14171B;
--color-text-dark: #F2F3F4;
--color-text: #E2E4E6;
--color-text-light: #B4B9BE;
--color-text-light-1: #9BA0A5;
--color-text-light-2: #7E858B;
--color-text-light-3: #666D73;
--color-footer: var(--color-nav-bg);
--color-timeline: #1E2227;
--color-input-text: var(--color-text-dark);
--color-input-background: #0C0D10;
--color-input-toggle-background: #262B30;
--color-input-border: #262B30;
--color-light: #ffffff0a;
--color-light-border: #8A929933;
--color-hover: #8A929914;
--color-hover-opaque: #15181B;
--color-active: #8A929926;
--color-menu: #0D0F12;
--color-card: #0D0F12;
--color-markup-table-row: #8A92990f;
--color-markup-code-block: #8A929914;
--color-markup-code-inline: #8A929926;
--color-button: #101215;
--color-code-bg: #1e1f22;
--color-shadow: #00000080;
--color-shadow-opaque: #000000;
--color-secondary-bg: #16191C;
--color-expand-button: #262B30;
--color-placeholder-text: var(--color-text-light-3);
--color-editor-line-highlight: var(--color-primary-alpha-20);
--color-editor-selection: var(--color-primary-alpha-40);
--color-project-column-bg: var(--color-secondary-light-2);
--color-caret: #BFD0E0;
--color-reaction-bg: #8A929914;
--color-reaction-hover-bg: var(--color-primary-light-4);
--color-reaction-active-bg: var(--color-primary-light-5);
--color-tooltip-text: #F2F3F4;
--color-tooltip-bg: #0D0F12f5;
--color-nav-bg: #08090B;
--color-nav-hover-bg: #14171B;
--color-nav-text: var(--color-text);
--color-secondary-nav-bg: #0B0D0F;
--color-label-text: var(--color-text);
--color-label-bg: #8A92994b;
--color-label-hover-bg: #8A9299a0;
--color-label-active-bg: #8A9299;
--color-accent: #BFD0E0;
--color-small-accent: var(--color-primary-light-5);
--color-highlight-fg: #BFD0E0;
--color-highlight-bg: #1F2A35;
--color-overlay-backdrop: #000000c0;
--color-danger: var(--color-red);
--color-transparency-grid-light: #1a1a1a;
--color-transparency-grid-dark: #0f0f0f;
--color-workflow-edge-hover: #6F777F;
--color-syntax-keyword: #cf8e6d;
--color-syntax-bool: #cf8e6d;
--color-syntax-control: #cf8e6d;
--color-syntax-name: #bcbec4;
--color-syntax-type: #bcbec4;
--color-syntax-number: #2aacb8;
--color-syntax-operator: #bcbec4;
--color-syntax-regexp: #6aab73;
--color-syntax-string: #6aab73;
--color-syntax-comment: #7a7e85;
--color-syntax-invalid: #f75464;
--color-syntax-link: var(--color-primary);
--color-syntax-tag: #d5b778;
--color-syntax-attribute: #c77dbb;
--color-syntax-property: #c77dbb;
--color-syntax-variable: #bcbec4;
--color-syntax-string-special: #6aab73;
--color-syntax-escape: #cf8e6d;
--color-syntax-entity: #56a8f5;
--color-syntax-preproc: #b3ae60;
--color-syntax-preproc-file: #6aab73;
--color-syntax-decorator: #b3ae60;
--color-syntax-namespace: #bcbec4;
--color-syntax-name-pseudo: #c77dbb;
--color-syntax-comment-special: #5f826b;
--color-syntax-text: #bcbec4;
--color-syntax-text-alt: #a1a3a8;
--color-syntax-punctuation: #bcbec4;
--color-syntax-whitespace: #4b5059;
--color-syntax-diff-fg: #ffffff;
--color-syntax-deleted-bg: #4E2A2A;
--color-syntax-inserted-bg: #2E4A2E;
--color-syntax-emph: #d5b778;
--color-syntax-strong: #cf8e6d;
--color-syntax-heading: #cf8e6d;
--color-syntax-subheading: #6aab73;
--color-syntax-output: #7a7e85;
--color-syntax-prompt: #cf8e6d;
--color-syntax-traceback: #f75464;
--color-syntax-matching-bracket-bg: #2aacb848;
--color-syntax-nonmatching-bracket-bg: #f7546448;
--color-code-sidebar-bg: #2b2d30;
--color-editor-line-number: #4b5059;
--color-border: var(--color-secondary);
--color-border-secondary: #151719;
--color-moon: #BFD0E0;
--color-moon-alpha-15: rgba(191, 208, 224, 0.15);
--color-moon-alpha-30: rgba(191, 208, 224, 0.30);
--color-moon-alpha-50: rgba(191, 208, 224, 0.50);
--glass-bg: rgba(13, 15, 18, 0.62);
--glass-bg-strong: rgba(10, 12, 14, 0.96);
--glass-border: rgba(255, 255, 255, 0.07);
--glass-border-strong: rgba(255, 255, 255, 0.13);
--glass-highlight: rgba(255, 255, 255, 0.10);
--glass-blur: 18px;
--marble: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='1600'%3E%3Cfilter id='m' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0032 0.005' numOctaves='4' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='luminanceToAlpha'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 0 0 0 0 0 0 0.3 1 0.3 0 0 0 0 0 0 0'/%3E%3C/feComponentTransfer%3E%3CfeColorMatrix values='0 0 0 0 0.70 0 0 0 0 0.76 0 0 0 0 0.84 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E");
--fonts-proportional: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif;
--fonts-monospace: 'JetBrains Mono', ui-monospace, monospace;
--fonts-regular: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif;
--font-family-header: 'Tenor Sans', 'Optima', 'Candara', sans-serif;
--font-family-prose: 'Mona Sans', 'Onest', system-ui, -apple-system, sans-serif;
--border-radius: 0;
--border-radius-medium: 0;
--border-radius-full: 0;
--transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
--transition-base: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
accent-color: var(--color-accent);
color-scheme: dark;
}
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="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);
}
body {
background-color: var(--color-body);
background-image:
radial-gradient(ellipse 70% 45% at 50% -10%, rgba(191, 208, 224, 0.06) 0%, transparent 60%),
linear-gradient(rgba(10, 11, 13, 0.99), rgba(10, 11, 13, 0.99)),
var(--marble);
background-size: auto, auto, 1600px 1600px;
background-attachment: fixed;
color: var(--color-text);
font-family: var(--fonts-regular);
font-weight: 400;
font-size: 14px;
line-height: 1.5;
letter-spacing: 0;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
*,
*::before,
*::after {
border-radius: 0 !important;
}
h1, h2, h3, h4, h5, h6,
.ui.header {
font-family: var(--font-family-header) !important;
font-weight: 400 !important;
letter-spacing: 0.03em;
text-transform: none;
color: var(--color-text-dark);
}
h1, .ui.header.large { font-size: 2em; }
h2 { font-size: 1.55em; }
h3 { font-size: 1.25em; }
h4, h5, h6 { font-size: 1.1em; }
h1,
h2,
.page-content.home .hero .ui.header.title,
.repo-header .flex-text-block.tw-text-18 {
text-shadow: 0 0 24px var(--color-moon-alpha-15);
}
.ui.attached.header,
.ui.header.segment,
.ui.top.attached.header {
font-size: 18px;
padding-top: 11px;
padding-bottom: 11px;
}
.markup {
font-family: var(--font-family-prose);
font-size: 15px;
line-height: 1.6;
color: var(--color-text);
}
.markup h1,
.markup h2,
.markup h3,
.markup h4,
.markup h5,
.markup h6 {
font-family: var(--font-family-header) !important;
font-weight: 400 !important;
letter-spacing: 0.03em;
margin-top: 1.6em;
margin-bottom: 0.6em;
}
.markup h1 { font-size: 2.1em; }
.markup h2 { font-size: 1.6em; }
.markup h3 { font-size: 1.3em; }
.markup h1,
.markup h2 {
padding-bottom: 0.25em;
border-bottom: 1px solid var(--glass-border-strong);
}
.markup p,
.markup li,
.markup td,
.markup th,
.markup blockquote {
font-family: var(--font-family-prose);
}
.markup table {
font-size: 14px;
}
.repo-file-cell.name,
.repo-file-cell.message,
.latest-commit .commit-summary,
#commits-table td.message,
.commit-summary,
.commit-body,
.commit-header h3 {
font-family: var(--font-family-prose);
}
.markup blockquote {
border-left: 1px solid var(--color-secondary-dark-4);
color: var(--color-text-light);
font-style: italic;
}
.markup code,
.markup pre,
.markup kbd,
.markup tt {
font-family: var(--fonts-monospace);
font-size: 0.86em;
}
.markup code:not(.chroma):not(pre code),
.markup tt {
background: var(--color-markup-code-inline) !important;
color: var(--color-text-dark) !important;
padding: 1px 5px;
}
.markup pre {
border: 1px solid var(--glass-border) !important;
}
.markup table th,
.markup table td {
border-color: var(--glass-border-strong) !important;
}
.markup table tr:nth-child(2n) {
background: var(--color-markup-table-row) !important;
}
a {
color: var(--color-link, var(--color-primary-dark-1));
text-decoration: none;
text-underline-offset: 3px;
transition: color var(--transition-fast);
}
a:hover {
color: var(--color-text-dark);
text-decoration: underline;
text-decoration-thickness: 1px;
text-decoration-color: var(--color-moon-alpha-50);
}
.ui.button:hover,
.item:hover,
.file-tree-item:hover,
a.ui.label:hover,
a:hover .ui.avatar,
.markup a:hover code {
text-decoration: none;
}
:root {
--color-link: var(--color-primary-dark-1);
--color-link-hover: var(--color-text-dark);
}
:focus-visible {
outline: 2px solid var(--color-moon) !important;
outline-offset: 2px;
}
.ui.button:focus-visible,
[role="button"]:focus-visible,
.ui.input input:focus-visible,
.ui.form input:focus-visible,
.ui.form textarea:focus-visible {
outline: 2px solid var(--color-moon) !important;
outline-offset: -2px;
}
#navbar {
background: rgba(8, 9, 11, 0.72);
backdrop-filter: blur(20px) saturate(120%);
-webkit-backdrop-filter: blur(20px) saturate(120%);
border-bottom: 1px solid var(--glass-border);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
#navbar .item {
font-family: var(--fonts-regular);
font-size: 14px;
font-weight: 500;
letter-spacing: 0;
}
#navbar .item.active {
box-shadow: inset 0 -2px 0 var(--color-moon);
background: transparent;
}
.ui.secondary.menu .item,
.ui.tabular.menu .item {
color: var(--color-text-light);
font-family: var(--fonts-monospace);
font-size: 12px;
font-weight: 500;
letter-spacing: 0.08em;
text-transform: uppercase;
border: none !important;
background: transparent !important;
transition: color var(--transition-base);
position: relative;
}
.ui.secondary.menu .item:hover,
.ui.tabular.menu .item:hover {
color: var(--color-text-dark);
}
.ui.secondary.menu .active.item,
.ui.tabular.menu .active.item {
color: var(--color-text-dark) !important;
background: transparent !important;
font-weight: 600;
}
.ui.secondary.pointing.menu {
border-bottom: 1px solid var(--glass-border-strong);
}
.ui.secondary.pointing.menu .item,
.ui.tabular.menu .item {
margin-bottom: -1px;
padding: 12px 14px !important;
}
.ui.secondary.pointing.menu .item::after,
.ui.tabular.menu .item::after {
content: '';
display: block !important;
position: absolute;
left: 14px;
right: 14px;
bottom: -1px;
height: 2px;
background: var(--color-moon);
transform: scaleX(0);
transform-origin: center;
transition: transform var(--transition-base), box-shadow var(--transition-base);
border: 0;
width: auto;
top: auto;
margin: 0;
}
.ui.secondary.pointing.menu .item:hover::after,
.ui.tabular.menu .item:hover::after {
transform: scaleX(1);
background: var(--color-primary-light-1);
}
.ui.secondary.pointing.menu .active.item::after,
.ui.tabular.menu .active.item::after {
transform: scaleX(1);
background: var(--color-moon);
box-shadow: 0 0 12px var(--color-moon-alpha-50);
}
.ui.secondary.pointing.menu .item > .ui.label,
.ui.tabular.menu .item > .ui.label {
margin-left: 6px;
font-size: 11px;
letter-spacing: 0;
}
.ui.segment.sub-menu.repository-menu,
.repository .ui.segment.sub-menu {
background: rgba(255, 255, 255, 0.015) !important;
border-bottom: 1px solid var(--glass-border);
backdrop-filter: none !important;
-webkit-backdrop-filter: none !important;
box-shadow: none !important;
}
.repo-header .flex-text-block.tw-text-18 {
font-family: var(--font-family-header);
font-size: 24px;
font-weight: 400;
letter-spacing: 0.03em;
color: var(--color-text-light-1);
}
.repo-header .flex-text-block.tw-text-18 a,
.repo-header .flex-text-block.tw-text-18 .tw-font-semibold {
font-weight: 400;
}
.repo-header .flex-text-block.tw-text-18 a {
color: var(--color-text-dark);
}
.repo-header .flex-text-block.tw-text-18 a.tw-font-normal {
color: var(--color-text-light-1);
}
.repo-header .flex-text-block.tw-text-18 a:hover {
color: var(--color-moon);
text-decoration: none;
}
.ui.button,
.ui.basic.button {
background: linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.02)), #14171B;
border: 1px solid var(--glass-border-strong);
color: var(--color-text-dark);
font-family: var(--fonts-monospace);
text-transform: uppercase;
letter-spacing: 0.06em;
font-size: 12px;
font-weight: 500;
transition: border-color var(--transition-base), background var(--transition-base), color var(--transition-base), box-shadow var(--transition-base);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 1px 2px rgba(0, 0, 0, 0.5) !important;
}
.ui.button:hover,
.ui.basic.button:hover {
border-color: rgba(255, 255, 255, 0.24);
color: var(--color-text-dark);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.17), rgba(255, 255, 255, 0.05)), #14171B !important;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 4px 14px -6px rgba(191, 208, 224, 0.35) !important;
}
.ui.button:active,
.ui.basic.button:active {
background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.06)), #101215 !important;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5) !important;
}
.ui.primary.button,
.ui.green.button,
.ui.blue.button,
.ui.primary.buttons .button {
background: linear-gradient(180deg, #E9ECEF 0%, #C2C9CF 50%, #A3ACB4 100%) !important;
color: var(--color-primary-contrast) !important;
border: 1px solid #C6CCD1;
font-weight: 600;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75), inset 0 -1px 0 rgba(0, 0, 0, 0.18), 0 2px 10px -2px rgba(0, 0, 0, 0.6) !important;
}
.ui.primary.button:hover,
.ui.green.button:hover,
.ui.blue.button:hover,
.ui.primary.buttons .button:hover {
background: linear-gradient(180deg, #F6F8F9 0%, #D5DBE0 50%, #B7BFC7 100%) !important;
border-color: #DDE2E6;
color: var(--color-primary-contrast) !important;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), inset 0 -1px 0 rgba(0, 0, 0, 0.18), 0 6px 20px -6px rgba(191, 208, 224, 0.45) !important;
}
.ui.primary.button:active,
.ui.primary.buttons .button:active {
background: linear-gradient(180deg, #B7BFC7 0%, #D5DBE0 100%) !important;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25) !important;
}
.ui.red.button,
.ui.negative.button,
.ui.red.buttons .button {
background: linear-gradient(180deg, rgba(224, 112, 112, 0.10), rgba(224, 112, 112, 0.02)), #14171B !important;
border: 1px solid var(--color-error-border);
color: var(--color-error-text) !important;
}
.ui.red.button:hover,
.ui.negative.button:hover,
.ui.red.buttons .button:hover {
background: linear-gradient(180deg, rgba(224, 112, 112, 0.22), rgba(224, 112, 112, 0.08)), #14171B !important;
border-color: var(--color-error-text);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}
.ui.button.icon,
.ui.icon.button {
letter-spacing: 0;
}
.ui.buttons {
gap: 0 !important;
}
.ui.buttons > .button,
.ui.buttons > .ui.button {
margin: 0 !important;
}
.ui.buttons > .button:not(:first-child),
.ui.buttons > .ui.button:not(:first-child) {
margin-left: -1px !important;
}
.ui.buttons > .button:hover,
.ui.button.active,
.ui.buttons .button.active {
position: relative;
z-index: 2;
}
.ui.button.active,
.ui.buttons .button.active {
background: linear-gradient(180deg, rgba(191, 208, 224, 0.22), rgba(191, 208, 224, 0.10)), #14171B !important;
color: var(--color-text-dark) !important;
border-color: var(--color-moon-alpha-50) !important;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18) !important;
}
.ui.basic.buttons {
border-color: var(--glass-border-strong);
}
.ui.basic.buttons .button {
border-left-color: var(--glass-border-strong);
}
.ui.labeled.button > .label {
background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.015)), #111417;
border: 1px solid var(--glass-border-strong);
border-left: 1px solid rgba(0, 0, 0, 0.5);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 1px 2px rgba(0, 0, 0, 0.5);
color: var(--color-text-dark);
font-family: var(--fonts-monospace);
font-weight: 500;
padding: 0 10px;
}
.ui.labeled.button > .button:hover + .label {
color: var(--color-moon);
}
.ui.input input,
.ui.form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.ui.form textarea,
.ui.selection.dropdown,
.ui.form select {
background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.05)), #121518 !important;
border: 1px solid var(--glass-border-strong) !important;
color: var(--color-input-text) !important;
font-family: var(--fonts-regular);
font-size: 14px;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.45), inset 0 -1px 0 rgba(255, 255, 255, 0.04) !important;
transition: border-color var(--transition-base), box-shadow var(--transition-base);
}
.ui.input input,
.ui.form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
padding: 10px 12px !important;
}
.ui.icon.input input {
padding-right: 2.67142857em !important;
}
.ui.left.icon.input input {
padding-left: 2.67142857em !important;
padding-right: 12px !important;
}
.ui.icon.input > i.icon {
color: var(--color-text-light-2);
opacity: 1;
transition: color var(--transition-base);
}
.ui.input input:focus,
.ui.form input:focus,
.ui.form textarea:focus,
.ui.selection.dropdown:focus,
.ui.selection.active.dropdown {
border-color: var(--color-moon-alpha-50) !important;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6), 0 0 0 1px var(--color-moon-alpha-30), 0 0 18px var(--color-moon-alpha-15) !important;
}
.ui.input:focus-within > i.icon {
color: var(--color-moon);
}
::placeholder {
color: var(--color-placeholder-text) !important;
font-style: italic;
opacity: 1;
}
.ui.action.input .ui.ui.button {
border-color: var(--glass-border-strong);
}
input[type="checkbox"],
input[type="radio"] {
border-color: var(--glass-border-strong);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.05)), #121518;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.45);
}
input[type="checkbox"]:checked,
input[type="checkbox"]:indeterminate,
input[type="radio"]:checked {
border-color: var(--color-primary-dark-2);
background: linear-gradient(180deg, #D5DADF, #A3ABB2);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
input[type="checkbox"]:checked::before {
background: var(--color-primary-contrast);
}
.ui.card,
.ui.segment,
.ui.attached.segment,
.ui.segments {
background: var(--glass-bg) !important;
border: 1px solid var(--glass-border);
backdrop-filter: blur(var(--glass-blur)) saturate(120%);
-webkit-backdrop-filter: blur(var(--glass-blur)) saturate(120%);
box-shadow: 0 24px 60px -36px rgba(0, 0, 0, 0.9) !important;
}
.ui.segment:not(.attached),
.ui.card,
.ui.segments,
.ui.top.attached.segment,
.ui.top.attached.header,
.ui.attached.header:first-child {
box-shadow: inset 0 1px 0 var(--glass-highlight), 0 24px 60px -36px rgba(0, 0, 0, 0.9) !important;
}
.ui.segments > .ui.segment,
.ui.segments > .ui.attached.segment,
.ui.segments > .ui.attached.header {
backdrop-filter: none;
-webkit-backdrop-filter: none;
box-shadow: none !important;
}
.ui.segments > .ui.attached.header:first-child,
.ui.segments > .ui.top.attached.header {
box-shadow: inset 0 1px 0 var(--glass-highlight) !important;
}
.ui.header.segment,
.ui.attached.header,
.ui.top.attached.header,
.file-header.ui.top.attached.header,
.diff-file-header,
.ui.modal > .header {
background: rgba(255, 255, 255, 0.03) !important;
border-bottom: 1px solid var(--glass-border);
position: relative;
z-index: 1;
}
.file-header .file-info {
font-family: var(--fonts-monospace);
font-size: 12px;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--color-text-light);
}
.file-info-entry + .file-info-entry {
border-left-color: var(--color-secondary-dark-3);
}
.ui.segment.code-view, .view-code, pre, code, .chroma {
background-color: var(--color-code-bg) !important;
color: #bcbec4 !important;
border: 0px !important;
}
.ui.segment.code-view,
.view-code {
backdrop-filter: none;
-webkit-backdrop-filter: none;
}
.lines-num {
background-color: var(--color-code-sidebar-bg) !important;
color: var(--color-editor-line-number) !important;
}
.file-view.code-view table,
.file-view.code-view tbody,
.file-view.code-view tr {
background: transparent !important;
background-color: transparent !important;
border-collapse: collapse !important;
border-spacing: 0 !important;
border: 0 !important;
border-bottom: 0 !important;
border-bottom-color: transparent !important;
}
.file-view.code-view .lines-num,
td.lines-num {
background: var(--color-code-sidebar-bg) !important;
background-color: var(--color-code-sidebar-bg) !important;
}
.file-view.code-view .lines-code,
.file-view.code-view .lines-code.chroma,
td.lines-code,
td.lines-code.chroma {
background: var(--color-code-bg) !important;
background-color: var(--color-code-bg) !important;
}
.lines-code.chroma span,
.chroma span {
background: transparent !important;
background-color: transparent !important;
}
.chroma .k, .chroma .kd, .chroma .kn, .chroma .kp, .chroma .kr, .chroma .kt { color: #cf8e6d !important; }
.chroma .s, .chroma .s1, .chroma .s2, .chroma .sb, .chroma .sc { color: #6aab73 !important; }
.chroma .sd { color: #5f826b !important; font-style: italic; }
.chroma .c, .chroma .c1, .chroma .cm { color: #7a7e85 !important; }
.chroma .m, .chroma .mb, .chroma .mf, .chroma .mh, .chroma .mi, .chroma .mo { color: #2aacb8 !important; }
.chroma .nf, .chroma .fm { color: #56a8f5 !important; }
.chroma .nd { color: #b3ae60 !important; }
.chroma .nc { color: #bcbec4 !important; }
.chroma .o, .chroma .ow { color: #bcbec4 !important; }
.chroma .p { color: #bcbec4 !important; }
.chroma .n { color: #bcbec4 !important; }
.chroma .na { color: #c77dbb !important; }
.chroma .nb { color: #8888c6 !important; }
.chroma .nt { color: #d5b778 !important; }
.chroma .nv, .chroma .vc, .chroma .vg, .chroma .vi { color: #bcbec4 !important; }
.chroma .kc { color: #cf8e6d !important; }
.chroma .nn { color: #bcbec4 !important; }
.file-view.code-view td.lines-num {
padding: 0 8px !important;
text-align: right !important;
}
.file-view.code-view td.lines-code {
padding: 0 1px 0 5px !important;
}
.ui.table {
background: transparent;
border: 1px solid var(--glass-border);
}
.ui.table thead th {
background: rgba(255, 255, 255, 0.03);
color: var(--color-text-light);
border-bottom: 1px solid var(--glass-border);
font-family: var(--fonts-monospace);
text-transform: uppercase;
letter-spacing: 0.08em;
font-size: 11px;
font-weight: 600;
padding: 12px;
}
.ui.table tbody tr {
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
transition: background var(--transition-fast);
}
.ui.table tbody tr:hover {
background: var(--color-hover);
}
.ui.table td {
padding: 10px 12px;
}
.ui.label {
background: rgba(255, 255, 255, 0.04);
border: 1px solid var(--glass-border-strong);
color: var(--color-text-light);
font-family: var(--fonts-monospace);
font-size: 11px;
font-weight: 500;
letter-spacing: 0.04em;
padding: 3px 8px;
}
.ui.label.primary,
.ui.label.blue,
.ui.basic.label.primary {
background: var(--color-primary-alpha-20);
border-color: var(--color-primary-alpha-50);
color: var(--color-primary-dark-3);
}
.ui.label.circular,
.ui.circular.label {
padding: 2px 7px;
min-width: 0;
}
a.sha,
.ui.sha.label,
.ui.label.sha,
.ui .sha.label,
.sha.label,
.ui.label.commit-id-short,
.commit-id-short {
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
padding: 0 !important;
margin: 0 !important;
color: var(--color-text-light-2) !important;
font-family: var(--fonts-monospace) !important;
font-size: 12px !important;
letter-spacing: 0.02em;
}
a.sha:hover,
a.ui.sha.label:hover,
a.commit-id-short:hover {
color: var(--color-text-dark) !important;
text-decoration: underline;
}
.ui.popup,
.ui.tooltip,
.tippy-box,
[data-tooltip]::before,
[data-tooltip]::after {
background: var(--glass-bg-strong) !important;
color: var(--color-text) !important;
border: 1px solid var(--glass-border-strong) !important;
box-shadow: inset 0 1px 0 var(--glass-highlight), 0 12px 32px -8px rgba(0, 0, 0, 0.8) !important;
font-family: var(--fonts-regular);
font-size: 13px;
}
.tippy-content {
background: transparent !important;
color: var(--color-text) !important;
}
.tippy-arrow {
color: #0D0F12 !important;
}
.ui.popup::before {
background: #0D0F12 !important;
border: 1px solid var(--glass-border-strong) !important;
}
.ui.dropdown .menu,
.overflow-menu-popup {
background: var(--glass-bg-strong) !important;
border: 1px solid var(--glass-border-strong) !important;
backdrop-filter: blur(24px) saturate(120%);
-webkit-backdrop-filter: blur(24px) saturate(120%);
box-shadow: inset 0 1px 0 var(--glass-highlight), 0 20px 50px -12px rgba(0, 0, 0, 0.9) !important;
}
.ui.dropdown .menu > .item {
background: transparent !important;
color: var(--color-text) !important;
border-top: 1px solid rgba(255, 255, 255, 0.04) !important;
padding: 9px 14px !important;
font-size: 12.5px;
}
.ui.dropdown .menu > .item:first-child {
border-top: none !important;
}
.ui.dropdown .menu > .item:hover,
.ui.dropdown .menu > .item.selected,
.overflow-menu-popup > .item:hover {
background: var(--color-hover) !important;
color: var(--color-text-dark) !important;
}
.ui.dropdown .menu > .item.active {
background: var(--color-active) !important;
color: var(--color-text-dark) !important;
box-shadow: inset 2px 0 0 var(--color-moon);
}
.ui.segment:has(.ui.dropdown.active),
.ui.segments:has(.ui.dropdown.active),
.ui.attached.header:has(.ui.dropdown.active),
.ui.attached.menu:has(.ui.dropdown.active),
.repo-button-row:has(.ui.dropdown.active),
.file-header:has(.ui.dropdown.active),
.diff-file-header:has(.ui.dropdown.active),
#portfolio-controls:has(.ui.dropdown.active) {
position: relative;
z-index: 30;
}
.ui.dropdown .menu > .header {
font-family: var(--font-family-header);
font-size: 14px;
letter-spacing: 0.02em;
color: var(--color-text-light);
}
footer,
.page-footer {
background: rgba(8, 9, 11, 0.72) !important;
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-top: 1px solid var(--glass-border);
font-size: 12px;
}
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: var(--color-secondary-dark-2);
border: 3px solid transparent;
background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover {
background: var(--color-primary-light-1);
background-clip: content-box;
}
::-webkit-scrollbar-corner {
background: transparent;
}
* {
scrollbar-color: var(--color-secondary-dark-2) transparent;
scrollbar-width: thin;
}
::selection {
background: var(--color-moon-alpha-30);
color: var(--color-text-dark);
}
::-moz-selection {
background: var(--color-moon-alpha-30);
color: var(--color-text-dark);
}
body,
input,
textarea {
caret-color: var(--color-caret);
}
.ui.loader::before {
border-color: var(--glass-border-strong) !important;
}
.ui.loader::after {
border-color: var(--color-moon) transparent transparent !important;
}
.ui.message {
background: var(--glass-bg) !important;
border: 1px solid var(--glass-border-strong);
color: var(--color-text);
backdrop-filter: blur(var(--glass-blur));
-webkit-backdrop-filter: blur(var(--glass-blur));
box-shadow: inset 0 1px 0 var(--glass-highlight) !important;
}
.ui.negative.message,
.ui.error.message {
background: var(--color-error-bg) !important;
border-color: var(--color-error-border);
color: var(--color-error-text);
}
.ui.positive.message,
.ui.success.message {
background: var(--color-success-bg) !important;
border-color: var(--color-success-border);
color: var(--color-success-text);
}
.ui.warning.message {
background: var(--color-warning-bg) !important;
border-color: var(--color-warning-border);
color: var(--color-warning-text);
}
.ui.info.message {
background: var(--color-info-bg) !important;
border-color: var(--color-info-border);
color: var(--color-info-text);
}
.issue.is-open .issue-state-label,
.ui.label.green {
background: var(--color-success-bg) !important;
border-color: var(--color-success-border) !important;
color: var(--color-success-text) !important;
}
.issue.is-closed .issue-state-label,
.ui.label.red {
background: var(--color-error-bg) !important;
border-color: var(--color-error-border) !important;
color: var(--color-error-text) !important;
}
.heatmap rect,
#user-heatmap rect {
rx: 0 !important;
ry: 0 !important;
}
#user-heatmap .ContributionCalendar-day[data-level="0"],
.heatmap .ContributionCalendar-day[data-level="0"] { fill: #15181B !important; }
#user-heatmap .ContributionCalendar-day[data-level="1"],
.heatmap .ContributionCalendar-day[data-level="1"] { fill: #3A434A !important; }
#user-heatmap .ContributionCalendar-day[data-level="2"],
.heatmap .ContributionCalendar-day[data-level="2"] { fill: #5C6670 !important; }
#user-heatmap .ContributionCalendar-day[data-level="3"],
.heatmap .ContributionCalendar-day[data-level="3"] { fill: #8A9299 !important; }
#user-heatmap .ContributionCalendar-day[data-level="4"],
.heatmap .ContributionCalendar-day[data-level="4"] { fill: #BFD0E0 !important; }
.ui.modal {
background: var(--glass-bg-strong) !important;
border: 1px solid var(--glass-border-strong);
backdrop-filter: blur(24px) saturate(120%);
-webkit-backdrop-filter: blur(24px) saturate(120%);
box-shadow: inset 0 1px 0 var(--glass-highlight), 0 32px 80px -20px rgba(0, 0, 0, 0.9) !important;
}
.ui.modal > .header {
color: var(--color-text-dark) !important;
font-family: var(--font-family-header);
font-size: 20px;
}
.ui.modal > .content {
background: transparent !important;
color: var(--color-text);
}
.ui.modal > .actions {
background: rgba(255, 255, 255, 0.02) !important;
border-top: 1px solid var(--glass-border);
}
.ui.dimmer {
background: var(--color-overlay-backdrop) !important;
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
}
.ui.avatar,
.avatar,
img.avatar {
border: 1px solid var(--glass-border-strong);
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.6);
}
.file-tree-item:hover {
background: var(--color-hover) !important;
}
.file-tree-item.selected {
background: var(--color-active) !important;
box-shadow: inset 2px 0 0 var(--color-moon);
}
.ui.progress .bar,
.ui.progress.small .bar {
background: linear-gradient(90deg, var(--color-primary-light-1), var(--color-primary-dark-2)) !important;
}
kbd {
font-family: var(--fonts-monospace);
border: 1px solid var(--glass-border-strong);
box-shadow: inset 0 -1px 0 var(--color-secondary-dark-2);
background: rgba(255, 255, 255, 0.05);
}
.timeline-item .badge {
border: 1px solid var(--glass-border-strong);
}
.page-content.home .hero .ui.header.title {
font-size: 3em;
letter-spacing: 0.14em;
text-transform: uppercase;
margin-bottom: 0.2em;
}
.page-content.home .hero .ui.large.text {
color: var(--color-text-light);
letter-spacing: 0.04em;
}
#portfolio-controls,
#portfolio-controls *,
.portfolio-card,
.portfolio-card * {
border-radius: 0 !important;
}
#portfolio-controls {
position: relative;
z-index: 10;
background: var(--glass-bg) !important;
border: 1px solid var(--glass-border) !important;
backdrop-filter: blur(var(--glass-blur)) saturate(120%);
-webkit-backdrop-filter: blur(var(--glass-blur)) saturate(120%);
box-shadow: inset 0 1px 0 var(--glass-highlight);
}
.portfolio-card {
overflow: visible;
z-index: 1;
--glow-color: var(--color-primary);
background: var(--glass-bg) !important;
border: 1px solid var(--glass-border) !important;
backdrop-filter: blur(var(--glass-blur)) saturate(120%);
-webkit-backdrop-filter: blur(var(--glass-blur)) saturate(120%);
box-shadow: inset 0 1px 0 var(--glass-highlight), 0 24px 60px -36px rgba(0, 0, 0, 0.9) !important;
transition: border-color 0.5s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);
transform: none !important;
}
.portfolio-card::before {
content: '';
position: absolute;
inset: 0;
background: var(--glow-color, var(--color-primary));
opacity: 0;
filter: blur(18px);
z-index: -1;
transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none;
}
.portfolio-card:hover {
transform: none !important;
border-color: var(--glass-border-strong) !important;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 24px 60px -30px rgba(0, 0, 0, 0.95) !important;
}
.portfolio-card:hover::before {
opacity: 0.28;
}
.portfolio-card .card-content,
.portfolio-card .card-footer {
background: transparent;
position: relative;
z-index: 1;
}
.portfolio-card .card-description {
font-family: var(--font-family-prose);
font-size: 15px;
line-height: 1.55;
}
.portfolio-card .topic-tag {
text-transform: uppercase;
letter-spacing: 0.08em;
font-size: 10.5px;
}
.portfolio-card .portfolio-link {
text-transform: uppercase;
letter-spacing: 0.08em;
font-size: 12px;
}