/** * message-inputs.scss * Унифицированные стили для полей ввода сообщений и комментариев */ $message-bg-default: transparent; $message-bg-focused: transparent; .message-field { display: flex; align-items: center; gap: var(--space-1); width: 100%; padding: 0.35rem 0.4rem; border: 1px solid var(--bs-border-color); border-radius: 999px; background: $message-bg-default; transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease; --message-action-size: 42px; flex-wrap: nowrap; // Важно: запрещаем перенос элементов на новую строку } .message-field:focus-within { border-color: var(--bs-primary); box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.15); background: $message-bg-focused; } .message-field--stacked { align-items: stretch; flex-direction: column; border-radius: 24px; padding: 0.75rem; gap: var(--space-1); } .message-field--compact { padding: 0.25rem 0.3rem; border-radius: 24px; --message-action-size: 36px; } .message-input, .composer-textarea { flex: 1 1 auto; min-width: 0; // Важно: позволяет сжиматься ниже размера контента border: none !important; background: transparent !important; resize: none; padding: 0.5rem 0.75rem; line-height: 1.4; font-size: 1rem; color: inherit; scrollbar-width: none; box-shadow: none !important; outline: none !important; // Высота управляется через textareaAutoExpand.js для rows="1" // Для остальных textarea используется стандартное поведение } .message-field--compact .message-input { font-size: 0.95rem; // min-height удален - управляется textareaAutoExpand.js } .message-field--stacked .message-input { min-height: 96px; padding: 0.35rem 0; } .message-input:focus { outline: none; box-shadow: none; } .message-input::-webkit-scrollbar { display: none; } // Кнопки действий в формах сообщений // Размеры и форма определяются здесь, стили (цвета, эффекты) - в custom-bootstrap.scss .message-icon-btn, .btn-attachment, .btn-send, .message-send, .btn-emoji { width: var(--message-action-size, 42px) !important; min-width: var(--message-action-size, 42px) !important; height: var(--message-action-size, 42px) !important; border-radius: 50% !important; display: inline-flex !important; align-items: center; justify-content: center; padding: 0 !important; aspect-ratio: 1 / 1; flex: 0 0 auto; line-height: 1; font-size: 1.05rem; --bs-btn-padding-x: 0 !important; --bs-btn-padding-y: 0 !important; --bs-btn-border-radius: 50% !important; box-sizing: border-box; } // Кнопка отправки - дополнительная тень .message-send, .btn-send { box-shadow: 0 4px 12px rgba(var(--bs-primary-rgb), 0.2); } .message-attach { position: relative; } .message-attach .dropdown-menu { margin-top: 0.35rem; border-radius: 16px; padding: 0.5rem; } .message-emoji .dropdown-menu { min-width: 260px; padding: 0; border-radius: 16px; overflow: hidden; } .chat-emoji-picker { width: min(340px, 90vw); max-width: 360px; height: 340px; border: none; outline: none; // Основные переменные для светлой и тёмной темы --background-color: var(--bs-body-bg); --text-color: var(--bs-body-color); --category-font-color: var(--bs-secondary-color); --hover-color: var(--bs-secondary-bg); --button-active-background: var(--bs-primary-bg-subtle, var(--bs-primary)); --button-hover-background: var(--bs-secondary-bg); --focus-indicator: var(--bs-primary); --border-color: color-mix(in srgb, var(--bs-border-color), transparent 25%); --input-border-color: color-mix(in srgb, var(--bs-border-color), transparent 30%); --input-placeholder-color: var(--bs-secondary-color); --input-focus-border-color: var(--bs-primary); --indicator-color: var(--bs-primary); // RGB переменные для emoji-picker-element (для тёмной темы) --rgb-background: var(--bs-body-bg-rgb); --rgb-color: var(--bs-body-color-rgb); --rgb-accent: var(--bs-primary-rgb); --rgb-input: var(--bs-body-bg-rgb); // Скроллбар для светлой темы по умолчанию --scrollbar-color: rgba(0, 0, 0, 0.3); --scrollbar-background: rgba(0, 0, 0, 0.05); // Скрываем кнопку выбора тона кожи button.favorites { display: none !important; } // Кастомный скроллбар для внутренней панели ::part(tabpanel) { scrollbar-width: thin; scrollbar-color: var(--scrollbar-color) var(--scrollbar-background); } ::part(tabpanel)::-webkit-scrollbar { width: 8px; } ::part(tabpanel)::-webkit-scrollbar-track { background: var(--scrollbar-background); } ::part(tabpanel)::-webkit-scrollbar-thumb { background: var(--scrollbar-color); border-radius: 4px; } ::part(tabpanel)::-webkit-scrollbar-thumb:hover { background: rgba(var(--bs-body-color-rgb), 0.4); } } // Дополнительные стили для тёмной темы [data-bs-theme="dark"] { .chat-emoji-picker { // Явно устанавливаем цвета для тёмной темы --background-color: var(--bs-body-bg); --text-color: var(--bs-body-color); --secondary-text-color: var(--bs-secondary-color); --category-emoji-size: 1.125rem; // Скроллбар для темной темы --scrollbar-color: rgba(255, 255, 255, 0.3); --scrollbar-background: rgba(255, 255, 255, 0.05); } } .message-field--solo { display: block; border-radius: 24px; padding: 0.75rem 1rem; } .message-field--solo .message-input { width: 100%; min-height: 120px; padding: 0; } @media (max-width: 576px) { .message-field { // Уменьшаем размеры кнопок на мобильных --message-action-size: 38px; padding: 0.3rem 0.35rem; gap: 0.25rem; } .message-field--compact { --message-action-size: 32px; padding: 0.2rem 0.25rem; } .message-input, .composer-textarea { // Уменьшаем отступы для экономии места padding: 0.4rem 0.5rem; font-size: 0.95rem; } }