pub / selfoss-tweaks

Tweaks for the selfoss RSS reader
git clone src.jayvii.de/pub/selfoss-tweaks.git
Home | Log | Files | Exports | Refs | RSS

commit 7dc6aeb0743090cf12bca64b397c2ced2e359d64
parent aa3c389aa5642d197a6109f02c3d55fee05e5af1
Author: JayVii <jayvii[AT]posteo[DOT]de>
Date:   Thu, 25 Dec 2025 13:26:03 +0100

feat: replace dark mode with simplecss theme

Diffstat:
MMakefile | 22++++------------------
Dcss/dark.css | 108-------------------------------------------------------------------------------
Dcss/dark.min.css | 2--
Dcss/dark_injection.css | 11-----------
Dcss/dark_injection.min.css | 2--
Acss/simple.css | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acss/simple.min.css | 2++
Mcss/user.css | 4++--
8 files changed, 80 insertions(+), 143 deletions(-)

diff --git a/Makefile b/Makefile @@ -31,7 +31,7 @@ minify-css: -e 's/\s*>\s*/>/g' \ -e 's/\s*<\s*/</g' | \ tee css/desktop.min.css > /dev/null - cat css/dark.css | \ + cat css/simple.css | \ sed -r ':a; s%(.*)/\*.*\*/%\1%; ta; /\/\*/ !b; N; ba' | \ tr -d '\t' | \ tr -d '\n' | \ @@ -44,21 +44,7 @@ minify-css: -e 's/\s*,\s*/,/g' \ -e 's/\s*>\s*/>/g' \ -e 's/\s*<\s*/</g' | \ - tee css/dark.min.css > /dev/null - cat css/dark_injection.css | \ - sed -r ':a; s%(.*)/\*.*\*/%\1%; ta; /\/\*/ !b; N; ba' | \ - tr -d '\t' | \ - tr -d '\n' | \ - tr -s ' ' ' ' | \ - sed -E \ - -e 's/\s*;\s*/;/g' \ - -e 's/\s*:\s*/:/g' \ - -e 's/\s*\{\s*/{/g' \ - -e 's/\s*\}\s*/}/g' \ - -e 's/\s*,\s*/,/g' \ - -e 's/\s*>\s*/>/g' \ - -e 's/\s*<\s*/</g' | \ - tee css/dark_injection.min.css > /dev/null + tee css/simple.min.css > /dev/null user-css: printf "/* selfoss-tweaks all-in-one user style sheet */\n" | \ @@ -67,7 +53,7 @@ user-css: cat css/mobile.min.css | tee --append css/user.css > /dev/null printf "\n/* Desktop Rules */\n" | tee --append css/user.css > /dev/null cat css/desktop.min.css | tee --append css/user.css > /dev/null - printf "\n/* Dark Mode Rules */\n" | tee --append css/user.css > /dev/null - cat css/dark.min.css | tee --append css/user.css > /dev/null + printf "\n/* Simple CSS Rules */\n" | tee --append css/user.css > /dev/null + cat css/simple.min.css | tee --append css/user.css > /dev/null printf "\n" | tee --append css/user.css > /dev/null diff --git a/css/dark.css b/css/dark.css @@ -1,108 +0,0 @@ -/* Only if dark theme is requested */ -@media (prefers-color-scheme: dark) { - - /* Style body and content */ - html, body, #content > .entry.expanded.selected { - color: #fff; - background-color: #000; - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMAQMAAABsu86kAAAABlBMVEUUFBQMDAzbIvKLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QkPDBUFCnr7XwAAACZJREFUCNdj+PmB4dsHhvcFDPc3MOy/wFD/AISADCAXKAiU+vkBAFyKE1feGt/VAAAAAElFTkSuQmCC') !important; - } - - /* Mobile: white color for title entry of expanded articles */ - #content > .entry.expanded.selected > .entry-title { - color: #fff; - } - - /* Style opened navigation bar */ - #nav-open { - padding: 10px; - border: none; - border-radius: 2px; - background-color: #272325; - cursor: pointer; - margin-left: 15px; - margin-right: 15px; - margin-top: 5px; - font-size: 0.9em; - text-align: center; - } - - /* Style Links */ - a, - .entry-content a - { - color: #8af2ea; - } - - /* Style Buttons */ - button { - color: white; - } - - /* Style entries in lists */ - .entry.unread .entry-title { - color: #eeeeec; - } - .entry-title { - color: #999999; - } - .source-edit-form { - color: #cececc; - } - .source-title { - color: #eeeeec; - } - .source-add { - color: inherit; - } - .entry, .source { - background: #2e343666; - border: 1px solid #fff0; - } - - /* Opened Entry */ - .entry.selected { - background: #0D1211; - border-color: #444F4E; - } - - /* Style Toolbar */ - .entry-toolbar { - border-top-color: #444F4E; - background-color: #0D1211; - } - - /* Toolbar */ - .entry-smartphone-share button, - .entry-toolbar button, - .entry-toolbar a - { - color: #fff; - } - - /* Action icons */ - .refresh-source, - #nav-toolbar, - #nav-refresh, - #nav-settings, - #nav-logout - { - color: #fff; - } - - /* Load More Button */ - .stream-button, - .stream-more - { - background-color: #212426; - color: #fff; - } - - /* Misc */ - #fullscreen-entry { - background: transparent; - } - .source-showparams.saved - color: white !important; - } -} diff --git a/css/dark.min.css b/css/dark.min.css @@ -1 +0,0 @@ -@media (prefers-color-scheme:dark){html,body,#content>.entry.expanded.selected{color:#fff;background-color:#000;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMAQMAAABsu86kAAAABlBMVEUUFBQMDAzbIvKLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QkPDBUFCnr7XwAAACZJREFUCNdj+PmB4dsHhvcFDPc3MOy/wFD/AISADCAXKAiU+vkBAFyKE1feGt/VAAAAAElFTkSuQmCC') !important;}#content>.entry.expanded.selected>.entry-title{color:#fff;}#nav-open{padding:10px;border:none;border-radius:2px;background-color:#272325;cursor:pointer;margin-left:15px;margin-right:15px;margin-top:5px;font-size:0.9em;text-align:center;}a,.entry-content a{color:#8af2ea;}button{color:white;}.entry.unread .entry-title{color:#eeeeec;}.entry-title{color:#999999;}.source-edit-form{color:#cececc;}.source-title{color:#eeeeec;}.source-add{color:inherit;}.entry,.source{background:#2e343666;border:1px solid #fff0;}.entry.selected{background:#0D1211;border-color:#444F4E;}.entry-toolbar{border-top-color:#444F4E;background-color:#0D1211;}.entry-smartphone-share button,.entry-toolbar button,.entry-toolbar a{color:#fff;}.refresh-source,#nav-toolbar,#nav-refresh,#nav-settings,#nav-logout{color:#fff;}.stream-button,.stream-more{background-color:#212426;color:#fff;}#fullscreen-entry{background:transparent;}.source-showparams.saved color:white !important;}} -\ No newline at end of file diff --git a/css/dark_injection.css b/css/dark_injection.css @@ -1,11 +0,0 @@ -/* This will be injected within the "public/index.[0-9a-z]+.css" file in order - * to prevent being "flash-banged", when opening the selfoss webclient in dark - * mode - */ -@media (prefers-color-scheme: dark) { - body{ - background-color: #000; - color: #fff; - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMAQMAAABsu86kAAAABlBMVEUUFBQMDAzbIvKLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QkPDBUFCnr7XwAAACZJREFUCNdj+PmB4dsHhvcFDPc3MOy/wFD/AISADCAXKAiU+vkBAFyKE1feGt/VAAAAAElFTkSuQmCC'); - } -} diff --git a/css/dark_injection.min.css b/css/dark_injection.min.css @@ -1 +0,0 @@ -@media (prefers-color-scheme:dark){body{background-color:#000;color:#fff;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMAQMAAABsu86kAAAABlBMVEUUFBQMDAzbIvKLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QkPDBUFCnr7XwAAACZJREFUCNdj+PmB4dsHhvcFDPc3MOy/wFD/AISADCAXKAiU+vkBAFyKE1feGt/VAAAAAElFTkSuQmCC');}} -\ No newline at end of file diff --git a/css/simple.css b/css/simple.css @@ -0,0 +1,72 @@ +/* Set colour scheme from https://simplecss.org/ */ +:root { + --primary: #0d47a1; + --primary-contrast: #dcdcdc; + --primary-highlight: #1266e2; + --primary-highlight-shadow: #1266e250; + --text-color: #212121; + --background-color: #ffffff; +} +@media (prefers-color-scheme: dark) { + :root { + --primary: #ffb300; + --primary-contrast: #2d291f; + --primary-highlight: #ffe099; + --primary-highlight-shadow: #ffe09950; + --text-color: #dcdcdc; + --background-color: #212121; + } +} + +/* Enforce background colours */ +html, body, #content > .entry.expanded.selected { + color: var(--primary) !important; + background-color: var(--background-color) !important; + background-image: none !important; +} + +/* Style navigation bar */ +#nav-mark, #nav-mark:hover { + color: var(--primary-contrast); +} +#nav { + background-color: var(--background-color); +} +#nav-filter li a.active { + background: var(--primary); + color: var(--primary-contrast) !important; +} +#nav-filter > .active > span.offline-count, +#nav-filter .active span +{ + color: var(--primary-contrast) !important; +} +.nav-toolbar > button { + background: transparent !important; +} + +/* Style Article entries */ +div.entry, .source { + background: var(--background-color); +} +.entry.selected { + border-color: var(--primary); +} + +/* Active article */ +#content > .entry.expanded.selected { + color: var(--text-color) !important; + +} +.entry-toolbar { + background-color: var(--background-color); + border-top: 1p solid var(--text-color); +} + +/* Search bar */ +#search { + background-color: var(--primary); +} +#search-term:focus { + color: var(--text-color); +} diff --git a/css/simple.min.css b/css/simple.min.css @@ -0,0 +1 @@ +:root{--primary:#0d47a1;--primary-contrast:#dcdcdc;--primary-highlight:#1266e2;--primary-highlight-shadow:#1266e250;--text-color:#212121;--background-color:#ffffff;}@media (prefers-color-scheme:dark){:root{--primary:#ffb300;--primary-contrast:#2d291f;--primary-highlight:#ffe099;--primary-highlight-shadow:#ffe09950;--text-color:#dcdcdc;--background-color:#212121;}}html,body,#content>.entry.expanded.selected{color:var(--primary) !important;background-color:var(--background-color) !important;background-image:none !important;}#nav-mark,#nav-mark:hover{color:var(--primary-contrast);}#nav{background-color:var(--background-color);}#nav-filter li a.active{background:var(--primary);color:var(--primary-contrast) !important;}#nav-filter>.active>span.offline-count,#nav-filter .active span{color:var(--primary-contrast) !important;}.nav-toolbar>button{background:transparent !important;}div.entry,.source{background:var(--background-color);}.entry.selected{border-color:var(--primary);}#content>.entry.expanded.selected{color:var(--text-color) !important;}.entry-toolbar{background-color:var(--background-color);border-top:1p solid var(--text-color);}#search{background-color:var(--primary);}#search-term:focus{color:var(--text-color);} +\ No newline at end of file diff --git a/css/user.css b/css/user.css @@ -4,5 +4,5 @@ @media screen and (max-width:641px){#nav-mobile{position:fixed;z-index:1;}#nav,#content{margin-top:50px;}#nav-filter-title,#nav-filter,#nav-tags-title,#nav-sources-title{font-size:1.1em;}#nav-tags,#nav-sources{font-size:1.25em;}#search>input[type="search"],#search-button{width:100%;margin-left:10px;}.entry-title{font-size:1.25em;}.entry-tags,.entry-source,.entry-separator,.entry-author,.entry-datetime,.entry-readtime{font-size:1.1em;overflow-wrap:anywhere;}.entry-content{font-size:1.075em;}.entry:not(.expanded) .entry-toolbar{display:block;border-bottom:2px solid grey;border-top:none;}.entry-loadimages{display:none !important;}.stream-button.mark-these-read{display:none;}} /* Desktop Rules */ @media screen and (min-width:641px){.entry:not(.expanded) .entry-toolbar{display:block;padding:0px;background:inherit;border:0;margin-top:-2px;opacity:0.0;}.entry:not(.expanded):hover .entry-toolbar{opacity:1.0;}.entry-content{column-count:1;}} -/* Dark Mode Rules */ -@media (prefers-color-scheme:dark){html,body,#content>.entry.expanded.selected{color:#fff;background-color:#000;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMAQMAAABsu86kAAAABlBMVEUUFBQMDAzbIvKLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QkPDBUFCnr7XwAAACZJREFUCNdj+PmB4dsHhvcFDPc3MOy/wFD/AISADCAXKAiU+vkBAFyKE1feGt/VAAAAAElFTkSuQmCC') !important;}#content>.entry.expanded.selected>.entry-title{color:#fff;}#nav-open{padding:10px;border:none;border-radius:2px;background-color:#272325;cursor:pointer;margin-left:15px;margin-right:15px;margin-top:5px;font-size:0.9em;text-align:center;}a,.entry-content a{color:#8af2ea;}button{color:white;}.entry.unread .entry-title{color:#eeeeec;}.entry-title{color:#999999;}.source-edit-form{color:#cececc;}.source-title{color:#eeeeec;}.source-add{color:inherit;}.entry,.source{background:#2e343666;border:1px solid #fff0;}.entry.selected{background:#0D1211;border-color:#444F4E;}.entry-toolbar{border-top-color:#444F4E;background-color:#0D1211;}.entry-smartphone-share button,.entry-toolbar button,.entry-toolbar a{color:#fff;}.refresh-source,#nav-toolbar,#nav-refresh,#nav-settings,#nav-logout{color:#fff;}.stream-button,.stream-more{background-color:#212426;color:#fff;}#fullscreen-entry{background:transparent;}.source-showparams.saved color:white !important;}} +/* Simple CSS Rules */ +:root{--primary:#0d47a1;--primary-contrast:#dcdcdc;--primary-highlight:#1266e2;--primary-highlight-shadow:#1266e250;--text-color:#212121;--background-color:#ffffff;}@media (prefers-color-scheme:dark){:root{--primary:#ffb300;--primary-contrast:#2d291f;--primary-highlight:#ffe099;--primary-highlight-shadow:#ffe09950;--text-color:#dcdcdc;--background-color:#212121;}}html,body,#content>.entry.expanded.selected{color:var(--primary) !important;background-color:var(--background-color) !important;background-image:none !important;}#nav-mark,#nav-mark:hover{color:var(--primary-contrast);}#nav{background-color:var(--background-color);}#nav-filter li a.active{background:var(--primary);color:var(--primary-contrast) !important;}#nav-filter>.active>span.offline-count,#nav-filter .active span{color:var(--primary-contrast) !important;}.nav-toolbar>button{background:transparent !important;}div.entry,.source{background:var(--background-color);}.entry.selected{border-color:var(--primary);}#content>.entry.expanded.selected{color:var(--text-color) !important;}.entry-toolbar{background-color:var(--background-color);border-top:1p solid var(--text-color);}#search{background-color:var(--primary);}#search-term:focus{color:var(--text-color);}