Compare commits

..

4 Commits

Author SHA1 Message Date
CodeDevMLH
bca2d577b9 Update manifest.json for release v1.7.2.6 [skip ci] 2026-03-10 22:08:51 +00:00
CodeDevMLH
11b6316338 Bump version to 1.7.2.6 in project files and manifest.json
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 44s
2026-03-10 23:08:07 +01:00
CodeDevMLH
bbc6da9d41 Add new visual styles and effects for custom overlays in configuration 2026-03-10 23:07:54 +01:00
CodeDevMLH
c313cbf37d Update image directory path in OverlayImageController for asset organization 2026-03-10 23:07:49 +01:00
5 changed files with 61 additions and 10 deletions

View File

@@ -20,8 +20,7 @@ namespace Jellyfin.Plugin.MediaBarEnhanced.Api
public OverlayImageController(IApplicationPaths applicationPaths) public OverlayImageController(IApplicationPaths applicationPaths)
{ {
_applicationPaths = applicationPaths; _applicationPaths = applicationPaths;
_imageDirectory = Path.Combine(applicationPaths.PluginConfigurationsPath, "Jellyfin.Plugin.MediaBarEnhanced", "Assets");
_imageDirectory = Path.Combine(applicationPaths.PluginConfigurationsPath, "MediaBarEnhancedAssets");
} }
/// <summary> /// <summary>

View File

@@ -289,6 +289,8 @@
<option value="Wave">Liquid Wave</option> <option value="Wave">Liquid Wave</option>
<option value="VHS">VHS Tracking</option> <option value="VHS">VHS Tracking</option>
<option value="Matrix">Digital Matrix</option> <option value="Matrix">Digital Matrix</option>
<option value="Ghost">Ghostly Apparition</option>
<option value="PulseGlow">Breathing Pulse Glow</option>
</select> </select>
<div class="fieldDescription">Choose the visual styling animation for your custom text.</div> <div class="fieldDescription">Choose the visual styling animation for your custom text.</div>
</div> </div>
@@ -307,6 +309,9 @@
<option value="Hologram">Hologram</option> <option value="Hologram">Hologram</option>
<option value="CRT">CRT Monitor</option> <option value="CRT">CRT Monitor</option>
<option value="Floating">Floating Float</option> <option value="Floating">Floating Float</option>
<option value="VHSTracking">VHS Tracking Glitch</option>
<option value="ColorCycle">Rainbow Color Cycle</option>
<option value="Mirror">Mirror Reflection</option>
</select> </select>
<div class="fieldDescription">Choose a visual effect to apply to your overlay image.</div> <div class="fieldDescription">Choose a visual effect to apply to your overlay image.</div>
</div> </div>

View File

@@ -12,7 +12,7 @@
<!-- <TreatWarningsAsErrors>false</TreatWarningsAsErrors> --> <!-- <TreatWarningsAsErrors>false</TreatWarningsAsErrors> -->
<Title>Jellyfin Media Bar Enhanced Plugin</Title> <Title>Jellyfin Media Bar Enhanced Plugin</Title>
<Authors>CodeDevMLH</Authors> <Authors>CodeDevMLH</Authors>
<Version>1.7.2.5</Version> <Version>1.7.2.6</Version>
<RepositoryUrl>https://github.com/CodeDevMLH/jellyfin-plugin-media-bar-enhanced</RepositoryUrl> <RepositoryUrl>https://github.com/CodeDevMLH/jellyfin-plugin-media-bar-enhanced</RepositoryUrl>
</PropertyGroup> </PropertyGroup>

View File

