Adds a beautiful, floating IPTV channel list overlay to any webpage. Click a channel to copy its name.
/* ==UserStyle==
@name Simple IPTV Channel Overlay
@namespace https://your-namespace.example.com/
@version 1.0.0
@description Adds a beautiful, floating IPTV channel list overlay to any webpage. Click a channel to copy its name.
@author YourName
@license MIT
@preprocessor default
@var text channel-list "Channel List (JSON format)" '[{"name":"BBC One","group":"News"},{"name":"CNN","group":"News"},{"name":"Discovery","group":"Documentary"},{"name":"National Geographic","group":"Documentary"},{"name":"ESPN","group":"Sports"},{"name":"Sky Sports","group":"Sports"},{"name":"HBO","group":"Movies"},{"name":"Netflix","group":"Movies"},{"name":"France 24","group":"International"},{"name":"Al Jazeera","group":"International"}]'
==/UserStyle== */
@-moz-document regexp(".*") {
/* --- Main Overlay Container --- */
#iptv-channel-overlay {
all: initial;
position: fixed;
bottom: 20px;
right: 20px;
width: 260px;
max-height: 320px;
background: rgba(20, 20, 30, 0.92);
color: #e0e0e0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
font-size: 13px;
border-radius: 16px;
padding: 0;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
z-index: 2147483647;
overflow: hidden;
backdrop-filter: blur(4px);
border: 1px solid rgba(255, 255, 255, 0.08);
display: flex;
flex-direction: column;
transition: opacity 0.25s ease, transform 0.25s ease;
opacity: 0;
transform: scale(0.95) translateY(10px);
pointer-events: none;
}
/* --- Overlay Header --- */
#iptv-channel-overlay .overlay-header {
padding: 16px 18px 10px 18px;
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
flex-shrink: 0;
}
#iptv-channel-overlay .overlay-header h3 {
margin: 0;
color: #ff6b6b;
font-weight: 600;
font-size: 16px;
letter-spacing: 0.5px;
text-align: center;
}
#iptv-channel-overlay .overlay-header .subtitle {
display: block;
font-size: 11px;
color: #888;
text-align: center;
margin-top: 4px;
}
/* --- Channel List Area --- */
#iptv-channel-overlay .channel-list {
padding: 10px 12px 16px 12px;
overflow-y: auto;
flex-grow: 1;
max-height: 240px;
}
#iptv-channel-overlay .channel-list::-webkit-scrollbar {
width: 5px;
}
#iptv-channel-overlay .channel-list::-webkit-scrollbar-track {
background: transparent;
}
#iptv-channel-overlay .channel-list::-webkit-scrollbar-thumb {
background: #555;
border-radius: 10px;
}
/* --- Individual Channel Item --- */
#iptv-channel-overlay .channel-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 7px 12px;
margin-bottom: 4px;
background: rgba(255, 255, 255, 0.04);
border-radius: 8px;
cursor: pointer;
transition: background 0.15s ease, transform 0.1s ease;
border-left: 3px solid transparent;
}
#iptv-channel-overlay .channel-item:hover {
background: rgba(255, 255, 255, 0.10);
transform: translateX(3px);
border-left-color: #ff6b6b;
}
#iptv-channel-overlay .channel-item .channel-name {
font-weight: 500;
color: #f0f0f0;
}
#iptv-channel-overlay .channel-item .channel-group {
font-size: 10px;
color: #999;
background: rgba(255, 255, 255, 0.06);
padding: 2px 10px;
border-radius: 12px;
letter-spacing: 0.3px;
text-transform: uppercase;
}
/* --- Toggle Button --- */
#iptv-toggle-btn {
all: initial;
position: fixed;
bottom: 20px;
right: 20px;
padding: 10px 18px;
background: #ff6b6b;
color: #fff;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
font-weight: 700;
font-size: 14px;
border: none;
border-radius: 30px;
box-shadow: 0 4px 16px rgba(255, 107, 107, 0.4);
cursor: pointer;
z-index: 2147483646;
transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
letter-spacing: 0.5px;
line-height: 1;
}
#iptv-toggle-btn:hover {
background: #e55a5a;
transform: scale(1.04);
box-shadow: 0 6px 20px rgba(255, 107, 107, 0.5);
}
#iptv-toggle-btn:active {
transform: scale(0.95);
}
/* --- State: Overlay is Open --- */
#iptv-channel-overlay.open {
opacity: 1;
transform: scale(1) translateY(0);
pointer-events: auto;
}
/* --- Notification Toast for Copy --- */
#iptv-copy-toast {
all: initial;
position: fixed;
bottom: 80px;
right: 20px;
background: rgba(0, 0, 0, 0.8);
color: #fff;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
font-size: 13px;
padding: 8px 18px;
border-radius: 30px;
z-index: 2147483648;
opacity: 0;
transition: opacity 0.3s ease;
pointer-events: none;
backdrop-filter: blur(2px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
#iptv-copy-toast.show {
opacity: 1;
}
}