From 07de9d4488aee4988a68d12d8760f2fd08a31398 Mon Sep 17 00:00:00 2001 From: Kibi Kelburton Date: Sat, 25 Jul 2026 22:14:54 +0200 Subject: [PATCH] add f0ck98 theme --- public/s/css/98.css | 339 ++++++++++++++++++++++++ public/s/css/f0ckm.css | 284 +++++++++++++++++++- public/s/fonts/ms_sans_serif.woff2 | Bin 0 -> 6508 bytes public/s/fonts/ms_sans_serif_bold.woff2 | Bin 0 -> 6264 bytes public/s/js/theme.js | 2 +- scripts/build-css.mjs | 2 +- src/index.mjs | 2 +- views/snippets/header.html | 1 + 8 files changed, 626 insertions(+), 4 deletions(-) create mode 100644 public/s/css/98.css create mode 100644 public/s/fonts/ms_sans_serif.woff2 create mode 100644 public/s/fonts/ms_sans_serif_bold.woff2 diff --git a/public/s/css/98.css b/public/s/css/98.css new file mode 100644 index 0000000..0609ce7 --- /dev/null +++ b/public/s/css/98.css @@ -0,0 +1,339 @@ +/* 98.css framework - Scoped exclusively for f0ck98 theme */ + +@font-face { + font-family: "Pixelated MS Sans Serif"; + font-style: normal; + font-weight: 400; + src: url("/s/fonts/ms_sans_serif.woff2") format("woff2"); +} + +@font-face { + font-family: "Pixelated MS Sans Serif"; + font-style: normal; + font-weight: 700; + src: url("/s/fonts/ms_sans_serif_bold.woff2") format("woff2"); +} + +html[theme="f0ck98"] { + --w98-silver: #c0c0c0; + --w98-teal: #008080; + --w98-navy: #000080; + --w98-navy-gradient: linear-gradient(90deg, navy, #1084d0); + --w98-dark-shadow: #0a0a0a; + --w98-light-highlight: #ffffff; + --w98-mid-gray: grey; + --w98-light-gray: #dfdfdf; + + color: #000; + font-family: "Pixelated MS Sans Serif", Arial, sans-serif; + font-size: 11px; + background-color: var(--w98-silver) !important; + background: var(--w98-silver) !important; +} + +html[theme="f0ck98"] body { + color: #000; + font-family: "Pixelated MS Sans Serif", Arial, sans-serif; + font-size: 11px; +} + +html[theme="f0ck98"] .title-bar, +html[theme="f0ck98"] .window, +html[theme="f0ck98"] button, +html[theme="f0ck98"] input, +html[theme="f0ck98"] label, +html[theme="f0ck98"] legend, +html[theme="f0ck98"] li[role=tab], +html[theme="f0ck98"] option, +html[theme="f0ck98"] select, +html[theme="f0ck98"] table, +html[theme="f0ck98"] textarea, +html[theme="f0ck98"] ul.tree-view { + -webkit-font-smoothing: none; + font-family: "Pixelated MS Sans Serif", Arial, sans-serif; + font-size: 11px; +} + +html[theme="f0ck98"] u { + border-bottom: 0.5px solid #222; + text-decoration: none; +} + +/* Windows 98 Buttons */ +html[theme="f0ck98"] button, +html[theme="f0ck98"] input[type=reset], +html[theme="f0ck98"] input[type=submit], +html[theme="f0ck98"] .btn { + background: silver; + border: none; + border-radius: 0; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + box-sizing: border-box; + color: #000; + min-height: 23px; + min-width: 75px; + padding: 0 12px; +} + +html[theme="f0ck98"] button.default, +html[theme="f0ck98"] input[type=reset].default, +html[theme="f0ck98"] input[type=submit].default, +html[theme="f0ck98"] .btn.default { + box-shadow: inset -2px -2px #0a0a0a, inset 1px 1px #0a0a0a, inset 2px 2px #fff, inset -3px -3px grey, inset 3px 3px #dfdfdf; +} + +html[theme="f0ck98"] .vertical-bar { + background: silver; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + height: 20px; + width: 4px; +} + +html[theme="f0ck98"] button:not(:disabled):active, +html[theme="f0ck98"] input[type=reset]:not(:disabled):active, +html[theme="f0ck98"] input[type=submit]:not(:disabled):active, +html[theme="f0ck98"] .btn:not(:disabled):active { + box-shadow: inset -1px -1px #fff, inset 1px 1px #0a0a0a, inset -2px -2px #dfdfdf, inset 2px 2px grey; +} + +html[theme="f0ck98"] button.default:not(:disabled):active, +html[theme="f0ck98"] input[type=reset].default:not(:disabled):active, +html[theme="f0ck98"] input[type=submit].default:not(:disabled):active { + box-shadow: inset 2px 2px #0a0a0a, inset -1px -1px #0a0a0a, inset -2px -2px #fff, inset 3px 3px grey, inset -3px -3px #dfdfdf; +} + +html[theme="f0ck98"] button:focus, +html[theme="f0ck98"] input[type=reset]:focus, +html[theme="f0ck98"] input[type=submit]:focus, +html[theme="f0ck98"] .btn:focus { + outline: 1px dotted #000; + outline-offset: -4px; +} + +html[theme="f0ck98"] :disabled, +html[theme="f0ck98"] :disabled+label, +html[theme="f0ck98"] input[readonly], +html[theme="f0ck98"] input[readonly]+label { + color: grey; +} + +html[theme="f0ck98"] :disabled+label, +html[theme="f0ck98"] button:disabled, +html[theme="f0ck98"] input[type=reset]:disabled, +html[theme="f0ck98"] input[type=submit]:disabled, +html[theme="f0ck98"] .btn:disabled { + text-shadow: 1px 1px 0 #fff; +} + +/* Window Shell & Title Bars */ +html[theme="f0ck98"] .window { + background: silver; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #dfdfdf, inset -2px -2px grey, inset 2px 2px #fff; + padding: 3px; +} + +html[theme="f0ck98"] .title-bar { + align-items: center; + background: linear-gradient(90deg, navy, #1084d0); + display: flex; + justify-content: space-between; + padding: 3px 2px 3px 3px; +} + +html[theme="f0ck98"] .title-bar.inactive { + background: linear-gradient(90deg, grey, #b5b5b5); +} + +html[theme="f0ck98"] .title-bar-text { + color: #fff; + font-weight: 700; + letter-spacing: 0; + margin-right: 24px; +} + +html[theme="f0ck98"] .title-bar-controls { + display: flex; +} + +html[theme="f0ck98"] .title-bar-controls button { + display: block; + min-height: 14px; + min-width: 16px; + padding: 0; +} + +html[theme="f0ck98"] .title-bar-controls button:active { + padding: 0; +} + +html[theme="f0ck98"] .title-bar-controls button:focus { + outline: none; +} + +html[theme="f0ck98"] .title-bar-controls button[aria-label=Minimize], +html[theme="f0ck98"] .title-bar-controls button[aria-label].minimize { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='6' height='2' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M0 0h6v2H0z'/%3E%3C/svg%3E"); + background-position: bottom 3px left 4px; + background-repeat: no-repeat; +} + +html[theme="f0ck98"] .title-bar-controls button[aria-label=Maximize], +html[theme="f0ck98"] .title-bar-controls button[aria-label].maximize { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='9' height='9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 0H0v9h9V0zM8 2H1v6h7V2z' fill='%23000'/%3E%3C/svg%3E"); + background-position: top 2px left 3px; + background-repeat: no-repeat; +} + +html[theme="f0ck98"] .title-bar-controls button[aria-label=Close], +html[theme="f0ck98"] .title-bar-controls button[aria-label].close { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0h2v1h1v1h2V1h1V0h2v1H7v1H6v1H5v1h1v1h1v1h1v1H6V6H5V5H3v1H2v1H0V6h1V5h1V4h1V3H2V2H1V1H0V0z' fill='%23000'/%3E%3C/svg%3E"); + background-position: top 3px left 4px; + background-repeat: no-repeat; + margin-left: 2px; +} + +/* Status Bar */ +html[theme="f0ck98"] .status-bar { + gap: 1px; + display: flex; + margin: 0 1px; +} + +html[theme="f0ck98"] .status-bar-field { + box-shadow: inset -1px -1px #dfdfdf, inset 1px 1px grey; + flex-grow: 1; + margin: 0; + padding: 2px 3px; +} + +html[theme="f0ck98"] .window-body { + margin: 8px; +} + +html[theme="f0ck98"] fieldset { + border-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='5' height='5' fill='gray' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0h5v5H0V2h2v1h1V2H0' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0h4v4H0V1h1v2h2V1H0'/%3E%3C/svg%3E") 2; + margin: 0; + padding: 10px; + padding-block-start: 8px; +} + +html[theme="f0ck98"] legend { + background: silver; +} + +html[theme="f0ck98"] .field-row { + align-items: center; + display: flex; +} + +html[theme="f0ck98"] [class^=field-row]+[class^=field-row] { + margin-top: 6px; +} + +html[theme="f0ck98"] .field-row>*+* { + margin-left: 6px; +} + +html[theme="f0ck98"] label { + align-items: center; + display: inline-flex; + user-select: none; +} + +/* Form Inputs & Textarea */ +html[theme="f0ck98"] input[type=email], +html[theme="f0ck98"] input[type=number], +html[theme="f0ck98"] input[type=password], +html[theme="f0ck98"] input[type=search], +html[theme="f0ck98"] input[type=tel], +html[theme="f0ck98"] input[type=text], +html[theme="f0ck98"] input[type=url], +html[theme="f0ck98"] select, +html[theme="f0ck98"] textarea { + background-color: #fff; + box-shadow: inset -1px -1px #fff, inset 1px 1px grey, inset -2px -2px #dfdfdf, inset 2px 2px #0a0a0a; + box-sizing: border-box; + padding: 3px 4px; + border: none; + border-radius: 0; + color: #000; +} + +html[theme="f0ck98"] input[type=email]:disabled, +html[theme="f0ck98"] input[type=number]:disabled, +html[theme="f0ck98"] input[type=password]:disabled, +html[theme="f0ck98"] input[type=search]:disabled, +html[theme="f0ck98"] input[type=tel]:disabled, +html[theme="f0ck98"] input[type=text]:disabled, +html[theme="f0ck98"] input[type=url]:disabled, +html[theme="f0ck98"] textarea:disabled { + background-color: silver; +} + +html[theme="f0ck98"] select { + appearance: none; + -webkit-appearance: none; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 0H0v16h1V1h14V0z' fill='%23DFDFDF'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 1H1v14h1V2h12V1H2z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 17H0v-1h15V0h1v17z' fill='%23000'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 1h-1v14H1v1h14V1z' fill='gray'/%3E%3Cpath fill='silver' d='M2 2h12v13H2z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11 6H4v1h1v1h1v1h1v1h1V9h1V8h1V7h1V6z' fill='%23000'/%3E%3C/svg%3E"); + background-position: top 2px right 2px; + background-repeat: no-repeat; + border-radius: 0; + padding-right: 32px; +} + +html[theme="f0ck98"] input[type=email]:focus, +html[theme="f0ck98"] input[type=number]:focus, +html[theme="f0ck98"] input[type=password]:focus, +html[theme="f0ck98"] input[type=search]:focus, +html[theme="f0ck98"] input[type=tel]:focus, +html[theme="f0ck98"] input[type=text]:focus, +html[theme="f0ck98"] input[type=url]:focus, +html[theme="f0ck98"] select:focus, +html[theme="f0ck98"] textarea:focus { + outline: none; +} + +html[theme="f0ck98"] a { + color: #000080; +} + +html[theme="f0ck98"] a:focus { + outline: 1px dotted #000080; +} + +html[theme="f0ck98"] .sunken-panel { + background-color: #fff; + box-shadow: inset -1px -1px #fff, inset 1px 1px grey, inset -2px -2px #dfdfdf, inset 2px 2px #0a0a0a; + box-sizing: border-box; + overflow: auto; +} + +/* Scoped Scrollbars for f0ck98 */ +html[theme="f0ck98"] ::-webkit-scrollbar { + width: 16px; + height: 17px; +} + +html[theme="f0ck98"] ::-webkit-scrollbar-corner { + background: #dfdfdf; +} + +html[theme="f0ck98"] ::-webkit-scrollbar-track { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='2' height='2' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1 0H0v1h1v1h1V1H1V0z' fill='silver'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 0H1v1H0v1h1V1h1V0z' fill='%23fff'/%3E%3C/svg%3E"); +} + +html[theme="f0ck98"] ::-webkit-scrollbar-thumb { + background-color: #dfdfdf; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; +} + +html[theme="f0ck98"] ::-webkit-scrollbar-button:vertical:start { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 0H0v16h1V1h14V0z' fill='%23DFDFDF'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 1H1v14h1V2h12V1H2z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 17H0v-1h15V0h1v17z' fill='%23000'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 1h-1v14H1v1h14V1z' fill='gray'/%3E%3Cpath fill='silver' d='M2 2h12v13H2z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8 6H7v1H6v1H5v1H4v1h7V9h-1V8H9V7H8V6z' fill='%23000'/%3E%3C/svg%3E"); + height: 17px; + display: block; +} + +html[theme="f0ck98"] ::-webkit-scrollbar-button:vertical:end { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 0H0v16h1V1h14V0z' fill='%23DFDFDF'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 1H1v14h1V2h12V1H2z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 17H0v-1h15V0h1v17z' fill='%23000'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 1h-1v14H1v1h14V1z' fill='gray'/%3E%3Cpath fill='silver' d='M2 2h12v13H2z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11 6H4v1h1v1h1v1h1v1h1V9h1V8h1V7h1V6z' fill='%23000'/%3E%3C/svg%3E"); + height: 17px; + display: block; +} diff --git a/public/s/css/f0ckm.css b/public/s/css/f0ckm.css index 61f4451..be013c3 100644 --- a/public/s/css/f0ckm.css +++ b/public/s/css/f0ckm.css @@ -4026,11 +4026,293 @@ html[theme="f0ck95d"] .admin-search button { color: black; } -html[theme="f0ck95d"] .embed-responsive.embed-responsive-16by9 { +html[theme="f0ck98"] .embed-responsive.embed-responsive-16by9 { background: black; } +/* ========================================== + f0ck98 Theme - Windows 98 Authentic Retro + ========================================== */ + +html[theme="f0ck98"] { + --accent: #000080; + --bg: silver; + --black: #000000; + --white: #ffffff; + --gray: silver; + --nav-bg: silver; + --nav-brand-border: outset 2px silver; + --nav-brand-bg: silver; + --navigation-links-bg: silver; + --navigation-links-background-linear-gradient: none; + --navigation-links-border-color: #808080; + --navigation-links-box-shadow: none; + --nav-link-background-linear-gradient: none; + --nav-link-box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + --nav-link-hover-bg: #000080; + --nav-border-color: #808080; + --dropdown-bg: silver; + --dropdown-item-hover: #000080; + --nav-brand-font: 'Pixelated MS Sans Serif', Arial, sans-serif; + --font: 'Pixelated MS Sans Serif', Arial, sans-serif; + --pagination-background: silver; + --pagination-box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + --pagination-anchor-box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + --pagination-background-hover: #000080; + --pagination-border-color: #808080; + --metadata-bg: silver; + --badge-bg: silver; + --posts-meta-bg: rgba(192, 192, 192, 0.95); + --badge-sfw: #008080; + --badge-nsfw: #a72828; + --badge-nsfl: #660000; + --badge-tag: #808080; + --scrollbar-color: silver; + --scroller-bg: silver; + --footbar-color: #000000; + --loading-indicator-color: #000000; + --img-border-width: 0; + --img-border-color: #808080; + --bg-gradient: none; + --motd-bg: silver; + --comment-bg: #ffffff; + background-color: silver !important; + background: silver !important; +} + +html[theme="f0ck98"] body { + color: #000000; + font-family: 'Pixelated MS Sans Serif', Arial, sans-serif; +} + +html[theme="f0ck98"] a { + color: #000080; +} + +html[theme="f0ck98"] a:hover { + color: #1084d0; +} + +/* Header & Titlebar */ +html[theme="f0ck98"] ._204863 { + background: linear-gradient(90deg, #000080, #1084d0); + color: #ffffff; + width: 100%; + border: 2px outset silver; + line-height: 1.7; + display: flex; + align-items: center; + justify-content: space-between; + padding: 2px 4px; + box-sizing: border-box; + font-family: 'Pixelated MS Sans Serif', Arial, sans-serif; + font-weight: bold; +} + +html[theme="f0ck98"] ._204863 .location { + display: inline-flex; + align-items: center; + gap: 6px; + color: #ffffff; +} + +html[theme="f0ck98"] ._204863 .location::before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + background-image: var(--favicon-url, url('/s/img/favicon.gif')); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + image-rendering: pixelated; + image-rendering: crisp-edges; + flex-shrink: 0; +} + +html[theme="f0ck98"] ._204863::after { + content: " _ ❐ ✕ "; + font-family: 'Pixelated MS Sans Serif', Arial, sans-serif; + font-size: 10px; + font-weight: bold; + background: silver; + color: #000000; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + padding: 0 4px; + height: 14px; + line-height: 12px; + display: inline-flex; + align-items: center; + margin-left: auto; + letter-spacing: 1px; + cursor: default; + user-select: none; +} + +html[theme="f0ck98"] #tags .badge>a:first-child { + text-shadow: none; +} + +html[theme="f0ck98"] .item_title { + background: silver; + color: #000000; + border-left: 2px outset silver; + border-right: 2px outset silver; + box-shadow: inset -1px -1px #dfdfdf, inset 1px 1px grey; + font-family: 'Pixelated MS Sans Serif', Arial, sans-serif; + font-size: 11px; + font-weight: normal; + padding: 3px 8px; + -webkit-font-smoothing: none; +} + +/* Navbar */ +html[theme="f0ck98"] .nav, +html[theme="f0ck98"] .navbar { + background: silver !important; + border-bottom: 2px outset #fff; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #dfdfdf, inset -2px -2px grey, inset 2px 2px #fff; +} + +html[theme="f0ck98"] .nav-link { + color: #000000 !important; + background: silver; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + border-radius: 0; +} + +html[theme="f0ck98"] .nav-link:hover, +html[theme="f0ck98"] .nav-link.active { + background: #000080 !important; + color: #ffffff !important; + box-shadow: inset -1px -1px #fff, inset 1px 1px #0a0a0a, inset -2px -2px #dfdfdf, inset 2px 2px grey; +} + +/* Sidebars & Window Containers */ +html[theme="f0ck98"] .global-sidebar-left, +html[theme="f0ck98"] .global-sidebar-right, +html[theme="f0ck98"] .about, +html[theme="f0ck98"] .modal-content, +html[theme="f0ck98"] .card { + background: silver; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #dfdfdf, inset -2px -2px grey, inset 2px 2px #fff; + color: #000000; + padding: 6px; + border-radius: 0; +} + +/* Item Grid Tiles */ +html[theme="f0ck98"] div.posts > a:not(.notif-item) { + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + background-color: silver; +} + +html[theme="f0ck98"] div.posts > a:not(.notif-item):hover, +html[theme="f0ck98"] div.posts > a:not(.notif-item):focus-visible { + box-shadow: inset -1px -1px #fff, inset 1px 1px #0a0a0a, inset -2px -2px #dfdfdf, inset 2px 2px grey; +} + +html[theme="f0ck98"] div.posts > a:not(.notif-item)::after { + color: #000000; + background: silver; + border-top: 1px solid grey; + font-family: 'Pixelated MS Sans Serif', Arial, sans-serif; + text-shadow: none; +} + +/* Comments Section */ +html[theme="f0ck98"] .comment-item, +html[theme="f0ck98"] .comments-container { + background: #ffffff; + color: #000000; + box-shadow: inset -1px -1px #fff, inset 1px 1px grey, inset -2px -2px #dfdfdf, inset 2px 2px #0a0a0a; +} + +html[theme="f0ck98"] .comment-author { + color: #000080 !important; + font-weight: bold; +} + +html[theme="f0ck98"] .comment-content { + color: #000000; +} + +html[theme="f0ck98"] .comment-children { + border-left: 1px dotted grey; +} + +html[theme="f0ck98"] .comment-actions button, +html[theme="f0ck98"] .report-comment-btn, +html[theme="f0ck98"] .reply-btn, +html[theme="f0ck98"] .quote-btn { + color: #000000 !important; + opacity: 1 !important; +} + +html[theme="f0ck98"] .comment-actions button svg, +html[theme="f0ck98"] .report-comment-btn svg, +html[theme="f0ck98"] .reply-btn i, +html[theme="f0ck98"] .quote-btn i, +html[theme="f0ck98"] .report-comment-btn i { + color: #000000 !important; + fill: #000000 !important; +} + +html[theme="f0ck98"] .report-comment-btn:hover, +html[theme="f0ck98"] .report-comment-btn:hover svg, +html[theme="f0ck98"] .report-comment-btn:hover i { + color: #a72828 !important; + fill: #a72828 !important; +} + +html[theme="f0ck98"] .reply-btn:hover, +html[theme="f0ck98"] .quote-btn:hover, +html[theme="f0ck98"] .reply-btn:hover i, +html[theme="f0ck98"] .quote-btn:hover i { + color: #000080 !important; +} + +/* Badges & Tags */ +html[theme="f0ck98"] .badge, +html[theme="f0ck98"] .badge-light, +html[theme="f0ck98"] .badge-dark, +html[theme="f0ck98"] .badge-success, +html[theme="f0ck98"] .badge-danger { + background: silver; + color: #000000; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px grey, inset 2px 2px #dfdfdf; + border-radius: 0; + text-shadow: none; +} + +/* Dropdown Menu */ +html[theme="f0ck98"] .dropdown-menu { + background: silver; + box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #dfdfdf, inset -2px -2px grey, inset 2px 2px #fff; + border: none; + border-radius: 0; +} + +html[theme="f0ck98"] .dropdown-item { + color: #000000; +} + +html[theme="f0ck98"] .dropdown-item:hover { + background: #000080; + color: #ffffff; +} + +/* Footer / Status Bar */ +html[theme="f0ck98"] footer, +html[theme="f0ck98"] .footbar { + background: silver; + color: #000000; + box-shadow: inset -1px -1px #dfdfdf, inset 1px 1px grey; + padding: 3px 6px; + font-family: 'Pixelated MS Sans Serif', Arial, sans-serif; +} + /* fullscreen */ html[res="fullscreen"] ._204863 { border-top: none; diff --git a/public/s/fonts/ms_sans_serif.woff2 b/public/s/fonts/ms_sans_serif.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..83ea806020dcccda6b9f8c9c6c3c6b573f550df9 GIT binary patch literal 6508 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 literal 0 HcmV?d00001 diff --git a/public/s/js/theme.js b/public/s/js/theme.js index 881cf41..b4e7157 100644 --- a/public/s/js/theme.js +++ b/public/s/js/theme.js @@ -15,7 +15,7 @@ } }; - const themes = window.f0ckThemes || ['amoled', 'atmos', 'f0ck', 'f0ck95d', 'iced', 'orange', 'p1nk', '4d']; + const themes = window.f0ckThemes || ['amoled', 'atmos', 'f0ck', 'f0ck95d', 'f0ck98', 'iced', 'orange', 'p1nk', '4d']; const defaultTheme = window.f0ckDefaultTheme || (window.f0ckSession && window.f0ckSession.default_theme) || themes[0] || 'amoled'; const setTheme = (theme) => { diff --git a/scripts/build-css.mjs b/scripts/build-css.mjs index 12d9148..6511221 100644 --- a/scripts/build-css.mjs +++ b/scripts/build-css.mjs @@ -2,7 +2,7 @@ import fs from 'fs'; import path from 'path'; const cssDir = path.join(process.cwd(), 'public/s/css'); -const files = ['f0ckm.css', 'v0ck.css']; +const files = ['f0ckm.css', 'v0ck.css', '98.css']; const outputFile = path.join(cssDir, 'bundle.css'); let combined = ''; diff --git a/src/index.mjs b/src/index.mjs index 87b405c..072c7e9 100644 --- a/src/index.mjs +++ b/src/index.mjs @@ -604,7 +604,7 @@ process.on('uncaughtException', err => { } return; } - const availableThemes = cfg.websrv.themes || ['amoled', 'atmos', 'f0ck', 'f0ck95d', 'iced', 'orange', 'p1nk', '4d']; + const availableThemes = cfg.websrv.themes || ['amoled', 'atmos', 'f0ck', 'f0ck95d', 'f0ck98', 'iced', 'orange', 'p1nk', '4d']; const defaultTheme = cfg.websrv.theme || 'amoled'; req.theme = (req.cookies?.theme && availableThemes.includes(req.cookies.theme)) ? req.cookies.theme : defaultTheme; req.fullscreen = req.cookies.fullscreen || 0; diff --git a/views/snippets/header.html b/views/snippets/header.html index 227cc98..0802f18 100644 --- a/views/snippets/header.html +++ b/views/snippets/header.html @@ -56,6 +56,7 @@ @if(!private_society || session) @if(development || (private_society && !session)) + @endif @if(development)