Applying custom themes and CSS to your forms and interfaces
Applying Custom CSS Stylesheets
The PixieBrix Form and Document builder supports applying one or more hosted CSS Stylesheets to the document under the Advanced: Theme configuration group.
PixieBrix only supports CSS stylesheets hosted from https: URLs. If you need assistance hosting your stylesheet, contact [email protected].
Configuring a custom CSS Stylesheet
Adding CSS class names to elements
To add a CSS class name to an element in a document, add the class name to the Layout/Style field. Do not include the . prefix when setting the class name:
PixieBrix's embedded forms by default are in a vertical orientation. To have field appear side by side, use flexbox to override the style of the form row class:
Using flexbox to create a scrollable container
To create a scrollable area, create a panel with two container elements attached to the root:
A panel with two containers attached to the root
In the Layout/Style field for each, assign each container a classname, e.g., scrollContainer and footerContainer.
In the CSS theme, apply a apply a column flex to the root, using display: flex and flex-direction: column.
For the scrollable container, use the property flex-grow: 1 to direct the container to grow to fill the available space.
To apply a scrollbar, assign an overflow: auto or overflow: scroll property.
Automatically scroll list elements
To automatically scroll list items, you can use a CSS trick: rendering the items in reverse order, and apply a column-reverse flex layout.
Reverse the elements using the Javascript Brick
Reverse the elements using the Javascript brick:
Add a container element with an empty spacer row and list of rows
The element tree should look like:
Container: with classnames: d-flex flex-column-reverse overflow-auto
Row: an empty row used as a spacer, with classname: flex-grow-1
List: a list of rows, being passed the reversed element array
Layout for a auto-scrolling list of rows
Frequently Asked Questions
How do I create a custom color scheme?
PixieBrix uses the Bootstrap 4 component system. The easiest way to create a custom color scheme is to use a theme builder and export the minified CSS. We recommend the following online tools:
I updated my stylesheet content, but the changes aren't showing
Your browser might be caching the stylesheet. To force your browser to re-fetch the stylesheet, include a so-called "cache-busting" query parameter in the stylesheet URL. When you change/increment that value during development, your browser will re-fetch the stylesheet.
The query parameter name does not matter. For example, using ?v=:
/* Forms are rendered in a ShadowDOM. Target the form wrapper div. */
div:has(.rjsf) {
/* Override the p-3 utility class on the embedded form */
padding: 0 !important;
}