Возможность кастомизации в дискурсе?

Я слежу за Discourse уже несколько лет, но колебался с переходом, так как не знаком с программированием и настройками командной строки. Однако захватывающие функции и открытая природа проекта в итоге убедили меня мигрировать с XenForo при помощи технически подкованного друга.

Теперь я полон энтузиазма, чтобы настроить свой форум! Как UI/UX-дизайнер, у меня много идей, но я не уверен, с чего начать. В XenForo я использовал темы, максимально близкие к моему видению, и вносил незначительные правки с помощью CSS. Встроенные опции тем также позволяли настраивать отдельные элементы интерфейса, например, фон сообщений или границы боковой панели, через графический интерфейс.

В Discourse я вижу опцию палитры цветов, но есть ли встроенные средства для более детальной стилизации, или мне придётся полагаться на код для всего? Любые рекомендации будут очень кстати! Тем не менее, я по-настоящему впечатлён функциональностью Discourse и с нетерпением жду возможности исследовать его потенциал.

Добро пожаловать :slight_smile:

Помимо палитры цветов, всё остальное — это CSS/SCSS, а при необходимости и другие технологии (JS, HTML).

Возможно, вас заинтересует это:

Вы можете создавать темы и компоненты. Компоненты похожи на «подтемы» (они могут содержать стили и функции), и любой компонент можно включить для одной или нескольких тем.

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

Также есть специальная страница, где перечислены большинство HTML-элементов Discourse, чтобы вы могли получить общее представление о том, как они выглядят, и создать соответствующие стили.
Эту страницу необходимо включить с помощью настройки сайта Включить гайдлайн стилей.

Пример:

Хотя мне это кажется немного пугающим, я всё равно настроен позитивно. Спасибо за такой замечательный ответ! Думаю, гайдлайн по стилю точно пригодится. Огромное спасибо!

Для первых шагов вы можете редактировать CSS напрямую через интерфейс Discourse:

В разделе /admin/customize/themes/:


Discourse поддерживает синтаксис SCSS нативно; он компилируется на лету.

@manuel расширяет возможности для создания и настройки тем без написания кода (или с минимальным его использованием). Я бы начал именно оттуда (чисто эгоистично: мне бы очень хотелось следить за вашим прогрессом в этом, пока у меня не появится время самостоятельно углубиться в тему :wink:, так что если вы этим займетесь, пожалуйста, делитесь обратной связью и отчётами по ходу дела!!!). Похоже, он внедряет некоторые упрощения для таких энтузиастов UI/UX, как мы.

Нет, не для всего, но для реализации любого более кастомного дизайна, я думаю, вам придётся писать код. Мои рекомендуемые шаги:

  • Изучите, как использовать Theme CLI gem, который уже упомянул @Canapin. Это может показаться сложным первым шагом, но если что-то и заставит вас влюбиться в кастомизацию Discourse, так это этот маленький gem! Это как волшебная палочка для дизайнеров :sparkles: Без него вы, скорее всего, будете сталкиваться с трудностями на каждом шагу.

  • Практикуйте применение стилей с помощью пользовательских свойств CSS.

    Мне кажется, что руководства в этом отношении устарели. Для создания по-настоящему последовательной системы дизайн-токенов ещё многое предстоит сделать, но Discourse уже продвинулся очень далеко! Понимание того, где и как используются пользовательские свойства, сильно поможет вам освоить лучшие практики фронтенда Discourse.

    Вы можете найти пользовательские свойства, используя инспектор браузера, или посмотреть этот список для общего представления: Документирование пользовательских свойств. И вы можете стилизовать недавние шаблоны, например боковую панель, почти полностью с помощью пользовательских свойств.

  • Как предложил @denvergeeks, вы можете ознакомиться с шаблоном темы Canvas. Он добавляет набор пользовательских свойств для стилизации макета, которых нет в ядре.

Пока я использую только этот подход: открываю инструменты разработчика в браузере и вношу правки.