вашеимя
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque efficitur sit amet diam eu pharetra. Aliquam sit amet odio at urna tempus vehicula in sed quam. Cras ultricies dolor sit amet ex aliquam mollis. Donec iaculis est eget vestibulum aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque efficitur sit amet diam eu pharetra. Aliquam sit amet odio at urna tempus vehicula in sed quam. Cras ultricies dolor sit amet ex aliquam mollis. Donec iaculis est eget vestibulum aliquet.
love
улица бесконечное лето долгая бесконечная жизнь какие-то еще слова
flood
вася иванов 2 3
write
1 2 3

yanichegoneznayu

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » yanichegoneznayu » Тестовый форум » кладовая


кладовая

Сообщений 1 страница 10 из 10

1

пупупу

0

2

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>

  <style>
    /* Глобальные сбросы */
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: Arial, Helvetica, sans-serif;
    }

    /* Тело с фоном под «стол» */
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 100vh;
      background: #b0b5c0;
      padding: 20px;
    }

    /* ----- СТИЛИ ТЕЛЕФОНА (обёртка) ----- */
    .phone {
      width: 350px;
      background: #ffffff;
      border-radius: 42px;
      padding: 15px 5px 20px;
      box-shadow:
        0 30px 60px rgba(0, 0, 0, 0.3),
        0 10px 20px rgba(0, 0, 0, 0.15),
        inset 0 0 0 2px rgba(255, 255, 255, 0.6);
      transition: all 0.2s;
    }

    /* Динамик */
    .phone__speaker {
      width: 100px;
      height: 6px;
      background: #d0d4dd;
      border-radius: 20px;
      margin: 0 auto 17px auto;
      position: relative;
    }
    .phone__speaker::after {
      content: '';
      position: absolute;
      width: 10px;
      height: 10px;
      background: #1f2a3a;
      border-radius: 50%;
      right: -26px;
      top: -2px;
      opacity: 0.2;
    }

    /* Контейнер для чата — с прокруткой */
    .chat {
      width: 100%;
      height: 520px;
      overflow-y: auto;
      padding: 12px 10px 8px;
      position: relative;
      background: transparent;
      border-radius: 24px;
      scrollbar-width: thin;
      display: flex;
      flex-direction: column;
      gap: 5px; /* РЕГУЛИРОВКА ОТСТУПА МЕЖДУ ВСЕМИ СООБЩЕНИЯМИ */
    }
    .chat::-webkit-scrollbar {
      width: 4px;
    }
    .chat::-webkit-scrollbar-thumb {
      background: #c0c6d4;
      border-radius: 12px;
    }

    /* ----- СТИЛИ СООБЩЕНИЙ ----- */
    .message {
      position: relative;
      display: flex;
      flex-direction: column;
    }

    /* Настройка контейнера для ВСЕХ сообщений с аватаркой (текст, фото, голос) */
    .message.has-avatar {
      width: max-content !important;
      min-width: 80px !important;
      max-width: 230px !important;
    }

    /* Универсальное позиционирование профиля на границе баббла для ВСЕХ типов сообщений */
    .message.has-avatar .profile {
      position: relative;
      top: 0;
      left: 0 !important;
      right: 0 !important;
      margin-bottom: -15px; /* компенсируем padding-top у баббла */
      width: 100%;
    }

    .left,
    .right {
      width: auto;
      max-width: 85%;
    }

    .right {
      margin-left: auto;
    }

    .large {
      width: auto;
      max-width: 85%;
    }

    /* Ограничиваем имя, чтобы оно красиво обрезалось, если станет гигантским */
    .info h3 {
      font-size: 10px;
      font-weight: 700;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 250px;
      padding-right: 5px;
      padding-left: 5px;
    }

    /* Базовые ограничения бабблов с аватаркой */
    .message.has-avatar .bubble {
      width: 100%;
      min-width: 120px;
      max-width: 230px;
    }

    /* Для правых сообщений с аватаркой - прижимаем к правому краю */
    .message.right.has-avatar {
      align-items: flex-end;
    }

    .message.right.has-avatar .bubble {
      min-width: 120px;
      max-width: 230px;
    }

    /* Сообщения без аватарки - подстраиваются под текст */
    .message:not(.has-avatar) .bubble {
      width: fit-content;
      max-width: 100%;
    }

    /* Общие стили для контейнера профиля */
    .profile {
      display: flex;
      align-items: center;
      gap: 8px;
      z-index: 5;
    }

    .left .profile {
      justify-content: flex-start;
    }

    .right .profile {
      flex-direction: row-reverse;
      justify-content: flex-start;
    }

    .avatar {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      border: 2px solid #fff;
      object-fit: cover;
    }

    .info span {
      display: none;
    }

    .bubble {
      background: #fff;
      border-radius: 10px;
      padding: 12px 15px 15px;
      font-size: 11px;
      line-height: 1.4;
      color: #444;
      box-shadow: 0 6px 12px rgba(0, 0, 0, .12);
      word-wrap: break-word;
    }

    /* Отступ сверху для сообщений с аватаркой, чтобы текст не залезал под ник */
    .message.has-avatar .bubble {
      padding-top: 25px;
    }

    /* Стили для изображений в сообщениях */
    .message-image {
      width: 100%;
      max-width: 200px;
      border-radius: 8px;
      margin-bottom: 6px;
      display: block;
    }

    .image-caption {
      font-size: 10px;
      color: #666;
      margin-top: 4px;
      font-style: italic;
    }

    /* Стили для голосовых сообщений (Фикс размера до 220px) */
    .message:has(.voice-message) .bubble {
      width: 230px !important;
      max-width: 230px !important;
    }

    .voice-message {
      display: flex;
      width: 100%;
      align-items: center;
      gap: 10px;
      background: #f0f0f0;
      padding: 8px 12px;
      border-radius: 8px;
      margin-bottom: 6px;
    }

    .voice-icon {
      font-size: 18px;
      animation: pulse 1.5s ease-in-out infinite;
      flex-shrink: 0;
    }

    @keyframes pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.3; }
    }

    .voice-wave {
      flex: 1;
      height: 24px;
      display: flex;
      align-items: center;
      gap: 3px;
      min-width: 0;
    }

    .wave-bar {
      flex: 1;
      min-width: 2px;
      background: #4a90d9;
      border-radius: 2px;
    }

    .wave-bar:nth-child(1)  { height: 25%; }
    .wave-bar:nth-child(2)  { height: 50%; }
    .wave-bar:nth-child(3)  { height: 75%; }
    .wave-bar:nth-child(4)  { height: 95%; }
    .wave-bar:nth-child(5)  { height: 85%; }
    .wave-bar:nth-child(6)  { height: 65%; }
    .wave-bar:nth-child(7)  { height: 45%; }
    .wave-bar:nth-child(8)  { height: 80%; }
    .wave-bar:nth-child(9)  { height: 100%; }
    .wave-bar:nth-child(10) { height: 70%; }
    .wave-bar:nth-child(11) { height: 55%; }
    .wave-bar:nth-child(12) { height: 90%; }
    .wave-bar:nth-child(13) { height: 60%; }
    .wave-bar:nth-child(14) { height: 40%; }
    .wave-bar:nth-child(15) { height: 75%; }
    .wave-bar:nth-child(16) { height: 50%; }
    .wave-bar:nth-child(17) { height: 85%; }
    .wave-bar:nth-child(18) { height: 30%; }
    .wave-bar:nth-child(19) { height: 65%; }
    .wave-bar:nth-child(20) { height: 95%; }

    .voice-duration {
      font-size: 10px;
      color: #666;
      min-width: 30px;
      flex-shrink: 0;
    }

    .voice-transcript {
      font-size: 10px;
      font-style: italic;
      color: #555;
      background: #f8f8f8;
      padding: 6px 10px;
      border-radius: 6px;
      margin-top: 4px;
      border-left: 3px solid #4a90d9;
      max-width: 100%;
    }

    .like {
      position: absolute;
      width: 18px;
      height: 18px;
      bottom: -8px;
      border-radius: 50%;
      background: #fff;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 10px;
      box-shadow: 0 3px 6px rgba(0, 0, 0, .15);
    }

    .left .like {
      left: 12px;
    }

    .right .like {
      right: 12px;
    }

    .chat .message:last-child {
      margin-bottom: 0;
    }

    /* Адаптивность */
    @media (max-width: 400px) {
      .phone {
        width: 100%;
        border-radius: 28px;
        padding: 14px 10px 16px;
      }
      .left,
      .right,
      .large {
        max-width: 90%;
      }
      .large.left {
        margin-left: 8px;
      }
      .large.right {
        margin-left: auto;
        margin-right: 0;
      }
     
      .message.has-avatar .bubble,
      .message.right.has-avatar .bubble {
        min-width: 120px;
        max-width: 280px;
      }
    }
  </style>
</head>

<body>

  <div class="phone">
    <div class="phone__speaker"></div>

    <div class="chat">

      <!-- Сообщение 1 - с аватаркой (левое) -->
      <div class="message left has-avatar">
        <div class="profile">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="info">
            <h3>lego</h3>
          </div>
        </div>
        <div class="bubble">
          соо1
        </div>
      </div>

      <!-- Сообщение 2 - Голосовое левое с аватаркой -->
      <div class="message left has-avatar">
        <div class="profile">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="info">
            <h3>boss chaikamon</h3>
          </div>
        </div>
        <div class="bubble">
          <div class="voice-message">
            <span class="voice-icon">🎤</span>
            <div class="voice-wave">
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span>
            </div>
            <span class="voice-duration">0:32</span>
          </div>
          <div class="voice-transcript">
             расшифровка
          </div>
        </div>
      </div>

      <!-- Сообщение 3 - Картинка левая с аватаркой -->
      <div class="message left has-avatar">
        <div class="profile">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="info">
            <h3>lee heesung</h3>
          </div>
        </div>
        <div class="bubble">
          <img class="message-image" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="image-caption">подпись к картинке</div>
        </div>
        <div class="like">💜</div>
      </div>

      <!-- Сообщение 4 - Текст правый с аватаркой -->
      <div class="message right has-avatar">
        <div class="profile">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32" alt="avatar">
          <div class="info" style="text-align:right;">
            <h3>Liz Blake</h3>
          </div>
        </div>
        <div class="bubble">
          Соо2алчсмчья
        </div>
      </div>

      <!-- Сообщение 8 - Голосовое правое с аватаркой (Исправленное) -->
      <div class="message right has-avatar">
        <div class="profile">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32" alt="avatar">
          <div class="info" style="text-align:right;">
            <h3>Liz Blake</h3>
          </div>
        </div>
        <div class="bubble">
          <div class="voice-message">
            <span class="voice-icon">🎵</span>
            <div class="voice-wave">
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span>
            </div>
            <span class="voice-duration">0:45</span>
          </div>
          <div class="voice-transcript">
            оасшифровка
          </div>
        </div>
      </div>
<div class="message right has-avatar">
        <div class="profile">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32" alt="avatar">
          <div class="info" style="text-align:right;">
            <h3>Liz Blake</h3>
          </div>
        </div>
        <div class="bubble">
          <img class="message-image" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="image-caption">подпись к картинке</div>
        </div>
        <div class="like">💜</div>
      </div>
      </div>
    </div>
  </div>

</body>
</html>[/html]

0