@@ -1082,7 +1082,7 @@
@media only screen and (max-width: 767px) and (orientation: portrait) { @media only screen and (max-width: 767px) and (orientation: portrait) {
.custom-overlay-container { .custom-overlay-container {
top: 8%; /* oder 5vh? */ top: 15vh;
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
width: 90%; width: 90%;
@@ -1244,9 +1244,8 @@
bottom: -10px; bottom: -10px;
left: -50vw; left: -50vw;
right: -50px; right: -50px;
background: linear-gradient(to right, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.8) 70%, transparent 100%); background: linear-gradient(to right, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.6) 40%, transparent 100%);
z-index: -1; z-index: -1;
border-left: 5px solid #00a4dc;
} }
@keyframes slideInCinematic { @keyframes slideInCinematic {
@@ -1324,6 +1323,7 @@
@keyframes liquidWave { @keyframes liquidWave {
0%, 100% { transform: translateY(0) skewY(0); } 0%, 100% { transform: translateY(0) skewY(0); }
25% { transform: translateY(-3px) skewY(1deg); } 25% { transform: translateY(-3px) skewY(1deg); }
50% { transform: translateY(0) skewY(0); }
75% { transform: translateY(3px) skewY(-1deg); } 75% { transform: translateY(3px) skewY(-1deg); }
} }
@@ -1348,6 +1348,27 @@
to { text-shadow: 0 0 10px #0f0, 0 0 20px #0f0; } to { text-shadow: 0 0 10px #0f0, 0 0 20px #0f0; }
} }
.custom-overlay-style-Ghost {
color: rgba(255,255,255,0.8);
filter: blur(0px);
animation: ghostApparition 6s infinite alternate;
}
@keyframes ghostApparition {
0% { filter: blur(0px); opacity: 1; transform: scale(1); }
50% { filter: blur(3px); opacity: 0.6; transform: scale(1.02); }
100% { filter: blur(8px); opacity: 0; transform: scale(1.05); }
}
.custom-overlay-style-PulseGlow {
color: #fff;
text-shadow: 0 0 10px rgba(255,255,255,0.8);
animation: pulseGlowAura 3s ease-in-out infinite alternate;
}
@keyframes pulseGlowAura {
0% { text-shadow: 0 0 5px rgba(255,255,255,0.5), 0 0 10px #00a4dc; transform: scale(1); }
100% { text-shadow: 0 0 15px rgba(255,255,255,1), 0 0 30px #00a4dc, 0 0 40px #00a4dc; transform: scale(1.05); }
}
/* Custom Overlay Image Styles */ /* Custom Overlay Image Styles */
.custom-overlay-img-RoundedShadow { .custom-overlay-img-RoundedShadow {
border-radius: 12px; border-radius: 12px;
@@ -1406,3 +1427,29 @@
50% { transform: translateY(-15px); } 50% { transform: translateY(-15px); }
} }
.custom-overlay-img-VHSTracking {
filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5));
animation: imgVhsTracking 2s infinite;
}
@keyframes imgVhsTracking {
0% { transform: translateX(0); clip-path: inset(0 0 0 0); filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5)) hue-rotate(0deg); }
5% { transform: translateX(-5px); clip-path: inset(10% 0 80% 0); filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5)) hue-rotate(90deg); }
10% { transform: translateX(5px); clip-path: inset(40% 0 40% 0); filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5)) hue-rotate(-90deg); }
15% { transform: translateX(0); clip-path: inset(0 0 0 0); filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5)) hue-rotate(0deg); }
100% { transform: translateX(0); clip-path: inset(0 0 0 0); }
}
.custom-overlay-img-ColorCycle {
filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5));
animation: imgColorCycle 10s linear infinite;
}
@keyframes imgColorCycle {
from { filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5)) hue-rotate(0deg); }
to { filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5)) hue-rotate(360deg); }
}
.custom-overlay-img-Mirror {
filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.5));
-webkit-box-reflect: below 2px linear-gradient(transparent, rgba(255,255,255,0.3));
}

View File

@@ -9,12 +9,12 @@
"imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/raw/branch/main/logo.png", "imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/raw/branch/main/logo.png",
"versions": [ "versions": [
{ {
"version": "1.7.2.5", "version": "1.7.2.6",
"changelog": "feat: add custom text/image overlay option\n- feat: add option to disable pagination dots/counter\n- feat: add exclude seasonal content from random fetching option\n- Add hide arrows on mobile option \n- fix button issue on mobile when using ElegantFin Theme", "changelog": "feat: add custom text/image overlay option\n- feat: add option to disable pagination dots/counter\n- feat: add exclude seasonal content from random fetching option\n- Add hide arrows on mobile option \n- fix button issue on mobile when using ElegantFin Theme",
"targetAbi": "10.11.0.0", "targetAbi": "10.11.0.0",
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.7.2.5/Jellyfin.Plugin.MediaBarEnhanced.zip", "sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.7.2.6/Jellyfin.Plugin.MediaBarEnhanced.zip",
"checksum": "d464b8ce83fe85018623c3de17ec5c1c", "checksum": "159c4d42dca78088fb4725af1c4252cc",
"timestamp": "2026-03-10T19:47:06Z" "timestamp": "2026-03-10T22:08:50Z"
}, },
{ {
"version": "1.7.0.14", "version": "1.7.0.14",