From 46b6ae53bb989c0137145bf8d47bdb5e2331fc54 Mon Sep 17 00:00:00 2001 From: Zenith Rifle <84105075+eli32-vlc@users.noreply.github.com> Date: Sun, 4 Jan 2026 21:32:51 +0800 Subject: [PATCH 1/2] Add monochrome theme with grayscale filter (#4541) --- .../theme/components/ColorPicker.vue | 4 - docs/.vitepress/theme/style.scss | 28 ++-- docs/.vitepress/theme/themes/configs/index.ts | 4 +- .../theme/themes/configs/monochrome.ts | 151 ++++++++++++++++++ docs/.vitepress/theme/themes/themeHandler.ts | 38 ++--- 5 files changed, 186 insertions(+), 39 deletions(-) create mode 100644 docs/.vitepress/theme/themes/configs/monochrome.ts diff --git a/docs/.vitepress/theme/components/ColorPicker.vue b/docs/.vitepress/theme/components/ColorPicker.vue index 607043b75..8cf98c059 100644 --- a/docs/.vitepress/theme/components/ColorPicker.vue +++ b/docs/.vitepress/theme/components/ColorPicker.vue @@ -211,12 +211,8 @@ watch(selectedColor, async (color) => { if (!color) return; const theme = generateThemeFromColor(color) themeRegistry[`color-${color}`] = theme - // Explicitly set the theme to override any previous selection await nextTick() - console.log('Setting theme to:', `color-${color}`) - console.log('Current themeName:', themeName ? themeName.value : undefined, 'mode:', mode ? (mode as any).value : undefined) setTheme(`color-${color}`) - console.log('After setTheme, themeName:', themeName ? themeName.value : undefined) }) const toggleAmoled = () => { diff --git a/docs/.vitepress/theme/style.scss b/docs/.vitepress/theme/style.scss index 6c1b54432..8dac12032 100644 --- a/docs/.vitepress/theme/style.scss +++ b/docs/.vitepress/theme/style.scss @@ -81,6 +81,15 @@ --vp-custom-block-danger-text-deep: theme('colors.carnation.200'); } +.monochrome { + + [class*='i-'], + svg, + img:not(.VPImage) { + filter: grayscale(100%); + } +} + .vp-doc a { color: var(--vp-c-brand-1); text-decoration: underline; @@ -138,17 +147,13 @@ */ :root { --vp-home-hero-name-color: transparent; - --vp-home-hero-name-background: -webkit-linear-gradient( - 120deg, - #c4b5fd 30%, - #7bc5e4 - ); + --vp-home-hero-name-background: -webkit-linear-gradient(120deg, + #c4b5fd 30%, + #7bc5e4); - --vp-home-hero-image-background-image: linear-gradient( - -45deg, - #c4b5fd 50%, - #47caff 50% - ); + --vp-home-hero-image-background-image: linear-gradient(-45deg, + #c4b5fd 50%, + #47caff 50%); --vp-home-hero-image-filter: blur(44px); } @@ -223,6 +228,7 @@ animation: nprogress-spinner 400ms linear infinite; } } + .nprogress-custom-parent { overflow: hidden; position: relative; @@ -253,7 +259,7 @@ } } -#VPContent strong > a { +#VPContent strong>a { font-weight: bold; } diff --git a/docs/.vitepress/theme/themes/configs/index.ts b/docs/.vitepress/theme/themes/configs/index.ts index b8f90fec3..c0e67b5e4 100644 --- a/docs/.vitepress/theme/themes/configs/index.ts +++ b/docs/.vitepress/theme/themes/configs/index.ts @@ -14,10 +14,12 @@ * limitations under the License. */ import { catppuccinTheme } from './catppuccin' +import { monochromeTheme } from './monochrome' import type { ThemeRegistry } from '../types' export const themeRegistry: ThemeRegistry = { catppuccin: catppuccinTheme, + monochrome: monochromeTheme, } -export { catppuccinTheme } +export { catppuccinTheme, monochromeTheme } diff --git a/docs/.vitepress/theme/themes/configs/monochrome.ts b/docs/.vitepress/theme/themes/configs/monochrome.ts new file mode 100644 index 000000000..b9659d78d --- /dev/null +++ b/docs/.vitepress/theme/themes/configs/monochrome.ts @@ -0,0 +1,151 @@ +import type { Theme } from '../types' + +export const monochromeTheme: Theme = { + name: 'monochrome', + displayName: 'Monochrome', + preview: '#808080', + modes: { + light: { + brand: { + 1: '#000000', + 2: '#1a1a1a', + 3: '#333333', + soft: '#666666' + }, + bg: '#FFFFFF', + bgAlt: '#F5F5F5', + bgElv: 'rgba(255, 255, 255, 0.95)', + bgMark: '#E0E0E0', + text: { + 1: '#000000', + 2: '#333333', + 3: '#808080' + }, + button: { + brand: { + bg: '#000000', + border: '#000000', + text: '#FFFFFF', + hoverBorder: '#333333', + hoverText: '#FFFFFF', + hoverBg: '#333333', + activeBorder: '#000000', + activeText: '#FFFFFF', + activeBg: '#000000' + }, + alt: { + bg: '#808080', + text: '#FFFFFF', + hoverBg: '#666666', + hoverText: '#FFFFFF' + } + }, + customBlock: { + info: { + bg: '#F5F5F5', + border: '#000000', + text: '#000000', + textDeep: '#000000' + }, + tip: { + bg: '#F5F5F5', + border: '#333333', + text: '#1a1a1a', + textDeep: '#000000' + }, + warning: { + bg: '#F5F5F5', + border: '#666666', + text: '#333333', + textDeep: '#1a1a1a' + }, + danger: { + bg: '#F5F5F5', + border: '#000000', + text: '#000000', + textDeep: '#000000' + } + }, + selection: { + bg: '#CCCCCC' + }, + home: { + heroNameColor: '#000000', + heroNameBackground: '#FFFFFF', + heroImageBackground: 'linear-gradient(135deg, #E0E0E0 0%, #FFFFFF 100%)', + heroImageFilter: 'blur(44px)' + } + }, + dark: { + brand: { + 1: '#FFFFFF', + 2: '#E0E0E0', + 3: '#CCCCCC', + soft: '#999999' + }, + bg: '#000000', + bgAlt: '#0A0A0A', + bgElv: 'rgba(0, 0, 0, 0.95)', + bgMark: '#1A1A1A', + text: { + 1: '#FFFFFF', + 2: '#CCCCCC', + 3: '#808080' + }, + button: { + brand: { + bg: '#FFFFFF', + border: '#FFFFFF', + text: '#000000', + hoverBorder: '#CCCCCC', + hoverText: '#000000', + hoverBg: '#CCCCCC', + activeBorder: '#FFFFFF', + activeText: '#000000', + activeBg: '#FFFFFF' + }, + alt: { + bg: '#808080', + text: '#000000', + hoverBg: '#999999', + hoverText: '#000000' + } + }, + customBlock: { + info: { + bg: '#1A1A1A', + border: '#FFFFFF', + text: '#FFFFFF', + textDeep: '#FFFFFF' + }, + tip: { + bg: '#1A1A1A', + border: '#CCCCCC', + text: '#E0E0E0', + textDeep: '#FFFFFF' + }, + warning: { + bg: '#1A1A1A', + border: '#999999', + text: '#CCCCCC', + textDeep: '#E0E0E0' + }, + danger: { + bg: '#1A1A1A', + border: '#FFFFFF', + text: '#FFFFFF', + textDeep: '#FFFFFF' + } + }, + selection: { + bg: '#333333' + }, + home: { + heroNameColor: '#FFFFFF', + heroNameBackground: '#000000', + heroImageBackground: 'linear-gradient(135deg, #1A1A1A 0%, #000000 100%)', + heroImageFilter: 'blur(44px)' + } + } + } +} diff --git a/docs/.vitepress/theme/themes/themeHandler.ts b/docs/.vitepress/theme/themes/themeHandler.ts index 9016cec48..c11c1601d 100644 --- a/docs/.vitepress/theme/themes/themeHandler.ts +++ b/docs/.vitepress/theme/themes/themeHandler.ts @@ -66,8 +66,8 @@ export class ThemeHandler { if (!localStorage.getItem(STORAGE_KEY_MODE)) { this.state.value.currentMode = e.matches ? 'dark' : 'light' this.applyTheme() - } - else { + } + else { this.applyTheme() } }) @@ -95,17 +95,23 @@ export class ThemeHandler { this.applyDOMClasses(currentMode) this.applyCSSVariables(modeColors, theme) + + if (theme.name === 'monochrome') { + root.classList.add('monochrome') + } else { + root.classList.remove('monochrome') + } } private applyDOMClasses(mode: DisplayMode) { const root = document.documentElement - + // Remove all mode classes root.classList.remove('dark', 'light', 'amoled') - + // Add current mode class root.classList.add(mode) - + // Add amoled class if enabled in dark mode if (mode === 'dark' && this.amoledEnabled.value) { root.classList.add('amoled') @@ -127,7 +133,7 @@ export class ThemeHandler { let bgColor = colors.bg let bgAltColor = colors.bgAlt let bgElvColor = colors.bgElv - + if (this.state.value.currentMode === 'dark' && this.amoledEnabled.value) { bgColor = '#000000' bgAltColor = '#000000' @@ -170,20 +176,6 @@ export class ThemeHandler { root.style.removeProperty('--vp-c-text-3') } - // Debug: log applied text color variables so we can inspect in console - try { - // eslint-disable-next-line no-console - console.log('[ThemeHandler] applied text vars', { - theme: theme.name, - mode: this.state.value.currentMode, - vp_text_1: root.style.getPropertyValue('--vp-c-text-1'), - vp_text_2: root.style.getPropertyValue('--vp-c-text-2'), - vp_text_3: root.style.getPropertyValue('--vp-c-text-3') - }) - } catch (e) { - // ignore - } - // Apply button colors root.style.setProperty('--vp-button-brand-bg', colors.button.brand.bg) root.style.setProperty('--vp-button-brand-border', colors.button.brand.border) @@ -284,7 +276,7 @@ export class ThemeHandler { this.state.value.theme = themeRegistry[themeName] localStorage.setItem(STORAGE_KEY_THEME, themeName) this.applyTheme() - + // Force re-apply ColorPicker colors if theme doesn't specify brand colors this.ensureColorPickerColors() } @@ -297,10 +289,10 @@ export class ThemeHandler { public toggleMode() { const currentMode = this.state.value.currentMode - + // Toggle between light and dark const newMode: DisplayMode = currentMode === 'light' ? 'dark' : 'light' - + this.setMode(newMode) } From 4a3fb8da6015463eee9a2d5914f8e8d6b4f91b7e Mon Sep 17 00:00:00 2001 From: nbats <44333466+nbats@users.noreply.github.com> Date: Sun, 4 Jan 2026 14:50:30 -0800 Subject: [PATCH 2/2] updated 6 pages --- docs/beginners-guide.md | 2 +- docs/educational.md | 3 +-- docs/internet-tools.md | 4 +--- docs/non-english.md | 1 - docs/reading.md | 2 +- docs/social-media-tools.md | 11 ++++++++--- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/docs/beginners-guide.md b/docs/beginners-guide.md index 755807c6c..f02772f04 100644 --- a/docs/beginners-guide.md +++ b/docs/beginners-guide.md @@ -86,7 +86,7 @@ If you see a string of text that looks like this `aHR0cHM6Ly9mbWh5Lm5ldC8` you c ### Reading -* **Downloading: [Anna's Archive](https://annas-archive.org/) / [Z-Library](https://z-lib.gd/)** +* **Downloading: [Anna's Archive](https://annas-archive.li/) / [Z-Library](https://z-lib.gd/)** * **Audiobooks: [AudiobookBay](https://audiobookbay.lu/) / [Warning](https://github.com/fmhy/FMHY/wiki/FMHY%E2%80%90Notes.md#audiobookbay-warning) / [Mobilism Audiobooks](https://forum.mobilism.org/viewforum.php?f=124) / [Tokybook](https://tokybook.com/)** * **Manga: [Weeb Central](https://weebcentral.com/) / [MangaDex](https://mangadex.org/)** * **Comics: [ReadComicsOnline](https://readcomiconline.li/) / [GetComics](https://getcomics.org/)** diff --git a/docs/educational.md b/docs/educational.md index 7d708a264..8f148fc4c 100644 --- a/docs/educational.md +++ b/docs/educational.md @@ -88,7 +88,6 @@ * 🌐 **[Learn Anything](https://learn-anything.xyz/)** - Learning Resource Search / [Free Method](https://rentry.co/FMHYB64#learn-anything) / [Discord](https://discord.gg/W7yDkEN67Y) / [GitHub](https://github.com/learn-anything/learn-anything) * 🌐 **[Wakelet](https://wakelet.com/explore)** - Learning Resources -* 🌐 **[WISC](https://www.wisc-online.com/)** - Learning Resources * 🌐 **[OpenCulture](https://www.openculture.com/)** - Learning Resources * 🌐 **[OSSU](https://github.com/ossu/)** - Learning Resources / [Discord](https://discord.gg/wuytwK5s9h) * 🌐 **[The Free Learning List](https://freelearninglist.org/)** - Learning Resources @@ -1099,7 +1098,7 @@ * 🌐 **[MDN](https://developer.mozilla.org/)** or [Web Dev Resources](https://joshjoshuap-webdevresources.vercel.app/) - Web Dev Learning Resources * ⭐ **[Odin Project](https://www.theodinproject.com/)**, [2](https://www.freecodecamp.org/learn/the-odin-project/) - Programming / Courses / Interactive / [Discord](https://discord.com/invite/fbFCkYabZB) -* ⭐ **[FullStackOpen](https://fullstackopen.com/en/)** - Full Stack Course +* ⭐ **[FullStackOpen](https://fullstackopen.com/en/)** - Full Stack Course / [Discord](https://study.cs.helsinki.fi/discord/join/fullstack) * ⭐ **[LandChad](https://landchad.net/)**, [32bit](https://32bit.cafe/) or [learn.sadgrl.online](https://sadgrl.online/guides/) - Site Development Guides * ⭐ **[Learn to Code HTML & CSS](https://learn.shayhowe.com/)** - HTML/CSS Course * ⭐ **[PHP: The Right Way](https://phptherightway.com/)**, [Learn PHP](https://odan.github.io/learn-php/) or [PHP Tutorial](https://www.phptutorial.net/) - Learn PHP diff --git a/docs/internet-tools.md b/docs/internet-tools.md index 00f8bd1a0..94c798816 100644 --- a/docs/internet-tools.md +++ b/docs/internet-tools.md @@ -183,7 +183,7 @@ * ↪️ **[Reddit Search Tools](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/social-media#wiki_.25B7_reddit_search)** * [SimilarSiteSearch](https://www.similarsitesearch.com/), [SimilarWeb](https://similarweb.com/), [SitesLikes](https://www.siteslike.com/), [TopSimilarSites](https://topsimilarsites.com/), [SimilarSites](https://similarsites.com/), [OpenDirectory](https://odir.us/) or [SiteLike.org](https://www.sitelike.org/) - Similar Site Searches * [sitedorks](https://github.com/Zarcolio/sitedorks), [Dorks-collections-list](https://github.com/cipher387/Dorks-collections-list/), [OSINT Dorks](https://github.com/BushidoUK/OSINT-SearchOperators), [Google Dork List](https://www.boxpiper.com/posts/google-dork-list), [Dork Genius](https://dorkgenius.com/) or [DorkSearch](https://www.dorksearch.com/) - Search Engine Dorking Tools -* [UserSearch](https://usersearch.com/) / [2](https://usersearch.org/), [Sherlock](https://sherlockproject.xyz/), [Maigret](https://github.com/soxoj/maigret), [Nexfil](https://github.com/thewhiteh4t/nexfil), [Lullar](https://lullar-com-3.appspot.com/), [Blackbird](https://github.com/p1ngul1n0/blackbird) or [WhatsMyName](https://whatsmyname.app/) - Username Search +* [UserSearch](https://usersearch.com/) / [2](https://usersearch.org/), [Sherlock](https://github.com/sherlock-project/sherlockfair /), [Maigret](https://github.com/soxoj/maigret), [Nexfil](https://github.com/thewhiteh4t/nexfil), [Lullar](https://lullar-com-3.appspot.com/), [Blackbird](https://github.com/p1ngul1n0/blackbird) or [WhatsMyName](https://whatsmyname.app/) - Username Search * [Soovle](https://www.seo.com/soovle/), [Keyword.io](https://www.keyword.io/), [SearchEngineReports](https://searchenginereports.net/), [ContentIdeas](https://contentideas.io/) or [Keyword Tool](https://keywordtool.io/) - Popular Keyword Search * [DuckDuckBang](https://mosermichael.github.io/duckduckbang/html/main.html) - DuckDuckGo !bang Meta Search / [GitHub](https://github.com/MoserMichael/duckduckbang) * [KeywordSheeter](https://keywordsheeter.com/) or [Spyfu](https://www.spyfu.com/) - Keyword Research Tools @@ -493,9 +493,7 @@ ## ▷ Email Aliasing * 🌐 **[⁠Email Aliasing Comparison](https://email-aliasing-comparison.pages.dev/)** / [GitHub](https://github.com/fynks/email-aliasing-comparison) - * ⭐ **[DuckDuckGo Email Protection](https://duckduckgo.com/email/)** - Email Aliasing / [Send Mail](https://duckduckgo.com/duckduckgo-help-pages/email-protection/duck-addresses/how-do-i-compose-a-new-email) / [Unlimited Guide](https://bitwarden.com/help/generator/#tab-duckduckgo-3Uj911RtQsJD9OAhUuoKrz) - * [addy.io](https://addy.io/) - Email Aliasing / [GitHub](https://github.com/anonaddy/anonaddy) * [SimpleLogin](https://simplelogin.io/) - Email Aliasing / 10 Alias Limit / [X](https://x.com/SimpleLogin) / [Subreddit](https://www.reddit.com/r/Simplelogin/) / [GitHub](https://github.com/simple-login/app) * [Mailgw](https://mailgw.com/) - Email Aliasing diff --git a/docs/non-english.md b/docs/non-english.md index 1c9ca2dac..59928f775 100644 --- a/docs/non-english.md +++ b/docs/non-english.md @@ -1521,7 +1521,6 @@ * [MegaPeliculasRip](https://www.megapeliculasrip.net/) - Movies / Classics / TV / Animation / 1080p / Latino * [DescargasDD](https://descargasdd.org/) - Video / Audio / Castilian / Latino / Requires Waitlist / [Telegram](https://t.me/joinchat/VAWOu0TNfOXfnauA) * [SeiresHD](https://seireshd.com/) - Movies / TV / Animation / 1080p / Latino -* [Peliculas-HD](https://peliculas-hd.org/) - Movies / 1080p / Latino * [mirandopeliculas](https://www.mirandopeliculas.com/) - Movies / TV / Latino * [Cine24h](https://cine24h.online/) - Movies / TV / Sub / Dub / 720p * [relampagomovies](https://relampagomovies.com/) - Movies / TV diff --git a/docs/reading.md b/docs/reading.md index 8be22ad79..b45224476 100644 --- a/docs/reading.md +++ b/docs/reading.md @@ -7,7 +7,7 @@ # ► Ebooks * 🌐 **[Open Slum](https://open-slum.org/)**, [2](https://open-slum.pages.dev/) - Book Site Index / Uptime Tracking -* ⭐ **[Anna's Archive](https://annas-archive.org/)**, [2](https://annas-archive.li/), [3](https://annas-archive.se/), [4](https://annas-archive.pm/), [5](https://annas-archive.in/) - Books / Comics / [Auto-Expand](https://greasyfork.org/en/scripts/494262) / [Matrix](https://matrix.to/#/#annas:archivecommunication.org) / [Subreddit](https://www.reddit.com/r/Annas_Archive/) +* ⭐ **[Anna's Archive](https://annas-archive.li/)**, [2](https://annas-archive.se/), [3](https://annas-archive.pm/), [4](https://annas-archive.in/) - Books / Comics / [Auto-Expand](https://greasyfork.org/en/scripts/494262) / [Matrix](https://matrix.to/#/#annas:archivecommunication.org) / [Subreddit](https://www.reddit.com/r/Annas_Archive/) * ⭐ **[Z-Library](https://z-lib.gd/)**, [2](https://articles.sk/), [3](https://1lib.sk/), [4](https://z-lib.fm/) - Books / Comics / [Apps / Extensions](https://go-to-library.sk/), [2](https://playtorrio.xyz/) / [.onion](http://loginzlib2vrak5zzpcocc3ouizykn6k5qecgj2tzlnab5wcbqhembyd.onion/), [2](http://bookszlibb74ugqojhzhg2a63w5i2atv5bqarulgczawnbmsb6s6qead.onion/) / [Subreddit](https://www.reddit.com/r/zlibrary/) * ⭐ **[Mobilism](https://forum.mobilism.org)**, [2](https://forum.mobilism.me/) - Books / Audiobooks / Magazines / Newspapers / Comics / [Ranks](https://github.com/fmhy/FMHY/wiki/FMHY%E2%80%90Notes.md#mobilism-ranks) * ⭐ **[MyAnonaMouse](https://www.myanonamouse.net/)** - Books / Audiobooks / Comics / Sheet Music / [Invite Required](https://www.myanonamouse.net/inviteapp.php) diff --git a/docs/social-media-tools.md b/docs/social-media-tools.md index 7a784e4fc..1384b1afb 100644 --- a/docs/social-media-tools.md +++ b/docs/social-media-tools.md @@ -565,6 +565,14 @@ *** +## ▷ Bluesky Tools + +* 🌐 **[Awesome Bluesky](https://github.com/fishttp/awesome-bluesky)** or [BlueskyDirectory](https://blueskydirectory.com/) - Bluesky Resources +* ⭐ **[Bluesky](https://bsky.app/)** - Federated Twitter Alternative / [App Directory](https://docs.bsky.app/showcase) / [Twitter Import](https://github.com/kawamataryo/sky-follower-bridge), [2](https://github.com/marcomaroni-github/twitter-to-bluesky) / [TUI](https://github.com/sugyan/tuisky) / [Dashboard](https://deck.blue/) +* [DarkSky](https://github.com/FireCubeStudios/DarkSky) - Bluesky Client + +*** + # ► Facebook Tools * ⭐ **[Facebook Ad Filters](https://www.reddit.com/r/uBlockOrigin/wiki/solutions/#wiki_facebook)** - Facebook Filters @@ -636,10 +644,8 @@ # ► Fediverse Tools -* 🌐 **[Awesome Bluesky](https://github.com/fishttp/awesome-bluesky)** or [BlueskyDirectory](https://blueskydirectory.com/) - Bluesky Resources * 🌐 **[Fediverse.Party](https://fediverse.party/)** - Fediverse Software Index * ⭐ **[Fediverse Observer](https://fediverse.observer/)** - Fediverse Instances -* ⭐ **[Bluesky](https://bsky.app/)** - Federated Twitter Alternative / [App Directory](https://docs.bsky.app/showcase) / [Twitter Import](https://github.com/kawamataryo/sky-follower-bridge), [2](https://github.com/marcomaroni-github/twitter-to-bluesky) / [TUI](https://github.com/sugyan/tuisky) / [Dashboard](https://deck.blue/) * [nStart](https://nstart.me/) - Federated Twitter Alternative * [FediDB](https://fedidb.org/) or [The Federation](https://the-federation.info/) - Network Statistics * [Fedi.Tips](https://fedi.tips/) - Fediverse Guide @@ -648,7 +654,6 @@ * [Fediverse People Directory](https://fediverse.info/explore/people) - Self-Submitted User Directory * [Hubzilla Public Sites](https://hubzilla.org/pubsites) - Hubzilla Instances * [Friendica Directory](https://dir.friendica.social/servers) - Friendica Instances -* [DarkSky](https://github.com/FireCubeStudios/DarkSky) - Bluesky Client * [Lemmy](https://join-lemmy.org/) / [Tools](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/social-media/#wiki_.25B7_lemmy_tools), [Mastodon](https://joinmastodon.org/) / [Tools](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/social-media/#wiki_.25B7_mastodon_tools), [Diaspora](https://diasporafoundation.org/) or [Friendica](https://friendi.ca) - Decentralized Social Netoworks * [FediverseRedirect](https://github.com/zacharee/MastodonRedirect) - Frontend Redirect * [Bridgy Fed](https://fed.brid.gy/) - Fediverse Bridge