Class: IronAdmin::Configuration::Theme

Inherits:
Object
  • Object
show all
Defined in:
lib/iron_admin/configuration/theme.rb

Overview

Theme configuration for customizing the admin panel appearance.

All theme properties accept Tailwind CSS class strings. This allows complete customization of colors, spacing, and visual styles.

Examples:

Customizing the theme

IronAdmin.configure do |config|
  config.theme do |t|
    t.btn_primary = "bg-blue-600 text-white hover:bg-blue-700"
    t.sidebar_bg = "bg-slate-900"
    t.link = "text-blue-600 hover:text-blue-800"
  end
end

See Also:

Button Styles collapse

Link Styles collapse

Form Styles collapse

Tab/Scope Styles collapse

Sidebar Styles collapse

Navbar Styles collapse

Table Styles collapse

Card Styles collapse

Typography collapse

Layout collapse

Chart Styles collapse

Instance Method Summary collapse

Constructor Details

#initializeTheme

Creates a new Theme with default values.



177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
# File 'lib/iron_admin/configuration/theme.rb', line 177

def initialize
  # --- Buttons ---
  @btn_primary = "bg-indigo-600 text-white hover:bg-indigo-700 focus:ring-2 focus:ring-indigo-500/20 focus:ring-offset-1"
  @btn_secondary = "bg-white text-gray-700 border border-gray-300 hover:bg-gray-50 hover:border-gray-400"
  @btn_danger = "bg-red-600 text-white hover:bg-red-700"
  @btn_ghost = "bg-gray-100 text-gray-700 hover:bg-gray-200"

  # --- Links ---
  @link = "text-indigo-600 hover:text-indigo-900"
  @link_muted = "text-gray-500 hover:text-gray-700"

  # --- Focus ring ---
  @focus_ring = "focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/20"

  # --- Inputs ---
  @input_border = "border-gray-300 hover:border-gray-400"
  @input_focus = "focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/20"

  # --- Checkbox ---
  @checkbox_checked = "checked:border-indigo-600 checked:bg-indigo-600 focus:ring-2 focus:ring-indigo-500/20"

  # --- Scopes / Tabs ---
  @scope_active = "border-indigo-600 text-indigo-600"
  @scope_inactive = "border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"

  # --- Badge counter ---
  @badge_count = "bg-indigo-600 text-white"

  init_sidebar_defaults

  # --- Navbar ---
  @navbar_bg = "bg-white"
  @navbar_border = "border-gray-200"
  @navbar_search_bg = "bg-gray-50"
  @navbar_search_focus_bg = "focus:bg-white"

  # --- Table ---
  @table_header_bg = "bg-gray-50"
  @table_row_hover = "hover:bg-gray-50"
  @table_border = "divide-gray-200"

  # --- Cards / Panels ---
  @card_bg = "bg-white"
  @card_border = "border-gray-200"
  @card_shadow = "shadow"

  # --- Typography ---
  @font_family = ""
  @heading_weight = "font-bold"
  @body_text = "text-gray-900"
  @muted_text = "text-gray-500"
  @label_text = "text-gray-700"

  # --- Layout ---
  @main_bg = "bg-gray-50"
  @border_radius = "rounded-lg"

  init_chart_defaults
end

Instance Attribute Details

#badge_countString

Returns Badge counter classes.

Returns:

  • (String)

    Badge counter classes



72
73
74
# File 'lib/iron_admin/configuration/theme.rb', line 72

def badge_count
  @badge_count
end

#body_textString

Returns Body text color classes.

Returns:

  • (String)

    Body text color classes



146
147
148
# File 'lib/iron_admin/configuration/theme.rb', line 146

def body_text
  @body_text
end

#border_radiusString

Returns Border radius classes.

Returns:

  • (String)

    Border radius classes



162
163
164
# File 'lib/iron_admin/configuration/theme.rb', line 162

def border_radius
  @border_radius
end

#btn_dangerString

Returns Danger/destructive button classes (default: red).