3

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>

  <style>
    /* Глобальные сбросы */
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: Arial, Helvetica, sans-serif;
    }

    /* Тело с фоном под «стол» */
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 100vh;
      background: #b0b5c0;
      padding: 20px;
    }

    /* ----- СТИЛИ ТЕЛЕФОНА (обёртка) ----- */
    .phone {
      width: 350px;
      background: #ffffff;
      border-radius: 42px;
      padding: 10px 5px 10px;
      box-shadow:
        0 30px 60px rgba(0, 0, 0, 0.3),
        0 10px 20px rgba(0, 0, 0, 0.15),
        inset 0 0 0 2px rgba(255, 255, 255, 0.6);
      transition: all 0.2s;
      display: flex;
      flex-direction: column;
      /* ИСПРАВЛЕНИЕ: Прячем всё, что вылезает за скругленные углы телефона */
      overflow: hidden;
    }

    /* Динамик */
    .phone__speaker {
      width: 100px;
      height: 6px;
      background: #d0d4dd;
      border-radius: 20px;
      margin: 0 auto 12px auto;
      position: relative;
      flex-shrink: 0;
    }
    .phone__speaker::after {
      content: '';
      position: absolute;
      width: 10px;
      height: 10px;
      background: #1f2a3a;
      border-radius: 50%;
      right: -26px;
      top: -2px;
      opacity: 0.2;
    }

    /* ----- ТЕЛЕГРАМ ШАПКА КАНАЛА / ЧАТА ----- */
    .tg-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 15px;
      background: #ffffff;
      border-bottom: 1px solid #f0f2f5;
      flex-shrink: 0;
    }

    .tg-header__left, .tg-header__right {
      display: flex;
      align-items: center;
      cursor: pointer;
    }

    .tg-header__title {
      font-size: 14px;
      font-weight: bold;
      color: #222222;
      margin-left: 15px;
    }

    .icon {
      width: 20px;
      height: 20px;
      fill: #546571;
    }

    /* Контейнер для чата — с прокруткой */
    .chat {
      width: 100%;
      height: 450px;
      overflow-y: auto;
      padding: 5px 10px 8px;
      position: relative;
      background: #f4f5f7;
      scrollbar-width: thin;
      display: flex;
      flex-direction: column;
      gap: 5px;
    }
    .chat::-webkit-scrollbar {
      width: 4px;
    }
    .chat::-webkit-scrollbar-thumb {
      background: #c0c6d4;
      border-radius: 12px;
    }

    /* ----- НИЖНЕЕ ПОЛЕ ВВОДА (УМЕНЬШЕННОЕ И ИСПРАВЛЕННОЕ) ----- */
    .chat-input-area {
      display: flex;
      align-items: center;
      gap: 8px;
      /* УМЕНЬШЕНО: отступы сверху и снизу теперь всего 6px вместо 10px */
      padding: 8px 10px;
      background: #ffffff;
      border-top: 1px solid #f0f2f5;
      flex-shrink: 0;
      user-select: none;
      /* ИСПРАВЛЕНИЕ: скругляем нижние углы самого поля под форму телефона */
      border-bottom-left-radius: 35px;
      border-bottom-right-radius: 35px;
    }

    .chat-input-wrapper {
      flex: 1;
      background: #f4f5f7;
      border-radius: 20px;
      /* УМЕНЬШЕНО: внутренние отступы капсулы ввода уменьшены до 5px */
      padding: 5px 12px;
      display: flex;
      align-items: center;
    }

    .chat-input {
      width: 100%;
      border: none;
      background: transparent;
      outline: none;
      font-size: 12px; /* Чуть уменьшили шрифт для компактности */
      color: #333;
      cursor: default;
    }
    .chat-input::placeholder {
      color: #949ca7;
    }

    .send-btn {
      /* УМЕНЬШЕНО: кнопка стала 26px вместо 32px */
      width: 26px;
      height: 26px;
      background: #229ed9;
      border: none;
      border-radius: 50%;
      display: flex;
      justify-content: center;
      align-items: center;
      cursor: default;
      flex-shrink: 0;
    }
    .send-btn .icon {
      fill: #ffffff;
      /* УМЕНЬШЕНО: сама иконка самолетика тоже пропорционально меньше */
      width: 13px;
      height: 13px;
      margin-left: 1px;
    }

    /* ----- СТИЛИ СООБЩЕНИЙ ----- */
    .message {
      position: relative;
      display: flex;
      flex-direction: column;
    }

    .message.has-avatar {
      width: max-content !important;
      min-width: 80px !important;
      max-width: 230px !important;
    }

    .message.has-avatar .profile {
      position: relative;
      top: 0;
      left: 0 !important;
      right: 0 !important;
      margin-bottom: -15px;
      width: 100%;
    }

    .left, .right {
      width: auto;
      max-width: 85%;
    }

    .right {
      margin-left: auto;
    }

    .info h3 {
      font-size: 10px;
      font-weight: 700;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 250px;
      padding-right: 5px;
      padding-left: 5px;
    }

    .message.has-avatar .bubble {
      width: 100%;
      min-width: 120px;
      max-width: 230px;
    }

    .message.right.has-avatar {
      align-items: flex-end;
    }

    .message.right.has-avatar .bubble {
      min-width: 120px;
      max-width: 230px;
    }

    .message:not(.has-avatar) .bubble {
      width: fit-content;
      max-width: 100%;
    }

    .profile {
      display: flex;
      align-items: center;
      gap: 8px;
      z-index: 5;
    }

    .left .profile {
      justify-content: flex-start;
    }

    .right .profile {
      flex-direction: row-reverse;
      justify-content: flex-start;
    }

    .avatar {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      border: 2px solid #fff;
      object-fit: cover;
    }

    .bubble {
      background: #fff;
      border-radius: 10px;
      padding: 12px 15px 15px;
      font-size: 11px;
      line-height: 1.4;
      color: #444;
      box-shadow: 0 4px 8px rgba(0, 0, 0, .06);
      word-wrap: break-word;
    }

    .message.has-avatar .bubble {
      padding-top: 25px;
    }

    .message-image {
      width: 100%;
      max-width: 200px;
      border-radius: 8px;
      margin-bottom: 6px;
      display: block;
    }

    .image-caption {
      font-size: 10px;
      color: #666;
      margin-top: 4px;
      font-style: italic;
    }

    .message:has(.voice-message) .bubble {
      width: 230px !important;
      max-width: 230px !important;
    }

    .voice-message {
      display: flex;
      width: 100%;
      align-items: center;
      gap: 10px;
      background: #f0f0f0;
      padding: 8px 12px;
      border-radius: 8px;
      margin-bottom: 6px;
    }

    .voice-icon {
      font-size: 18px;
      animation: pulse 1.5s ease-in-out infinite;
      flex-shrink: 0;
    }

    @keyframes pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.3; }
    }

    .voice-wave {
      flex: 1;
      height: 24px;
      display: flex;
      align-items: center;
      gap: 3px;
      min-width: 0;
    }

    .wave-bar {
      flex: 1;
      min-width: 2px;
      background: #4a90d9;
      border-radius: 2px;
    }

    .wave-bar:nth-child(1)  { height: 25%; }
    .wave-bar:nth-child(2)  { height: 50%; }
    .wave-bar:nth-child(3)  { height: 75%; }
    .wave-bar:nth-child(4)  { height: 95%; }
    .wave-bar:nth-child(5)  { height: 85%; }
    .wave-bar:nth-child(6)  { height: 65%; }
    .wave-bar:nth-child(7)  { height: 45%; }
    .wave-bar:nth-child(8)  { height: 80%; }
    .wave-bar:nth-child(9)  { height: 100%; }
    .wave-bar:nth-child(10) { height: 70%; }
    .wave-bar:nth-child(11) { height: 55%; }
    .wave-bar:nth-child(12) { height: 90%; }
    .wave-bar:nth-child(13) { height: 60%; }
    .wave-bar:nth-child(14) { height: 40%; }
    .wave-bar:nth-child(15) { height: 75%; }
    .wave-bar:nth-child(16) { height: 50%; }
    .wave-bar:nth-child(17) { height: 85%; }
    .wave-bar:nth-child(18) { height: 30%; }
    .wave-bar:nth-child(19) { height: 65%; }
    .wave-bar:nth-child(20) { height: 95%; }

    .voice-duration {
      font-size: 10px;
      color: #666;
      min-width: 30px;
      flex-shrink: 0;
    }

    .voice-transcript {
      font-size: 10px;
      font-style: italic;
      color: #555;
      background: #f8f8f8;
      padding: 6px 10px;
      border-radius: 6px;
      margin-top: 4px;
      border-left: 3px solid #4a90d9;
      max-width: 100%;
    }

    .like {
      position: absolute;
      width: 18px;
      height: 18px;
      bottom: -8px;
      border-radius: 50%;
      background: #fff;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 10px;
      box-shadow: 0 3px 6px rgba(0, 0, 0, .15);
    }

    .left .like { left: 12px; }
    .right .like { right: 12px; }

    @media (max-width: 400px) {
      .phone {
        width: 100%;
        border-radius: 28px;
        padding: 14px 5px 14px;
      }
      .chat {
        height: 400px;
      }
      .message.has-avatar .bubble,
      .message.right.has-avatar .bubble {
        min-width: 120px;
        max-width: 280px;
      }
    }
  </style>
</head>

<body>

  <div class="phone">
    <div class="phone__speaker"></div>

    <!-- ТЕЛЕГРАМ ШАПКА -->
    <div class="tg-header">
      <div class="tg-header__left">
        <svg class="icon" viewBox="0 0 24 24">
          <path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/>
        </svg>
        <span class="tg-header__title">оно надо или нахуй?</span>
      </div>
      <div class="tg-header__right">
        <svg class="icon" viewBox="0 0 24 24">
          <path d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"/>
        </svg>
      </div>
    </div>

    <!-- ОКНО ОТОБРАЖЕНИЯ СООБЩЕНИЙ -->
    <div class="chat">

      <!-- Сообщение 1 -->
      <div class="message left has-avatar">
        <div class="profile">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="info">
            <h3>lego</h3>
          </div>
        </div>
        <div class="bubble">
          соо1
        </div>
      </div>

      <!-- Сообщение 2 -->
      <div class="message left has-avatar">
        <div class="profile">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="info">
            <h3>boss chaikamon</h3>
          </div>
        </div>
        <div class="bubble">
          <div class="voice-message">
            <span class="voice-icon">🎤</span>
            <div class="voice-wave">
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span>
            </div>
            <span class="voice-duration">0:32</span>
          </div>
          <div class="voice-transcript">
             расшифровка
          </div>
        </div>
      </div>

      <!-- Сообщение 3 -->
      <div class="message left has-avatar">
        <div class="profile">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="info">
            <h3>lee heesung</h3>
          </div>
        </div>
        <div class="bubble">
          <img class="message-image" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="image-caption">подпись к картинке</div>
        </div>
        <div class="like">💜</div>
      </div>

      <!-- Сообщение 4 -->
      <div class="message right has-avatar">
        <div class="profile">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32" alt="avatar">
          <div class="info" style="text-align:right;">
            <h3>Liz Blake</h3>
          </div>
        </div>
        <div class="bubble">
          Соо2алчсмчья
        </div>
      </div>

      <!-- Сообщение 5 -->
      <div class="message right has-avatar">
        <div class="profile">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32" alt="avatar">
          <div class="info" style="text-align:right;">
            <h3>Liz Blake</h3>
          </div>
        </div>
        <div class="bubble">
          <div class="voice-message">
            <span class="voice-icon">🎵</span>
            <div class="voice-wave">
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span><span class="wave-bar"></span>
              <span class="wave-bar"></span><span class="wave-bar"></span>
            </div>
            <span class="voice-duration">0:45</span>
          </div>
          <div class="voice-transcript">
            расшифровка
          </div>
        </div>
      </div>

      <!-- Сообщение 6 -->
      <div class="message right has-avatar">
        <div class="profile">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32" alt="avatar">
          <div class="info" style="text-align:right;">
            <h3>Liz Blake</h3>
          </div>
        </div>
        <div class="bubble">
          <img class="message-image" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="image-caption">подпись к картинке</div>
        </div>
        <div class="like">💜</div>
      </div>

    </div>

    <!-- ДЕКОРАТИВНОЕ ПОЛЕ ВВОДА СООБЩЕНИЯ -->
    <div class="chat-input-area">
      <div class="chat-input-wrapper">
        <input type="text" class="chat-input" placeholder="Сообщение..." disabled>
      </div>
      <button class="send-btn">
        <svg class="icon" viewBox="0 0 24 24">
          <path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"/>
        </svg>
      </button>
    </div>

  </div>

