Skip to product information
1 of 23

Dreams ERP Dolibarr Theme

Regular price €199,00
Regular price Sale price €199,00
Sold out

1. What Dreams ERP is

Dreams ERP is a theme-module, not a CSS theme.

A conventional Dolibarr theme...

8 people are viewing this right now

View full product details

1. What Dreams ERP is

Dreams ERP is a theme-module, not a CSS theme.

A conventional Dolibarr theme can only recolour the HTML that Dolibarr already produces. It cannot create a navigation sidebar with favourites and recently opened records, it cannot add a global search bar to the top bar, and it cannot replace the home page with an analytics dashboard — because none of that markup exists in the core output.

Dreams ERP is therefore packaged as a module that installs into custom/dreamserp/. Once enabled it takes over the whole back-office presentation layer while leaving every business feature, permission check and third-party module untouched. No Dolibarr core file is modified.

The theme is built on six mechanisms:

#

Mechanism

What it delivers

1

Forced menu manager

The custom sidebar renders on every page — standard, public and smartphone interfaces

2

Injected CSS and JS

Styling and behaviour reach every page, including third-party modules

3

Hooks

Home redirect, pre-paint theme state, print mode

4

Native menu tree reuse

The sidebar is generated from Dolibarr's own menu, so every module's entries appear automatically

5

Custom dashboard

A real analytics home page fed by live SQL

6

Native widget area

Dolibarr's own boxes remain available, restyled

 

Because the sidebar is generated from the native menu tree, a module installed next month appears in the navigation with no change to the theme.

2. Navigation sidebar

The left sidebar replaces Dolibarr's stock vertical menu and is composed of five zones.

2.1 Brand row

Displays the company's configured square logo with the company name beside it, falling back to Dolibarr's own logo when none is uploaded. The row links to the dashboard. No product branding is imposed on the customer's interface.

2.2 Module quick filter

A search field filters the navigation live as you type. It matches both top-level module names and their sub-entries, so a query surfaces a module whose child matches even when the parent name does not. Entirely client-side, with no page reload.

2.3 Favourites

Renders the real Dolibarr bookmarks of the signed-in user, personal and shared, so the section stays in sync with the native Bookmark module instead of maintaining a parallel list.

·       Section title — links to the full bookmark list.

·       Add button — bookmarks the page you are currently on, in one click.

·       Relative URLs — bookmarks are stored relative to the application root, following Dolibarr's own convention, so links are never produced with a duplicated root on sub-directory installations.

·       Empty state — a short hint replaces the list until the user creates a first bookmark.

·       Optional — the section can be switched off, and hides itself automatically when the Bookmark module is disabled.

2.4 Navigation accordions

Every active module appears as a top-level entry carrying its native icon.

·       Top-level entries are real links, not just expand toggles. Clicking a module opens its dashboard and sets the active module context; a separate chevron expands or collapses the sub-menu in place, without navigating. Modules without children have no chevron.

·       Sub-entries are grouped under their section headers, each group being its own foldable accordion with a distinct caret icon so the two nesting levels remain visually separable.

·       A group auto-opens only when it genuinely contains the current page — the theme never springs open an arbitrary first section on a landing page.

·       Indentation steps through five levels, and labels are kept to a single line with ellipsis so long entries never wrap.

Active-item detection uses a level-encoded identifier carried on every link rather than the URL. This matters because several Dolibarr entries legitimately share a destination — Products and Warehouses both point at the same page — so URL matching would highlight both at once. Encoding the level additionally guarantees that a top-level click can never light up a child entry. The selection is remembered in the session so that a filter or a form submission which drops the parameter does not lose the highlight, and the fallback is scoped to the current module so a page opened in a second browser tab cannot hijack the highlight in the first.

2.5 Permission filtering

Menu entries the signed-in user may not reach are hidden, not shown and then denied.

The filter is branch-aware. Dolibarr frequently leaves the leaf items of an administration section enabled — they are gated at the page itself — while marking the section header as not permitted. Hiding only the header would leave a list of orphaned links leading to access-denied pages. Dreams ERP detects a non-permitted section header and skips the header and every descendant until the next section.

Verified with a real non-administrator account: an administrator sees 39 sub-entries including Setup, Admin tools and Users & Groups, while a standard user sees 2, and none of the administration sections appear anywhere in the navigation.

2.6 Recently opened

The records the user opened during the session — invoice, third party, proposal, order, product, project, ticket and so on.

·       No additional query — on a record page Dolibarr has already loaded the object by the time the sidebar renders, so the theme simply reads it.

