Try ERPNext Buy Support Partners Foundation

Frappe/ERPNext Theming Tool

Hi every one,

I’ve create a custom app with frappe that allow you to make your own style, font and logo.
It can be developed to have the ability of changing the desk components, menus and so on.
So DOWNLOAD the app now and feel free to test, comment, develop and contribute.

I hope it help’s someone like it helped me.


$ bench get-app
$ bench --site [site_name] install-app theming_tool

How To Use

1- Create “Element” and insert it’s “class” name example: Nav-bar class is “.navbar-default”

2- Create “System Font” and attach the font file.

3- Go to “Theme Settings” and select your font, logo, and in “ELEMENTS STYLES” table insert your element then chose a color GO.

NOTE: here I just add “background-color” attribute I’m willing to add more in the future.

4- GO and hit SAVE.


@afarran3 Any chance you can add some sort of documentation/readme on how to install the app and how it works?

hi @afarran3, thank for contribution :+1:.

It would be nice if there was a screen shot as well as installation guide so one can apply on their instance.

BTW, the choice is yours

I tried to install and getting error.

bench get-app

bench --site site1.local install-app theming_tool

Installing theming_tool…
An error occurred while installing theming_tool:
(1048, “Column ‘custom’ cannot be null”)

I’ll do that, just give me some time.

checking it out ,

Do you installing it in new site?

getting this error while installing:

Installing theming_tool…
Updating DocTypes for theming_tool : [========================================]
An error occurred while installing theming_tool:
can’t pickle module objects

and then it broke my instance:

Traceback (most recent call last):
File “/home/flexy/frappe-bench/apps/frappe/frappe/”, line 73, in application
response =
File “/home/flexy/frappe-bench/apps/frappe/frappe/website/”, line 36, in render
File “/home/flexy/frappe-bench/apps/frappe/frappe/website/”, line 23, in resolve_redirect
redirects = frappe.get_hooks(‘website_redirects’)
File “/home/flexy/frappe-bench/apps/frappe/frappe/”, line 968, in get_hooks
hooks = _dict(cache().get_value(“app_hooks”, load_app_hooks))
File “/home/flexy/frappe-bench/apps/frappe/frappe/utils/”, line 80, in get_value
self.set_value(original_key, val, user=user)
File “/home/flexy/frappe-bench/apps/frappe/frappe/utils/”, line 48, in set_value
self.set(key, pickle.dumps(val))
TypeError: can’t pickle module objects

It’s already installed site1.local. I have tried to install this theming_tool and got the error

Hi, check this Link

Please check this Link and let me know if you still facing a problem.

Hi @afarran3, thanks for reply.

Your provided link contains to activate developer mode then install and migration but i have already v13.0.0-beta.4. application throw error (1048, “Column ‘custom’ cannot be null”) on the time of installing. i also tried to install other custom app but issue is same.

BTW, it seems to have error in my Database.

Thanks again.:+1:

I think your problem is that you are installing apps that builds with frappe v12 on sites with frappe v13.

This fixed it. It might be difficult to use though as one still has to figure out the class of each element in order to modify. Awesome app though.

1 Like

Try the browser inspect tool to get the class name it’s helpful.

solution for the error.

--drop column from sql
ALTER TABLE `tabModule Def` DROP COLUMN `custom`;
--run from frappe-bench
bench --site site1.local install-app theming_tool

Theming tool working fine.

@afarran3 : thanks for contribution.

1 Like