Как изменить ширину, при которой отображается маленький логотип?

Привет! Раньше я вставлял название своего форума текстом в заголовок после логотипа, но было сложно заставить его корректно отображаться при всех возможных комбинациях ширины браузера и содержимого заголовка. Поэтому теперь я использую изображение логотипа, в котором сам логотип сопровождается названием форума.

Но после обновления до версии v2026.7.0 у меня возникли проблемы с его отображением на определенных ширинах внутри тем. (На главной странице проблем нет, так как там в заголовке больше свободного пространства). В настройках Discourse для Малого логотипа указано: «Малое изображение логотипа в левом верхнем углу вашего сайта, видимое при прокрутке вниз». Однако фактическое поведение немного сложнее. При ширине браузера >=1015 пикселей (примерно) при прокрутке вниз внутри темы с видимой боковой панелью используется Основной логотип, который приходится уменьшать, чтобы он поместился в оставшееся небольшое пространство слева от заголовка темы, из-за чего в моем случае он становится нечитаемым. Затем при ширине меньше ~1015 пикселей происходит переключение на Малый логотип. Есть ли способ заставить систему всегда использовать Малый логотип или даже Мобильный логотип при прокрутке вниз в представлении темы? В этой старой теме есть некоторые похожие идеи, но это не совсем то, что я хочу сделать, и я не уверен, что техническая реализация все еще актуальна:

это не поведение по умолчанию… возможно, это тема? вы используете Horizon? мне кажется, что она меняет поведение логотипа

Привет, спасибо за ответ. Я уже несколько лет использую Sam's Simple Theme, и мне кажется, что он не меняет поведение логотипа. Также я использую GitHub - discourse/discourse-full-width-component: Make Discourse occupy the full browser width · GitHub. В любом случае, мне удалось обойти эти странности с помощью некоторых пользовательских CSS-правил, но теперь они перестали работать в последней версии Discourse ESR. Думаю, корень проблемы в этом:

Можете подтвердить, является ли такое поведение стандартным?

Ах, думаю, проблема в этом. Этот компонент темы также переопределяет стандартное поведение логотипа.

Нет, не является… вот маленький логотип в теме Foundation без компонентов темы, ширина 1020 пикселей.

А вот тема Foundation с компонентом full width.

О, вы правы…

// Когда боковая панель видна, принудительно устанавливаем для HomeLogo состояние «не свернуто».
  const transformerExists = api.registerValueTransformer?.(
    "home-logo-minimized",
    ({ value, context }) => {
      if (value && context.showSidebar) {
        return false;
      }
      return value;
    }
  );

^ И этот тоже, но он только для автоматического тестирования, верно?

Существует ли какой-нибудь относительно чистый способ «переопределить переопределение», не создавая полную вилку компонента? Мне это нужно в основном потому, что 1) многие мои пользователи явно выразили сильное предпочтение широкому макету, и 2) есть слишком много крупных и мелких особенностей, которые необходимо обрабатывать с помощью CSS-правил, помимо простого увеличения значений --d-max-width и --topic-body-width. Я поддерживаю свой собственный темплейт-компонент с набором чистых CSS-правил, которые я скопировал и адаптировал из discourse-full-width-component/common/common.scss at main · discourse/discourse-full-width-component · GitHub, но он обычно ломается с каждым крупным релизом Discourse, и я предпочел бы что-то лучше поддерживаемое и требующее меньшего обслуживания, вроде компонента Full Width.

Думаю, самый простой способ — просто добавить настройку в существующий компонент, что я и сделал! UX: add a setting to disable logo changes - Pull Request #71 - discourse/discourse-full-width-component - GitHub

Теперь вы можете перейти в настройки темы и просто поставить галочку в поле «использовать стандартное поведение логотипа»

Отлично!! Большое спасибо, Крис.

Будет ли этот коммит доступен для ESR? В настоящее время указано, что мой компонент Full width Theme is up-to-date with d-compat/2026.7 .

Да, конечно, эти изменения полностью контролируются новым параметром, поэтому их можно безопасно перенести в эту версию. Теперь они должны быть доступны.

Отлично, большое спасибо!