·       Colour-coded type tag — a two-letter marker on the left (IN, TP, PR, SO…), each object type mapped to its own theme colour, followed by the record label and a muted recency index.

·       Live count — shown in the section header, for example “Recently opened (4)”.

·       Capped and de-duplicated — newest first, limited by a configurable maximum that applies immediately on both capture and render.

·       Session-held — deliberately not written to the database, since a write on every record view is not worth the cost for transient data.

2.7 Module usage meter

For administrators, a compact card shows how many modules are active out of the total available with a percentage bar, linking to module management. The expensive part of that count — scanning module descriptor files on disk — is computed once and cached in the session.

2.8 Collapsed rail and mobile drawer

·       Desktop — the sidebar folds to a 78-pixel icon rail; labels, section titles and the module filter are hidden while icons stay centred, and the state is remembered.

·       Mobile (≤760px) — the sidebar becomes an off-canvas drawer over a dimmed backdrop, opened by the top-bar burger and closed by tapping the backdrop. The drawer always shows full labels: the icon rail is a desktop-only state and is never applied on a phone, including when returning from a desktop session where the folded preference is stored.

·       Viewport-aware burger — it opens the drawer on a phone and folds the rail on desktop.

3. Top bar

The native Dolibarr header is restyled and extended in place, so all core functionality is kept: multi-company selector, print view, help, notifications and the user menu continue to work.

·       Burger — toggles the rail on desktop or the drawer on mobile.

·       Global search — searches across the ERP and opens the theme's results page; Ctrl/Cmd + K focuses it from anywhere.

·       Light/dark toggle — instant, with no page reload.

·       Icon legibility — native top-bar icons ship white because Dolibarr's stock header is dark, which would make them invisible on a light bar. Every icon and link in the login block is recoloured to a readable token with a primary-coloured hover.

·       Layering — the header sits above the sidebar so the burger stays clickable in every state.

4. Dashboard

The dashboard replaces Dolibarr's home page. Users are taken there on login and on any later visit to the home page. All figures come from live SQL against the user's own data.

4.1 Period selector

Week, month or year. Every KPI, delta and destination link follows the selection.

4.2 KPI tiles

Four tiles — Turnover, Unpaid invoices, New clients and Orders — each showing the value, a contextual sub-label, a period-over-period delta and an embedded sparkline.

Each tile is entirely clickable and lands on the corresponding Dolibarr list filtered to exactly the same scope as the tile: same date range, same statuses. The total on the destination list therefore matches the number shown on the tile. The theme builds those destination URLs using each core list's own search parameters, which differ per object type — invoices, third parties and orders each use a different date-parameter naming scheme.

4.3 Turnover evolution chart

A twelve-month area chart with the previous year overlaid as a dashed comparison line, an animated draw-in, and an interactive hover showing a crosshair, a point marker and a tooltip with the month and its amount.

4.4 Sales pipeline

A donut of commercial proposals broken down by status — Drafts, Open, Signed, Billed and Not signed — with the total in the centre and a legend showing each status's amount. Every legend row links through to the proposals list filtered on that status.

4.5 Recent activity

The latest business events — validations, payments, record creation — with a coloured type icon, the acting user, a link to the record itself and the amount where relevant.

4.6 Today's agenda

The day's events with start time, duration, type tag and participants, colour-coded down the left edge, with a live event count in the header.

4.7 Latest invoices

A compact table showing reference, client with a colour initial avatar, date, amount, status pill and a quick-open action. References and client names are rendered through Dolibarr's own link helper, so the native hover preview cards still work.

4.8 Native Dolibarr widgets

Below the custom panels, Dolibarr's own box system is embedded and restyled: database statistics, invoices per month, orders per month, proposals per month, account balances, low-stock alerts, and any box provided by any installed module.

Users keep the full native behaviour — add a widget from the selector, hide it with its close icon, and drag to reorder — with the layout saved per user by Dolibarr itself. On a user's first visit the theme seeds a sensible default set so the area is immediately useful rather than empty, because Dolibarr only shows the widget selector to users who already have a personal zone.

The database-statistics widget is re-laid-out as a responsive KPI grid with icon chips and a hover state, and every widget is constrained so that wide graphs and tables scroll inside their own card instead of widening the page.

4.9 Empty states

Any panel whose data set is genuinely empty renders an empty state — icon, title, a one-line explanation and, where useful, a call to action such as “New event” on an empty agenda — rather than a blank card.

5. Global search

Results from the top-bar search are grouped by object type — third parties, invoices, orders, proposals, products, projects and users — each group presented as a card with a coloured icon, a result count, per-result subtitles and a “see all” link into the corresponding filtered list. A dedicated empty state is shown when a query returns nothing.

