* Update .gitignore * feat: Improve Visual Distinction Between Trim and Chapters Editors * fix: Convert timeline header styles to CSS classes Moved inline styles for timeline headers in chapters and video editors to dedicated CSS classes for better maintainability and consistency. * Bump version to 7.3.0 Update the VERSION in cms/version.py to 7.3.0 for the new release. * build assets * Update segment color schemes in video and chapters editor. * build assets * build assets * fix: Prevent Safari from resetting segments after drag operations Prevent Safari from resetting segments when loadedmetadata fires multiple times and fix stale state issues in click handlers by using refs instead of closure variables. * build assets * Bump version to 7.3.0-beta.3 Update the VERSION string in cms/version.py to reflect the new pre-release version 7.3.0-beta.3.
307 lines
6.0 KiB
CSS
307 lines
6.0 KiB
CSS
#chapters-editor-root {
|
|
.modal-overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 1000;
|
|
}
|
|
|
|
.modal-container {
|
|
background-color: white;
|
|
border-radius: 8px;
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
width: 90%;
|
|
max-width: 500px;
|
|
max-height: 90vh;
|
|
overflow-y: auto;
|
|
animation: modal-fade-in 0.3s ease-out;
|
|
}
|
|
|
|
@keyframes modal-fade-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(-20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.modal-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 16px 20px;
|
|
border-bottom: 1px solid #eee;
|
|
}
|
|
|
|
.modal-title {
|
|
margin: 0;
|
|
font-size: 1.25rem;
|
|
font-weight: 600;
|
|
color: #333;
|
|
}
|
|
|
|
.modal-close-button {
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
color: #666;
|
|
padding: 4px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: color 0.2s;
|
|
}
|
|
|
|
.modal-close-button:hover {
|
|
color: #000;
|
|
}
|
|
|
|
.modal-content {
|
|
padding: 20px;
|
|
color: #333;
|
|
font-size: 1rem;
|
|
line-height: 1.5;
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.modal-actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
padding: 16px 20px;
|
|
border-top: 1px solid #eee;
|
|
gap: 12px;
|
|
}
|
|
|
|
.modal-button {
|
|
padding: 8px 16px;
|
|
border-radius: 4px;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
border: none;
|
|
}
|
|
|
|
.modal-button-primary {
|
|
background-color: #059669;
|
|
color: white;
|
|
}
|
|
|
|
.modal-button-primary:hover {
|
|
background-color: #059669;
|
|
}
|
|
|
|
.modal-button-secondary {
|
|
background-color: #f0f0f0;
|
|
color: #333;
|
|
}
|
|
|
|
.modal-button-secondary:hover {
|
|
background-color: #e0e0e0;
|
|
}
|
|
|
|
.modal-button-danger {
|
|
background-color: #dc3545;
|
|
color: white;
|
|
}
|
|
|
|
.modal-button-danger:hover {
|
|
background-color: #bd2130;
|
|
}
|
|
|
|
/* Modal content styles */
|
|
.modal-message {
|
|
margin-bottom: 16px;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.text-center {
|
|
text-align: center;
|
|
}
|
|
|
|
.modal-spinner {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin: 20px 0;
|
|
}
|
|
|
|
.spinner {
|
|
border: 4px solid rgba(0, 0, 0, 0.1);
|
|
border-radius: 50%;
|
|
border-top: 4px solid #059669;
|
|
width: 30px;
|
|
height: 30px;
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.modal-success-icon {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-bottom: 16px;
|
|
color: #28a745;
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.modal-success-icon svg {
|
|
width: 60px;
|
|
height: 60px;
|
|
color: #4caf50;
|
|
animation: success-pop 0.5s ease-out;
|
|
}
|
|
|
|
@keyframes success-pop {
|
|
0% {
|
|
transform: scale(0);
|
|
opacity: 0;
|
|
}
|
|
70% {
|
|
transform: scale(1.1);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.modal-error-icon {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-bottom: 16px;
|
|
color: #dc3545;
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.modal-error-icon svg {
|
|
width: 60px;
|
|
height: 60px;
|
|
color: #f44336;
|
|
animation: error-pop 0.5s ease-out;
|
|
}
|
|
|
|
@keyframes error-pop {
|
|
0% {
|
|
transform: scale(0);
|
|
opacity: 0;
|
|
}
|
|
70% {
|
|
transform: scale(1.1);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.modal-choices {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.modal-choice-button {
|
|
padding: 12px 16px;
|
|
border: none;
|
|
border-radius: 4px;
|
|
background-color: #059669;
|
|
text-align: center;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-weight: 500;
|
|
text-decoration: none;
|
|
color: white;
|
|
}
|
|
|
|
.modal-choice-button:hover {
|
|
background-color: #0055aa;
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.modal-choice-button svg {
|
|
margin-right: 8px;
|
|
}
|
|
|
|
.success-link {
|
|
background-color: #4caf50;
|
|
}
|
|
|
|
.success-link:hover {
|
|
background-color: #3d8b40;
|
|
}
|
|
|
|
.centered-choice {
|
|
margin: 0 auto;
|
|
width: auto;
|
|
min-width: 220px;
|
|
background-color: #059669;
|
|
color: white;
|
|
}
|
|
|
|
.centered-choice:hover {
|
|
background-color: #059669;
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.modal-container {
|
|
width: 95%;
|
|
}
|
|
|
|
.modal-actions {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.modal-button {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.error-message {
|
|
color: #f44336;
|
|
font-weight: 500;
|
|
background-color: rgba(244, 67, 54, 0.1);
|
|
padding: 10px;
|
|
border-radius: 4px;
|
|
border-left: 4px solid #f44336;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.redirect-message {
|
|
margin-top: 20px;
|
|
color: #555;
|
|
font-size: 0.95rem;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.countdown {
|
|
font-weight: bold;
|
|
color: #059669;
|
|
font-size: 1.1rem;
|
|
}
|
|
}
|