<!DOCTYPE html>





Превью CSS-классов анимации</title>


*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root {
–w-gold:  #C9A96E;
–w-rose:  #C0755A;
–w-ivory: #FAF7F2;
–w-ink:   #2E2118;
}

body { background: #F5EFE6; font-family: ‘Tenor Sans’, sans-serif; color: var(–w-ink); }

/* ── Layout ── */
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 3px;
padding: 3px;
}

.card {
background: var(–w-ivory);
padding: 3rem 2.5rem;
display: flex;
flex-direction: column;
gap: 1.5rem;
min-height: 220px;
position: relative;
overflow: hidden;
}
.card–dark { background: var(–w-ink); }
.card–parch { background: #F2EBE0; }

.card__tag {
font-size: 0.55rem;
letter-spacing: 0.45em;
text-transform: uppercase;
color: #B5967F;
position: absolute;
top: 1.2rem; left: 1.5rem;
}
.card__tag–light { color: rgba(201,169,110,0.5); }

.card__class {
font-size: 0.65rem;
letter-spacing: 0.1em;
color: var(–w-rose);
font-family: ‘Courier New’, monospace;
background: rgba(192,117,90,0.08);
padding: 0.2em 0.5em;
border-radius: 2px;
align-self: flex-start;
}
.card__class–dark { color: var(–w-gold); background: rgba(201,169,110,0.1); }

.demo { display: flex; flex-direction: column; gap: 0.5rem; align-items: flex-start; }

.header {
background: var(–w-ink);
padding: 4rem 3rem 3rem;
text-align: center;
grid-column: 1/-1;
}
.header h1 {
font-family: ‘Cormorant Garamond’, serif;
font-weight: 300;
font-size: clamp(2rem, 5vw, 3.5rem);
color: var(–w-ivory);
letter-spacing: 0.05em;
margin-bottom: 1rem;
}
.header p {
font-size: 0.7rem;
letter-spacing: 0.35em;
text-transform: uppercase;
color: rgba(201,169,110,0.6);
}

/* ═══ ALL ANIMATION CLASSES ═══ */
.delay-1 { animation-delay: 0.2s !important; }
.delay-2 { animation-delay: 0.4s !important; }
.delay-3 { animation-delay: 0.7s !important; }
.delay-4 { animation-delay: 1s   !important; }
.delay-5 { animation-delay: 1.4s !important; }
.speed-slow   { animation-duration: 2s   !important; }
.speed-fast   { animation-duration: 0.5s !important; }

.anim-feather { opacity:0; transform:translateY(28px); filter:blur(8px); animation:w-feather 1.4s cubic-bezier(0.22,1,0.36,1) forwards; }
@keyframes w-feather { to { opacity:1; transform:translateY(0); filter:blur(0); } }

.anim-fade-up { opacity:0; transform:translateY(22px); animation:w-fade-up 1s cubic-bezier(0.16,1,0.3,1) forwards; }
@keyframes w-fade-up { to { opacity:1; transform:translateY(0); } }

.anim-fade-in { opacity:0; animation:w-fade-in 1.2s ease forwards; }
@keyframes w-fade-in { to { opacity:1; } }

.anim-wipe-gold { position:relative; display:inline-block; overflow:hidden; }
.anim-wipe-gold::before { content:’’; position:absolute; inset:0; background:var(–w-gold); transform-origin:left; animation:w-wipe 1.2s cubic-bezier(0.77,0,0.18,1) forwards; z-index:1; }
@keyframes w-wipe { 0%{transform:scaleX(1);transform-origin:left} 50%{transform:scaleX(1);transform-origin:left} 51%{transform-origin:right} 100%{transform:scaleX(0);transform-origin:right} }

.anim-breathe { animation:w-breathe 5s ease-in-out infinite; display:inline-block; }
@keyframes w-breathe { 0%,100%{opacity:0.72;transform:scale(1)} 50%{opacity:1;transform:scale(1.018)} }

.anim-shimmer { background:linear-gradient(120deg,#C9A96E 0%,#F0D9A8 35%,#C9A96E 55%,#A07840 80%,#C9A96E 100%); background-size:250% auto; -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; animation:w-shimmer 4s linear infinite; }
@keyframes w-shimmer { from{background-position:0% center} to{background-position:250% center} }

.anim-float { animation:w-float 6s ease-in-out infinite; display:inline-block; }
@keyframes w-float { 0%,100%{transform:translateY(0) rotate(0deg)} 33%{transform:translateY(-8px) rotate(2deg)} 66%{transform:translateY(-4px) rotate(-1deg)} }

.anim-slide-left { opacity:0; transform:translateX(-40px); animation:w-slide-left 1s cubic-bezier(0.16,1,0.3,1) forwards; }
@keyframes w-slide-left { to{opacity:1;transform:translateX(0)} }

.anim-slide-right { opacity:0; transform:translateX(40px); animation:w-slide-right 1s cubic-bezier(0.16,1,0.3,1) forwards; }
@keyframes w-slide-right { to{opacity:1;transform:translateX(0)} }

.anim-scale-in { opacity:0; transform:scale(0.88); animation:w-scale-in 1.2s cubic-bezier(0.16,1,0.3,1) forwards; }
@keyframes w-scale-in { to{opacity:1;transform:scale(1)} }

.anim-blur-in { opacity:0; filter:blur(12px); animation:w-blur-in 1.6s ease forwards; }
@keyframes w-blur-in { to{opacity:1;filter:blur(0)} }

.anim-letter-space { letter-spacing:0.6em; opacity:0; animation:w-letter-space 1.4s cubic-bezier(0.16,1,0.3,1) forwards; }
@keyframes w-letter-space { from{letter-spacing:0.6em;opacity:0} to{letter-spacing:0.08em;opacity:1} }

.anim-stroke { color:transparent; -webkit-text-stroke:1.5px var(–w-gold); background:linear-gradient(var(–w-gold),var(–w-gold)) no-repeat; -webkit-background-clip:text; background-clip:text; background-size:0% 100%; animation:w-stroke 1.8s ease forwards; }
@keyframes w-stroke { to{background-size:100% 100%;color:var(–w-gold);-webkit-text-stroke:1.5px transparent} }

.anim-underline { position:relative; display:inline-block; }
.anim-underline::after { content:’’; position:absolute; left:0; bottom:-4px; height:1.5px; width:0; background:var(–w-gold); animation:w-underline 1s ease 0.6s forwards; }
@keyframes w-underline { to{width:100%} }

.anim-pulse { animation:w-pulse 3s ease-in-out infinite; display:inline-block; }
@keyframes w-pulse { 0%,100%{opacity:0.4;transform:scale(1)} 50%{opacity:1;transform:scale(1.15)} }

.w-names { font-family:‘Cormorant Garamond’,serif; font-weight:300; font-size:clamp(2.5rem,6vw,5rem); line-height:1; letter-spacing:0.05em; opacity:0; transform:translateY(24px); filter:blur(6px); animation:w-feather 1.6s cubic-bezier(0.22,1,0.36,1) forwards; }
.w-date { font-family:‘Cormorant Garamond’,serif; font-style:italic; font-size:clamp(0.9rem,2vw,1.2rem); letter-spacing:0.35em; color:var(–w-gold); opacity:0; animation:w-fade-in 1.2s ease 1.2s forwards; }
.w-caption { font-size:0.65rem; letter-spacing:0.5em; text-transform:uppercase; color:#B5967F; opacity:0; animation:w-fade-up 1s ease 0.8s forwards; }
.w-divider { display:flex; align-items:center; gap:1rem; opacity:0; animation:w-fade-in 1s ease 1s forwards; }
.w-divider::before,.w-divider::after { content:’’; flex:1; max-width:80px; height:1px; background:linear-gradient(to right,transparent,var(–w-gold),transparent); }
.w-quote { font-family:‘Cormorant Garamond’,serif; font-style:italic; font-size:clamp(1rem,2vw,1.5rem); line-height:1.7; color:#8C7B6E; opacity:0; transform:translateY(16px); animation:w-fade-up 1.2s ease 0.5s forwards; }

/* Restart button */
.restart-btn {
position: fixed; bottom: 2rem; right: 2rem;
background: var(–w-ink); color: var(–w-gold);
border: 1px solid rgba(201,169,110,0.3);
padding: 0.7rem 1.5rem;
font-family: ‘Tenor Sans’, sans-serif;
font-size: 0.65rem; letter-spacing: 0.3em;
text-transform: uppercase; cursor: pointer;
transition: all 0.3s; z-index: 999;
}
.restart-btn:hover { background: var(–w-gold); color: var(–w-ink); }

/* Cormorant helper */
.cg { font-family: ‘Cormorant Garamond’, serif; font-weight: 300; }
.cg-i { font-family: ‘Cormorant Garamond’, serif; font-style: italic; font-weight: 300; }
</style>




<button class="restart-btn" onclick="location.reload()">▶ Повторить</button>

<div class="grid">

  <div class="header">
    Свадебные CSS-классы</h1>
    Добавьте класс любому тексту — анимация запустится автоматически</p>
  </div>

  <!-- 1 -->

  <div class="card">
    <span class="card__tag">01</span>
    <code class="card__class">.anim-feather</code>
    <div class="demo">
      <h2 class="cg anim-feather" style="font-size:2.8rem">Александр</h2>
      <h2 class="cg-i anim-feather delay-2" style="font-size:2.8rem;color:var(--w-rose)">& Мария</h2>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Буквы всплывают сквозь туман</p>
  </div>

  <!-- 2 -->

  <div class="card card--parch">
    <span class="card__tag">02</span>
    <code class="card__class">.anim-fade-up</code>
    <div class="demo">
      <h2 class="cg anim-fade-up" style="font-size:2.5rem">Наш день</h2>
      <p class="anim-fade-up delay-2" style="font-size:0.75rem;letter-spacing:0.3em;text-transform:uppercase;color:#B5967F">14 июня 2026</p>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Появляется снизу плавно</p>
  </div>

  <!-- 3 -->

  <div class="card">
    <span class="card__tag">03</span>
    <code class="card__class">.anim-wipe-gold</code>
    <div class="demo" style="gap:0.3rem">
      <div class="anim-wipe-gold">
        <h2 class="cg" style="font-size:2.5rem">Вместе</h2>
      </div>
      <div class="anim-wipe-gold delay-3">
        <h2 class="cg-i" style="font-size:2.5rem;color:var(--w-rose)">навсегда.</h2>
      </div>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Золотая шторка открывает текст</p>
  </div>

  <!-- 4 -->

  <div class="card card--dark">
    <span class="card__tag card__tag--light">04</span>
    <code class="card__class card__class--dark">.anim-breathe</code>
    <div class="demo">
      <h2 class="cg anim-breathe" style="font-size:2.8rem;color:#FAF7F2">Любовь</h2>
    </div>
    <p style="font-size:0.75rem;color:rgba(201,169,110,0.45)">Текст нежно пульсирует</p>
  </div>

  <!-- 5 -->

  <div class="card card--dark">
    <span class="card__tag card__tag--light">05</span>
    <code class="card__class card__class--dark">.anim-shimmer</code>
    <div class="demo">
      <h2 class="cg anim-shimmer" style="font-size:2.5rem">Александр</h2>
      <h2 class="cg-i anim-shimmer delay-1" style="font-size:2.5rem">& Мария</h2>
    </div>
    <p style="font-size:0.75rem;color:rgba(201,169,110,0.45)">Золотой перелив</p>
  </div>

  <!-- 6 -->

  <div class="card">
    <span class="card__tag">06</span>
    <code class="card__class">.anim-float</code>
    <div class="demo" style="flex-direction:row;gap:1.5rem;align-items:center">
      <span class="anim-float" style="font-size:1.5rem;color:var(--w-gold)">◆</span>
      <span class="anim-float delay-2" style="font-size:1rem;color:var(--w-rose)">✦</span>
      <span class="anim-float delay-4" style="font-size:1.2rem;color:var(--w-gold)">◇</span>
      <span class="anim-float delay-1" style="font-size:0.8rem;color:var(--w-rose)">✿</span>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Орнаменты медленно парят</p>
  </div>

  <!-- 7 -->

  <div class="card card--parch">
    <span class="card__tag">07</span>
    <code class="card__class">.anim-slide-left</code>
    <div class="demo">
      <h2 class="cg anim-slide-left" style="font-size:2.2rem">Церемония</h2>
      <p class="anim-slide-left delay-2" style="font-size:0.8rem;color:#B5967F;letter-spacing:0.2em">14:00 · ЗАГС</p>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Въезжает слева</p>
  </div>

  <!-- 8 -->

  <div class="card card--parch">
    <span class="card__tag">08</span>
    <code class="card__class">.anim-slide-right</code>
    <div class="demo" style="align-items:flex-end">
      <h2 class="cg anim-slide-right" style="font-size:2.2rem">Банкет</h2>
      <p class="anim-slide-right delay-2" style="font-size:0.8rem;color:#B5967F;letter-spacing:0.2em">18:00 · Ресторан</p>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Въезжает справа</p>
  </div>

  <!-- 9 -->

  <div class="card card--dark">
    <span class="card__tag card__tag--light">09</span>
    <code class="card__class card__class--dark">.anim-scale-in</code>
    <div class="demo">
      <h2 class="cg anim-scale-in" style="font-size:2.8rem;color:#FAF7F2;letter-spacing:0.08em">ЛЮБОВЬ</h2>
    </div>
    <p style="font-size:0.75rem;color:rgba(201,169,110,0.45)">Появляется с увеличением</p>
  </div>

  <!-- 10 -->

  <div class="card">
    <span class="card__tag">10</span>
    <code class="card__class">.anim-blur-in</code>
    <div class="demo">
      <h2 class="cg-i anim-blur-in" style="font-size:2.5rem">Навсегда</h2>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Проявляется из расфокуса</p>
  </div>

  <!-- 11 -->

  <div class="card">
    <span class="card__tag">11</span>
    <code class="card__class">.anim-letter-space</code>
    <div class="demo">
      <h2 class="cg anim-letter-space" style="font-size:2.2rem">ВМЕСТЕ</h2>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Буквы сходятся вместе</p>
  </div>

  <!-- 12 -->

  <div class="card card--dark">
    <span class="card__tag card__tag--light">12</span>
    <code class="card__class card__class--dark">.anim-stroke</code>
    <div class="demo">
      <h2 class="cg anim-stroke" style="font-size:2.8rem">Навсегда</h2>
    </div>
    <p style="font-size:0.75rem;color:rgba(201,169,110,0.45)">Обводка заполняется золотом</p>
  </div>

  <!-- 13 -->

  <div class="card card--parch">
    <span class="card__tag">13</span>
    <code class="card__class">.anim-underline</code>
    <div class="demo">
      <h2 class="cg" style="font-size:2.5rem">
        Александр
        <span class="cg-i anim-underline" style="color:var(--w-rose)">& Мария</span>
      </h2>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Нарастающее подчёркивание</p>
  </div>

  <!-- 14 -->

  <div class="card">
    <span class="card__tag">14</span>
    <code class="card__class">.anim-pulse</code>
    <div class="demo" style="flex-direction:row;gap:2rem;align-items:center">
      <span class="anim-pulse" style="font-size:1.5rem;color:var(--w-gold)">◆</span>
      <div style="flex:1;height:1px;background:linear-gradient(to right,transparent,var(--w-gold),transparent)"></div>
      <span class="anim-pulse delay-3" style="font-size:1.5rem;color:var(--w-gold)">◆</span>
    </div>
    <p style="font-size:0.75rem;color:#B5967F">Мерцание для орнаментов</p>
  </div>

  <!-- COMBO -->

  <div class="card card--dark" style="grid-column:1/-1;padding:4rem 3rem;text-align:center;align-items:center">
    <span class="card__tag card__tag--light" style="left:50%;transform:translateX(-50%)">Комбо-классы</span>
    <p class="w-caption">14 июня 2026</p>
    <h1 class="w-names" style="text-align:center">Александр<em style="color:rgba(201,169,110,0.8)">&amp; Мария</em></h1>
    <div class="w-divider" style="max-width:300px;align-self:center"><span style="color:var(--w-gold);font-size:0.5rem">◆</span></div>
    <p class="w-date">Москва · Россия</p>
    <p class="w-quote delay-3" style="margin-top:1rem;text-align:center">«Ты — это дом, который я искал всю жизнь.»</p>
  </div>

</div>