Returns:

  • (String)

    Danger/destructive button classes (default: red)



30
31
32
# File 'lib/iron_admin/configuration/theme.rb', line 30

def btn_danger
  @btn_danger
end

#btn_ghostString

Returns Ghost button classes (default: gray background).

Returns:

  • (String)

    Ghost button classes (default: gray background)



33
34
35
# File 'lib/iron_admin/configuration/theme.rb', line 33

def btn_ghost
  @btn_ghost
end

#btn_primaryString

Returns Primary button classes (default: indigo).

Returns:

  • (String)

    Primary button classes (default: indigo)



24
25
26
# File 'lib/iron_admin/configuration/theme.rb', line 24

def btn_primary
  @btn_primary
end

#btn_secondaryString

Returns Secondary button classes (default: white with border).

Returns:

  • (String)

    Secondary button classes (default: white with border)



27
28
29
# File 'lib/iron_admin/configuration/theme.rb', line 27

def btn_secondary
  @btn_secondary
end

#card_bgString

Returns Card background classes.

Returns:

  • (String)

    Card background classes



127
128
129
# File 'lib/iron_admin/configuration/theme.rb', line 127

def card_bg
  @card_bg
end

#card_borderString

Returns Card border classes.

Returns:

  • (String)

    Card border classes



130
131
132
# File 'lib/iron_admin/configuration/theme.rb', line 130

def card_border
  @card_border
end

#card_shadowString

Returns Card shadow classes.

Returns:

  • (String)

    Card shadow classes



133
134
135
# File 'lib/iron_admin/configuration/theme.rb', line 133

def card_shadow
  @card_shadow
end

#chart_border_colorString

Returns Default chart border/line color (CSS color value).

Returns:

  • (String)

    Default chart border/line color (CSS color value)



172
173
174
# File 'lib/iron_admin/configuration/theme.rb', line 172

def chart_border_color
  @chart_border_color
end

#chart_colorsArray<String>

Returns Default chart color palette (CSS color values: hex, rgb, rgba).

Returns:

  • (Array<String>)

    Default chart color palette (CSS color values: hex, rgb, rgba)



169
170
171
# File 'lib/iron_admin/configuration/theme.rb', line 169

def chart_colors
  @chart_colors
end

#checkbox_checkedString

Returns Checked checkbox classes.

Returns:

  • (String)

    Checked checkbox classes



59
60
61
# File 'lib/iron_admin/configuration/theme.rb', line 59

def checkbox_checked
  @checkbox_checked
end

#focus_ringString

Returns Focus ring classes for interactive elements.

Returns:

  • (String)

    Focus ring classes for interactive elements



50
51
52
# File 'lib/iron_admin/configuration/theme.rb', line 50

def focus_ring
  @focus_ring
end

#font_familyString

Returns Font family classes (empty = system default).

Returns:

  • (String)

    Font family classes (empty = system default)



140
141
142
# File 'lib/iron_admin/configuration/theme.rb', line 140

def font_family
  @font_family
end

#heading_weightString

Returns Heading weight classes.

Returns:

  • (String)

    Heading weight classes



143
144
145
# File 'lib/iron_admin/configuration/theme.rb', line 143

def heading_weight
  @heading_weight
end

#input_borderString

Returns Input border classes.

Returns:

  • (String)

    Input border classes



53
54
55
# File 'lib/iron_admin/configuration/theme.rb', line 53

def input_border
  @input_border
end

#input_focusString

Returns Input focus state classes.

Returns:

  • (String)

    Input focus state classes



56
57
58
# File 'lib/iron_admin/configuration/theme.rb', line 56

def input_focus
  @input_focus
end

#label_textString

Returns Label text color classes.

Returns:

  • (String)

    Label text color classes



152
153
154
# File 'lib/iron_admin/configuration/theme.rb', line 152

def label_text
  @label_text
end

Returns Primary link classes.

Returns:

  • (String)

    Primary link classes



