Compare commits

...

3 commits

Author SHA1 Message Date
nbats
2177e6a493
small fix 2025-10-03 02:02:10 -07:00
Samidy
f77eaf90b4
Halloween FMHY Theme (#4121)
* halloween thingers

* halloween thingers 2

* make halloween theme the preffered theme and change FMHY name gradient

* background change for halloween

* again

* make background change on home page too

* please let this work unc

* change colors on home page button

* let this work unc

* fix some more issues

* semi-final update (hopefully)

* uhhuh

* fixes for other themes besides halloween

* light mode fixes (PLEASE let this work)

* how did i not catch this omg

* light mode fixes

* add Halloween logo

* Update image source from test.png to hall.png

* add uwu logo

* Change image for uwu
2025-10-03 01:48:35 -07:00
nbats
707e3d3d5d
updated 5 pages 2025-10-03 01:37:26 -07:00
11 changed files with 299 additions and 23 deletions

View file

@ -1,7 +1,28 @@
<script setup lang="ts">
import { colors } from '@fmhy/colors'
import { useStorage, useStyleTag } from '@vueuse/core'
import { watch } from 'vue'
import { watch, onMounted } from 'vue'
// Add Halloween colors locally
const halloweenColors = {
50: '#fff7ed',
100: '#ffedd5',
200: '#fed7aa',
300: '#fdba74',
400: '#fb923c',
500: '#FF6A00',
600: '#ea580c',
700: '#c2410c',
800: '#9a3412',
900: '#7c2d12',
950: '#431407'
}
// Extend colors with Halloween theme
const extendedColors = {
...colors,
halloween: halloweenColors
}
const colorScales = [
'50',
@ -17,22 +38,70 @@ const colorScales = [
'950'
] as const
type ColorNames = keyof typeof colors
const selectedColor = useStorage<ColorNames>('preferred-color', 'swarm')
type ColorNames = keyof typeof extendedColors
const selectedColor = useStorage<ColorNames>('preferred-color', 'halloween')
const colorOptions = Object.keys(colors).filter(
(key) => typeof colors[key as keyof typeof colors] === 'object'
const colorOptions = Object.keys(extendedColors).filter(
(key) => typeof extendedColors[key as keyof typeof extendedColors] === 'object'
) as Array<ColorNames>
const { css } = useStyleTag('', { id: 'brand-color' })
const updateThemeColor = (colorName: ColorNames) => {
const colorSet = colors[colorName]
const colorSet = extendedColors[colorName]
const cssVars = colorScales
.map((scale) => `--vp-c-brand-${scale}: ${colorSet[scale]};`)
.join('\n ')
// if user isnt using halloween theme switch it
const nonHalloweenOverride = colorName !== 'halloween' ? `
--vp-c-bg: #ffffff !important;
--vp-c-bg-alt: #f9f9f9 !important;
--vp-c-bg-elv: rgba(255, 255, 255, 0.7) !important;
--vp-button-alt-bg: #484848 !important;
--vp-button-alt-text: #f0eeee !important;
--vp-button-alt-hover-bg: #484848 !important;
--vp-button-alt-hover-text: #f0eeee !important;
--vp-button-brand-bg: var(--vp-c-brand-1) !important;
--vp-button-brand-border: var(--vp-c-brand-soft) !important;
--vp-button-brand-text: rgba(42, 40, 47) !important;
--vp-button-brand-hover-bg: var(--vp-c-brand-soft) !important;
--vp-button-brand-hover-border: var(--vp-c-brand-soft) !important;
--vp-button-brand-hover-text: rgba(42, 40, 47) !important;
` : ''
const nonHalloweenDarkOverride = colorName !== 'halloween' ? `
--vp-c-bg: rgb(26, 26, 26) !important;
--vp-c-bg-alt: rgb(23, 23, 23) !important;
--vp-c-bg-elv: rgba(23, 23, 23, 0.8) !important;
--vp-button-alt-bg: #484848 !important;
--vp-button-alt-text: #f0eeee !important;
--vp-button-alt-hover-bg: #484848 !important;
--vp-button-alt-hover-text: #f0eeee !important;
--vp-button-brand-bg: var(--vp-c-brand-1) !important;
--vp-button-brand-border: var(--vp-c-brand-soft) !important;
--vp-button-brand-text: rgba(42, 40, 47) !important;
--vp-button-brand-hover-bg: var(--vp-c-brand-soft) !important;
--vp-button-brand-hover-border: var(--vp-c-brand-soft) !important;
--vp-button-brand-hover-text: rgba(42, 40, 47) !important;
` : ''
const nonHalloweenBodyOverride = colorName !== 'halloween' ? `
body {
background-color: #ffffff !important;
}
.VPApp, .Layout, .VPContent, .VPHome, .VPHero, #app {
background-color: #ffffff !important;
}
.dark body {
background-color: rgb(26, 26, 26) !important;
}
.dark .VPApp, .dark .Layout, .dark .VPContent, .dark .VPHome, .dark .VPHero, .dark #app {
background-color: rgb(26, 26, 26) !important;
}
` : ''
css.value = `
:root {
${cssVars}
@ -40,6 +109,7 @@ const updateThemeColor = (colorName: ColorNames) => {
--vp-c-brand-2: ${colorSet[600]};
--vp-c-brand-3: ${colorSet[800]};
--vp-c-brand-soft: ${colorSet[400]};
${nonHalloweenOverride}
}
.dark {
@ -48,13 +118,39 @@ const updateThemeColor = (colorName: ColorNames) => {
--vp-c-brand-2: ${colorSet[500]};
--vp-c-brand-3: ${colorSet[700]};
--vp-c-brand-soft: ${colorSet[300]};
${nonHalloweenDarkOverride}
}
${nonHalloweenBodyOverride}
`
// Add/remove Halloween theme indicator
const htmlElement = document.documentElement
if (colorName === 'halloween') {
htmlElement.setAttribute('data-halloween-theme', 'true')
} else {
htmlElement.removeAttribute('data-halloween-theme')
}
}
// Set Halloween theme ASAP if its the pref
const storedTheme = localStorage.getItem('preferred-color')
if (!storedTheme || storedTheme === '"halloween"') {
document.documentElement.setAttribute('data-halloween-theme', 'true')
}
// Initialize theme color
updateThemeColor(selectedColor.value)
// halloween stuff
onMounted(() => {
if (selectedColor.value === 'halloween') {
document.documentElement.setAttribute('data-halloween-theme', 'true')
}
// Re-apply the theme to ensure everything is initialized
updateThemeColor(selectedColor.value)
})
watch(selectedColor, updateThemeColor)
const normalizeColorName = (colorName: string) =>
@ -75,7 +171,7 @@ const normalizeColorName = (colorName: string) =>
>
<span
class="inline-block w-6 h-6 rounded-full"
:style="{ backgroundColor: colors[color][500] }"
:style="{ backgroundColor: extendedColors[color][500] }"
/>
</button>
</div>

View file

@ -23,6 +23,19 @@
--vp-c-bg-elv: rgba(255, 255, 255, 0.7);
--vp-c-bg-mark: rgb(232, 232, 232);
/* Colors: Halloween Theme */
--halloween-50: #fff7ed;
--halloween-100: #ffedd5;
--halloween-200: #fed7aa;
--halloween-300: #fdba74;
--halloween-400: #fb923c;
--halloween-500: #FF6A00;
--halloween-600: #ea580c;
--halloween-700: #c2410c;
--halloween-800: #9a3412;
--halloween-900: #7c2d12;
--halloween-950: #431407;
/* Colors: Custom Block */
/** Info */
--vp-custom-block-info-bg: theme('colors.swarm.100');
@ -44,6 +57,63 @@
--vp-custom-block-danger-border: theme('colors.carnation.800');
--vp-custom-block-danger-text: theme('colors.carnation.800');
--vp-custom-block-danger-text-deep: theme('colors.carnation.900');
/** Halloween */
--vp-custom-block-halloween-bg: var(--halloween-100);
--vp-custom-block-halloween-border: var(--halloween-800);
--vp-custom-block-halloween-text: var(--halloween-800);
--vp-custom-block-halloween-text-deep: var(--halloween-900);
}
/* Apply Halloween theme by default (for light mode)*/
:root {
--vp-c-bg: #fef3e8 !important;
--vp-c-bg-alt: #fef0e7 !important;
--vp-c-bg-elv: rgba(254, 240, 231, 0.8) !important;
--vp-c-bg-soft: #fef0e7 !important;
--vp-button-alt-bg: #a855f7 !important;
--vp-button-alt-text: #fff !important;
--vp-button-alt-hover-bg: #9333ea !important;
--vp-button-alt-hover-text: #fff !important;
--vp-button-brand-bg: #FF6A00 !important;
--vp-button-brand-border: #FF6A00 !important;
--vp-button-brand-text: #fff !important;
--vp-button-brand-hover-bg: #ea580c !important;
--vp-button-brand-hover-border: #ea580c !important;
--vp-button-brand-hover-text: #fff !important;
}
body {
background-color: #fef3e8 !important;
}
.VPApp, .Layout, .VPContent, .VPHome, .VPHero, #app {
background-color: #fef3e8 !important;
}
/* Apply Halloween theme by default - (for dark mode) */
.dark {
--vp-c-bg: rgb(15, 15, 15) !important;
--vp-c-bg-alt: rgb(12, 12, 12) !important;
--vp-c-bg-elv: rgba(12, 12, 12, 0.8) !important;
--vp-c-bg-soft: rgb(12, 12, 12) !important;
--vp-button-alt-bg: #8b5cf6 !important;
--vp-button-alt-text: #e9d5ff !important;
--vp-button-alt-hover-bg: #a855f7 !important;
--vp-button-alt-hover-text: #fff !important;
--vp-button-brand-bg: #FF6A00 !important;
--vp-button-brand-border: #FF6A00 !important;
--vp-button-brand-text: #fff !important;
--vp-button-brand-hover-bg: #ea580c !important;
--vp-button-brand-hover-border: #ea580c !important;
--vp-button-brand-hover-text: #fff !important;
}
.dark body {
background-color: rgb(15, 15, 15) !important;
}
.dark .VPApp, .dark .Layout, .dark .VPContent, .dark .VPHome, .dark .VPHero, .dark #app {
background-color: rgb(15, 15, 15) !important;
}
.dark {
@ -79,6 +149,78 @@
--vp-custom-block-danger-border: theme('colors.carnation.800');
--vp-custom-block-danger-text: theme('colors.carnation.200');
--vp-custom-block-danger-text-deep: theme('colors.carnation.200');
/** Halloween */
--vp-custom-block-halloween-bg: var(--halloween-950);
--vp-custom-block-halloween-border: var(--halloween-800);
--vp-custom-block-halloween-text: var(--halloween-200);
--vp-custom-block-halloween-text-deep: var(--halloween-200);
}
/* Halloween theme overrides */
/* Halloween theme overrides - (for light mode) */
html[data-halloween-theme]:not(.dark) {
--vp-c-bg: #fef3e8 !important;
--vp-c-bg-alt: #fef0e7 !important;
--vp-c-bg-elv: rgba(254, 240, 231, 0.8) !important;
--vp-c-bg-soft: #fef0e7 !important;
--vp-button-alt-bg: #a855f7 !important;
--vp-button-alt-text: #fff !important;
--vp-button-alt-hover-bg: #9333ea !important;
--vp-button-alt-hover-text: #fff !important;
--vp-button-brand-bg: #FF6A00 !important;
--vp-button-brand-border: #FF6A00 !important;
--vp-button-brand-text: #fff !important;
--vp-button-brand-hover-bg: #ea580c !important;
--vp-button-brand-hover-border: #ea580c !important;
--vp-button-brand-hover-text: #fff !important;
background-color: #fef3e8 !important;
}
html[data-halloween-theme]:not(.dark) body {
background-color: #fef3e8 !important;
}
html[data-halloween-theme]:not(.dark) .VPApp,
html[data-halloween-theme]:not(.dark) .Layout,
html[data-halloween-theme]:not(.dark) .VPContent,
html[data-halloween-theme]:not(.dark) .VPHome,
html[data-halloween-theme]:not(.dark) .VPHero,
html[data-halloween-theme]:not(.dark) #app {
background-color: #fef3e8 !important;
}
/* Halloween theme overrides - (for dark mode) */
html[data-halloween-theme].dark {
--vp-c-bg: rgb(15, 15, 15) !important;
--vp-c-bg-alt: rgb(12, 12, 12) !important;
--vp-c-bg-elv: rgba(12, 12, 12, 0.8) !important;
--vp-c-bg-soft: rgb(12, 12, 12) !important;
--vp-button-alt-bg: #8b5cf6 !important;
--vp-button-alt-text: #e9d5ff !important;
--vp-button-alt-hover-bg: #a855f7 !important;
--vp-button-alt-hover-text: #fff !important;
--vp-button-brand-bg: #FF6A00 !important;
--vp-button-brand-border: #FF6A00 !important;
--vp-button-brand-text: #fff !important;
--vp-button-brand-hover-bg: #ea580c !important;
--vp-button-brand-hover-border: #ea580c !important;
--vp-button-brand-hover-text: #fff !important;
background-color: rgb(15, 15, 15) !important;
}
html[data-halloween-theme].dark body {
background-color: rgb(15, 15, 15) !important;
}
html[data-halloween-theme].dark .VPApp,
html[data-halloween-theme].dark .Layout,
html[data-halloween-theme].dark .VPContent,
html[data-halloween-theme].dark .VPHome,
html[data-halloween-theme].dark .VPHero,
html[data-halloween-theme].dark #app {
background-color: rgb(15, 15, 15) !important;
}
.vp-doc a {
@ -140,14 +282,14 @@
--vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: -webkit-linear-gradient(
120deg,
#c4b5fd 30%,
#7bc5e4
#ff8c3a 30%,
#FF6A00
);
--vp-home-hero-image-background-image: linear-gradient(
-45deg,
#c4b5fd 50%,
#47caff 50%
#ff8c3a 50%,
#ea580c 50%
);
--vp-home-hero-image-filter: blur(44px);
}
@ -322,6 +464,19 @@
color: var(--vp-custom-block-danger-text-deep);
}
.halloween.custom-block a {
color: var(--vp-custom-block-halloween-text);
font-weight: 500;
text-decoration: underline;
text-underline-offset: 2px;
transition: opacity 0.25s;
}
.halloween.custom-block a:hover {
opacity: 0.7;
color: var(--vp-custom-block-halloween-text-deep);
}
.info.custom-block {
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+');
}
@ -342,6 +497,10 @@
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXNrdWxsIj48Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiLz48Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIxIi8+PHBhdGggZD0iTTggMjB2Mmg4di0yIi8+PHBhdGggZD0ibTEyLjUgMTctLjUtMS0uNSAxaDF6Ii8+PHBhdGggZD0iTTE2IDIwYTIgMiAwIDAgMCAxLjU2LTMuMjUgOCA4IDAgMSAwLTExLjEyIDBBMiAyIDAgMCAwIDggMjAiLz48L3N2Zz4=');
}
.halloween.custom-block {
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyYzMgMCA1IDIgNSA1djZjMCA0LTMgNy04IDdoLTJjLTUtMS04LTMtOC03VjdjMC0zIDItNSA1LTVoOHoiLz48Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMSIvPjxjaXJjbGUgY3g9IjE1IiBjeT0iOSIgcj0iMSIvPjxwYXRoIGQ9Im0xMCAxNCAyIDJoMGwyLTIiLz48L3N2Zz4=');
}
.custom-block-title {
display: inline-flex;
align-items: center;

View file

@ -10,7 +10,7 @@ hero:
title: Oct 2025 Updates 🎃
link: /posts/oct-2025
image:
src: /test.png
src: /hall.png
alt: FMHY Icon
actions:
- theme: brand
@ -169,13 +169,13 @@ onMounted(() => {
const setKawaii = () => {
const images = document.querySelectorAll('.VPImage.image-src')
images.forEach((img) => {
img.src = '/logo-uwu.svg'
img.src = '/uwu-hall.png'
})
}
const resetKawaii = () => {
const images = document.querySelectorAll('.VPImage.image-src')
images.forEach((img) => {
img.src = '/test.png'
img.src = '/hall.png'
})
}
if (kawaii === 'true') {

View file

@ -43,7 +43,7 @@
* ↪️ **[Password Privacy / 2FA](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/adblock-vpn-privacy#wiki_.25B7_password_privacy_.2F_2fa)**
* ⭐ **[KeePass](https://keepass.info/)** or **[KeePassXC](https://keepassxc.org/)**
* ⭐ **KeePass Tools** - [Forks](https://keepass.info/download.html) / [Plugins](https://keepass.info/plugins.html) / [Read-Only Functionality](https://subdavis.com/Tusk/)
* ⭐ **[Bitwarden](https://bitwarden.com/)** / [X](https://twitter.com/bitwarden) / [Subreddit](https://reddit.com/r/bitwarden) / [GitHub](https://github.com/bitwarden)
* ⭐ **[Bitwarden](https://bitwarden.com/)** / [Alt Client](https://github.com/AChep/keyguard-app) / [X](https://twitter.com/bitwarden) / [Subreddit](https://reddit.com/r/bitwarden) / [GitHub](https://github.com/bitwarden)
* ⭐ **[Proton Pass](https://proton.me/pass)**
* [Pashword](https://pashword.app/)
* [LessPass](https://lesspass.com/)

View file

@ -920,7 +920,7 @@
## ▷ Reading / 読書
* 🌐 **[Rawmangaz](https://rentry.co/rawmangaz)** - List of Raw Manga Sites
* 🌐 **[Rawmangaz](https://claraiscute.neocities.org/Guides/rawmangaz/)** - List of Raw Manga Sites
* [senmanga](https://raw.senmanga.com/) - Manga / Novels / NSFW
* [DLRaw](https://dlraw.to/), [2](https://manga-zip.is/), [3](https://manga-zip.tv/) - Manga
* [Raw-Zip](https://raw-zip.com/) - Manga

BIN
docs/public/hall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

BIN
docs/public/uwu-hall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

View file

@ -9,7 +9,7 @@ To easily see which sites are trusted, and which are unsafe, try the **[FMHY Saf
***
* 🌐 **[Untrusted Sites](https://rentry.org/pgames#untrusted-sites)** / **[Uploaders](https://rentry.org/pgames#untrusted-uploaders)** - More Complete Lists
* 🌐 **[Fake FitGirl Sites](https://rentry.co/FakeFitgirlwebsites)**
* 🌐 **[Fake FitGirl Sites](https://claraiscute.neocities.org/Guides/FakeFitgirlwebsites/)**
* OceanOfGames - Caught with malware multiple times
* CrackingPatching - Caught with [malware](https://redd.it/qy6z3c)
* xGIROx - Caught with malware

View file

@ -88,7 +88,7 @@
* ⭐ **[Shutter Encoder](https://www.shutterencoder.com/)** - Video Encoding Software / Windows, Mac, Linux / [GitHub](https://github.com/paulpacifico/shutter-encoder)
* ⭐ **[MKVToolNix](https://mkvtoolnix.download/)** - MKV Editing Tools / Windows, Mac, Linux
* ⭐ **[archived-things](https://sometimes-archives-things.github.io/archived-things/)**, [Codec Wiki](https://wiki.x266.mov/) / [Discord](https://discord.gg/bbQD5MjDr3) / [GitHub](https://github.com/av1-community-contributors/codec-wiki), [JET Guide](https://jaded-encoding-thaumaturgy.github.io/JET-guide/master/), [The Encoding Guide](https://encoding-guide.neocities.org/) or [Silentaperture](https://silentaperture.gitlab.io/mdbook-guide/) - Video Encoding Guides
* ⭐ **[Basics to the Art of Remuxing](https://rentry.co/remuxing)** - Learn How to Remux Videos
* ⭐ **[Basics to the Art of Remuxing](https://claraiscute.neocities.org/Guides/remuxing/)** - Learn How to Remux Videos
* [DDVT](https://forum.doom9.org/showthread.php?t=183479) - Dolby Vision RPU Demuxing / Injecting / Editing
* [MKV Muxing Batch GUI](https://github.com/yaser01/mkv-muxing-batch-gui) - Mux Videos / Windows, Linux
* [IFME](https://github.com/Anime4000/IFME) - Video Encoding / Windows, Linux

View file

@ -21,7 +21,7 @@
* [FlickyStream](https://flickystream.ru/) or [CineMora](https://cinemora.ru/) - Movies / TV / Anime / [Telegram](https://t.me/FlickyStream) / [Discord](https://discord.com/invite/flickystream)
* [Cinegram](https://cinegram.net/) - Movies / TV / Anime / Auto-Next
* [FilmCave](https://filmcave.net/) - Movies / TV / Anime / Auto-Next / [Telegram](https://t.me/fmcave) / [Discord](https://discord.gg/BtpYzMbDjH)
* [Smashystream](https://smashystream.com/), [2](https://flix.smashystream.xyz/), [3](https://flix.smashystream.xyz/) - Movies / TV / Anime / [Telegram](https://telegram.me/+vekZX4KtMPtiYmRl) / [Discord](https://discord.com/invite/tcdcxrbDkE)
* [Smashystream](https://smashystream.com/), [2](https://flix.smashystream.xyz/), [3](https://smashystream.xyz/) - Movies / TV / Anime / [Telegram](https://telegram.me/+vekZX4KtMPtiYmRl) / [Discord](https://discord.com/invite/tcdcxrbDkE)
* [StreamM4u](https://streamm4u.com.co/) - Movies / TV / Anime / [Clones](https://rentry.co/sflix#streamm4u-clones)
* [BFLIX](https://bflix.sh/) - Movies / TV
* [MovieHD](https://moviehd.us) - Movies / [Telegram](https://t.me/+NthvAOpP0oNkMWU1)
@ -421,7 +421,7 @@
* ⭐ **[VIP Box Sports](https://www.viprow.nu/)** / [Mirrors](https://rentry.co/VIPSportsBox)
* ⭐ **[TimStreams](https://timstreams.xyz/)**, [2](https://timstreams.cfd/) - Live Events / [Status](https://timstreams.online/) / [Discord](https://discord.com/invite/p3aJ7rJGrz)
* ⭐ **[WeAreChecking](https://wearechecking.online/)** - Live Events / Motorsports / [Discord](https://discord.com/invite/wearechecking)
* [Streamex](http://streamex.cc/) or [GoToStreamly](https://gotostreamly.sbs/) - Stream Aggregator / [Discord](https://discord.gg/HwXeKNu8FU)
* [Streamex](http://streamex.cc/), [GoToStreamly](https://gotostreamly.sbs/) or [CrackStreams.li](https://crackstreams.li/), [2](https://streameast.art/), [3](https://hesgoal.lol/) - Stream Aggregator / [Discord](https://discord.gg/HwXeKNu8FU)
* [Sportsurge](https://v2.sportsurge.net/home5/) - Stream Aggregator
* [TotalSportek.to](https://totalsportek.me/), [2](https://buffstreams.app/) - Stream Aggregator
* [CricHD.to](https://crichd.at/), [2](https://crichd.com.co/)

View file

@ -25,6 +25,27 @@ import {
transformerDirectives
} from 'unocss'
// Add Halloween colors to extend the existing colors
const halloweenColors = {
50: '#fff7ed',
100: '#ffedd5',
200: '#fed7aa',
300: '#fdba74',
400: '#fb923c',
500: '#FF6A00',
600: '#ea580c',
700: '#c2410c',
800: '#9a3412',
900: '#7c2d12',
950: '#431407'
}
// Extend colors with Halloween theme
const extendedColors = {
...colors,
halloween: halloweenColors
}
const colorScales = [
'50',
'100',
@ -39,7 +60,7 @@ const colorScales = [
'950'
] as const
const colorPattern = Object.keys(colors).join('|')
const colorPattern = Object.keys(extendedColors).join('|')
const createColorRules = (type: 'text' | 'bg' | 'border'): Rule[] => {
const property =
type === 'text'
@ -52,7 +73,7 @@ const createColorRules = (type: 'text' | 'bg' | 'border'): Rule[] => {
(scale) =>
[
new RegExp(`^${type}-(${colorPattern})-${scale}$`),
([, color]) => ({ [property]: colors[color][scale] })
([, color]) => ({ [property]: extendedColors[color][scale] })
] as const
)
}
@ -63,7 +84,7 @@ export default defineConfig({
},
theme: {
colors: {
...colors,
...extendedColors,
primary: 'var(--vp-c-brand-1)',
bg: 'var(--vp-c-bg)',
'bg-alt': 'var(--vp-c-bg-alt)',