Redesign video player styling

This commit is contained in:
Mert Uyanık
2025-10-30 04:14:28 +03:00
parent 183cc65455
commit 1113ca891c
11 changed files with 265 additions and 511 deletions
+18 -25
View File
@@ -1,14 +1,6 @@
/* ============================================
CENTER PLAY BUTTON
Clean & Modern Design
============================================ */
.center-play-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
@@ -17,48 +9,49 @@
}
.center-play-button {
width: 72px;
height: 72px;
border-radius: 50%;
width: 68px;
height: 68px;
border-radius: 18px;
background-color: var(--player-primary);
border: none;
cursor: pointer;
color: var(--player-text);
display: flex;
align-items: center;
justify-content: center;
transition: all var(--player-transition-normal) ease;
cursor: pointer;
transition: background-color var(--player-transition-fast) ease,
color var(--player-transition-fast) ease;
pointer-events: all;
outline: none;
}
.center-play-button:hover {
background-color: var(--player-primary-hover);
transform: scale(1.1);
}
.center-play-button:active {
transform: scale(1);
background-color: var(--player-primary-active);
}
.center-play-button:focus-visible {
outline: 2px solid var(--player-primary);
outline: 2px solid var(--player-text);
outline-offset: 4px;
}
.center-play-button svg {
width: 36px;
height: 36px;
margin-left: 3px;
width: 34px;
height: 34px;
margin-left: 2px;
}
@media (max-width: 640px) {
.center-play-button {
width: 60px;
height: 60px;
width: 58px;
height: 58px;
border-radius: 16px;
}
.center-play-button svg {
width: 30px;
height: 30px;
width: 28px;
height: 28px;
}
}
+13 -22
View File
@@ -1,30 +1,26 @@
/* ============================================
CONTROL BUTTON
Clean & Modern Design
============================================ */
.control-button {
background: none;
appearance: none;
background: transparent;
border: none;
color: var(--player-text);
cursor: pointer;
padding: var(--player-spacing-sm);
padding: var(--player-spacing-xs);
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: var(--player-radius-sm);
transition: all var(--player-transition-fast) ease;
position: relative;
outline: none;
transition: color var(--player-transition-fast) ease,
background-color var(--player-transition-fast) ease,
opacity var(--player-transition-fast) ease;
cursor: pointer;
}
.control-button:hover {
background-color: rgba(255, 255, 255, 0.1);
transform: scale(1.05);
.control-button:hover:not(:disabled) {
color: var(--player-primary);
background-color: rgba(255, 255, 255, 0.08);
}
.control-button:active {
transform: scale(0.95);
.control-button:active:not(:disabled) {
color: var(--player-primary-active);
}
.control-button:focus-visible {
@@ -33,15 +29,10 @@
}
.control-button:disabled {
opacity: 0.4;
opacity: 0.45;
cursor: not-allowed;
}
.control-button:disabled:hover {
background-color: transparent;
transform: none;
}
.control-button svg {
width: var(--player-icon-md);
height: var(--player-icon-md);
+21 -25
View File
@@ -1,21 +1,16 @@
/* ============================================
PROGRESS BAR
Clean & Modern Design
============================================ */
.progress-bar {
position: relative;
width: 100%;
height: 20px;
cursor: pointer;
height: 24px;
display: flex;
align-items: center;
cursor: pointer;
}
.progress-track {
position: relative;
width: 100%;
height: 4px;
height: 3px;
background-color: var(--player-progress-bg);
border-radius: var(--player-radius-full);
overflow: hidden;
@@ -29,30 +24,28 @@
.progress-buffered {
position: absolute;
top: 0;
left: 0;
height: 100%;
inset: 0;
width: 0;
background-color: var(--player-progress-buffered);
transition: width 0.1s ease;
transition: width 0.12s ease;
}
.progress-played {
position: absolute;
top: 0;
left: 0;
height: 100%;
inset: 0;
width: 0;
background-color: var(--player-primary);
transition: width 0.1s ease;
display: flex;
align-items: center;
justify-content: flex-end;
transition: width 0.12s ease;
}
.progress-handle {
width: 12px;
height: 12px;
background-color: var(--player-primary);
border-radius: 50%;
background-color: var(--player-primary);
transform: scale(0);
transition: transform var(--player-transition-fast) ease;
margin-right: -6px;
@@ -65,13 +58,15 @@
.progress-tooltip {
position: absolute;
bottom: calc(100% + 10px);
bottom: calc(100% + 8px);
left: 0;
transform: translateX(-50%);
background-color: var(--player-bg-menu);
padding: 4px 10px;
background: var(--player-surface);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
color: var(--player-text);
padding: 6px 12px;
border-radius: var(--player-radius-sm);
font-size: 14px;
font-size: 12px;
font-weight: 500;
white-space: nowrap;
pointer-events: none;
@@ -84,13 +79,14 @@
top: 100%;
left: 50%;
transform: translateX(-50%);
border: 4px solid transparent;
border-top-color: var(--player-bg-menu);
border-width: 5px;
border-style: solid;
border-color: var(--player-surface) transparent transparent transparent;
}
@media (max-width: 640px) {
.progress-bar {
height: 24px;
height: 22px;
}
.progress-track {
+3 -10
View File
@@ -1,23 +1,16 @@
/* ============================================
TIME DISPLAY
Clean & Modern Design
============================================ */
.time-display {
display: flex;
align-items: center;
gap: 4px;
color: var(--player-text);
font-size: 14px;
font-size: 13px;
font-weight: 500;
font-variant-numeric: tabular-nums;
letter-spacing: 0.01em;
user-select: none;
}
.time-separator {
color: var(--player-text-secondary);
}
.time-separator,
.time-duration {
color: var(--player-text-secondary);
}
+33 -52
View File
@@ -1,102 +1,83 @@
/* ============================================
VOLUME CONTROL
Clean & Modern Design
============================================ */
.volume-control {
display: flex;
align-items: center;
gap: var(--player-spacing-sm);
gap: var(--player-spacing-xs);
position: relative;
}
.volume-slider-container {
position: relative;
width: 0;
height: 5px;
height: 4px;
background-color: var(--player-progress-bg);
border-radius: var(--player-radius-full);
overflow: visible;
transition: width var(--player-transition-normal) ease, opacity var(--player-transition-normal) ease;
overflow: hidden;
opacity: 0;
transition: width var(--player-transition-normal) ease,
opacity var(--player-transition-normal) ease;
}
.volume-slider-container.visible {
width: 90px;
width: 88px;
opacity: 1;
}
.volume-slider {
position: absolute;
top: 50%;
left: 0;
inset: 0;
width: 100%;
height: 100%;
transform: translateY(-50%);
-webkit-appearance: none;
appearance: none;
background: transparent;
cursor: pointer;
z-index: 2;
}
.volume-slider:focus-visible {
outline: 2px solid var(--player-primary);
outline-offset: 2px;
border-radius: var(--player-radius-sm);
}
.volume-slider::-webkit-slider-runnable-track {
height: 100%;
background: transparent;
}
.volume-slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 14px;
height: 14px;
width: 12px;
height: 12px;
border-radius: 50%;
background-color: var(--player-primary);
cursor: pointer;
transition: transform var(--player-transition-fast) ease;
border: none;
margin-top: -4px;
}
.volume-slider::-webkit-slider-thumb:hover {
transform: scale(1.15);
.volume-slider::-moz-range-track {
height: 100%;
background: transparent;
}
.volume-slider::-moz-range-thumb {
width: 14px;
height: 14px;
border: none;
width: 12px;
height: 12px;
border-radius: 50%;
background-color: var(--player-primary);
cursor: pointer;
transition: transform var(--player-transition-fast) ease;
}
.volume-slider::-moz-range-thumb:hover {
transform: scale(1.15);
}
.volume-slider:focus {
outline: none;
}
.volume-slider:focus-visible::-webkit-slider-thumb {
outline: 2px solid var(--player-primary);
outline-offset: 2px;
}
.volume-slider:focus-visible::-moz-range-thumb {
outline: 2px solid var(--player-primary);
outline-offset: 2px;
border: none;
}
.volume-slider-fill {
position: absolute;
top: 0;
left: 0;
height: 100%;
inset: 0;
width: 0;
background: var(--player-primary);
pointer-events: none;
transition: width 0.1s ease;
z-index: 1;
border-radius: var(--player-radius-full);
pointer-events: none;
transition: width 0.12s ease;
}
@media (max-width: 640px) {
.volume-slider-container.visible {
width: 70px;
width: 72px;
}
}