40
41
42
# File 'lib/iron_admin/configuration/theme.rb', line 40

def link
  @link
end

Returns Muted/secondary link classes.

Returns:

  • (String)

    Muted/secondary link classes



43
44
45
# File 'lib/iron_admin/configuration/theme.rb', line 43

def link_muted
  @link_muted
end

#main_bgString

Returns Main content area background classes.

Returns:

  • (String)

    Main content area background classes



159
160
161
# File 'lib/iron_admin/configuration/theme.rb', line 159

def main_bg
  @main_bg
end

#muted_textString

Returns Muted text color classes.

Returns:

  • (String)

    Muted text color classes



149
150
151
# File 'lib/iron_admin/configuration/theme.rb', line 149

def muted_text
  @muted_text
end

Returns Navbar background classes.

Returns:

  • (String)

    Navbar background classes



98
99
100
# File 'lib/iron_admin/configuration/theme.rb', line 98

def navbar_bg
  @navbar_bg
end

Returns Navbar border classes.

Returns:

  • (String)

    Navbar border classes



101
102
103
# File 'lib/iron_admin/configuration/theme.rb', line 101

def navbar_border
  @navbar_border
end

Returns Navbar search input background.

Returns:

  • (String)

    Navbar search input background



104
105
106
# File 'lib/iron_admin/configuration/theme.rb', line 104

def navbar_search_bg
  @navbar_search_bg
end

Returns Navbar search input focus background.

Returns:

  • (String)

    Navbar search input focus background



107
108
109
# File 'lib/iron_admin/configuration/theme.rb', line 107

def navbar_search_focus_bg
  @navbar_search_focus_bg
end

#scope_activeString

Returns Active scope/tab classes.

Returns:

  • (String)

    Active scope/tab classes



66
67
68
# File 'lib/iron_admin/configuration/theme.rb', line 66

def scope_active
  @scope_active
end

#scope_inactiveString

Returns Inactive scope/tab classes.

Returns:

  • (String)

    Inactive scope/tab classes



69
70
71
# File 'lib/iron_admin/configuration/theme.rb', line 69

def scope_inactive
  @scope_inactive
end

Returns Sidebar background classes.

Returns:

  • (String)

    Sidebar background classes



79
80
81
# File 'lib/iron_admin/configuration/theme.rb', line 79

def sidebar_bg
  @sidebar_bg
end

Returns Sidebar group label classes.

Returns:

  • (String)

    Sidebar group label classes



91
92
93
# File 'lib/iron_admin/configuration/theme.rb', line 91

def sidebar_group_label
  @sidebar_group_label
end

Returns Sidebar link classes.

Returns:

  • (String)

    Sidebar link classes



85
86
87
# File 'lib/iron_admin/configuration/theme.rb', line 85

def sidebar_link
  @sidebar_link
end

Returns Sidebar link hover classes.

Returns:

  • (String)

    Sidebar link hover classes



88
89
90
# File 'lib/iron_admin/configuration/theme.rb', line 88

def sidebar_link_hover
  @sidebar_link_hover
end

Returns Sidebar title text classes.

Returns:

  • (String)

    Sidebar title text classes



82
83
84
# File 'lib/iron_admin/configuration/theme.rb', line 82

def sidebar_title
  @sidebar_title
end

#table_borderString

Returns Table border/divider classes.

Returns:

  • (String)

    Table border/divider classes



120
121
122
# File 'lib/iron_admin/configuration/theme.rb', line 120

def table_border
  @table_border
end

#table_header_bgString

Returns Table header background classes.

Returns:

  • (String)

    Table header background classes



114
115
116
# File 'lib/iron_admin/configuration/theme.rb', line 114

def table_header_bg
  @table_header_bg
end

#table_row_hoverString

Returns Table row hover classes.

Returns:

  • (String)

    Table row hover classes



117
118
119
# File 'lib/iron_admin/configuration/theme.rb', line 117

def table_row_hover
  @table_row_hover
end