Flexmonster Software License Agreement (“Agreement”) has been revised and is effective as of October 15, 2026.
The following modifications were made:
Downloading, installing, and/or continuing to use Flexmonster Software after October 15, 2026, constitutes Licensee’s acceptance of the terms and conditions of the modified version of Agreement. If Licensee does not agree to any of these terms and conditions, they must cease using Flexmonster Software and must not download, install, use, access, or continue to access Flexmonster Software. By continuing to use Flexmonster Software or renewing the license or maintenance after the effective date of these modifications to Agreement, Licensee accepts and agrees to be bound by the terms and conditions of the modified Agreement.
This guide describes the general approach to Flexmonster CSS customization. To see different examples of such customization, visit our Examples page.
Check out other available guides on customizing Flexmonster.
Every element of Flexmonster's UI is a regular DOM element with CSS classes, so it can be styled with plain CSS.
To customize an element, create a CSS rule that includes:
Add the rule to your custom theme or to a separate CSS file.
All Flexmonster's elements are marked with class names that start with the fm- prefix, for example, fm-cell, fm-header, and fm-total. Use the DevTools to find the selector of the element you want to customize.
Check out the table with the most useful selectors:
| Selector | What it targets |
|---|---|
[class^='fm'] | Every Flexmonster element at once—useful for global changes like font family. |
#fm-pivot-view | The pivot table’s root container. Use it to increase the specificity of your rules. |
.fm-grid-view, .fm-grid-layout | The grid container. |
.fm-cell | Any grid cell (data cell, header, or total). |
.fm-header | Header cells. |
.fm-total, .fm-grand-total | Subtotal and grand total cells. |
.fm-level-0, .fm-level-1, … | Cells at a specific hierarchy depth. |
.fm-scroll-pane, .fm-scroll-content | The scrollable area and its scrollbar. |
.fm-sheet-header | The sheet/report header row above the grid. |
Use the [class^='fm'] selector to apply one font family to every element of the component at once:
#pivot-container [class^='fm'] {
font-family: "Verdana", sans-serif !important;
}Target .fm-total and .fm-grand-total selectors to give subtotals and grand totals the necessary colors:
#fm-pivot-view .fm-grid-layout .fm-total {
background-color: #bbf492 !important;
}
#fm-pivot-view .fm-grid-layout .fm-grand-total {
background-color: #f4b19f !important;
}You can also customize totals and grand totals using the customizeCell() API call. Learn more in the Customizing the grid cells guide.
Use the following selectors (and their -mobile counterparts for responsive layouts) to resize rows, columns, and headers:
#fm-pivot-view .fm-grid-row,
#fm-pivot-view .fm-grid-row-mobile {
height: 20px !important;
min-height: 20px;
}
#fm-pivot-view .fm-grid-column,
#fm-pivot-view .fm-grid-column-mobile {
width: 90px !important;
min-width: 90px;
}
#fm-pivot-view .fm-grid-header,
#fm-pivot-view .fm-grid-header-mobile {
height: 20px !important;
width: 20px !important;
}
To change the scrollbar's width, background, or thumb color, target the .fm-scroll-pane pseudo-elements.
Note that since the scrollbar relies on the ::-webkit-scrollbar pseudo-element, it works in Chromium-based browsers (Chrome, Edge, Opera) and Safari, but not in Firefox.
:root {
--scrollbar-width-height: 15px;
}
.fm-scroll-pane::-webkit-scrollbar {
background: #f1f1f1;
width: var(--scrollbar-width-height);
height: var(--scrollbar-width-height);
}
.fm-scroll-pane::-webkit-scrollbar-thumb {
background: #c5c5c5;
}
/* Keeps the last row/column border continuous after resizing the scrollbar */
.fm-scroll-content[style*="17px"] {
right: var(--scrollbar-width-height) !important;
bottom: var(--scrollbar-width-height) !important;
}Can't find your answer here?
Visit the FAQ page
Flexmonster Pivot Table & Charts is a JavaScript pivot table component for adding interactive reporting and data analysis to web applications. Users can summarize, filter, sort, and explore data in pivot tables and charts, drill into results, and export reports.
Flexmonster works in plain JavaScript and TypeScript projects. It also integrates with React, Next.js, Angular, Vue, Blazor, and other technologies. See all integration options.
Flexmonster supports JSON and CSV files, SQL databases, MongoDB, Elasticsearch, and Microsoft Analysis Services (SSAS). You can also connect other data sources through your own backend. See supported data sources.
Flexmonster offers three licensing models: a Single Corporate License for internal use by one company (from $799/year), a SaaS License for embedding Flexmonster into a multi-tenant platform (from $2,499/year), and an OEM License for vendors distributing Flexmonster inside a product installed at other businesses (from $1,499/year for a 3-license bundle). Every license allows an unlimited number of developers and covers development, staging, and production environments at no extra charge.
SaaS projects can also use the free SaaS Entry license during development. Learn more on the pricing page.
Yes. Flexmonster offers a 30-day free trial that lets you evaluate all its features. No credit card is required. The trial version has a watermark.
To get started with Flexmonster, follow our integration guide.