Add theme identifier to body classes for easier custom CSS styling (#8439)
Add forgotten custom CSS admin setting stringsgh/stable
parent
cd049454be
commit
22e46ebad8
|
@ -27,11 +27,6 @@ module ApplicationHelper
|
||||||
Setting.open_deletion
|
Setting.open_deletion
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_rtl_body_class(other_classes)
|
|
||||||
other_classes = "#{other_classes} rtl" if locale_direction == 'rtl'
|
|
||||||
other_classes
|
|
||||||
end
|
|
||||||
|
|
||||||
def locale_direction
|
def locale_direction
|
||||||
if [:ar, :fa, :he].include?(I18n.locale)
|
if [:ar, :fa, :he].include?(I18n.locale)
|
||||||
'rtl'
|
'rtl'
|
||||||
|
@ -77,4 +72,13 @@ module ApplicationHelper
|
||||||
def react_component(name, props = {})
|
def react_component(name, props = {})
|
||||||
content_tag(:div, nil, data: { component: name.to_s.camelcase, props: Oj.dump(props) })
|
content_tag(:div, nil, data: { component: name.to_s.camelcase, props: Oj.dump(props) })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def body_classes
|
||||||
|
output = (@body_classes || '').split(' ')
|
||||||
|
output << "theme-#{current_theme.parameterize}"
|
||||||
|
output << 'system-font' if current_account&.user&.setting_system_font_ui
|
||||||
|
output << current_account&.user&.setting_reduce_motion ? 'reduce-motion' : 'no-reduce-motion'
|
||||||
|
output << 'rtl' if locale_direction == 'rtl'
|
||||||
|
output.reject(&:blank?).join(' ')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,9 +24,5 @@
|
||||||
|
|
||||||
= yield :header_tags
|
= yield :header_tags
|
||||||
|
|
||||||
- body_classes ||= @body_classes || ''
|
%body{ class: body_classes }
|
||||||
- body_classes += ' system-font' if current_account&.user&.setting_system_font_ui
|
|
||||||
- body_classes += current_account&.user&.setting_reduce_motion ? ' reduce-motion' : ' no-reduce-motion'
|
|
||||||
|
|
||||||
%body{ class: add_rtl_body_class(body_classes) }
|
|
||||||
= content_for?(:content) ? yield(:content) : yield
|
= content_for?(:content) ? yield(:content) : yield
|
||||||
|
|
|
@ -350,6 +350,9 @@ en:
|
||||||
contact_information:
|
contact_information:
|
||||||
email: Business e-mail
|
email: Business e-mail
|
||||||
username: Contact username
|
username: Contact username
|
||||||
|
custom_css:
|
||||||
|
desc_html: Modify the look with CSS loaded on every page
|
||||||
|
title: Custom CSS
|
||||||
hero:
|
hero:
|
||||||
desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail
|
desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail
|
||||||
title: Hero image
|
title: Hero image
|
||||||
|
|
|
@ -17,7 +17,7 @@ describe ApplicationHelper do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'add_rtl_body_class' do
|
describe 'locale_direction' do
|
||||||
around do |example|
|
around do |example|
|
||||||
current_locale = I18n.locale
|
current_locale = I18n.locale
|
||||||
example.run
|
example.run
|
||||||
|
@ -26,22 +26,22 @@ describe ApplicationHelper do
|
||||||
|
|
||||||
it 'adds rtl body class if locale is Arabic' do
|
it 'adds rtl body class if locale is Arabic' do
|
||||||
I18n.locale = :ar
|
I18n.locale = :ar
|
||||||
expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl'
|
expect(helper.locale_direction).to eq 'rtl'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'adds rtl body class if locale is Farsi' do
|
it 'adds rtl body class if locale is Farsi' do
|
||||||
I18n.locale = :fa
|
I18n.locale = :fa
|
||||||
expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl'
|
expect(helper.locale_direction).to eq 'rtl'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'adds rtl if locale is Hebrew' do
|
it 'adds rtl if locale is Hebrew' do
|
||||||
I18n.locale = :he
|
I18n.locale = :he
|
||||||
expect(helper.add_rtl_body_class('other classes')).to eq 'other classes rtl'
|
expect(helper.locale_direction).to eq 'rtl'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not add rtl if locale is Thai' do
|
it 'does not add rtl if locale is Thai' do
|
||||||
I18n.locale = :th
|
I18n.locale = :th
|
||||||
expect(helper.add_rtl_body_class('other classes')).to eq 'other classes'
|
expect(helper.locale_direction).to_not eq 'rtl'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Reference in New Issue