Before You Begin
Requirements
- Custom CSS must be enabled in your project settings (see “Enabling Custom CSS” below)
- The custom CSS file must use the correct selectors to work properly (more on this below)
Important Note
Even after enabling Custom CSS in your settings,you must add ?customCss=true to your embed URLs for the custom styles to load. Without this parameter, the viewer will use the default theme. The embed code contains two such URLs.
Example:
How to Set Up Custom CSS
Step 1: Enable Custom CSS
- Go to Style & Embed
- Navigate to Style → Use your own CSS
- Upload your file under Custom CSS file
Step 2: Download the Default Template
Before creating your custom CSS, download our default theme template as your starting point:- In the Custom CSS settings section, click Download Default Template
- Save the
planpoint-theme.cssfile to your computer
Step 3: Customize Your CSS
Open the downloaded CSS file in any text editor and make your changes. Here’s what you can customize: Brand Colors- Primary and accent colors
- Status indicators (Available, Sold, Reserved)
- Background and text colors
- Font families
- Font sizes for different elements
- Font weights and styles
- Padding and margins
- Border radius values
- Grid gaps and alignment
- Box shadows
- Hover effects
- Transitions and animations
Step 4: Upload Your Custom CSS
- Return to Style & Embed → Style → Custom CSS
- Click Upload in Custom CSS File
Step 5: Add the URL Parameter
Update your embed code to include thecustomCss=true parameter. The embed code contains two such URLs.
Before:
Understanding CSS Selectors
Use the Right Selectors
Our system uses CSS Modules, which means you need to target elements using specific attribute selectors and class wildcards. The default template already includes these, but here’s what to know if you’re adding new styles: ✅ Correct selectors that work:Common Elements You Can Style
Here are some frequently customized elements:| Element | Selector | What it controls |
|---|---|---|
| Main container | [data-pp-embed] | Overall viewer wrapper, CSS variables |
| Layout | [data-pp-layout] | Grid layout container |
| Filters wrapper | [data-pp-filters-wrapper] | Filter bar background/styling |
| Filters | [data-pp-filters] | Filter controls section |
| Unit grid | [data-pp-unit-grid] | Grid of unit cards |
| Unit list | [data-pp-unit-list] | Table view of units |
| Unit cards | [class*="unitTile"] | Individual unit listings |
| Card body | [class*="unitTileBody"] | Card content area |
| Card price | [class*="unitTilePrice"] | Price display |
| Status badges | [class*="badge"] | Available/Sold/Reserved labels |
| Dropdowns | [class*="dropdownToggle"] | Filter dropdown buttons |
| Dropdown menus | [class*="dropdownMenu"] | Filter dropdown options |
| Action buttons | [class*="unitCardAction"] | CTA buttons |
| Modals | [data-pp-modal] | Popup windows |
| Canvas area | [data-pp-canvas] | Floor plan display area |
| Gallery | [class*="embla"] | Image carousel |
| Shortlist button | [class*="shortlistAction"] | Favorite/save button |
CSS Custom Properties (Variables)
The template uses CSS custom properties for easy theme-wide changes. Modify these at the top of your CSS file for consistent styling:Example: Styling Status Badges
Here’s an example of how to style the availability badges:Troubleshooting
My custom CSS isn’t showing up
Check these common issues:- Missing URL parameter: Ensure
?customCss=trueis in your embed URL - Custom CSS not enabled: Verify it’s toggled on in Project Settings → Style
- Wrong selectors: Make sure you’re using
[class*="className"]pattern for nested elements, not plain class names or non-existent data attributes Missing !important:Many styles require!importantto override defaults- Cache issues: Try clearing your browser cache or testing in an incognito window
- File upload failed: Re-upload your CSS file and confirm the save was successful
Some elements aren’t styling correctly
This usually means you’re using selectors that don’t match our system:- ❌ Don’t use:
[data-pp-button],[data-pp-unit-tile],.unitTile - ✅ Do use:
[class*="button"],[class*="unitTile"]
Styles work in dev tools but not in my CSS file
Make sure you’re adding!important to your declarations. CSS Modules generate high-specificity selectors, so you need !important to override them.
How do I reset to the default theme?
In Style & Embed → Style → Custom CSS, click Remove Custom CSS or simply remove the?customCss=true parameter from your embed URL.