Files
Krystie bdd5ab30fd feat: Add multi-CDN integration for global video delivery
- Create CDN manager with multi-provider support (Bunny, Cloudflare, S3, Backblaze, Wasabi)
- Implement automatic CDN upload and failover system
- Add multi-quality video support (360p-2160p)
- Build quality selector UI with auto-detection
- Track CDN bandwidth usage for cost monitoring
- Implement cache purging API
- Add background CDN upload worker script
- Create comprehensive CDN documentation

Features:
- Multi-CDN support with priority-based failover
- BunnyCDN, Cloudflare R2, AWS S3, Backblaze B2, Wasabi integration
- Multi-quality delivery (adaptive quality selection)
- Auto quality based on connection speed
- User preference persistence
- Bandwidth tracking per provider
- Cache purge API
- Cost optimization strategies
- Production-ready with error handling
2026-03-30 17:45:23 -07:00

83 lines
1.4 KiB
CSS

/**
* Quality Selector Styles
*/
.quality-selector {
position: relative;
display: inline-block;
}
.quality-button {
display: flex;
align-items: center;
gap: 6px;
padding: 8px 12px;
background: rgba(0, 0, 0, 0.6);
color: white;
border: none;
border-radius: 6px;
cursor: pointer;
font-size: 14px;
font-weight: 500;
transition: background 0.2s;
}
.quality-button:hover {
background: rgba(0, 0, 0, 0.8);
}
.quality-button svg {
width: 20px;
height: 20px;
}
.quality-menu {
position: absolute;
bottom: 100%;
right: 0;
margin-bottom: 8px;
background: rgba(28, 28, 28, 0.95);
backdrop-filter: blur(10px);
border-radius: 8px;
padding: 8px 0;
min-width: 120px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
z-index: 1000;
}
.quality-option {
padding: 10px 16px;
color: white;
cursor: pointer;
transition: background 0.2s;
font-size: 14px;
}
.quality-option:hover {
background: rgba(255, 255, 255, 0.1);
}
.quality-option.active {
background: rgba(0, 123, 255, 0.3);
font-weight: 600;
}
.quality-option.active::before {
content: '✓ ';
margin-right: 4px;
}
/* Mobile styles */
@media (max-width: 768px) {
.quality-menu {
position: fixed;
bottom: 60px;
right: 16px;
left: auto;
}
.quality-button {
padding: 10px 14px;
}
}