body { transition: background-color 0.5s ease, color 0.5s ease; } /* FOR REFERENCE:: body[data-active-scroll-step="1"] header { opacity: 1; } body[data-active-scroll-step="2"] header { opacity: 0.5; } body[data-active-scroll-step="3"] header { transform: translateY(-100%); transition: transform 0.3s ease; }*/ body[data-active-scroll-step="1"] { background-color: #1a1a1a; color: #eee; } body[data-active-scroll-step="2"] { background-color: #000; color: #f0f0f0; } body[data-active-scroll-step="3"] { background-color: #2c1c59; color: #fff; } body[data-active-scroll-step="1"] { /* z.B. Schriftart, Hintergrund etc. */ cursor: s-resize; } body[data-active-scroll-step="2"] { background-color: #1a1a1a; } [data-scroll-step] { opacity: 0; transform: translateY(2rem); transition: opacity 0.6s ease, transform 0.6s ease; will-change: opacity, transform; } body { opacity: 1; } /* Aktivierte Scroll-Section */ [data-scroll-step].active { opacity: 1; transform: translateY(0); } [data-scroll-step].active { border-left: 4px solid var(--accent-color, #6c4dff); background-color: rgba(255, 255, 255, 0.02); } /* Basis-Stil für Sticky Steps */ [data-sticky-step] { position: sticky; top: 20vh; margin: 2rem 0; padding: 2rem; background: #1e1e1e; border-radius: 0.5rem; opacity: 0.4; transition: opacity 0.3s ease, transform 0.3s ease; } [data-sticky-step].is-sticky-active { opacity: 1; transform: scale(1.02); box-shadow: 0 0 1rem rgba(255, 255, 255, 0.05); } /* Beispielhafte visuelle Steuerung per container-Datensatz */ [data-sticky-container][data-active-sticky-step="0"] [data-sticky-step]:nth-child(1), [data-sticky-container][data-active-sticky-step="1"] [data-sticky-step]:nth-child(2), [data-sticky-container][data-active-sticky-step="2"] [data-sticky-step]:nth-child(3) { border-left: 4px solid var(--accent-color, #6c4dff); background: linear-gradient(to right, rgba(108, 77, 255, 0.1), transparent); } /* Optional: sanfte Farbübergänge */ [data-sticky-step] { transition: opacity 0.3s ease, transform 0.3s ease, background 0.4s ease; } /* Sticky Container zur Sicherheit sichtbar machen */ [data-sticky-container] { position: relative; z-index: 0; height: 300vh; padding: 2rem; } /* Scroll LOOPS */ .loop-container { overflow: hidden; position: relative; height: 200px; } .loop-content { display: flex; flex-direction: column; } /* Basisstil für scroll-loop-Elemente */ [data-scroll-loop] { will-change: transform; display: inline-block; backface-visibility: hidden; transform-style: preserve-3d; } /* Empfohlene Containerstruktur */ .scroll-loop-container { overflow: hidden; position: relative; height: 200px; /* anpassen je nach Bedarf */ } /* Optional für automatische Verdopplung */ .scroll-loop-container > [data-scroll-loop] { display: flex; flex-direction: column; } /* Für Background-Loop */ [data-scroll-type="background"] { background-repeat: repeat; background-size: auto 100%; } /* Pausieren bei Hover oder Aktivierung */ [data-scroll-loop][data-loop-pause="true"]:hover, [data-scroll-loop][data-loop-pause="true"]:active { animation-play-state: paused; } /* SCROLL_FADE */ /* Optionaler Grundstil für sticky-fade Elemente */ /* Basisstil für sticky-fade Elemente */ [data-sticky-fade] { opacity: 0; transform: translateY(20px); transition-property: opacity, transform; transition-duration: 0.4s; transition-timing-function: ease-out; will-change: opacity, transform; pointer-events: auto; } [data-sticky-fade][data-fade-distance="10"] { transform: translateY(10px); } [data-sticky-fade][data-fade-distance="30"] { transform: translateY(30px); } [data-sticky-fade][data-fade-distance="40"] { transform: translateY(40px); } [data-sticky-fade][data-fade-duration="fast"] { transition-duration: 0.2s; } [data-sticky-fade][data-fade-duration="slow"] { transition-duration: 0.8s; } [data-sticky-fade].visible { opacity: 1; transform: translateY(0); box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.1); filter: brightness(1.05); transition-property: opacity, transform, box-shadow; transition-timing-function: ease; }