Form Styler: A No-Code Visual Builder to customize ERPNext/Frappe forms

If you have ever had to write a Custom Script just to change the background color of a field, or struggled with injecting CSS via frappe.call only to deal with the annoying “Flash of Unstyled Content” (FOUC), I built something for you.

I’m excited to share Form Styler, a free, open-source app that allows you to visually change form layouts and styles across your ERPNext instance completely without code.

:sparkles: What it does

Form Styler adds a visual configuration page where you can:

  • Change the Width and Height of any field.

  • Customize Label Colors, Text Colors, and Background Colors.

  • Target specific fields or use wildcards (*) to instantly style entire DocTypes.

  • Column Break and Section Break can also be customized.

:rocket: Built for Performance

I wanted to make sure this app doesn’t slow down production instances, so a lot of engineering went into the backend:

  • Zero FOUC: CSS rules are injected synchronously via extend_bootinfo. Styles are loaded into the browser’s memory the moment the page boots, meaning forms render instantly with your custom designs—no visual flickering or 100ms API delays.

  • Redis Caching: Heavy backend loops (frappe.get_meta) are wrapped in 24-hour Redis caches. Your Python workers won’t break a sweat when users refresh the page.

  • Minified Payloads: By converting heavy Frappe dictionary lists into standard tuples (Arrays), the JSON payload size sent to the frontend is reduced by roughly 40%, keeping network times blazing fast.

:link: Try it out!

You can grab the app and view the source code here: https://github.com/raisulislam0/form_styler.git

Installation:
cd ~/frappe-bench

bench get-app https://github.com/raisulislam0/form_styler.git

bench --site YOUR_SITE install-app form_styler

bench --site YOUR_SITE migrate

bench --site YOUR_SITE clear-cache

2 Likes