Initial commit: modern React video player library
Add all source files for a feature-rich, reusable video player built with React, TypeScript, and Vite. Includes core components, context, hooks, utilities, styles, demo app, and configuration files.
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
:root {
|
||||
/* Colors - Red Theme */
|
||||
--player-primary: #ef4444;
|
||||
--player-primary-hover: #dc2626;
|
||||
--player-primary-active: #b91c1c;
|
||||
--player-primary-light: rgba(239, 68, 68, 0.2);
|
||||
|
||||
/* Background Colors */
|
||||
--player-bg: #000000;
|
||||
--player-bg-controls: rgba(0, 0, 0, 0.85);
|
||||
--player-bg-overlay: rgba(0, 0, 0, 0.6);
|
||||
--player-bg-menu: rgba(20, 20, 20, 0.95);
|
||||
|
||||
/* Text Colors */
|
||||
--player-text: #ffffff;
|
||||
--player-text-secondary: #d1d5db;
|
||||
--player-text-muted: #9ca3af;
|
||||
|
||||
/* Border & Divider */
|
||||
--player-border: #374151;
|
||||
--player-divider: rgba(255, 255, 255, 0.1);
|
||||
|
||||
/* Buffered & Progress */
|
||||
--player-buffered: rgba(239, 68, 68, 0.3);
|
||||
--player-progress-bg: rgba(255, 255, 255, 0.3);
|
||||
|
||||
/* Shadows */
|
||||
--player-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
||||
--player-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
||||
--player-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
|
||||
|
||||
/* Transitions */
|
||||
--player-transition-fast: 150ms;
|
||||
--player-transition-normal: 250ms;
|
||||
--player-transition-slow: 400ms;
|
||||
|
||||
/* Z-index */
|
||||
--player-z-video: 1;
|
||||
--player-z-subtitle: 10;
|
||||
--player-z-controls: 20;
|
||||
--player-z-menu: 30;
|
||||
--player-z-loading: 40;
|
||||
|
||||
/* Spacing */
|
||||
--player-spacing-xs: 6px;
|
||||
--player-spacing-sm: 10px;
|
||||
--player-spacing-md: 14px;
|
||||
--player-spacing-lg: 20px;
|
||||
--player-spacing-xl: 28px;
|
||||
|
||||
/* Border Radius */
|
||||
--player-radius-sm: 4px;
|
||||
--player-radius-md: 6px;
|
||||
--player-radius-lg: 8px;
|
||||
--player-radius-full: 9999px;
|
||||
|
||||
/* Icon Sizes */
|
||||
--player-icon-sm: 20px;
|
||||
--player-icon-md: 28px;
|
||||
--player-icon-lg: 36px;
|
||||
--player-icon-xl: 56px;
|
||||
}
|
||||
|
||||
/* Animations */
|
||||
@keyframes spin {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeOut {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideUp {
|
||||
from {
|
||||
transform: translateY(20px);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideDown {
|
||||
from {
|
||||
transform: translateY(-20px);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user