Files
Masterarbeit-Obsidian-Vault/.obsidian/plugins/media-slider/styles.css
Simon Lübeß 365f1831f8 Notizen und so
2026-01-08 15:39:38 +01:00

1079 lines
19 KiB
CSS

.media-slider-wrapper {
position: relative;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
margin-top: 10px;
}
.flex-row {
flex-direction: row;
}
/* Container for media and caption */
.slider-content {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
position: relative;
}
/* Media slider styling */
.slider-container {
position: relative;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
background: transparent;
transition: all var(--transition-duration, 500ms) ease-in-out;
width: var(--slider-width, 100%);
height: var(--slider-height, 360px);
opacity: 1;
border-radius: 4px;
}
.slider-media {
max-width: 100%;
max-height: 100%;
border-radius: 4px;
}
img.slider-media {
width: 100%;
/* top: 50%; */
position: relative;
transform: translateY(-50%);
}
.media-wrapper {
margin: auto 0;
height: 100%;
overflow: auto;
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE 10+ */
}
.media-wrapper:has(img.slider-media) {
display: flex;
align-items: center;
justify-content: center;
}
.media-wrapper:has(.audio-container) {
display: flex;
align-items: center;
justify-content: center;
}
.media-wrapper:has(.pdf-container) {
display: flex;
align-items: center;
justify-content: center;
}
.media-wrapper > :not(img):not(.audio-container):not(.pdf-container) {
display: block;
width: 100%;
text-align: center;
}
.media-wrapper::-webkit-scrollbar {
display: none;
}
.slider-caption-container {
width: 100%;
text-align: center;
margin-top: 5px;
}
.slider-caption {
color: #fff;
font-size: 0.9em;
}
/* Overlay caption styling */
.slider-caption-overlay {
position: absolute;
bottom: 0px;
width: 100%;
background: rgba(0, 0, 0, 0.5);
color: #fff;
text-align: center;
font-size: 0.9em;
padding: 5px;
right: 0;
border-radius: 5px;
}
/* Horizontal thumbnail container */
.thumbnail-container.horizontal {
display: flex;
flex-direction: row;
overflow-x: auto;
white-space: nowrap;
width: 100%;
margin: 10px 0;
/* CSS hints to improve performance */
will-change: transform;
contain: layout paint;
}
/* Vertical thumbnail container */
.thumbnail-container.vertical {
display: flex;
flex-direction: column;
overflow-y: auto;
margin: 10px 0;
min-width: 95px;
}
/* Thumbnail styling */
.thumbnail {
width: 98px;
height: 70px;
object-fit: cover;
cursor: pointer;
border: 3px solid transparent;
border-radius: 5px;
transition: border-color 0.1s;
}
.thumbnail:hover {
border-color: blue;
border-radius: 8px;
}
/* Increased size for vertical thumbnails */
.vertical-thumb {
height: 70px;
width: 98px;
min-height: 70px;
min-width: 98px;
}
/* Active thumbnail style */
.active-thumbnail {
border: 3px solid #FF4081 !important;
border-radius: 8px;
}
/* Placeholder for non-image thumbnails */
.thumbnail-placeholder {
width: 98px;
height: 68px;
min-width: 98px;
display: flex;
justify-content: space-around;
align-items: center;
background: #343434;
color: #ebebeb;
font-weight: bold;
border: 2px solid transparent;
border-radius: 5px;
font-size: 0.8em;
cursor: pointer;
margin: auto 4px;
overflow: hidden;
}
.vertical-thumbnail-container {
max-width: 92px;
}
/* Thin scrollbar styling for thumbnails */
.thumbnail-container::-webkit-scrollbar {
height: 3px;
width: 6px;
}
.thumbnail-container::-webkit-scrollbar-track {
background: transparent;
}
.thumbnail-container::-webkit-scrollbar-thumb {
background: rgba(0,0,0,0.5);
border-radius: 3px;
}
.fullscreen_style {
height: 85vh;
}
/* Drawing Annotation Styles */
.drawing-canvas {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
pointer-events: auto;
}
.drawing-toolbar {
display: flex;
align-items: center;
gap: 4px;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 4px;
padding: 4px;
z-index: 20;
position: absolute;
top: 5px;
left: 50%;
transform: translateX(-50%);
}
.drawing-dropdown {
display: flex;
align-items: center;
position: relative;
}
.drawing-dropdown summary {
list-style: none;
outline: none;
border: none;
background: none;
padding: 0;
margin: 0;
display: flex;
align-items: center;
cursor: pointer;
}
.drawing-dropdown[open] summary {
/* Optional: highlight when open */
background: rgba(0,0,0,0.7);
}
.drawing-linewidth-input,
.drawing-size-slider {
height: 24px;
width: 36px;
font-size: 14px;
margin: 0 2px;
box-sizing: border-box;
border-radius: 4px;
border: 1px solid #444;
background: #fff;
color: #222;
text-align: center;
vertical-align: middle;
}
.drawing-size-slider {
width: 60px;
accent-color: #ff4081;
margin-left: 4px;
margin-right: 2px;
}
.drawing-color-input {
width: 28px;
height: 28px;
padding: 0;
border: none;
background: none;
margin: 0 2px;
vertical-align: middle;
}
/* Visualizer Styles */
.visualizer-canvas {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: var(--visualizer-height, 80px);
pointer-events: none;
z-index: 100;
}
/* Media Slider Styles */
.media-slider-wrapper {
position: relative;
}
.flex-row {
display: flex;
flex-direction: row;
}
.flex-column {
display: flex;
flex-direction: column;
}
.center {
align-items: center;
justify-content: center;
}
.slider-content {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
width: var(--slider-width, 100%);
}
/* Thumbnail Styles */
.thumbnail-container.horizontal {
width: var(--thumbnail-width, 100%);
overflow-x: auto;
white-space: nowrap;
margin: 10px 0;
}
.thumbnail-container.vertical {
height: var(--thumbnail-height, 300px);
overflow-y: auto;
}
.thumbnail {
cursor: pointer;
}
.notes-container {
position: absolute;
bottom: 10px;
left: 10px;
width: calc(100% - 20px);
background: rgba(255, 255, 255, 0.8);
padding: 5px;
display: none;
}
.notes-container.visible {
display: block;
}
.notes-textarea {
width: 100%;
height: 60px;
}
/* Drawing Overlay */
.drawing-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
/* Transition Effects */
/* The transition duration is set via the CSS variable --transition-duration */
.transition-fade-out {
opacity: 0;
transition: opacity var(--transition-duration, 300ms) ease-in-out;
}
.transition-fade-in {
opacity: 1;
transition: opacity var(--transition-duration, 300ms) ease-in-out;
}
.transition-slide-next-out {
transform: translateX(-100%);
transition: transform var(--transition-duration, 300ms) ease-in-out;
}
.transition-slide-prev-out {
transform: translateX(100%);
transition: transform var(--transition-duration, 300ms) ease-in-out;
}
.transition-slide-next-in,
.transition-slide-prev-in {
transform: translateX(0);
transition: transform var(--transition-duration, 300ms) ease-in-out;
}
.transition-zoom-out {
transform: scale(0.5);
opacity: 0;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-zoom-in {
transform: scale(1);
opacity: 1;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-slide-up-out {
transform: translateY(100%);
transition: transform var(--transition-duration, 300ms) ease-in-out;
}
.transition-slide-up-in {
transform: translateY(0);
transition: transform var(--transition-duration, 300ms) ease-in-out;
}
.transition-slide-down-out {
transform: translateY(-100%);
transition: transform var(--transition-duration, 300ms) ease-in-out;
}
.transition-slide-down-in {
transform: translateY(0);
transition: transform var(--transition-duration, 300ms) ease-in-out;
}
.transition-flip-out {
transform: perspective(400px) rotateY(90deg);
opacity: 0;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-flip-in {
transform: perspective(400px) rotateY(0);
opacity: 1;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-flip-vertical-out {
transform: perspective(400px) rotateX(90deg);
opacity: 0;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-flip-vertical-in {
transform: perspective(400px) rotateX(0);
opacity: 1;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-rotate-out {
transform: rotate(180deg) scale(0.5);
opacity: 0;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-rotate-in {
transform: rotate(0) scale(1);
opacity: 1;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-blur-out {
filter: blur(20px);
opacity: 0;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-blur-in {
filter: blur(0);
opacity: 1;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-squeeze-out {
transform: scaleX(0);
opacity: 0;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
.transition-squeeze-in {
transform: scaleX(1);
opacity: 1;
transition: all var(--transition-duration, 300ms) ease-in-out;
}
/* Active Thumbnail */
.active-thumbnail {
border: 2px solid #00ff00;
}
.slider-content {
width: 100%;
}
.thumbnail-container.horizontal {
width: 100%;
}
.thumbnail-container.vertical {
height: 300px; /* default height for vertical thumbnails */
}
.fullscreen-slider {
height: 85vh;
}
.notes-container {
position: absolute;
bottom: 10px;
left: 10px;
width: calc(100% - 20px);
background: rgba(56, 56, 56, 0.8);
padding: 5px;
display: none;
}
audio.slider-media.audio-media {
width: 88%;
visibility: visible !important;
display: block !important;
margin: 0 auto;
min-height: 40px;
max-height: 50px;
margin-bottom: 90px;
}
.media-wrapper:has(audio) {
width: 88%;
display: flex;
align-items: center;
justify-content: center;
}
.pdf-container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
}
.pdf-media {
width: 100%;
height: 100%;
border: none;
overflow: hidden;
}
.media-wrapper:has(.pdf-container) {
width: 100%;
height: 100%;
padding: 0;
}
.drawing-canvas {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
pointer-events: auto;
}
.drawing-toolbar {
position: absolute;
top: 5px;
left: 50%;
transform: translateX(-50%);
background-color: rgba(0, 0, 0, 0.5);
border-radius: 4px;
padding: 4px;
display: flex;
gap: 4px;
z-index: 20;
}
.drawing-dropdown {
position: relative;
display: inline-block;
font-size: 14px;
background: rgba(0, 0, 0, 0.5);
border: none;
border-radius: 4px;
}
.drawing-dropdown-summary {
list-style: none;
cursor: pointer;
background: transparent;
color: #fff;
outline: none;
}
/* Base styling for the visualizer canvas */
.visualizer-canvas {
display: block;
width: 100%;
/* Default height if no specific height modifier is added */
height: 100px;
}
/* Height modifier classes for specific canvas heights */
.visualizer-canvas.visualizer-height-80 {
height: 80px;
}
.visualizer-canvas.visualizer-height-100 {
height: 100px;
}
.visualizer-canvas.visualizer-height-120 {
height: 120px;
}
/* Zoom and pan controls */
.zoom-controls {
position: absolute;
bottom: 10px;
right: 40px;
z-index: 100;
display: flex;
gap: 5px;
transition: opacity 0.3s ease;
}
/* Cursor styles for different zoom states */
.can-zoom {
cursor: zoom-in;
}
.can-zoom.zoomed {
cursor: grab;
}
.can-zoom.zoomed:active {
cursor: grabbing;
}
/* Image transform styling */
.img-transformed {
transition: transform 0.2s ease-out;
transform-origin: center;
}
.img-transformed.dragging {
transition: none;
}
/* Compare Mode Styles */
.media-wrapper:has(.media-slider-compare-container) {
display: flex;
align-items: center;
justify-content: center;
}
.media-slider-compare-container {
position: absolute;
width: 100%;
height: 100%;
overflow: hidden;
inset: 0;
}
.compare-image-container {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
}
.compare-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: contain;
}
.compare-image-1 {
z-index: 2;
}
.compare-vertical .compare-image-1 {
clip-path: inset(0 calc(100% - var(--compare-position)) 0 0);
}
.compare-horizontal .compare-image-1 {
clip-path: inset(0 0 calc(100% - var(--compare-position)) 0);
}
.compare-image-2 {
z-index: 1;
}
.compare-slider-handle {
position: absolute;
z-index: 3;
background-color: rgba(255,255,255,0.7);
box-shadow: 0 0 5px rgba(0,0,0,0.5);
}
.compare-vertical .compare-slider-handle {
top: 0;
bottom: 0;
width: 1px;
margin-left: -2px;
left: var(--compare-position);
cursor: ew-resize;
}
.compare-horizontal .compare-slider-handle {
left: 0;
right: 0;
height: 4px;
margin-top: -2px;
top: var(--compare-position);
cursor: ns-resize;
}
.compare-slider-line {
position: absolute;
background-color: rgba(255,255,255,0.9);
}
.compare-vertical .compare-slider-line {
width: 2px;
height: 100%;
left: 1px;
}
.compare-horizontal .compare-slider-line {
height: 2px;
width: 100%;
top: 1px;
}
.compare-label {
position: absolute;
background-color: rgba(0,0,0,0.6);
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
z-index: 4;
}
.compare-vertical .compare-label-1 {
top: 10px;
transform: translateX(-50%);
left: calc(var(--compare-position) / 2);
}
.compare-vertical .compare-label-2 {
top: 10px;
transform: translateX(-50%);
left: calc(var(--compare-position) + ((100% - var(--compare-position)) / 2));
}
.compare-horizontal .compare-label-1 {
left: 10px;
transform: translateY(-50%);
top: calc(var(--compare-position) / 2);
}
.compare-horizontal .compare-label-2 {
left: 10px;
transform: translateY(-50%);
top: calc(var(--compare-position) + ((100% - var(--compare-position)) / 2));
}
.compare-caption-container {
margin-top: 10px;
display: flex;
justify-content: space-around;
}
.compare-caption {
padding: 5px;
font-size: 12px;
text-align: center;
max-width: 45%;
}
/* Thumbnail styles for compare mode */
.compare-thumbnail {
width: 98px;
height: 70px;
min-width: 98px;
min-height: 70px;
margin: auto 4px;
}
.compare-thumb-container {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
cursor: pointer;
border-radius: 5px;
transition: border-color 0.1s;
}
.compare-thumb-left {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.compare-thumb-right {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
/* Vertical orientation thumbnails */
.compare-vertical .compare-thumb-left {
clip-path: inset(0 50% 0 0);
}
.compare-vertical .compare-thumb-right {
clip-path: inset(0 0 0 50%);
}
.compare-vertical .compare-thumb-divider {
position: absolute;
top: 0;
bottom: 0;
left: 50%;
width: 2px;
background-color: rgba(255,255,255,0.8);
z-index: 2;
}
/* Horizontal orientation thumbnails */
.compare-horizontal .compare-thumb-left {
clip-path: inset(0 0 50% 0);
}
.compare-horizontal .compare-thumb-right {
clip-path: inset(50% 0 0 0);
}
.compare-horizontal .compare-thumb-divider {
position: absolute;
left: 0;
right: 0;
top: 50%;
height: 2px;
background-color: rgba(255,255,255,0.8);
z-index: 2;
}
.compare-thumb-icon {
position: absolute;
bottom: 2px;
background-color: rgba(0,0,0,0.6);
color: white;
padding:1px 2px;
border-radius: 2px;
font-size: 8px;
z-index: 3;
}
/* Active thumbnail */
.active-thumbnail.compare-thumbnail {
border: 2px solid rgba(255, 255, 255, 0.9);
}
/* Make YouTube iframes responsive in the slider */
.slider-media iframe {
width: 100% !important;
height: 100% !important;
display: block;
aspect-ratio: 16/9;
border: none;
background: #000;
}
.slider-media {
width: 100% !important;
height: 100% !important;
display: flex;
align-items: center;
justify-content: center;
}
.media-wrapper {
width: 100% !important;
height: 100% !important;
display: flex;
align-items: center;
justify-content: center;
}
.drawing-size-slider {
width: 60px;
margin: 0 8px;
vertical-align: middle;
accent-color: #ff4081; /* or your theme color */
height: 24px;
}
.media-wrapper.markdown-content {
display: block !important;
padding: 0 8px;
}
.slider-media img, img.slider-media {
width: 100%;
height: 100%;
object-fit: contain;
max-width: 100%;
max-height: 100%;
display: block;
border-radius: 4px;
}
.slider-media img, img.slider-media {
max-width: 100%;
max-height: 100%;
}
.media-wrapper {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
/* --- Unified Icon Button Styles (Smaller) --- */
.slider-btn,
.fullscreen-btn,
.copy-btn,
.notes-toggle-btn,
.notes-save-btn,
.drawing-toggle-btn,
.clear-drawing-btn {
position: absolute;
z-index: 110;
background: rgba(0, 0, 0, 0.5);
color: #fff;
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
border-radius: 5px;
min-width: 30px;
min-height: 30px;
width: 30px;
height: 30px;
opacity: 0.7;
overflow: hidden;
box-sizing: border-box;
font-size: 0;
}
.zoom-btn {
background: rgba(0, 0, 0, 0.5);
color: #fff;
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
border-radius: 5px;
min-width: 30px;
min-height: 30px;
width: 30px;
height: 30px;
opacity: 0.7;
overflow: hidden;
box-sizing: border-box;
font-size: 0;
margin: 0 2px;
}
.slider-btn svg,
.fullscreen-btn svg,
.copy-btn svg,
.notes-toggle-btn svg,
.notes-save-btn svg,
.drawing-toggle-btn svg,
.clear-drawing-btn svg,
.zoom-btn svg {
width: 18px;
height: 18px;
max-width: 100%;
max-height: 100%;
display: block;
margin: auto;
pointer-events: none;
stroke-width: 2px;
}
.drawing-btn,
.drawing-dropdown-summary,
.geom-summary-btn {
width: 22px;
height: 22px;
min-width: 22px;
min-height: 22px;
max-width: 22px;
max-height: 22px;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0,0,0,0.5);
color: #fff;
border: none;
border-radius: 4px;
margin: 0 1px;
box-sizing: border-box;
font-size: 0;
}
.drawing-btn svg {
width: 16px;
height: 16px;
display: block;
margin: auto;
}
.slider-btn:hover,
.fullscreen-btn:hover,
.copy-btn:hover,
.notes-toggle-btn:hover,
.drawing-toggle-btn:hover,
.clear-drawing-btn:hover,
.zoom-btn:hover {
opacity: 1;
background: rgba(0, 0, 0, 0.7);
}
/* --- Button Positioning --- */
.fullscreen-btn { top: 10px; right: 40px; }
.copy-btn { top: 10px; right: 74px; }
.notes-toggle-btn { top: 10px; left: 10px; }
.drawing-toggle-btn { top: 10px; left: 44px; }
.clear-drawing-btn { top: 10px; left: 78px; }
.slider-btn.prev { top: 50%; left: 10px; transform: translateY(-50%); }
.slider-btn.next { top: 50%; right: 10px; transform: translateY(-50%); }