Добавить CSS для каждого пользователя в плагине?

Как в плагине добавить CSS для конкретного пользователя? Например, на основе настройки пользователя?

Добавление стилей и прочего к элементам или через таблицы стилей будет глобальным, верно?

Что вы пытаетесь сделать? Вы можете изменить цвет отдельных имён пользователей или упоминаний просто через обычный CSS темы. Если же вы имеете в виду изменение какой-то конкретной части темы с помощью переключателя в настройках конкретного пользователя, то, насколько я знаю, это невозможно без предоставления ему собственной темы. Хотя я не эксперт.

Например, настройка для каждого пользователя, позволяющая изменять шрифты для определённых элементов (например, редактора Markdown).

Вы можете предложить группы, которые пользователи могут присоединять, и использовать CSS Classes for Current User's Groups.

Или пользователь может использовать плагин браузера, чтобы изменить CSS только для себя. Я использую Stylus для настройки своего опыта на Meta.

Было ли поле ввода случайным примером? Или что вы хотите предложить дополнительно к «Использовать моноширинный шрифт в режиме Markdown поля ввода», которое можно включить или отключить в настройках?

В каком-то смысле. Я думал о том, как шрифт будет меняться для каждого пользователя.

Скорее всего, это можно реализовать в плагине, выполнив действия следующего рода:

  • с помощью API плагина добавить api.addSaveableUserOptionField("composer-custom-font")
  • добавить поле в таблицу UserOption в базе данных и в сериализатор, чтобы его можно было установить
  • добавить коннектор на страницу интерфейса пользователя, чтобы можно было задать эту настройку
  • можно сделать настройку выпадающим списком, например, чтобы при выборе пользователем определённого шрифта или стиля шрифта его предпочтение сохранялось в базе данных
  • можно расширить код редактора (composer), чтобы он учитывал выбранные пользователем настройки, и либо напрямую изменять стили с помощью JS, либо добавлять CSS-класс в зависимости от выбранной настройки, к которому затем можно применить стили через CSS