6. Light and dark mode

Dark mode is a first-class, fully designed palette, not an inverted filter.

·       Toggled from the top bar, with the choice stored per browser.

·       No flash on load — the stored preference is applied by an inline script in the document head, before the page paints, so a reload lands directly in the correct theme. The same mechanism restores the folded sidebar state.

·       Administrator default — a default mode can be set for users who have not yet chosen; an explicit user choice always wins.

Native pages follow the palette automatically

The theme redefines Dolibarr's own CSS custom properties, mapping each core variable onto a Dreams ERP design token. Because those tokens are themselves redefined in dark mode, every native page — including pages belonging to third-party modules the theme has never heard of — follows both light and dark automatically, from a single definition.

Where Dolibarr hardcodes colours instead of using its variables, those specific rules are re-tinted so they do not break dark mode: table row separators, last-row borders, the information notice box, info boxes, and the agenda month calendar including cell backgrounds, grid borders, per-user separators and event shadows.

7. Restyled native pages

Every standard Dolibarr screen is restyled without altering its markup or behaviour.

·       Lists — the responsive wrapper is the card, with the table transparent inside it so rounded corners show no white notches. Uppercase muted column headers, subtle row separators and a themed hover state.

·       Filter bars — the div-based filter row gets its own clean card, separated from the table below it.

·       Record cards — the tab container is the card, and the active tab is marked with a clean primary underline replacing the core's white bottom border. Half-width column blocks inside a card are neutralised so a card never appears inside another card, and are sized border-box so the right column cannot overflow and drop below the left.

·       Buttons — action buttons take the primary colour with the label forced to a readable colour, because Dolibarr's global link rule would otherwise repaint it blue on blue. Delete actions are red and secondary actions muted.

·       Forms — inputs, selects and textareas receive theme borders, radius and a soft focus ring.

·       Dropdowns — the highlighted option in select2 is forced to a readable primary-on-white, fixing the core theme's invisible white-on-white hover, and the dropdown surface is made solid.

·       Status badges — pill-shaped and colour-mapped by status.

·       Print — the sidebar and top bar are dropped and the content takes the full page, matching native print behaviour.

8. Configuration

Settings are reached through Home → Setup → Modules → Dreams ERP and are grouped into three cards — Appearance, Menu and Dashboard — each with an icon, title and subtitle, with the label and hint on the left and the control on the right.

Setting

Type

Default

Effect

DREAMSERP_COLOR_PRIMARY

colour

#0FA37F

Primary accent: links, active states, charts, primary buttons

DREAMSERP_COLOR_NAV

colour

#16233C

Ink colour: fill of the active menu entry and the highlighted tile

DREAMSERP_COLOR_ACCENT

colour

#7B61FF

Secondary accent used in charts and tags

DREAMSERP_COLOR_SUCCESS

colour

#12A150

Positive deltas, paid status, success badges

DREAMSERP_COLOR_DANGER

colour

#E5484D

Negative deltas, overdue items, required fields

DREAMSERP_COLOR_WARNING

colour

#F5A623

Pending status, stock alerts

DREAMSERP_RADIUS

integer

10

Corner radius in pixels across the whole interface

DREAMSERP_FONTSIZE

integer

14

Base font size in pixels

DREAMSERP_WEBFONT

boolean

1

Load the Inter web font; disable for system fonts only (offline installs)

DREAMSERP_DARK_DEFAULT

boolean

0

Dark mode for users who have not chosen yet

DREAMSERP_MENU_WIDTH

integer

258

Sidebar width in pixels

DREAMSERP_HIDE_FAVORITES

boolean

0

Hide the Favourites section

DREAMSERP_HIDE_RECENTS

boolean

0

Hide the Recently opened section

DREAMSERP_RECENTS_MAX

integer

5

How many recent records to keep

DREAMSERP_DISABLE_DASHBOARD

boolean

0

Keep Dolibarr's native home page instead of the dashboard

DREAMSERP_HIDE_CORE_BOXES

boolean

0

Hide the native widget area on the dashboard

DREAMSERP_CA_BASE

select

ttc

Whether turnover is computed including or excluding tax

DREAMSERP_CA_INCLUDE_ABANDONED

boolean

0

Whether abandoned invoices count towards turnover

 

Two further constants exist but are intentionally not exposed in the interface: a safety hatch that reverts to Dolibarr's stock left menu while keeping the styling, and an informational blue used by the stylesheet.

