diff --git a/app/helpers/rails_admin/application_helper.rb b/app/helpers/rails_admin/application_helper.rb
index 4ebc96eef5..e0763cce88 100644
--- a/app/helpers/rails_admin/application_helper.rb
+++ b/app/helpers/rails_admin/application_helper.rb
@@ -120,10 +120,12 @@ def navigation(parent_groups, nodes, level = 0)
abstract_model = node.abstract_model
model_param = abstract_model.to_param
url = rails_admin.url_for(action: :index, controller: 'rails_admin/main', model_name: model_param)
- level_class = " nav-level-#{level}" if level > 0
- nav_icon = node.navigation_icon ? %( ).html_safe : ''
+ nav_icon = node.navigation_icon ? %().html_safe : ''
+ css_classes = ['nav-link']
+ css_classes.push("nav-level-#{level}") if level > 0
+ css_classes.push('active') if defined?(@action) && current_action?(@action, model_param)
li = content_tag :li, data: {model: model_param} do
- link_to nav_icon + node.label_plural, url, class: "nav-link#{level_class}"
+ link_to nav_icon + " " + node.label_plural, url, class: css_classes.join(' ')
end
child_nodes = parent_groups[abstract_model.model_name]
child_nodes ? li + navigation(parent_groups, child_nodes, level + 1) : li
diff --git a/src/rails_admin/styles/base/theming.scss b/src/rails_admin/styles/base/theming.scss
index 8092532c66..66582d756d 100644
--- a/src/rails_admin/styles/base/theming.scss
+++ b/src/rails_admin/styles/base/theming.scss
@@ -42,6 +42,16 @@ body.rails_admin {
> li > a {
padding: ($navbar-padding-y / 2) ($grid-gutter-width / 2);
+ &.active {
+ background-color: map-get($theme-colors, primary);
+ color: color-contrast(map-get($theme-colors, primary));
+ }
+
+ &:hover {
+ background-color: map-get($theme-colors, primary);
+ color: color-contrast(map-get($theme-colors, primary));
+ }
+
&.nav-level-1 {
padding-left: $grid-gutter-width;
}