diff --git a/Resources/landing-page/css/custom.css b/Resources/landing-page/css/custom.css index e225f413..2da13022 100644 --- a/Resources/landing-page/css/custom.css +++ b/Resources/landing-page/css/custom.css @@ -17,7 +17,8 @@ .theme-overview, #services, #themes, -footer { +footer, +section { background: var(--main-bg-color); background-repeat: repeat, no-repeat; background-attachment: fixed, fixed; @@ -306,6 +307,23 @@ p { line-height: 1.2; } +@keyframes glowing { + 0% { + background-color: var(--button-color); + box-shadow: 0 0 5px rgba(var(--accent-color), 0.502); + } + 50% { + background-color: var(--button-color-hover); + box-shadow: 0 0 10px rgba(var(--accent-color)); + } + 100% { + background-color: var(--button-color); + box-shadow: 0 0 5px rgba(var(--accent-color), 0.502) + } + } +.click-me-btn { + animation: glowing 1300ms infinite; +} /* @media (min-width: 992px) { .portfolio-box img { object-fit: cover; diff --git a/Resources/landing-page/js/scripts.js b/Resources/landing-page/js/scripts.js index 2cb17109..08da6aab 100644 --- a/Resources/landing-page/js/scripts.js +++ b/Resources/landing-page/js/scripts.js @@ -71,10 +71,10 @@ })(jQuery); // End of use strict -// load random css stylesheet const themes = ["aquamarine","hotline","dark","organizr-dark","dracula","overseerr", "plex","space-gray","hotpink","onedark","nord"]; var random = themes[~~(Math.random() * themes.length)]; +// load a random css stylesheet function injectTheme(theme,container="head") { if (container === "head") { html_element = document.head; @@ -83,24 +83,53 @@ function injectTheme(theme,container="head") { url = "/CSS/variables/" link.type = "text/css"; link.rel = "stylesheet"; - link.href = `${url}/${theme}.css`; + link.href = `${url}/${theme.toLowerCase()}.css`; html_element.appendChild(link); } - // Add updated theme count. - function addThemeCount() { - let themeJsonUrl = "https://theme-park.dev/themes.json" - return fetch(themeJsonUrl) - .then(response => { - return response.json(); - }).then(json => { - document.getElementById("themeCount").innerHTML = ` - theme.park contains ${Object.keys(json.applications).length} themed applications, with css addons on certain themes.` - }) + // Add theme data and set theme vars + var apps; + var themeOptions; + function addThemeData() { + let themeJsonUrl = "/themes.json" + fetch(themeJsonUrl) + .then(response => response.json()) + .then(json => { + apps = json.applications + themeOptions = json.themes + appCount = Object.keys(json.applications).length + document.getElementById("tag-line").innerText = `A collection of themes/skins for ${appCount} selfhosted + apps!` + document.getElementById("theme-header-text").innerText = `${appCount} themed applications!` + document.getElementById("app-count").innerHTML = ` + theme.park contains ${appCount} themed applications, with css addons on certain themes.` + document.getElementById("theme-count").innerHTML = `Choose between ${Object.keys(json.themes).length} different + styles! With the possibility to easily create your own themes using the defined variables.` + createApps(apps) + }) +} + +function createApps(apps) { + let allAppsDiv = document.getElementById("all-apps") + sorted = Object.keys(apps).sort() + for (let app in sorted) { + let newApp = ` + +

+

${sorted[app][0].toUpperCase() + sorted[app].slice(1)}

+
` + allAppsDiv.innerHTML += newApp + } } injectTheme(random); -addThemeCount(); +addThemeData(); +document.getElementById("switch-theme").addEventListener("click", ()=> { + let theme = Object.keys(themeOptions)[~~(Math.random() * Object.keys(themeOptions).length)] + injectTheme(theme) + document.getElementById("switch-theme").innerText = theme +}) diff --git a/index.html b/index.html index 1efdb4c8..2c250c5b 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,7 @@ - + @@ -71,9 +71,7 @@
-

A collection of themes/skins for over 40 selfhosted - apps! -

+

...

Find Out More
@@ -84,304 +82,24 @@
-

Over 40 themed applications!

+

...


-

...

+

...

Installation methods include custom docker mods for linuxserver.io containers,

custom scripts for select Hotio containers and multiple examples of subfiltering using webservers like Nginx and Apache

-

Choose between 9 different - styles! With the possibility to easily create your own themes using the defined variables.

+

...

Get Started!
-
- -

-

-

Sonarr

-
- -

-

-

Radarr

-
- -

-

-

Lidarr

-
- -

-

Readarr

-
- -

-

-

Prowlarr

-
- -

-

-

Bazarr

-
- -

-

-

Plex

-
- -

-

-

Synclounge

-
- -

-

Calibre-Web

-
- -

-

Jellyfin

-
- -

-

-

Emby

-
- -

-

Tautulli

-
- -

-

-

Ombi

-
- -

-

Requestrr

-
- -

-

Organizr

-
- -

-

-

deluge

-
- -

-

qBittorrent

-
- -

-

ruTorrent

-
- -

-

Transmission

-
- -

-

SABnzbd

-
- -

-

-

NZBGet

-
- -

-

-

NZBHydra 2

-
- -

-

-

Jackett

-
- - -

-

Netdata

-
- - -

-

Portainer

-
- -

-

-

Pi-hole

-
- -

-

Guacamole

-
- -

-

Filebrowser

-
- - -

-

Librespeed

-
- - -

-

Lazylibrarian

-
- -

-

Adguard

-
- -

-

-

Gaps

-
- -

-

Bitwarden

-
- -

-

Duplicacy

-
- -

-

-

Kitana

-
- - -

-

Resilio-Sync

-
- -

-

-

Gitea

-
- -

-

-

Unraid

-
- -

-

Moviematch

-
- -

-

-

Petio

-
- -

-

-

Flood

-
- -

-

-

VueTorrent

-
- -

-

-

Dozzle

-
- -

-

-

Xbackbone

-
- -

-

-

Uptime Kuma

-
- -

-

-

Mylar 3

-
+
+ ...
@@ -434,9 +152,23 @@
+
+
+
+
+
+
+ +
+
+
+
-

Available theme options

+

Official theme options

+
Click here for the community themes
+ +
@@ -558,7 +290,7 @@ - +