Ambiguous business rules are configuration, not hardcoded assumptions. Whether turnover is counted including or excluding tax, and whether abandoned invoices count towards it, are genuine accounting choices that differ between companies. The chosen setting is applied consistently to the KPI, the chart and the status filter of the tile's destination link, so a tile and the list it opens can never disagree.

A reset to defaults is available and asks for confirmation before running.

Demo-platform access mode

On a public demo or sales instance you usually want prospects to see the configuration screen — it demonstrates the product — without being able to change anything. When the demo-platform flag is set, non-administrators may view the configuration page with all controls visible and interactive, so they can experiment with the colour pickers, but Save is disabled, Reset is inert, and every write action is refused server-side independently of the interface. On a normal customer installation this behaviour never appears: non-administrators simply receive the standard access-denied page.

9. Languages

The theme ships with seven languages, all at strict key parity — identical key sets, 131 keys in each file: French, English, Spanish, German, Italian, Portuguese (Brazil) and Dutch.

No user-visible string is hardcoded, including every label, hint, section title and confirmation message on the configuration page, and the strings injected into the top bar by JavaScript. Module keys are prefixed so they cannot be silently shadowed by Dolibarr's core translation files, which resolve first and win on a name collision.

10. Compatibility, performance and safety

·       Dolibarr 16.0 to latest — every core function the theme depends on was verified to exist with an unchanged signature on both the 16.0 and development branches.

·       PHP 7.0 floor — respected throughout, with no syntax from later versions.

·       No core modification — everything is delivered through documented module extension points.

·       Cache-busting — asset URLs carry a revision that is bumped automatically when the module version changes, so users pick up new stylesheets and scripts on an ordinary reload after an update, with no manual hard refresh.

·       Clean uninstall — disabling the module removes every constant it created, including the forced menu managers and the landing page, returning Dolibarr to its stock appearance.

·       Graceful degradation — if sidebar rendering is disabled or its library is missing, the theme falls back to Dolibarr's native left menu rather than breaking the page.

·       Responsive — verified with no horizontal overflow at 390 px and at desktop widths, in both light and dark mode, on the dashboard, lists, record cards, search and configuration pages.

·       Efficient — expensive computations are cached in the session, and one-time setup steps are guarded so they run once rather than on every request.

11. Installation

1. Copy the dreamserp folder into your Dolibarr custom/ directory, or upload module_dreamserp-1.0.zip through Home → Setup → Modules → Deploy module.

2. Enable Dreams ERP in Home → Setup → Modules.

3. Optionally adjust colours, radius, font size and dashboard behaviour in the module's configuration page.

Enabling the module sets the forced menu managers and the post-login landing page. If the sidebar does not appear immediately, disable and re-enable the module once so the initialisation runs again.


 

12. Screenshot index

All screenshots were captured on a clean Dolibarr 23.0.3 installation with the module's own demo data seeded, at a fixed 1600×990 viewport rendered at twice the pixel density (3200×1980 px); mobile captures use 390×844 at the same density. They are supplied in the screenshots folder beside this document.

File

Shows

01_dashboard_light_top.png

Dashboard: sidebar, top bar, KPI tiles, turnover chart, pipeline donut

02_dashboard_light_charts.png

Turnover evolution and sales pipeline in full

03_dashboard_light_activity_agenda.png

Recent activity and today's agenda panels

04_dashboard_light_invoices_table.png

Latest invoices table with status pills

05_dashboard_light_native_widgets.png

Native widget area with the add-widget selector

06_sidebar_favorites_recents.png

Sidebar detail: favourites, accordions, recently opened

07_sidebar_collapsed_rail.png

Collapsed 78-pixel icon rail (desktop)

08_global_search_results.png

Global search results grouped by object type

09_configuration_page.png

Configuration page grouped into sections

11_invoice_list_native.png

Native invoice list inheriting the theme

12_invoice_card_native.png

Native invoice record with restyled tabs

13_thirdparty_list_native.png

Native third-party list

14_proposal_card_native.png

Native proposal record

15_dashboard_dark_top.png

Dashboard in dark mode

16_dashboard_dark_charts.png

Charts in dark mode

17_dashboard_dark_activity_agenda.png

Activity and agenda in dark mode

18_configuration_page_dark.png

Configuration page in dark mode

19_invoice_list_dark.png

Native list in dark mode

20_invoice_card_dark.png

Native record card in dark mode

21_mobile_dashboard_light.png

Dashboard at 390 px

22_mobile_drawer_open.png

Off-canvas navigation drawer on mobile

23_mobile_dashboard_dark.png

Mobile dashboard in dark mode

24_mobile_invoice_list_dark.png

Native list on mobile in dark mode