Discover powerful Dolibarr extensions designed to automate your business processes

Admo is a premium interface theme for Dolibarr ERP/CRM. It is delivered as a standard Dolibarr module and reskins the entire application — sidebar, top bar, dashboard, lists, cards, forms and the login screen — without modifying a single line of the Dolibarr core.
Admo ships with two complete, independent demos. Admo Light pairs a white sidebar with a navy top bar and four solid-colour KPI tiles. Admo Dark moves the same layout onto a deep anthracite canvas with near-black chrome. Switching between them is a single dropdown in the configuration screen and takes effect immediately — no reinstall, no cache clearing, no downtime.
Every figure Admo displays is read live from the Dolibarr database. There is no decorative data anywhere in the theme: each KPI tile, counter, badge and chart is a real query, and every one of them is clickable through to the matching Dolibarr list, pre-filtered to the same scope as the tile. A counter whose module is disabled is omitted rather than shown as zero, and a badge whose real value is zero does not render at all.
|
Item |
Value |
|
Demos included |
2 (Admo Light, Admo Dark) |
|
Colour palettes |
9 presets + fully custom |
|
Sidebar styles |
6 (light, dark, coloured, floating, mini, large) |
|
Header styles |
5 (navy, light, dark, transparent, coloured) |
|
Layout modes |
4 (full, boxed, compact, fluid) |
|
Configuration settings |
29, grouped in 5 sections |
|
Translated strings |
261 keys × 7 languages |
|
Core files modified |
0 |
A pure CSS theme can only recolour the HTML Dolibarr already produces; it cannot create a sidebar with a daily report block, a top bar with global search and live counters, or a bespoke dashboard. Admo is therefore a full theme-module. It performs exactly four integrations, all of them documented Dolibarr extension points:
· CSS and JavaScript injection — through module_parts, so the theme applies to every page of every module.
· Menu manager — MAIN_MENU_*_FORCED points at admo_menu.php, which renders the Admo sidebar from the native menu tree — so every module's menus and hooks keep working untouched.
· Home redirection — a hook on the main context redirects the Dolibarr home page to the Admo dashboard.
· Header hook — addHtmlHeader paints the resolved demo onto <html> before first paint, so a reload never flashes the wrong theme.
Because the sidebar is filled from Dolibarr's own menu system rather than a hard-coded list, third-party modules — including the full DoliResources catalogue — appear in the Admo navigation automatically, with their own icons and permissions respected.
· Flat and calm — no page gradients, no glassmorphism. White cards on a light grey canvas, separated by a consistent 22 px gutter and a very soft shadow.
· Colour carries meaning — the interface is deliberately neutral so that the four KPI tiles and the status badges are the only saturated elements on screen.
· Honest data — no placeholder numbers. If a figure cannot be computed truthfully it is not displayed.
· One click to detail — every tile, counter and badge is a link to the underlying Dolibarr list, filtered to the same period and status as the figure shown.
· Respect the host — Dolibarr's native login block, entity selector and permission model are preserved and restyled, never replaced.
Admo Light is the default demo. A white sidebar carries the daily report block, the module filter and the navigation; a navy top bar carries the global search, the live counters and the user block. The dashboard opens on four solid-colour KPI tiles.
|
Element |
Value |
|
Page canvas |
#F4F5F7 |
|
Cards / sidebar |
#FFFFFF |
|
Top bar |
#3D4A69 (navy) |
|
Primary / accent |
#F1654A / #3EC7D6 |
|
KPI tiles |
#F1654A · #3EC7D6 · #3D7CB8 · #22BE88 |
|
Text |
#3B4054 / #6B7280 / #9AA0AC |
Admo Dark keeps the exact same structure and moves it onto a dark canvas. The four KPI tiles keep their full saturation — they are what carries colour in this demo — while every soft background is a transparent tint of its colour rather than an opaque blend, which is what stops orange and red tiles turning muddy brown on a dark surface.
|
Element |
Value |
|
Page canvas |
#171B26 |
|
Cards |
#232838 |
|
Sidebar |
#191D29 |
|
Top bar |
#141823 |
|
Text |
#E7EAF0 / #A6AEC0 / #7C8598 |
|
Borders |
rgba(255,255,255,0.08) |
Configuration → Admo → Demo. The change is immediate: the theme bumps Dolibarr's asset revision on save, so browsers pick up the new stylesheet on a normal reload rather than after the one-hour cache expiry. Each demo can also be previewed without saving, via a per-request preview link on the configuration page.
The Admo dashboard is composed of five bands, all fed by live queries:
· KPI tiles — total invoices, customers, products and orders. Each tile is a link to its list.
· Recent activity — the most recently touched invoices, orders, proposals and third parties, merged and sorted, each row linking to the object.
· Profile and to-do card — the signed-in user plus six workload counters (events to do, open proposals, unpaid invoices, draft invoices, orders to process, new customers).
· Earnings — turnover for the selected period with its variation and an eight-month area chart.
· People — the active users of the instance, with photo, e-mail and job title.
A week / month / year selector re-scopes the period-sensitive figures, and the KPI links carry the same date range so a list opened from a tile totals the same value as the tile.
· Daily report — three counters for the day — sales, orders, cash in. If the day is empty the window widens to 7 then 30 days and the heading changes with it; if 30 days are empty the block is hidden rather than showing zeros.
· Live module filter — type to narrow the navigation.
· Bookmarks — the user's real Dolibarr bookmarks, with an add-this-page button.
· Recently opened — per-session history of visited records, colour-tagged by object type.
· Count badges — unpaid invoices, overdue events and open proposals. A badge only appears when its real count is above zero.
· Accordion submenus — one section open at a time; the active branch expands automatically.
· Collapsible rail — folds to a 78 px icon rail on desktop; below 760 px it becomes an off-canvas drawer instead.
Six sidebar styles are available: light, dark, coloured, floating, mini and large.
· Global search — searches third parties, invoices, orders, proposals and products; Ctrl/Cmd + K focuses it.
· Live counters — overdue agenda events, unpaid invoices and documents touched in the last 24 hours — each a link to its list.
· Language indicator — shows the active Dolibarr language.
· Fullscreen and settings — shortcuts to the browser fullscreen API and the Dolibarr administration home.
· Light/dark toggle — switches mode inside either demo and remembers the choice per browser.
· Native block preserved — Dolibarr's own user menu, entity selector, print and help controls are restyled, not replaced.
Each demo has its own login screen. The login page is pre-session, so neither the browser's stored preference nor the pre-paint script can be trusted there: Admo resolves the demo server-side, in PHP, which is the one place in the theme where the administrator's setting is authoritative without appeal.
The theme also neutralises the two-tone diagonal gradient the Dolibarr core paints behind the login card, which would otherwise show as grey and blue bands under the themed card.
Widgets are built from three primitives — the solid KPI tile, the panel card and the counter row — so a new widget inherits spacing, radius, shadow, dark-mode behaviour and responsive rules for free. KPI tiles come in three styles (solid, soft tint, plain outline), selectable in the configuration.
All charts are inline SVG generated in PHP — no charting library, no external request, no render-blocking script. Curves are Catmull-Rom smoothed, areas use a gradient fill keyed to the theme colour, and the revenue chart has a crosshair with a value tooltip on hover. Zero-length arcs are skipped when drawing rings, which prevents a rounded stroke cap from painting a stray dot for an empty segment.
Dolibarr's native lists are restyled in place: the responsive container becomes the card, header underlines are retinted so they stay legible in dark mode, and hard-coded core separators are replaced by theme tokens. Row density is configurable — comfortable, normal or compact.
Inputs, selects and text areas take the theme radius, border and focus ring. Focus is a three-pixel halo in the primary colour, which is visible in both light and dark mode and satisfies keyboard-navigation expectations.
Twenty-nine settings in five groups, all applied without reinstalling:
|
Group |
Settings |
|
Demo |
demo selector, colour palette, dark by default |
|
Appearance |
primary / secondary / accent / success / danger / warning / sky colours, font family, font size, corner radius, web font loading |
|
Layout |
layout mode, sidebar style, header style, shadow depth, table density, gutter, animations, RTL |
|
Menu |
sidebar width, hide daily report, hide badges, hide bookmarks, hide recents, recents cap |
|
Dashboard |
KPI tile style, disable dashboard, hide core boxes, turnover base (incl./excl. tax), include abandoned invoices |
A settings import/export pair moves an exact configuration between Dolibarr instances as JSON. Import applies a strict allow-list: keys Admo does not recognise, values outside a setting's option list and malformed colours are skipped rather than written.
The whole configuration is resolved by one pure library, core/admo_presets.php, which is included by the stylesheet, the JavaScript, the sidebar, the dashboard and the configuration page alike. Because all five read the same code, the defaults shown in the configuration screen cannot drift from what the theme actually renders — a class of bug that is eliminated by construction rather than by discipline.
|
Breakpoint |
Behaviour |
|
≥ 1100 px |
full layout, sidebar expanded, four KPI tiles in a row |
|
< 1100 px |
KPI type scales down, search narrows, optional top icons hide |
|
< 760 px |
sidebar becomes an off-canvas drawer, top bar condenses, cards go full width |
|
< 520 px |
KPI tiles in a 2 × 2 grid, avatars and type reduced |
Grid children carry min-width:0 so that a wide chart or table scrolls inside its own container instead of forcing the whole page to scroll horizontally. Both demos were verified at tablet (820 × 1180) and mobile (414 × 896) with no horizontal overflow.
Dark mode is a genuine second token set, not a filter. It can be reached either by selecting the Admo Dark demo or by using the top-bar toggle inside either demo. The user's own choice always overrides the demo default, and it is applied on <html> before first paint so a reload never flashes the wrong theme.
Two rules govern the dark palette. Soft backgrounds are transparent tints of their colour rather than opaque blends, because an opaque blend of orange or red over a dark surface reads as brown. And surfaces are layered — canvas, card, raised — so that cards remain legible without borders doing all the work.
· core/admo_presets.php — pure library — no bootstrap, no output. Resolves the active preset. The single source of truth.
· css/admo.css.php — dynamic stylesheet. Emits design tokens, remaps Dolibarr's native CSS variables onto them, then the Admo skin.
· js/admo.js.php — top bar injection, theme and collapse persistence, chart interaction, ripple. Reads the live attribute on <html> rather than a compiled constant, so a cached copy can never override fresh server state.
· core/menus/standard/ — the menu manager and the sidebar renderer.
· class/actions_admo.class.php — hooks: home redirection and the pre-paint header script.
· admin/setup.php — configuration, preview, import/export.
· index.php — the dashboard. search.php — global search.
admo/
├── admin/setup.php
├── class/actions_admo.class.php, admo_demo.class.php
├── core/admo_presets.php
├── core/menus/standard/admo.lib.php, admo_menu.php
├── core/modules/modAdmo.class.php
├── css/admo.css.php
├── js/admo.js.php
├── langs/{en_US,fr_FR,es_ES,it_IT,de_DE,nl_NL,pt_BR}/admo.lang
├── index.php
└── search.php
|
Target |
Support |
|
Chrome / Edge |
last 2 versions |
|
Firefox |
last 2 versions |
|
Safari (macOS/iOS) |
last 2 versions |
|
Retina / HiDPI |
vector icons and SVG charts throughout |
|
Dolibarr |
v16 → v21 and later; verified on 17.0.3 / PHP 8.1 |
|
Core modifications |
none |
Admo is compatible with the native Dolibarr modules and with modules developed by DoliResources. Because the sidebar is generated from Dolibarr's own menu tree, a newly installed module appears in the navigation with no theme change required.
1. Sign in to Dolibarr as an administrator.
2. Go to Home → Setup → Modules/Applications → Deploy/install external app.
3. Upload module_admo-1.0.zip and confirm.
4. Find “Admo” in the Interfaces family and enable it.
5. Open its configuration (the cog icon) and choose Admo Light or Admo Dark.
6. Save. The new interface applies immediately.
Alternatively, unzip the package into the custom/ directory of your Dolibarr installation and enable the module from the same screen.
· Change the accent colour — Configuration → Palette, or select Custom and set the colours by hand.
· Adjust density — Layout → gutter, corner radius, font size, table density.
· Reshape navigation — Menu → sidebar width and style; hide the daily report or the badges.
· Brand the sidebar — the logo is taken from your company square logo in Dolibarr; no file editing needed.
· Add a third demo — add one entry to admo_demos() in core/admo_presets.php — it then appears in the selector, the stylesheet and the JavaScript automatically.
· No front-end framework — no jQuery plugin stack, no charting library. The theme's JavaScript is a single vanilla file.
· SVG charts — generated server-side, styled by CSS variables, so dark mode costs no extra request.
· Vector icons — Font Awesome 5 as bundled by Dolibarr; no additional icon font.
· Cache-aware assets — CSS and JS are served with a one-hour cache and a revision parameter that the theme bumps on save, so changes appear on a normal reload.
· Optional web font — the Google font can be disabled with one setting for fully offline installations.
· Motion respected — animations can be disabled in the configuration, and prefers-reduced-motion is honoured independently.
The Screenshots folder contains both demos, captured at 3200 × 1980 (1600 × 990 at 2× device pixel ratio) on a live Dolibarr 17.0.3 with real data:
|
File |
Content |
|
00_login.png |
Login page |
|
01_dashboard.png |
Main dashboard |
|
02_tiers_liste.png |
Third parties list |
|
03_fiche_client.png |
Customer record |
|
04_produits.png |
Products |
|
05_commandes.png |
Orders |
|
06_devis.png |
Proposals |
|
07_factures.png |
Invoices |
|
08_agenda.png |
Agenda |
|
09_projets.png |
Projects |
|
10_utilisateurs.png |
Users |
|
11_configuration.png |
Theme configuration |
|
12_modules.png |
Modules administration |
|
13_banque.png |
Bank |
|
14_stock.png |
Stock |
|
15_recherche.png |
Global search |
|
16_responsive_tablette.png |
Tablet rendering (820 × 1180) |
|
17_responsive_mobile.png |
Mobile rendering (414 × 896) |
· Two products in one — two complete identities, switchable in a single dropdown.
· Live data only — every figure is a real query, every tile is a link to its detail.
· Zero core modification — upgrades of Dolibarr remain straightforward.
· Automatic module coverage — new modules appear in the navigation without touching the theme.
· Configuration that cannot drift — one preset engine feeds the stylesheet, the JavaScript, the sidebar, the dashboard and the settings screen.
· Seven languages — every user-facing string is translatable, and every key is namespaced so it cannot collide with another module's wording.
· Per-user dashboard composition (drag-and-drop widget arrangement saved per account).
· Additional demos built on the existing preset engine.
· A widget API allowing third-party modules to contribute dashboard cards.
· Optional server-side rendering of the sparklines as static assets for very large instances.
Admo 1.0 — © 2026 DoliResources — https://www.doliresources.com