На скриншоте видно, что иконка кнопки удаления чата (🗑️) может отображаться некорректно или иметь проблемы с рендерингом в некоторых браузерах/ОС.
# Убрана вариация селектора (variation selector)
st.button("🗑", ...) # Вместо "🗑️"Почему это работает:
🗑️состоит из двух символов: U+1F5D1 (корзина) + U+FE0F (variation selector)- Variation selector указывает браузеру использовать эмодзи-стиль
- Не все браузеры корректно обрабатывают variation selector
🗑(только U+1F5D1) — более совместимый вариант
st.button("✖", key=f"delete_btn_{session_id}", help="Удалить чат")
# Или
st.button("×", key=f"delete_btn_{session_id}", help="Удалить чат")st.button("🗑", key=f"delete_btn_{session_id}", help="Удалить чат") # U+1F5D1
st.button("🗙", key=f"delete_btn_{session_id}", help="Удалить чат") # U+1F5D9 (cancel)
st.button("⌫", key=f"delete_btn_{session_id}", help="Удалить чат") # U+232B (backspace)import streamlit.components.v1 as components
# В начале приложения
st.markdown("""
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
""", unsafe_allow_html=True)
# В кнопке
st.markdown("""
<button style="...">
<i class="material-icons">delete</i>
</button>
""", unsafe_allow_html=True)delete_icon = """
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<polyline points="3 6 5 6 21 6"></polyline>
<path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path>
<line x1="10" y1="11" x2="10" y2="17"></line>
<line x1="14" y1="11" x2="14" y2="17"></line>
</svg>
"""
st.button(delete_icon, key=f"delete_btn_{session_id}", help="Удалить чат")- Перезагрузите приложение
- Откройте sidebar
- Посмотрите на иконки удаления в списке чатов
- Иконка корзины отображается чётко
- Нет "квадратиков" или других артефактов
- Иконка видна на всех элементах списка
| Вариант | Совместимость | Визуал | Сложность |
|---|---|---|---|
🗑 (текущий) |
⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐ |
✖ или × |
⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐ |
🗙 |
⭐⭐⭐ | ⭐⭐⭐ | ⭐ |
| Material Icons | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| SVG | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
-
Проверьте шрифт браузера
- Некоторые шрифты не поддерживают эмодзи
- Попробуйте другой браузер (Chrome, Firefox, Edge)
-
Используйте простой символ
st.button("✖", ...) # Крестик — универсальный символ
-
Добавьте текст рядом с иконкой (только для широкого sidebar)
if sidebar_width > 300: st.button("🗑 Удалить", ...) else: st.button("🗑", ...)
Если текущее решение не помогло, замените строку 246 в app.py:
"✖", # Простой крестик — работает везде"⊗", # Круг с крестиком"⊖", # Минус в кругеФайл: app.py
Строка: ~246
Было: "🗑️"
Стало: "🗑"
Причина: Убран variation selector (U+FE0F) для улучшения совместимости с различными браузерами и операционными системами.
- ✅ Изменён символ иконки удаления
- ✅ Улучшена совместимость с браузерами
- ✅ Сохранена функциональность
- ✅ Подготовлены альтернативные варианты
Перезагрузите приложение и проверьте результат! 🚀