</body>
</html>[/html]

0

4

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>
  <style>
    :root {
      --bg: #f4f5f7;
      --text: #444;
      --gray: #949ca7;
      --border: #f0f2f5;
      --accent: #4a90d9;
    }
    * { margin: 0; padding: 0; box-sizing: border-box; font-family: Arial, sans-serif; }
    body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #b0b5c0; padding: 20px; }
   
    /* Телефон */
    .phone { width: 350px; background: #fff; border-radius: 42px; padding: 10px 5px; box-shadow: 0 30px 60px rgba(0,0,0,0.3), 0 10px 20px rgba(0,0,0,0.15); display: flex; flex-direction: column; overflow: hidden; }
    .phone__speaker { width: 100px; height: 6px; background: #d0d4dd; border-radius: 20px; margin: 0 auto 12px; position: relative; }
    .phone__speaker::after { content: ''; position: absolute; width: 10px; height: 10px; background: #1f2a3a; border-radius: 50%; right: -26px; top: -2px; opacity: 0.2; }

    /* Шапка */
    .tg-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 15px; border-bottom: 1px solid var(--border); }
    .tg-header__left { display: flex; align-items: center; }
    .tg-header__title { font-size: 14px; font-weight: bold; color: #222; margin-left: 15px; }
    .icon { width: 20px; height: 20px; fill: #546571; }

    /* Чат */
    .chat { width: 100%; height: 450px; overflow-y: auto; padding: 5px 10px 8px; background: var(--bg); display: flex; flex-direction: column; gap: 5px; scrollbar-width: thin; }
    .chat::-webkit-scrollbar { width: 4px; }
    .chat::-webkit-scrollbar-thumb { background: #c0c6d4; border-radius: 12px; }

    /* Сообщения */
    .msg { position: relative; display: flex; flex-direction: column; width: max-content; min-width: 80px; max-width: 230px; }
    .msg.right { margin-left: auto; align-items: flex-end; }
    .msg-prof { display: flex; align-items: center; gap: 8px; z-index: 5; margin-bottom: -15px; width: 100%; }
    .msg.right .msg-prof { flex-direction: row-reverse; }
    .avatar { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #fff; object-fit: cover; }
    .msg-info h3 { font-size: 10px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 250px; padding: 0 5px; }
   
    .bubble { background: #fff; border-radius: 10px; padding: 25px 15px 15px; font-size: 11px; line-height: 1.4; color: var(--text); box-shadow: 0 4px 8px rgba(0,0,0,.06); word-wrap: break-word; width: 100%; min-width: 120px; }
    .msg-img { width: 100%; max-width: 200px; border-radius: 8px; margin-bottom: 6px; display: block; }
    .img-cap { font-size: 10px; color: #666; margin-top: 4px; font-style: italic; }

    /* Голосовые */
    .voice { display: flex; width: 100%; align-items: center; gap: 10px; background: #f0f0f0; padding: 8px 12px; border-radius: 8px; margin-bottom: 6px; }
    .voice-icon { font-size: 18px; animation: pulse 1.5s infinite; }
    @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
    .voice-wave { flex: 1; height: 24px; display: flex; align-items: center; gap: 3px; }
    .wave-bar { flex: 1; min-width: 2px; background: var(--accent); border-radius: 2px; }
    /* Каскадное сжатие высот для волны */
    .w1 { height: 25%; } .w2 { height: 50%; } .w3 { height: 75%; } .w4 { height: 95%; } .w5 { height: 85%; }
    .w6 { height: 65%; } .w7 { height: 45%; } .w8 { height: 80%; } .w9 { height: 100%; } .w10 { height: 70%; }
    .w11 { height: 55%; } .w12 { height: 90%; } .w13 { height: 60%; } .w14 { height: 40%; } .w15 { height: 30%; }
    .voice-dur { font-size: 10px; color: #666; }
    .voice-trans { font-size: 10px; font-style: italic; color: #555; background: #f8f8f8; padding: 6px 10px; border-radius: 6px; margin-top: 4px; border-left: 3px solid var(--accent); }

    .like { position: absolute; width: 18px; height: 18px; bottom: -8px; border-radius: 50%; background: #fff; display: flex; justify-content: center; align-items: center; font-size: 10px; box-shadow: 0 3px 6px rgba(0,0,0,.15); left: 12px; }
    .msg.right .like { left: auto; right: 12px; }

    /* Поле ввода */
    .input-area { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: #fff; border-top: 1px solid var(--border); border-bottom-left-radius: 35px; border-bottom-right-radius: 35px; }
    .input-wrap { flex: 1; background: var(--bg); border-radius: 20px; padding: 5px 12px; display: flex; align-items: center; }
    .chat-input { width: 100%; border: none; background: transparent; outline: none; font-size: 12px; color: #333; }
    .chat-input::placeholder { color: var(--gray); }
    .attach-btn, .send-btn { background: none; border: none; display: flex; align-items: center; justify-content: center; }
    .attach-btn .icon { width: 18px; height: 18px; fill: var(--gray); }
    .send-btn { width: 26px; height: 26px; background: #229ed9; border-radius: 50%; }
    .send-btn .icon { fill: #fff; width: 13px; height: 13px; margin-left: 1px; }

    @media (max-width: 400px) {
      .phone { width: 100%; border-radius: 28px; padding: 14px 5px; }
      .chat { height: 400px; }
      .msg, .msg.right { max-width: 280px; }
    }
  </style>
</head>
<body>

  <div class="phone">
    <div class="phone__speaker"></div>

    <div class="tg-header">
      <div class="tg-header__left">
        <svg class="icon" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
        <span class="tg-header__title">оно надо или нахуй?</span>
      </div>
      <div class="tg-header__right">
        <svg class="icon" viewBox="0 0 24 24"><path d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"/></svg>
      </div>
    </div>

    <div class="chat">
      <!-- ЛЕВАЯ СТОРОНА -->
      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>lego</h3></div>
        </div>
        <div class="bubble">соо1</div>
      </div>

      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>boss chaikamon</h3></div>
        </div>
        <div class="bubble">
          <div class="voice">
            <span class="voice-icon">🎤</span>
            <div class="voice-wave">
              <span class="wave-bar w1"></span><span class="wave-bar w2"></span><span class="wave-bar w3"></span><span class="wave-bar w4"></span><span class="wave-bar w5"></span>
              <span class="wave-bar w6"></span><span class="wave-bar w7"></span><span class="wave-bar w8"></span><span class="wave-bar w9"></span><span class="wave-bar w10"></span>
              <span class="wave-bar w11"></span><span class="wave-bar w12"></span><span class="wave-bar w13"></span><span class="wave-bar w14"></span><span class="wave-bar w15"></span>
              <span class="wave-bar w3"></span><span class="wave-bar w6"></span><span class="wave-bar w9"></span><span class="wave-bar w12"></span><span class="wave-bar w2"></span>
            </div>
            <span class="voice-dur">0:32</span>
          </div>
          <div class="voice-trans">расшифровка</div>
        </div>
      </div>

      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>lee heesung</h3></div>
        </div>
        <div class="bubble">
          <img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div>
        </div>
        <div class="like">💜</div>
      </div>

      <!-- ПРАВАЯ СТОРОНА -->
      <div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble">Соо2алчсмчья</div>
      </div>

      <div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble">
          <div class="voice">
            <span class="voice-icon">🎵</span>
            <div class="voice-wave">
              <span class="wave-bar w1"></span><span class="wave-bar w2"></span><span class="wave-bar w3"></span><span class="wave-bar w4"></span><span class="wave-bar w5"></span>
              <span class="wave-bar w6"></span><span class="wave-bar w7"></span><span class="wave-bar w8"></span><span class="wave-bar w9"></span><span class="wave-bar w10"></span>
              <span class="wave-bar w11"></span><span class="wave-bar w12"></span><span class="wave-bar w13"></span><span class="wave-bar w14"></span><span class="wave-bar w15"></span>
              <span class="wave-bar w3"></span><span class="wave-bar w6"></span><span class="wave-bar w9"></span><span class="wave-bar w12"></span><span class="wave-bar w2"></span>
            </div>
            <span class="voice-dur">0:45</span>
          </div>
          <div class="voice-trans">расшифровка</div>
        </div>
      </div>

      <div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble">
          <img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div>
        </div>
        <div class="like">💜</div>
      </div>
    </div>

    <!-- ПОЛЕ ВВОДА -->
    <div class="input-area">
      <button class="attach-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-3.31 2.69-6 6-6s6 2.69 6 6v10c0 4.42-3.58 8-8 8s-8-3.58-8-8V4h2v11c0 3.31 2.69 6 6 6s6-2.69 6-6V5c0-2.21-1.79-4-4-4s-4 1.79-4 4v11.5c0 1.1.9 2 2 2s2-.9 2-2V6h2z" transform="scale(0.9) translate(1, 1)"/></svg>
      </button>
      <div class="input-wrap">
        <input type="text" class="chat-input" placeholder="Сообщение..." disabled>
      </div>
      <button class="send-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"/></svg>
      </button>
    </div>

  </div>

</body>
</html>[/html]

0

5

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>
  <style>
    :root {
      --bg: #a2bca6; /* Зеленоватый фоновый цвет чата под стиль Material You */
      --text: #444;
      --gray: #949ca7;
      --border: #f0f2f5;
      --accent: #4a90d9;
     
      /* Цвета для "пузырчатых" элементов */
      --chat-bubble-bg: #f3f5ee; /* Светлый пастельный оттенок для островков */
      --chat-icon-color: #1c1d1a;
    }
   
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: Arial, sans-serif;
    }
   
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 100vh;
      background: #b0b5c0;
      padding: 20px;
    }
   
    /* Телефон */
    .phone {
      width: 400px;
      height: 600px; /* Зафиксировали общую высоту телефона для правильного скролла */
      background: var(--bg);
      border-radius: 42px;
      padding: 10px 5px;
      box-shadow: 0 30px 60px rgba(0,0,0,0.3), 0 10px 20px rgba(0,0,0,0.15);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      position: relative;
    }
   
    .phone__speaker {
      width: 100px;
      height: 6px;
      background: #c2c7ce;
      border-radius: 20px;
      margin: 0 auto 12px;
      position: relative;
      z-index: 10;
    }
   
    .phone__speaker::after {
      content: '';
      position: absolute;
      width: 10px;
      height: 10px;
      background: #1f2a3a;
      border-radius: 50%;
      right: -26px;
      top: -2px;
      opacity: 0.2;

    }

    /* ШАПКА ИЗ ОСТРОВКОВ */
    .chat-header {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 5px 10px 10px;
      background: transparent;
      z-index: 10;
    }
   
    /* Островок кнопки "Назад" */
    .chat-header__back-btn {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--chat-bubble-bg);
      display: flex;
      align-items: center;
      justify-content: center;
      border: none;
      cursor: pointer;
pointer-events: none;
      flex-shrink: 0;
    }
   
    /* Центральный островок (Профиль чата) */
    .chat-header__profile {
      flex: 1;
      height: 44px;
      border-radius: 22px;
      background: var(--chat-bubble-bg);
      display: flex;
      align-items: center;
      padding: 0 8px;
      min-width: 0;
    }
   
    .chat-header__avatar {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      object-fit: cover;
      flex-shrink: 0;
    }
   
    .chat-header__info {
      margin-left: 10px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-width: 0;
    }
   
    .chat-header__title-wrap {
      display: flex;
      align-items: center;
      gap: 4px;
    }
   
    .chat-header__title {
      font-size: 14px;
      font-weight: 700;
      color: #1c1d1a;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
   
    .chat-header__status {
      font-size: 11px;
      color: #757870;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      margin-top: 1px;
    }
   
    .chat-header__sub-icon {
      width: 12px;
      height: 12px;
      fill: #757870;
      flex-shrink: 0;
    }
   
    /* Правый островок (Опции / Звонок) */
    .chat-header__actions {
      height: 44px;
      border-radius: 22px;
      background: var(--chat-bubble-bg);
      display: flex;
      align-items: center;
      padding: 0 4px;
      gap: 2px;
      flex-shrink: 0;
pointer-events: none;
    }
   
    .chat-header__action-btn {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      border: none;
      background: transparent;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }

    .icon {
      width: 20px;
      height: 20px;
      fill: var(--chat-icon-color);
    }

    /* ЧАТ — ИСПРАВЛЕННЫЙ СКРОЛЛ ДО САМОГО КОНЦА */
    .chat {
      flex: 1; /* Занимает всё свободное пространство до низа телефона */
      overflow-y: auto;
      padding: 5px 10px 75px; /* Резервируем место под высоту кнопок, чтобы контент докручивался полностью */
      background: transparent;
      display: flex;
      flex-direction: column;
      gap: 5px;
      scrollbar-width: none;
     
      /* Маска теперь плавно растворяет текст только в самом низу, прямо под кнопками */
      -webkit-mask-image: linear-gradient(to bottom,
        transparent 0%,
        black 4%,
        black 88%,
        transparent 98%
      );
      mask-image: linear-gradient(to bottom,
        transparent 0%,
        black 4%,
        black 88%,
        transparent 98%
      );
    }
   
    .chat::-webkit-scrollbar {
      display: none;
    }

    /* СТИЛЬ СООБЩЕНИЙ */
    .msg {
      position: relative;
      display: flex;
      flex-direction: column;
      width: max-content;
      min-width: 80px;
      max-width: 250px;
    }
   
    .msg.right {
      margin-left: auto;
      align-items: flex-end;
text-align:right;
    }
   
    .msg-prof {
      display: flex;
      align-items: center;
      gap: 3px;
      z-index: 5;
      margin-bottom: -15px;
      width: 100%;
    }
   
    .msg.right .msg-prof {
      flex-direction: row-reverse;
    }
   
    .avatar {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      border: 2px solid #fff;
      object-fit: cover;
    }
   
    .msg-info h3 {
      font-size: 10px;
      font-weight: 700;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 250px;
      padding: 0 5px;
    }
   
    .bubble {
      background: #fff;
      border-radius: 10px;
      padding: 25px 15px 15px;
      font-size: 11px;
      line-height: 1.4;
      color: var(--text);
      box-shadow: 0 4px 8px rgba(0,0,0,.06);
      word-wrap: break-word;
      width: 100%;
      min-width: 120px;
    }
   
    .msg-img {
      width: 100%;
      max-width: 220px;
      border-radius: 8px;
      margin-bottom: 6px;
      display: block;
    }
   
    .img-cap {
      font-size: 10px;
      color: #666;
      margin-top: 4px;
      font-style: italic;
    }

    /* Голосовые */
    .voice {
      display: flex;
width: 220px;
      align-items: center;
      gap: 10px;
      background: #f0f0f0;
      padding: 10px 14px;
      border-radius: 8px;
      margin-bottom: 6px;
    }
   
    .voice-icon {
      font-size: 18px;
      animation: pulse 1.5s infinite;
    }
   
    @keyframes pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.3; }
    }
   
    .voice-wave {
      flex: 1;
      height: 24px;
      display: flex;
      align-items: center;
      gap: 3px;
    }
   
    .wave-bar {
      flex: 1;
      min-width: 2px;
      background: var(--accent);
      border-radius: 2px;
    }
   
    .w1 { height: 25%; }
    .w2 { height: 50%; }
    .w3 { height: 75%; }
    .w4 { height: 95%; }
    .w5 { height: 85%; }
    .w6 { height: 65%; }
    .w7 { height: 45%; }
    .w8 { height: 80%; }
    .w9 { height: 100%; }
    .w10 { height: 70%; }
    .w11 { height: 55%; }
    .w12 { height: 90%; }
    .w13 { height: 60%; }
    .w14 { height: 40%; }
    .w15 { height: 30%; }
   
    .voice-dur {
      font-size: 10px;
      color: #666;
    }
   
    .voice-trans {
      font-size: 10px;

      font-style: italic;
      color: #555;
      background: #f8f8f8;
      padding: 6px 10px;
      border-radius: 6px;
      margin-top: 4px;
      border-left: 3px solid var(--accent);
    }

    /* ПОЛЕ ВВОДА */
    .input-area {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 10px 10px 20px;
      background: transparent;
     
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      border: none;
      z-index: 10;
      pointer-events: none;
    }
   
    /* Большой левый пузырь */
    .input-wrap {
      flex: 1;
      height: 44px;
      background: var(--chat-bubble-bg);
      border-radius: 22px;
      padding: 0 6px 0 14px;
      display: flex;
      align-items: center;
      gap: 8px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.15);
      pointer-events: none;
    }
   
    .chat-input {
      flex: 1;
      border: none;
      background: transparent;
      outline: none;
      font-size: 14px;
      color: #1c1d1a;
    }
   
    .chat-input::placeholder {
      color: #757870;
    }
   
    .attach-btn {
      background: none;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      width: 32px;
      height: 32px;
    }
   
    .attach-btn .icon {
      width: 22px;
      height: 22px;
      fill: #54584f;
    }
   
    /* Отдельный круглый пузырь для кнопки отправки/микрофона */
    .send-btn {
      width: 44px;
      height: 44px;
      background: var(--chat-bubble-bg);
      border-radius: 50%;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      flex-shrink: 0;
      box-shadow: 0 4px 12px rgba(0,0,0,0.15);
      pointer-events: none;
    }
   
    .send-btn .icon {
      fill: var(--chat-icon-color);
      width: 20px;
      height: 20px;
    }

    @media (max-width: 400px) {
      .phone {
        width: 100%;
        height: 100vh;
        border-radius: 0;
        padding: 14px 5px;
      }
      .chat {
        padding-bottom: 75px;
      }
      .msg, .msg.right {
        max-width: 280px;
      }
    }
  </style>
</head>
<body>

  <div class="phone">
    <div class="phone__speaker"></div>

    <!-- ШАПКА -->
    <div class="chat-header">
      <button class="chat-header__back-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
      </button>
     
      <div class="chat-header__profile">
        <img class="chat-header__avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
        <div class="chat-header__info">
          <div class="chat-header__title-wrap">
            <span class="chat-header__title">название</span>
            <svg class="chat-header__sub-icon" viewBox="0 0 24 24"><path d="M3.63 3.63L2.22 5.04L7.18 10H4.5v4h3l5 5v-6.18l4.85 4.85c-.42.27-.87.48-1.35.62v2.02c1.02-.22 1.97-.67 2.79-1.31l2.2 2.2l1.41-1.41L3.63 3.63zM10.5 15.18L8.32 13H6.5v-2h1.82l2.18-2.18v6.36zM12.5 4L9.92 6.58l3.4 3.4L13.5 4h-1zM16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.21.05-.42.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71z"/></svg>
          </div>
          <span class="chat-header__status">был(а) недавно</span>
        </div>
      </div>
     
      <div class="chat-header__actions">
        <button class="chat-header__action-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.62c0-.55-.45-1-1-1z"/></svg>
        </button>
        <button class="chat-header__action-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
        </button>
      </div>
    </div>

    <!-- ЧАТ С ЭФФЕКТОМ ПОЛНОЙ ПРОКРУТКИ -->
    <div class="chat">
      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>lego</h3></div>
        </div>
        <div class="bubble">fdfrgrthtnbdvvfbhmhffvddvdjvnjfdvfnbnjnfjkdjnsldjgngrtjgdnlsfnelfngsurtghsrlg</div>
      </div>

      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>boss chaikamon</h3></div>
        </div>
        <div class="bubble">
          <div class="voice">
            <span class="voice-icon">🎤</span>
            <div class="voice-wave">
              <span class="wave-bar w1"></span><span class="wave-bar w2"></span><span class="wave-bar w3"></span><span class="wave-bar w4"></span><span class="wave-bar w5"></span>
              <span class="wave-bar w6"></span><span class="wave-bar w7"></span><span class="wave-bar w8"></span><span class="wave-bar w9"></span><span class="wave-bar w10"></span>
              <span class="wave-bar w11"></span><span class="wave-bar w12"></span><span class="wave-bar w13"></span><span class="wave-bar w14"></span><span class="wave-bar w15"></span>
              <span class="wave-bar w3"></span><span class="wave-bar w6"></span><span class="wave-bar w9"></span><span class="wave-bar w12"></span><span class="wave-bar w2"></span>
            </div>
            <span class="voice-dur">0:32</span>
          </div>
          <div class="voice-trans">расшифровка</div>
        </div>
      </div>

      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>lee heesung</h3></div>
        </div>
        <div class="bubble">
          <img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div>
        </div>
      </div>

      <div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble">Соо2</div>
      </div>

<div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble">
          <div class="voice">
            <span class="voice-icon">🎤</span>
            <div class="voice-wave">
              <span class="wave-bar w1"></span><span class="wave-bar w2"></span><span class="wave-bar w3"></span><span class="wave-bar w4"></span><span class="wave-bar w5"></span>
              <span class="wave-bar w6"></span><span class="wave-bar w7"></span><span class="wave-bar w8"></span><span class="wave-bar w9"></span><span class="wave-bar w10"></span>
              <span class="wave-bar w11"></span><span class="wave-bar w12"></span><span class="wave-bar w13"></span><span class="wave-bar w14"></span><span class="wave-bar w15"></span>
              <span class="wave-bar w3"></span><span class="wave-bar w6"></span><span class="wave-bar w9"></span><span class="wave-bar w12"></span><span class="wave-bar w2"></span>
            </div>
            <span class="voice-dur">0:32</span>
          </div>
          <div class="voice-trans">расшифровка</div>
       </div>
      </div>
<div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble"><img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div></div></div>

    </div>

    <!-- НИЖНЕЕ ПОЛЕ ВВОДА -->
    <div class="input-area">
      <div class="input-wrap">
        <input type="text" class="chat-input" placeholder="Сообщение...">
        <button class="attach-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-3.31 2.69-6 6-6s6 2.69 6 6v10c0 4.42-3.58 8-8 8s-8-3.58-8-8V4h2v11c0 3.31 2.69 6 6 6s6-2.69 6-6V5c0-2.21-1.79-4-4-4s-4 1.79-4 4v11.5c0 1.1.9 2 2 2s2-.9 2-2V6h2z"/></svg>
        </button>
      </div>
      <button class="send-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></svg>
      </button>
    </div>

  </div>

</body>
</html>[/html]

0

6

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>
  <style>
    :root {
      --bg: #a2bca6; /* Зеленоватый фоновый цвет чата под стиль Material You */
      --text: #444;
      --gray: #949ca7;
      --border: #f0f2f5;
      --accent: #4a90d9;
     
      /* Цвета для "пузырчатых" элементов */
      --chat-bubble-bg: #f3f5ee; /* Светлый пастельный оттенок для островков */
      --chat-icon-color: #1c1d1a;
    }
   
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: Arial, sans-serif;
    }
   
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 100vh;
      background: #b0b5c0;
      padding: 20px;
    }
   
    /* Телефон */
    .phone {
      width: 350px;
      height: 600px; /* Зафиксировали общую высоту телефона для правильного скролла */
      background: url('https://upforme.ru/uploads/001c/b5/80/5/861323.webp') center/cover no-repeat;
      border-radius: 42px;
      padding: 10px 5px;
      box-shadow: 0 30px 60px rgba(0,0,0,0.3), 0 10px 20px rgba(0,0,0,0.15);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      position: relative;
    }
   
    .phone__speaker {
      width: 100px;
      height: 6px;
      background: #c2c7ce;
      border-radius: 20px;
      margin: 0 auto 12px;
      position: relative;
      z-index: 10;
    }
   
    .phone__speaker::after {
      content: '';
      position: absolute;
      width: 10px;
      height: 10px;
      background: #1f2a3a;
      border-radius: 50%;
      right: -26px;
      top: -2px;
      opacity: 0.2;
    }

    /* ШАПКА ИЗ ОСТРОВКОВ */
    .chat-header {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 5px 10px 10px;
      background: transparent;
      z-index: 10;
    }
   
    /* Островок кнопки "Назад" */
    .chat-header__back-btn {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--chat-bubble-bg);
      display: flex;
      align-items: center;
      justify-content: center;
      border: none;
      cursor: pointer;
      flex-shrink: 0;
    }
   
    /* Центральный островок (Профиль чата) */
    .chat-header__profile {
      flex: 1;
      height: 44px;
      border-radius: 22px;
      background: var(--chat-bubble-bg);
      display: flex;
      align-items: center;
      padding: 0 8px;
      min-width: 0;
    }
   
    .chat-header__avatar {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      object-fit: cover;
      flex-shrink: 0;
    }
   
    .chat-header__info {
      margin-left: 10px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-width: 0;
    }
   
    .chat-header__title-wrap {
      display: flex;
      align-items: center;
      gap: 4px;
    }
   
    .chat-header__title {
      font-size: 14px;
      font-weight: 700;
      color: #1c1d1a;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
   
    .chat-header__status {
      font-size: 11px;
      color: #757870;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      margin-top: 1px;
    }
   
    .chat-header__sub-icon {
      width: 12px;
      height: 12px;
      fill: #757870;
      flex-shrink: 0;
    }
   
    /* Правый островок (Опции / Звонок) */
    .chat-header__actions {
      height: 44px;
      border-radius: 22px;
      background: var(--chat-bubble-bg);
      display: flex;
      align-items: center;
      padding: 0 4px;
      gap: 2px;
      flex-shrink: 0;
    }
   
    .chat-header__action-btn {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      border: none;
      background: transparent;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }

    .icon {
      width: 20px;
      height: 20px;
      fill: var(--chat-icon-color);
    }

    /* ЧАТ — ИСПРАВЛЕННЫЙ СКРОЛЛ ДО САМОГО КОНЦА */
    .chat {
      flex: 1; /* Занимает всё свободное пространство до низа телефона */
      overflow-y: auto;
      padding: 5px 10px 75px; /* Резервируем место под высоту кнопок, чтобы контент докручивался полностью */
      background: transparent;
      display: flex;
      flex-direction: column;
      gap: 5px;
      scrollbar-width: none;
     
      /* Маска теперь плавно растворяет текст только в самом низу, прямо под кнопками */
      -webkit-mask-image: linear-gradient(to bottom,
        transparent 0%,
        black 4%,
        black 88%,
        transparent 98%
      );
      mask-image: linear-gradient(to bottom,
        transparent 0%,
        black 4%,
        black 88%,
        transparent 98%
      );
    }
   
    .chat::-webkit-scrollbar {
      display: none;
    }

    /* СТИЛЬ СООБЩЕНИЙ */
    .msg {
      position: relative;
      display: flex;
      flex-direction: column;
      width: max-content;
      min-width: 80px;
      max-width: 230px;
    }
   
    .msg.right {
      margin-left: auto;
      align-items: flex-end;
    }
   
    .msg-prof {
      display: flex;
      align-items: center;
      gap: 3px;
      z-index: 5;
      margin-bottom: -15px;
      width: 100%;
    }
   
    .msg.right .msg-prof {
      flex-direction: row-reverse;
    }
   
    .avatar {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      border: 2px solid #fff;
      object-fit: cover;
    }
   
    .msg-info h3 {
      font-size: 10px;
      font-weight: 700;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 250px;
      padding: 0 5px;
    }
   
    .bubble {
      background: #fff;
      border-radius: 10px;
      padding: 25px 15px 15px;
      font-size: 11px;
      line-height: 1.4;
      color: var(--text);
      box-shadow: 0 4px 8px rgba(0,0,0,.06);
      word-wrap: break-word;
      width: 100%;
      min-width: 120px;
    }
   
    .msg-img {
      width: 100%;
      max-width: 184px;
      border-radius: 8px;
      margin-bottom: 6px;
      display: block;
    }
   
    .img-cap {
      font-size: 10px;
      color: #666;
      margin-top: 4px;
      font-style: italic;
    }

    /* Голосовые */
    .voice {
      display: flex;
      width: 100%;
      align-items: center;
      gap: 10px;
      background: #f0f0f0;
      padding: 8px 12px;
      border-radius: 8px;
      margin-bottom: 6px;
    }
   
    .voice-icon {
      font-size: 18px;
      animation: pulse 1.5s infinite;
    }
   
    @keyframes pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.3; }
    }
   
    .voice-wave {
      flex: 1;
      height: 24px;
      display: flex;
      align-items: center;
      gap: 3px;
    }
   
    .wave-bar {
      flex: 1;
      min-width: 2px;
      background: var(--accent);
      border-radius: 2px;
    }
   
    .w1 { height: 25%; }
    .w2 { height: 50%; }
    .w3 { height: 75%; }
    .w4 { height: 95%; }
    .w5 { height: 85%; }
    .w6 { height: 65%; }
    .w7 { height: 45%; }
    .w8 { height: 80%; }
    .w9 { height: 100%; }
    .w10 { height: 70%; }
    .w11 { height: 55%; }
    .w12 { height: 90%; }
    .w13 { height: 60%; }
    .w14 { height: 40%; }
    .w15 { height: 30%; }
   
    .voice-dur {
      font-size: 10px;
      color: #666;
    }
   
    .voice-trans {
      font-size: 10px;
      font-style: italic;
      color: #555;
      background: #f8f8f8;
      padding: 6px 10px;
      border-radius: 6px;
      margin-top: 4px;
      border-left: 3px solid var(--accent);
    }

    /* ПОЛЕ ВВОДА */
    .input-area {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 10px 10px 20px;
      background: transparent;
     
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      border: none;
      z-index: 10;
      pointer-events: none;
    }
   
    /* Большой левый пузырь */
    .input-wrap {
      flex: 1;
      height: 44px;
      background: var(--chat-bubble-bg);
      border-radius: 22px;
      padding: 0 6px 0 14px;
      display: flex;
      align-items: center;
      gap: 8px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.15);
      pointer-events: auto;
    }
   
    .chat-input {
      flex: 1;
      border: none;
      background: transparent;
      outline: none;
      font-size: 14px;
      color: #1c1d1a;
    }
   
    .chat-input::placeholder {
      color: #757870;
    }
   
    .attach-btn {
      background: none;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      width: 32px;
      height: 32px;
    }
   
    .attach-btn .icon {
      width: 22px;
      height: 22px;
      fill: #54584f;
    }
   
    /* Отдельный круглый пузырь для кнопки отправки/микрофона */
    .send-btn {
      width: 44px;
      height: 44px;
      background: var(--chat-bubble-bg);
      border-radius: 50%;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      flex-shrink: 0;
      box-shadow: 0 4px 12px rgba(0,0,0,0.15);
      pointer-events: auto;
    }
   
    .send-btn .icon {
      fill: var(--chat-icon-color);
      width: 20px;
      height: 20px;
    }

    @media (max-width: 400px) {
      .phone {
        width: 100%;
        height: 100vh;
        border-radius: 0;
        padding: 14px 5px;
      }
      .chat {
        padding-bottom: 75px;
      }
      .msg, .msg.right {
        max-width: 280px;
      }
    }
  </style>
</head>
<body>

  <div class="phone">
    <div class="phone__speaker"></div>

    <!-- ШАПКА -->
    <div class="chat-header">
      <button class="chat-header__back-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
      </button>
     
      <div class="chat-header__profile">
        <img class="chat-header__avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
        <div class="chat-header__info">
          <div class="chat-header__title-wrap">
            <span class="chat-header__title">название</span>
            <svg class="chat-header__sub-icon" viewBox="0 0 24 24"><path d="M3.63 3.63L2.22 5.04L7.18 10H4.5v4h3l5 5v-6.18l4.85 4.85c-.42.27-.87.48-1.35.62v2.02c1.02-.22 1.97-.67 2.79-1.31l2.2 2.2l1.41-1.41L3.63 3.63zM10.5 15.18L8.32 13H6.5v-2h1.82l2.18-2.18v6.36zM12.5 4L9.92 6.58l3.4 3.4L13.5 4h-1zM16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.21.05-.42.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71z"/></svg>
          </div>
          <span class="chat-header__status">был(а) недавно</span>
        </div>
      </div>
     
      <div class="chat-header__actions">
        <button class="chat-header__action-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.62c0-.55-.45-1-1-1z"/></svg>
        </button>
        <button class="chat-header__action-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
        </button>
      </div>
    </div>

    <!-- ЧАТ С ЭФФЕКТОМ ПОЛНОЙ ПРОКРУТКИ -->
    <div class="chat">
      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>lego</h3></div>
        </div>
        <div class="bubble">соо1</div>
      </div>

      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>boss chaikamon</h3></div>
        </div>
        <div class="bubble">
          <div class="voice">
            <span class="voice-icon">🎤</span>
            <div class="voice-wave">
              <span class="wave-bar w1"></span><span class="wave-bar w2"></span><span class="wave-bar w3"></span><span class="wave-bar w4"></span><span class="wave-bar w5"></span>
              <span class="wave-bar w6"></span><span class="wave-bar w7"></span><span class="wave-bar w8"></span><span class="wave-bar w9"></span><span class="wave-bar w10"></span>
              <span class="wave-bar w11"></span><span class="wave-bar w12"></span><span class="wave-bar w13"></span><span class="wave-bar w14"></span><span class="wave-bar w15"></span>
              <span class="wave-bar w3"></span><span class="wave-bar w6"></span><span class="wave-bar w9"></span><span class="wave-bar w12"></span><span class="wave-bar w2"></span>
            </div>
            <span class="voice-dur">0:32</span>
          </div>
          <div class="voice-trans">расшифровка</div>
        </div>
      </div>

      <div class="msg">
        <div class="msg-prof">
          <img class="avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="msg-info"><h3>lee heesung</h3></div>
        </div>
        <div class="bubble">
          <img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div>
        </div>
      </div>

      <div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble">Соо2алчсмчья</div>
      </div>

<div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble">
          <div class="voice">
            <span class="voice-icon">🎤</span>
            <div class="voice-wave">
              <span class="wave-bar w1"></span><span class="wave-bar w2"></span><span class="wave-bar w3"></span><span class="wave-bar w4"></span><span class="wave-bar w5"></span>
              <span class="wave-bar w6"></span><span class="wave-bar w7"></span><span class="wave-bar w8"></span><span class="wave-bar w9"></span><span class="wave-bar w10"></span>
              <span class="wave-bar w11"></span><span class="wave-bar w12"></span><span class="wave-bar w13"></span><span class="wave-bar w14"></span><span class="wave-bar w15"></span>
              <span class="wave-bar w3"></span><span class="wave-bar w6"></span><span class="wave-bar w9"></span><span class="wave-bar w12"></span><span class="wave-bar w2"></span>
            </div>
            <span class="voice-dur">0:32</span>
          </div>
          <div class="voice-trans">расшифровка</div>
       </div>
      </div>
<div class="msg right">
        <div class="msg-prof">
          <img class="avatar" src="https://i.pravatar.cc/150?img=32">
          <div class="msg-info"><h3>Liz Blake</h3></div>
        </div>
        <div class="bubble"><img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div></div></div>

    </div>

    <!-- НИЖНЕЕ ПОЛЕ ВВОДА -->
    <div class="input-area">
      <div class="input-wrap">
        <input type="text" class="chat-input" placeholder="Сообщение...">
        <button class="attach-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-3.31 2.69-6 6-6s6 2.69 6 6v10c0 4.42-3.58 8-8 8s-8-3.58-8-8V4h2v11c0 3.31 2.69 6 6 6s6-2.69 6-6V5c0-2.21-1.79-4-4-4s-4 1.79-4 4v11.5c0 1.1.9 2 2 2s2-.9 2-2V6h2z"/></svg>
        </button>
      </div>
      <button class="send-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></svg>
      </button>
    </div>

  </div>

</body>
</html>[/html]

0

7

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>
  <style>
    :root {
      --bg: #a2bca6;
      --text: #444;
      --gray: #949ca7;
      --border: #f0f2f5;
      --accent: #4a90d9;
      --chat-bubble-bg: #f3f5ee;
      --chat-icon-color: #1c1d1a;
    }
   
    * { margin: 0; padding: 0; box-sizing: border-box; font-family: Arial, sans-serif; }
    body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #b0b5c0; padding: 20px; }
   
    /* Телефон */
    .phone {
      width: 370px; height: 600px; background: var(--bg); border-radius: 42px;
      padding: 10px 5px; box-shadow: 0 30px 60px rgba(0,0,0,0.3);
      display: flex; flex-direction: column; overflow: hidden; position: relative;
    }
    .phone__speaker { width: 100px; height: 6px; background: #c2c7ce; border-radius: 20px; margin: 0 auto 12px; }

    /* Шапка */
    .chat-header { display: flex; align-items: center; gap: 6px; padding: 5px 10px 10px; z-index: 10; }
    .chat-header__back-btn { width: 44px; height: 44px; border-radius: 50%; background: var(--chat-bubble-bg); display: flex; align-items: center; justify-content: center; border: none; }
    .chat-header__profile { flex: 1; height: 44px; border-radius: 22px; background: var(--chat-bubble-bg); display: flex; align-items: center; padding: 0 8px; }
    .chat-header__avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
    .chat-header__info { margin-left: 10px; display: flex; flex-direction: column; }
    .chat-header__title { font-size: 14px; font-weight: 700; color: #1c1d1a; }
    .chat-header__actions { height: 44px;width: 44px; border-radius: 22px; background: var(--chat-bubble-bg); display: flex; align-items: center; padding: 0 4px; gap: 2px; }
    .chat-header__action-btn { width: 32px; height: 32px; border-radius: 50%; border: none; background: transparent; display: flex; align-items: center; justify-content: center; }
    .icon { width: 20px; height: 20px; fill: var(--chat-icon-color); }

    /* Чат */
    .chat {
      flex: 1; overflow-y: auto; padding: 5px 10px 75px;
      display: flex; flex-direction: column; gap: 5px; scrollbar-width: none;
      -webkit-mask-image: linear-gradient(to bottom, transparent, black 4%, black 88%, transparent);
    }
    .chat::-webkit-scrollbar { display: none; }

    /* Сообщения */
    chat-msg { position: relative; display: flex; flex-direction: column; width: max-content; max-width: 270px; }
    chat-msg[side="right"] { margin-left: auto; align-items: flex-end; }
   
    msg-user { display: flex; align-items: center; gap: 3px; z-index: 5; margin-bottom: -15px; width: 100%; }
    chat-msg[side="right"] msg-user { flex-direction: row-reverse; }
    msg-user img { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #fff; object-fit: cover; }
    msg-user h3 { font-size: 10px; font-weight: 700; padding: 0 5px; color: #1c1d1a; }
   
    soo { display: block; background: #fff; border-radius: 10px; padding: 25px 15px 15px; font-size: 11px; line-height: 1.4; color: var(--text); box-shadow: 0 4px 8px rgba(0,0,0,.06); width: 100%; min-width: 120px; }
    .msg-img { width: 100%; max-width: 220px; border-radius: 8px; margin-bottom: 6px; display: block; }
    .img-cap { font-size: 10px; color: #666; margin-top: 4px; font-style: italic; }

    /* ====================================================== */
    /* ОБНОВЛЕННОЕ ГОЛОСОВОЕ СООБЩЕНИЕ                        */
    /* ====================================================== */
    .msg-voice {
      position: relative;
      display: flex;
      flex-direction: column;
      width: 220px;
      margin-bottom: 6px;
      background: #f0f0f0;
      padding: 10px 12px;
      border-radius: 8px;
    }

    /* Микрофон + волна в один ряд */
    .msg-voice::before {
      content: '🎤';
      font-size: 13px;
      display: flex;
      align-items: center;
      height: 20px;
      background: linear-gradient(90deg, var(--accent) 2px, transparent 2px) 24px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 28px center / 4px 70%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 32px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 36px center / 4px 90%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 40px center / 4px 50%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 44px center / 4px 80%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 48px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 52px center / 4px 60%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 56px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 60px center / 4px 85%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 64px center / 4px 45%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 68px center / 4px 70%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 72px center / 4px 35%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 76px center / 4px 95%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 80px center / 4px 50%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 84px center / 4px 80%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 88px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 92px center / 4px 65%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 96px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 100px center / 4px 90%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 104px center / 4px 45%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 108px center / 4px 75%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 112px center / 4px 35%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 116px center / 4px 60%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 120px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 124px center / 4px 80%;
      background-repeat: no-repeat;
      width: 140px;
    }

    /* Время */
    .voice-duration {
      position: absolute;
      right: 12px;
      top: 15px;
      font-size: 10px;
      color: #777;
    }

    /* Расшифровка текста строго под плеером */
    .voice-trans {
      width: 100%;
      font-size: 10px;
      font-style: italic;
      color: #555;
      background: #f8f8f8;
      padding: 6px 10px;
      border-radius: 6px;
      margin-top: 8px;
      border-left: 3px solid var(--accent);
    }
    .voice-trans:empty { display: none; }
    /* ====================================================== */

    /* Поле ввода */
    .input-area { display: flex; align-items: center; gap: 6px; padding: 10px 10px 20px; position: absolute; bottom: 0; left: 0; width: 100%; z-index: 10; }
    .input-wrap { flex: 1; height: 44px; background: var(--chat-bubble-bg); border-radius: 22px; padding: 0 6px 0 14px; display: flex; align-items: center; gap: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
    .chat-input { flex: 1; border: none; background: transparent; outline: none; font-size: 14px; color: #1c1d1a; }
    .attach-btn { background: none; border: none; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; }
    .attach-btn .icon { width: 20px; height: 22px; fill: #54584f; }
    .send-btn { width: 44px; height: 44px; background: var(--chat-bubble-bg); border-radius: 50%; border: none; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
  </style>
</head>
<body>

  <div class="phone">
    <div class="phone__speaker"></div>

    <!-- ШАПКА -->
    <div class="chat-header">
      <button class="chat-header__back-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
      </button>
     
      <div class="chat-header__profile">
        <img class="chat-header__avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
        <div class="chat-header__info">
          <span class="chat-header__title">название</span>
        </div>
      </div>
     
      <div class="chat-header__actions">
        <button class="chat-header__action-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.62c0-.55-.45-1-1-1z"/></svg>
        </button>
      </div>
    </div>

    <!-- ЧАТ -->
    <div class="chat">
     
      <!-- Текст слева -->
      <chat-msg>
        <msg-user>
          <img src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <h3>lego</h3>
        </msg-user>
        <soo>соо1</soo>
      </chat-msg>

      <!-- Голосовое слева -->
      <chat-msg>
        <msg-user>
          <img src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <h3>boss chaikamon</h3>
        </msg-user>
        <soo>
          <div class="msg-voice">
            <span class="voice-duration">0:32</span>
            <div class="voice-trans">расшифровка голосового</div>
          </div>
        </soo>
      </chat-msg>

      <!-- Картинка слева -->
      <chat-msg>
        <msg-user>
          <img src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <h3>lee heesung</h3>
        </msg-user>
        <soo>
          <img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div>
        </soo>
      </chat-msg>

      <!-- Текст справа -->
      <chat-msg side="right">
        <msg-user>
          <img src="https://i.pravatar.cc/150?img=32">
          <h3>Liz Blake</h3>
        </msg-user>
        <soo>Соо2алчсмчья</soo>
      </chat-msg>

      <!-- Голосовое справа -->
      <chat-msg side="right">
        <msg-user>
          <img src="https://i.pravatar.cc/150?img=32">
          <h3>Liz Blake</h3>
        </msg-user>
        <soo>
          <div class="msg-voice">
            <span class="voice-duration">0:15</span>
            <div class="voice-trans">расшифровка другого аудио</div>
          </div>
        </soo>
      </chat-msg>

    </div>

    <!-- ПОЛЕ ВВОДА -->
    <div class="input-area">
      <div class="input-wrap">
        <input type="text" class="chat-input" placeholder="Сообщение...">
        <button class="attach-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-3.31 2.69-6 6-6s6 2.69 6 6v10c0 4.42-3.58 8-8 8s-8-3.58-8-8V4h2v11c0 3.31 2.69 6 6 6s6-2.69 6-6V5c0-2.21-1.79-4-4-4s-4 1.79-4 4v11.5c0 1.1.9 2 2 2s2-.9 2-2V6h2z"/></svg>
        </button>
      </div>
      <button class="send-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></svg>
      </button>
    </div>

  </div>

</body>
</html>[/html]

0

8

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>
  <style>
    :root {
      --bg: #a2bca6;
      --text: #444;
      --gray: #949ca7;
      --border: #f0f2f5;
      --accent: #4a90d9;
      --chat-bubble-bg: #f3f5ee;
      --chat-icon-color: #1c1d1a;
    }
   
    * { margin: 0; padding: 0; box-sizing: border-box; font-family: Arial, sans-serif; }
    body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #b0b5c0; padding: 20px; }
   
    /* Телефон */
    .phone {
      width: 370px; height: 600px; background: var(--bg); border-radius: 42px;
      padding: 10px 5px; box-shadow: 0 30px 60px rgba(0,0,0,0.3);
      display: flex; flex-direction: column; overflow: hidden; position: relative;
    }
    .phone__speaker { width: 100px; height: 6px; background: #c2c7ce; border-radius: 20px; margin: 0 auto 12px; }

    /* Шапка */
    .chat-header { display: flex; align-items: center; gap: 6px; padding: 5px 10px 10px; z-index: 10; }
    .chat-header__back-btn { width: 44px; height: 44px; border-radius: 50%; background: var(--chat-bubble-bg); display: flex; align-items: center; justify-content: center; border: none; }
    .chat-header__profile { flex: 1; height: 44px; border-radius: 22px; background: var(--chat-bubble-bg); display: flex; align-items: center; padding: 0 8px; }
    .chat-header__avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
    .chat-header__info { margin-left: 10px; display: flex; flex-direction: column; }
    .chat-header__title { font-size: 14px; font-weight: 700; color: #1c1d1a; }
    .chat-header__actions { height: 44px;width: 44px; border-radius: 22px; background: var(--chat-bubble-bg); display: flex; align-items: center; padding: 0 4px; gap: 2px; }
    .chat-header__action-btn { width: 32px; height: 32px; border-radius: 50%; border: none; background: transparent; display: flex; align-items: center; justify-content: center; }
    .icon { width: 20px; height: 20px; fill: var(--chat-icon-color); }

    /* Чат */
    .chat {
      flex: 1; overflow-y: auto; padding: 5px 10px 75px;
      display: flex; flex-direction: column; gap: 5px; scrollbar-width: none;
      -webkit-mask-image: linear-gradient(to bottom, transparent, black 4%, black 88%, transparent);
    }
    .chat::-webkit-scrollbar { display: none; }

    /* Сообщения */
    chat-msg { position: relative; display: flex; flex-direction: column; width: max-content; max-width: 270px; }
    chat-msg[side="right"] { margin-left: auto; align-items: flex-end; }
   
    msg-user { display: flex; align-items: center; gap: 3px; z-index: 5; margin-bottom: -15px; width: 100%; }
    chat-msg[side="right"] msg-user { flex-direction: row-reverse; }
    msg-user img { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #fff; object-fit: cover; }
    msg-user h3 { font-size: 10px; font-weight: 700; padding: 0 5px; color: #1c1d1a; }
   
    soo { display: block; background: #fff; border-radius: 10px; padding: 18px 10px 10px; font-size: 11px; line-height: 1.4; color: var(--text); box-shadow: 0 4px 8px rgba(0,0,0,.06); width: 100%; min-width: 120px; }
    .msg-img { width: 100%; max-width: 220px; border-radius: 8px; margin-bottom: 6px; display: block; }
    .img-cap { font-size: 10px; color: #666; margin-top: 4px; font-style: italic; }

    /* ====================================================== */
    /* ОБНОВЛЕННОЕ ГОЛОСОВОЕ СООБЩЕНИЕ                        */
    /* ====================================================== */
    .msg-voice {
      position: relative;
      display: flex;
      flex-direction: column;
      width: 220px;
      margin-bottom: 6px;
      background: #f0f0f0;
      padding: 10px 10px;
      border-radius: 8px;
    }

    /* Микрофон + волна в один ряд */
    .msg-voice::before {
      content: '🎤';
      font-size: 13px;
      display: flex;
      align-items: center;
      height: 20px;
      background: linear-gradient(90deg, var(--accent) 2px, transparent 2px) 24px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 28px center / 4px 70%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 32px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 36px center / 4px 90%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 40px center / 4px 50%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 44px center / 4px 80%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 48px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 52px center / 4px 60%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 56px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 60px center / 4px 85%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 64px center / 4px 45%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 68px center / 4px 70%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 72px center / 4px 35%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 76px center / 4px 95%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 80px center / 4px 50%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 84px center / 4px 80%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 88px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 92px center / 4px 65%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 96px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 100px center / 4px 90%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 104px center / 4px 45%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 108px center / 4px 75%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 112px center / 4px 35%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 116px center / 4px 60%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 120px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 124px center / 4px 80%;
      background-repeat: no-repeat;
      width: 140px;
    }

    /* Время */
    .voice-duration {
      position: absolute;
      right: 12px;
      top: 15px;
      font-size: 10px;
      color: #777;
    }

    /* Расшифровка текста строго под плеером */
    .voice-trans {
      width: 100%;
      font-size: 10px;
      font-style: italic;
      color: #555;
      background: #f8f8f8;
      padding: 6px 10px;
      border-radius: 6px;
      margin-top: 8px;
      border-left: 3px solid var(--accent);
    }
    .voice-trans:empty { display: none; }
    /* ====================================================== */

    /* Поле ввода */
    .input-area { display: flex; align-items: center; gap: 6px; padding: 10px 10px 20px; position: absolute; bottom: 0; left: 0; width: 100%; z-index: 10; }
    .input-wrap { flex: 1; height: 44px; background: var(--chat-bubble-bg); border-radius: 22px; padding: 0 6px 0 14px; display: flex; align-items: center; gap: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
    .chat-input { flex: 1; border: none; background: transparent; outline: none; font-size: 14px; color: #1c1d1a; }
    .attach-btn { background: none; border: none; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; }
    .attach-btn .icon { width: 20px; height: 22px; fill: #54584f; }
    .send-btn { width: 44px; height: 44px; background: var(--chat-bubble-bg); border-radius: 50%; border: none; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
  </style>
</head>
<body>

  <div class="phone">
    <div class="phone__speaker"></div>

    <!-- ШАПКА -->
    <div class="chat-header">
      <button class="chat-header__back-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
      </button>
     
      <div class="chat-header__profile">
        <img class="chat-header__avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
        <div class="chat-header__info">
          <span class="chat-header__title">название</span>
        </div>
      </div>
     
      <div class="chat-header__actions">
        <button class="chat-header__action-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.62c0-.55-.45-1-1-1z"/></svg>
        </button>
      </div>
    </div>

    <!-- ЧАТ -->
    <div class="chat">
     
      <!-- Текст слева -->
      <chat-msg>
        <msg-user>
          <img src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <h3>lego</h3>
        </msg-user>
        <soo>соо1</soo>
      </chat-msg>

      <!-- Голосовое слева -->
      <chat-msg>
        <soo>
          <div class="msg-voice">
            <span class="voice-duration">0:32</span>
            <div class="voice-trans">расшифровка голосового</div>
          </div>
        </soo>
      </chat-msg>

      <!-- Картинка слева -->
      <chat-msg>
        <soo>
          <img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div>
        </soo>
      </chat-msg>
   
      <!-- Текст справа -->
      <chat-msg side="right">
        <msg-user>
          <img src="https://i.pravatar.cc/150?img=32">
          <h3>Liz Blake</h3>
        </msg-user>
        <soo>Соо2алчсмчья</soo>
      </chat-msg>

      <!-- Голосовое справа -->
      <chat-msg side="right">
        <msg-user>
          <img src="https://i.pravatar.cc/150?img=32">
          <h3>Liz Blake</h3>
        </msg-user>
        <soo>
          <div class="msg-voice">
            <span class="voice-duration">0:15</span>
            <div class="voice-trans">расшифровка другого аудио</div>
          </div>
        </soo>
      </chat-msg>
</div>
    <!-- ПОЛЕ ВВОДА -->
    <div class="input-area">
      <div class="input-wrap">
        <input type="text" class="chat-input" placeholder="Сообщение...">
        <button class="attach-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-3.31 2.69-6 6-6s6 2.69 6 6v10c0 4.42-3.58 8-8 8s-8-3.58-8-8V4h2v11c0 3.31 2.69 6 6 6s6-2.69 6-6V5c0-2.21-1.79-4-4-4s-4 1.79-4 4v11.5c0 1.1.9 2 2 2s2-.9 2-2V6h2z"/></svg>
        </button>
      </div>
      <button class="send-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></svg>
      </button>
    </div>

  </div>

</body>
</html>[/html]

0

9

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>
  <style>
    :root {
      --bg: #a2bca6;
      --text: #444;
      --gray: #949ca7;
      --border: #f0f2f5;
      --accent: #4a90d9;
      --chat-bubble-bg: #f3f5ee;
      --chat-icon-color: #1c1d1a;
    }
   
    * { margin: 0; padding: 0; box-sizing: border-box; font-family: Arial, sans-serif; }
    body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #b0b5c0; padding: 20px; }
   
    /* Телефон */
    .phone {
      width: 370px; height: 600px; background: var(--bg); border-radius: 42px;
      padding: 10px 5px; box-shadow: 0 30px 60px rgba(0,0,0,0.3);
      display: flex; flex-direction: column; overflow: hidden; position: relative;
    }
    .phone__speaker { width: 100px; height: 6px; background: #c2c7ce; border-radius: 20px; margin: 0 auto 12px; }

    /* Шапка */
    .chat-header { display: flex; align-items: center; gap: 6px; padding: 5px 10px 10px; z-index: 10; }
    .chat-header__back-btn { width: 44px; height: 44px; border-radius: 50%; background: var(--chat-bubble-bg); display: flex; align-items: center; justify-content: center; border: none; }
    .chat-header__profile { flex: 1; height: 44px; border-radius: 22px; background: var(--chat-bubble-bg); display: flex; align-items: center; padding: 0 8px; }
    .chat-header__avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
    .chat-header__info { margin-left: 10px; display: flex; flex-direction: column; }
    .chat-header__title { font-size: 14px; font-weight: 700; color: #1c1d1a; }
    .chat-header__actions { height: 44px;width: 44px; border-radius: 22px; background: var(--chat-bubble-bg); display: flex; align-items: center; padding: 0 4px; gap: 2px; }
    .chat-header__action-btn { width: 32px; height: 32px; border-radius: 50%; border: none; background: transparent; display: flex; align-items: center; justify-content: center; }
    .icon { width: 20px; height: 20px; fill: var(--chat-icon-color); }

    /* Чат */
    .chat {
      flex: 1; overflow-y: auto; padding: 5px 10px 75px;
      display: flex; flex-direction: column; gap: 12px; scrollbar-width: none;
      -webkit-mask-image: linear-gradient(to bottom, transparent, black 4%, black 88%, transparent);
    }
    .chat::-webkit-scrollbar { display: none; }

    /* Контейнер для группы сообщений */
    chat-msg { position: relative; display: flex; flex-direction: column; gap: 3px; width: 100%; }
    chat-msg[side="right"] { align-items: flex-end; }
   
    /* Имя и аватарка */
    msg-user { display: flex; align-items: center; gap: 3px; z-index: 5; margin-bottom: -20px; width: max-content; }
    chat-msg[side="right"] msg-user { flex-direction: row-reverse; }
    msg-user img { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #fff; object-fit: cover; }
    msg-user h3 { font-size: 10px; font-weight: 700; padding: 0 5px; color: #1c1d1a; }
   
    /* Исправленные сообщения (плашки) */
    soo {
      display: block;
      background: #fff;
      border-radius: 10px;
      padding: 10px;
      font-size: 11px;
      line-height: 1.4;
      color: var(--text);
      box-shadow: 0 4px 8px rgba(0,0,0,.06);
     
      /* Теперь каждое сообщение само определяет свою ширину */
      width: max-content;
      max-width: 270px;
      min-width: 60px;
    }
   
    /* Для правых сообщений сдвигаем аватарку в правый край */
    chat-msg[side="right"] msg-user { margin-left: auto; }

    /* Специфический отступ сверху ТОЛЬКО для самого первого сообщения в блоке */
    soo:first-of-type { padding-top: 18px; min-width: 120px; }

    .msg-img { width: 100%; max-width: 220px; border-radius: 8px; margin-bottom: 6px; display: block; }
    .img-cap { font-size: 10px; color: #666; margin-top: 4px; font-style: italic; }

    /* Голосовое сообщение */
    .msg-voice {
      position: relative;
      display: flex;
      flex-direction: column;
      width: 220px;
      margin-bottom: 6px;
      background: #f0f0f0;
      padding: 10px 10px;
      border-radius: 8px;
    }

.msg-voice::before {
  content: '🎤';
  font-size: 13px;
  display: flex;
  align-items: center;
  height: 20px;
  /* Увеличили ширину блока, чтобы он доставал до цифр */
  width: 165px;
  background: linear-gradient(90deg, var(--accent) 2px, transparent 2px) 24px center / 4px 40%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 28px center / 4px 70%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 32px center / 4px 30%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 36px center / 4px 90%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 40px center / 4px 50%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 44px center / 4px 80%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 48px center / 4px 40%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 52px center / 4px 60%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 56px center / 4px 30%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 60px center / 4px 85%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 64px center / 4px 45%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 68px center / 4px 70%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 72px center / 4px 35%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 76px center / 4px 95%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 80px center / 4px 50%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 84px center / 4px 80%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 88px center / 4px 40%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 92px center / 4px 65%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 96px center / 4px 30%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 100px center / 4px 90%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 104px center / 4px 45%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 108px center / 4px 75%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 112px center / 4px 35%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 116px center / 4px 60%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 120px center / 4px 40%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 124px center / 4px 80%,
    /* Новые волны */
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 128px center / 4px 45%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 132px center / 4px 70%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 136px center / 4px 35%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 140px center / 4px 90%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 144px center / 4px 50%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 148px center / 4px 75%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 152px center / 4px 40%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 156px center / 4px 85%,
    linear-gradient(90deg, var(--accent) 2px, transparent 2px) 160px center / 4px 60%;
  background-repeat: no-repeat;
}

    .voice-duration { position: absolute; right: 12px; top: 15px; font-size: 10px; color: #777; }
    .voice-trans { width: 100%; font-size: 10px; font-style: italic; color: #555; background: #f8f8f8; padding: 6px 10px; border-radius: 6px; margin-top: 8px; border-left: 3px solid var(--accent); }
    .voice-trans:empty { display: none; }

    /* Поле ввода */
    .input-area { display: flex; align-items: center; gap: 6px; padding: 10px 10px 20px; position: absolute; bottom: 0; left: 0; width: 100%; z-index: 10; }
    .input-wrap { flex: 1; height: 44px; background: var(--chat-bubble-bg); border-radius: 22px; padding: 0 6px 0 14px; display: flex; align-items: center; gap: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
    .chat-input { flex: 1; border: none; background: transparent; outline: none; font-size: 14px; color: #1c1d1a; }
    .attach-btn { background: none; border: none; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; }
    .attach-btn .icon { width: 20px; height: 22px; fill: #54584f; }
    .send-btn { width: 44px; height: 44px; background: var(--chat-bubble-bg); border-radius: 50%; border: none; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
  </style>
</head>
<body>

  <div class="phone">
    <div class="phone__speaker"></div>

    <!-- ШАПКА -->
    <div class="chat-header">
      <button class="chat-header__back-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
      </button>
     
      <div class="chat-header__profile">
        <img class="chat-header__avatar" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
        <div class="chat-header__info">
          <span class="chat-header__title">название</span>
        </div>
      </div>
     
      <div class="chat-header__actions">
        <button class="chat-header__action-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.62c0-.55-.45-1-1-1z"/></svg>
        </button>
      </div>
    </div>

    <!-- ЧАТ -->
    <div class="chat">
     
      <!-- ВСЯ ПЕРЕПИСКА СЛЕВА -->
      <chat-msg>
        <msg-user>
          <img src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <h3>lego</h3>
        </msg-user>
       
        <soo>соо1</soo>
       
        <soo>
          <div class="msg-voice">
            <span class="voice-duration">0:32</span>
            <div class="voice-trans">расшифровка голосового</div>
          </div>
        </soo>
       
        <soo>
          <img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div>
        </soo>
      </chat-msg>
   
      <!-- ВСЯ ПЕРЕПИСКА СПРАВА -->
      <chat-msg side="right">
        <msg-user>
          <img src="https://i.pravatar.cc/150?img=32">
          <h3>Liz Blake</h3>
        </msg-user>
       
        <soo>Соо2алчсмчья</soo>
       
        <soo>
          <div class="msg-voice">
            <span class="voice-duration">0:15</span>
            <div class="voice-trans">расшифровка другого аудио</div>
          </div>
        </soo>
      </chat-msg>
     
    </div>

    <!-- ПОЛЕ ВВОДА -->
    <div class="input-area">
      <div class="input-wrap">
        <input type="text" class="chat-input" placeholder="Сообщение...">
        <button class="attach-btn">
          <svg class="icon" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-3.31 2.69-6 6-6s6 2.69 6 6v10c0 4.42-3.58 8-8 8s-8-3.58-8-8V4h2v11c0 3.31 2.69 6 6 6s6-2.69 6-6V5c0-2.21-1.79-4-4-4s-4 1.79-4 4v11.5c0 1.1.9 2 2 2s2-.9 2-2V6h2z"/></svg>
        </button>
      </div>
      <button class="send-btn">
        <svg class="icon" viewBox="0 0 24 24"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></svg>
      </button>
    </div>

  </div>

</body>
</html>[/html]

0

10

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat UI — телефон</title>
  <style>
    :root {
      --bg: #a2bca6;
      --text: #444;
      --gray: #949ca7;
      --accent: #4a90d9;
      --chat-bubble-bg: #f3f5ee;
      --icon-color: %231c1d1a;
      --icon-gray: %2354584f;
    }
   
    * { margin: 0; padding: 0; box-sizing: border-box; font-family: Arial, sans-serif; }
   
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 100vh;
      padding: 20px;
      background: url('https://images.unsplash.com/photo-1518709268805-4e9042af9f23?q=80&w=1000&auto=format&fit=crop') center/cover no-repeat fixed;
    }
   
    /* ТЕЛЕФОН */
    .phone {
      width: 370px;
      height: 600px;
      background: var(--bg);
      border-radius: 42px;
      padding: 10px 5px 0;
      box-shadow: 0 30px 60px rgba(0,0,0,0.3);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      position: relative;
    }
    .phone-bg {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
      pointer-events: none;
    }
    .phone > *:not(.phone-bg) {
      position: relative;
      z-index: 1;
    }
    .phone__speaker {
      width: 100px;
      height: 6px;
      background: #c2c7ce;
      border-radius: 20px;
      margin: 0 auto 6px;
      z-index: 20;
    }

    /* 1 ВАРИАНТ: ШАПКА В ОДИН КЛАСС .header */
    .header {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 0 8px;
      height: 44px;
      background: var(--chat-bubble-bg);
      border-radius: 22px;
      font-size: 14px;
      font-weight: 700;
      color: #1c1d1a;
      z-index: 10;
      position: relative;
      margin: 5px 60px 10px; /* Отступы с боков дают место под кнопки */
    }

    .header img {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      object-fit: cover;
    }

    /* Кнопка «Назад» слева */
    .header::before {
      content: '';
      position: absolute;
      left: -50px;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--chat-bubble-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='var(--icon-color)'%3E%3Cpath d='M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z'/%3E%3C/svg%3E") center / 20px no-repeat;
    }

    /* Кнопка «Звонок» справа */
    .header::after {
      content: '';
      position: absolute;
      right: -50px;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--chat-bubble-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='var(--icon-color)'%3E%3Cpath d='M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.28-.26.36-.65.25-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.62c0-.55-.45-1-1-1z'/%3E%3C/svg%3E") center / 20px no-repeat;
    }

    /* ЧАТ */
    .chat {
      flex: 1;
      overflow-y: auto;
      padding: 60px 10px 80px;
      margin-top: -60px;       
      display: flex;
      flex-direction: column;
      gap: 10px;
      scrollbar-width: none;
     
      -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        transparent 55px,
        black 55px,
        black calc(100% - 90px),
        transparent 100%
      );
      mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        transparent 55px,
        black 65px,
        black calc(100% - 90px),
        transparent 100%
      );
    }
    .chat::-webkit-scrollbar { display: none; }

    /* ГРУППА СООБЩЕНИЙ */
    chat-msg { position: relative; display: flex; flex-direction: column; gap: 3px; width: 100%; }
    chat-msg[side="right"] { align-items: flex-end; }
   
    msg-user { display: flex; align-items: center; gap: 3px; z-index: 5; margin-bottom: -20px; width: max-content; }
    chat-msg[side="right"] msg-user { flex-direction: row-reverse; margin-left: auto; }
    msg-user img { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #fff; object-fit: cover; }
    msg-user h3 { font-size: 10px; font-weight: 700; padding: 0 5px; color: #1c1d1a; }
   
    soo {
      display: block; background: #fff; border-radius: 10px; padding: 10px;
      font-size: 11px; line-height: 1.4; color: var(--text);
      box-shadow: 0 4px 8px rgba(0,0,0,.06); width: max-content;
      max-width: 270px; min-width: 60px;
    }
    soo:first-of-type { padding-top: 18px; min-width: 120px; }

    .msg-img { width: 100%; max-width: 220px; border-radius: 8px; margin-bottom: 6px; display: block; }
    .img-cap { font-size: 10px; color: #666; margin-top: 4px; font-style: italic; }

    /* ГОЛОСОВОЕ */
    .msg-voice {
      position: relative; display: flex; flex-direction: column;
      width: 220px; margin-bottom: 6px; background: #f0f0f0;
      padding: 10px 10px; border-radius: 8px;
    }
    .msg-voice::before {
      content: '🎤'; font-size: 13px; display: flex; align-items: center;
      height: 20px; width: 165px;
      background: linear-gradient(90deg, var(--accent) 2px, transparent 2px) 24px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 28px center / 4px 70%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 32px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 36px center / 4px 90%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 40px center / 4px 50%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 44px center / 4px 80%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 48px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 52px center / 4px 60%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 56px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 60px center / 4px 85%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 64px center / 4px 45%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 68px center / 4px 70%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 72px center / 4px 35%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 76px center / 4px 95%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 80px center / 4px 50%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 84px center / 4px 80%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 88px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 92px center / 4px 65%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 96px center / 4px 30%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 100px center / 4px 90%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 104px center / 4px 45%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 108px center / 4px 75%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 112px center / 4px 35%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 116px center / 4px 60%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 120px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 124px center / 4px 80%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 128px center / 4px 45%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 132px center / 4px 70%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 136px center / 4px 35%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 140px center / 4px 90%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 144px center / 4px 50%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 148px center / 4px 75%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 152px center / 4px 40%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 156px center / 4px 85%,
        linear-gradient(90deg, var(--accent) 2px, transparent 2px) 160px center / 4px 60%;
      background-repeat: no-repeat;
    }
    .voice-duration { position: absolute; right: 12px; top: 15px; font-size: 10px; color: #777; }
    .voice-trans { width: 100%; font-size: 10px; font-style: italic; color: #555; background: #f8f8f8; padding: 6px 10px; border-radius: 6px; margin-top: 8px; border-left: 3px solid var(--accent); }
    .voice-trans:empty { display: none; }

    /* НИЖНЯЯ ПАНЕЛЬ ВВОДА В CSS */
    .phone::before {
      content: 'Сообщение...';
      position: absolute;
      bottom: 20px;
      left: 10px;
      width: 280px;
      height: 44px;
      background: var(--chat-bubble-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='var(--icon-gray)'%3E%3Cpath d='M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-3.31 2.69-6 6-6s6 2.69 6 6v10c0 4.42-3.58 8-8 8s-8-3.58-8-8V4h2v11c0 3.31 2.69 6 6 6s6-2.69 6-6V5c0-2.21-1.79-4-4-4s-4 1.79-4 4v11.5c0 1.1.9 2 2 2s2-.9 2-2V6h2z'/%3E%3C/svg%3E") right 10px center / 20px no-repeat;
      border-radius: 22px;
      padding-left: 16px;
      display: flex;
      align-items: center;
      font-size: 14px;
      color: #7a7d77;
      box-shadow: 0 4px 12px rgba(0,0,0,0.15);
      z-index: 10;
    }

    .phone::after {
      content: '';
      position: absolute;
      bottom: 20px;
      right: 10px;
      width: 44px;
      height: 44px;
      background: var(--chat-bubble-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='var(--icon-color)'%3E%3Cpath d='M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z'/%3E%3C/svg%3E") center / 20px no-repeat;
      border-radius: 50%;
      box-shadow: 0 4px 12px rgba(0,0,0,0.15);
      z-index: 10;
    }
  </style>
</head>
<body>

  <div class="phone">
    <img class="phone-bg" src="!!">
    <div class="phone__speaker"></div>

    <!-- ШАПКА В ОДИН ТЕГ -->
    <header class="header">
      <img src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg" alt="Avatar">
      <span>название</span>
    </header>

    <!-- ЧАТ -->
    <div class="chat">
     
      <!-- ВСЯ ПЕРЕПИСКА СЛЕВА -->
      <chat-msg>
        <msg-user>
          <img src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <h3>lego</h3>
        </msg-user>
       
        <soo>соо1</soo>
       
        <soo>
          <div class="msg-voice">
            <span class="voice-duration">0:32</span>
            <div class="voice-trans">расшифровка голосового</div>
          </div>
        </soo>
       
        <soo>
          <img class="msg-img" src="https://upforme.ru/uploads/001c/b5/80/5/16050.jpg">
          <div class="img-cap">подпись к картинке</div>
        </soo>
      </chat-msg>
   
      <!-- ВСЯ ПЕРЕПИСКА СПРАВА -->
      <chat-msg side="right">
        <msg-user>
          <img src="https://i.pravatar.cc/150?img=32">
          <h3>Liz Blake</h3>
        </msg-user>
       
        <soo>Соо2алчсмчья</soo>
       
        <soo>
          <div class="msg-voice">
            <span class="voice-duration">0:15</span>
            <div class="voice-trans">расшифровка другого аудио</div>
          </div>
        </soo>
      </chat-msg>
     
    </div>

  </div>

</body>
</html>
[/html]

0


Вы здесь » yanichegoneznayu » Тестовый форум » кладовая


Рейтинг форумов | Создать форум бесплатно