Own stylesheet (Custom CSS)
Add custom CSS to your Shoporama online store and admin backend. Customize colors, fonts, layout and hide elements without changing theme files.
With the Custom Stylesheet feature, you can add custom CSS to both your online shop and your admin backend. It's ideal for design adjustments like changing colors, fonts, margins or hiding elements - without changing theme files.
How to add CSS
- Go to Company in the menu
- Click on Custom stylesheet
- Enter your CSS code in the text field
- Click Save
Your CSS will be loaded after the existing stylesheets, so your rules will overwrite the default styles. This applies to both the shop front page and the admin panel.
Online shop customizations
Here are examples of typical webshop front page customizations:
Change the background color of the header:
header { background-color: #1a1a2e; }
Change the font:
body { font-family: 'Georgia', serif; }
Hide an element on the front page:
.element-class { display: none; }
Admin customizations
You can also use the Custom Stylesheet to customize the appearance of the admin panel. Below you will find a complete overview of the CSS classes and IDs you can use.
Note: In admin you often need to add !important to overwrite the existing Bootstrap styles.
Order list - CSS classes on order rows
Each order row in the order list has a number of dynamic CSS classes that you can use to style orders based on their status, payment and delivery method.
Payment status
| Class | When to pay |
|---|---|
| .paid | The order is paid |
| .unpaid | The order is not paid |
Example - Red background on unpaid orders:
.unpaid { background-color: #ffe0e0 !important; }
Order status
The status of the order row is added directly as a class:
| Class | Status |
|---|---|
| .new | New order |
| .process | In process |
| .pending | Pending |
| .ready | Ready_for_pickup |
| .ready_for_pickup | Ready for pickup |
| .picked_up | Picked up |
| .sent | Sent |
| .credit | Credited |
| .canceled | Canceled |
Example - Green background on sent and paid orders:
.paid.sent { background-color: #ddffeb !important; }
Example - Grayed out display of canceled orders:
.cancelled { background-color: #eee !important; opacity: 0.7; }
Delivery method
The delivery method name is automatically converted to a CSS class. All letters become lowercase and special characters are replaced with underscore. For example, "Home address with GLS" becomes the class .home_address_with_gls.
Example - Color mark orders by delivery method:
/* GLS orders with orange background */ .home_address_with_gls { background-color: #fff3e0 !important; } /* PostNord orders with blue background */ .postdanmark_to_home_address { background-color: #e3f2fd !important; }
Tip: To find the exact class for your delivery method: Right-click on an order row in the order list, select "Examine element" and view the classes on the <tr> element.
Payment gateway
Each order line gets a class based on the payment gateway ID in the format .payment-{ID}. To find the ID, go to Settings → Payment gateways and see the URL when you click edit.
Example - Green background for orders paid with a specific gateway:
.payment-{id} { background-color: #c8e6c9 !important; }
Other order line classes
| Class | When to use |
|---|---|
| .ean | The order has an EAN number |
| .credit_note | The order is a credit note |
| .has_pickup_address | The order has a pickup address (parcel shop) |
| .no_pickup_address | No pickup address |
| .shopgatewayfail | Shop-gateway transfer failed |
Example - Highlight EAN orders:
.ean { background-color: #c2caff !important; }
Order details - classes in the expanded view
When you click on an order in the list, order details are shown with these classes:
Order content
| Class | Class Description |
|---|---|
| .order-details-content | The entire expanded order details section |
| .order-internal-comments | The internal comments field |
| .order-content-name | Product name |
| .order-content-sku | Item number (SKU) |
| .order-content-comment | Order comment from the customer |
Stock status
| Class of product | Item description |
|---|---|
| .itemsinstock | Item is in stock |
| .itemsnotinstock | Item is not in stock |
| .shoporama-stock-in-stock | Stock > 0 |
| .shoporama-stock-out-of-stock | Stock = 0 |
| .order-content-amount-multiple | Quantity > 1 on the order line |
Example - Red text on items that are not in stock:
.itemsnotinstock { color: #ff0000 !important; font-weight: bold; }
Buttons in the order list
The buttons in the order list have fixed IDs that you can style:
Primary buttons
| ID | Button |
|---|---|
| #btn-print | Print delivery notes |
| #btn-mail | Send e-mail |
| #btn-clone | Copy order |
| #btn-new_invoice | Resend order confirmation |
| #btn-send_sent | Resend order-sent mail |
| #btn-current-view | CSV export |
| #btn-shop-order-queue | Show order queue |
Shipping buttons
| BUTTON ID | Button |
|---|---|
| #btn-gls-api | Send to GLS |
| #btn-gls-pdf | Download GLS package labels |
| #btn-gls-api-return | Create GLS return note |
| #btn-postnord-api | Send to PostNord |
| #btn-postnord-pdf | Download PostNord parcel labels |
| #btn-dao-pickup | DAO (pickup) |
| #btn-dao-pdf | Download DAO parcel labels |
| #btn-burd | Send to Burd |
| #btn-burd-pdf | Download Burd parcel labels |
| #btn-shop-gateway | Shop Gateway export |
| #btn-swipbox | Swipbox export |
| #btn-gls | GLS Uni-Connect |
Example - Highlight the print button:
#btn-print { background-color: green !important; color: white !important; }
Example - Hide shipping buttons you don't use:
#btn-swipbox, #btn-gls { display: none !important; }
Webshop-specific styling
If you manage multiple webshops from the same company, you can style the admin differently per webshop. The body element has the class webshop{ID} where ID is the webshop ID number.
Example - Different header color per webshop:
/* Your first webshop - red header */ body.webshop{id} nav.top-app-bar { background-color: #ad3c3c !important; } /* Your second webshop - blue header */ body.webshop{id} nav.top-app-bar { background-color: #2a50a6 !important; }
Tip: You can find your shop ID in the URL in the admin or by examining the body element with your browser's developer tools.
Layout and navigation
| Element | Element description |
|---|---|
| nav.top-app-bar | The top navigation bar |
| .drawer-light | The left menu (sidebar) |
| .drawer-menu | The menu list in the sidebar |
| .drawer-menu .nav-link | Menu links in the sidebar |
| .drawer-footer | The bottom of the sidebar |
| #layoutDrawer_content | The main content area |
Example - Change the color of the left menu:
.drawer-light .drawer-menu .nav-link { color: #333 !important; } .drawer-light .drawer-menu .nav-link:hover { background-color: #f0f0f0 !important; }
Other useful elements
| Element | Description of element |
|---|---|
| #demo_progress | Demo progress box (hide with display:none) |
| #help | Help box |
| td.more_unsent | The order number cell when there are multiple unsent shipments |
| td.bought_before | The order number cell for repeat purchases |
| .container-fluid | Page width (can be set to width:90% for a wider view) |
Popular use cases
Color coding of the order list
A popular setup is to color code the order list so you can quickly distinguish between paid/unpaid orders and different statuses:
/* Unpaid orders in light red */ .unpaid { background-color: #fff0f0 !important; } /* Paid and sent orders in light green */ .paid.sent { background-color: #f0fff0 !important; } /* Cancelled orders grayed out */ .cancelled { background-color: #f5f5f5 !important; opacity: 0.6; } /* EAN orders in light blue */ .ean { background-color: #f0f4ff !important; }
Highlight important action buttons
/* Green print button */ #btn-print { background-color: #28a745 !important; color: white !important; } /* Green GLS button */ #btn-gls-api { background-color: #ff9800 !important; color: white !important; }
Make the order list wider
.container-fluid { max-width: 100% !important; }
Clearly mark items not in stock
.itemsnotinstock { color: #ff0000 !important; font-weight: bold; font-size: 1.1em; }
How to find the right CSS selector
To find the exact class or ID of an element:
- Right-click on the element in your browser
- Select Inspect element (Inspect)
- Find the class (e.g. class="unpaid sent") or ID of the element
- Use the class or ID as a CSS selector in your stylesheet
Tip: Use the browser's developer tools (F12) to test CSS changes in real-time before saving them to your own stylesheet.
Major design changes
Custom Stylesheet is suitable for minor customizations. For larger design changes, it is recommended to edit the theme files themselves via SFTP. See the article Log in with SFTP to get started.
CSS cheat sheet
Here's a quick overview of the most commonly used CSS properties so you can get started without having to look it up.
Colors
Colors can be specified as names, hex codes or RGB:
/* Hex code (most commonly used) */ color: #ff0000; /* Red text */ background-color: #f0f0f0; /* Light grey background */ /* Color names */ color: red; background-color: white; /* RGB with transparency */ background-color: rgba(0, 0, 0, 0, 0.1); /* Black, 10% visible */
Useful color codes:
| Code | Color | Usage |
|---|---|---|
| #fff0f0 | Bright red | Unpaid orders |
| #f0fff0 | Light green | Paid/shipped orders |
| #f0f4ff | Light blue | EAN orders |
| #fff3e0 | Light orange | Highlighting |
| #f5f5f5 | Light gray | Faded/canceled |
Font (font-family)
/* Change font */ font-family: 'Georgia', serif; font-family: 'Arial', sans-serif; font-family: 'Courier New', monospace; /* Google Fonts (add import at the top of your stylesheet) */ @import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap'); font-family: 'Open Sans', sans-serif;
Text
font-size: 14px; /* Text size */ font-weight: bold; /* Bold text (or 400, 600, 700) */ font-style: italic; /* Italic */ text-align: center; /* Centered (left, right, center) */ text-decoration: underline; /* Underline */ text-transform: uppercase; /* Capitalization (lowercase, capitalize) */ line-height: 1.5; /* Line-spacing */ letter-spacing: 1px; /* Letter-spacing */
Background
background-color: #f0f0f0; background-image: url('https://example.com/bg.png'); background-size: cover; /* Fill entire area */ background-repeat: no-repeat;
Borders (border)
border: 1px solid #ccc; /* Border around entire element */ border-bottom: 2px solid #333; /* Bottom border only */ border-left: 4px solid #28a745; /* Green left border */ border-radius: 8px; /* Rounded corners */ border: none; /* Remove border */
Spacing (margin and padding)
/* Padding = inner spacing */ padding: 10px; /* All sides */ padding: 10px 20px; /* Top/bottom, left/right */ padding-left: 15px; /* Left only */ /* Margin = outer spacing */ margin: 10px; /* All sides */ margin-bottom: 20px; /* Bottom only */ margin: 0 auto; /* Center an element */
Show/hide
display: none; /* Hide completely (does not fill) */ visibility: hidden; /* Invisible (still fills) */ opacity: 0.5; /* Semi-transparent (0 = invisible, 1 = full) */
Size
width: 100%; /* Full width */ max-width: 800px; /* Maximum width */ height: 50px; /* Fixed height */ min-height: 200px; /* Minimum height */
Shadows
box-shadow: 0 2px 4px rgba(0,0,0,0,0.1); /* Soft shadow */ box-shadow: 0 4px 12px rgba(0,0,0,0.15); /* Heavy shadow */ box-shadow: none; /* Remove shadow */
Do you need help? Contact us at support@shoporama.dk.
Related articles
Notification under SFTP information
Learn how you as a theme developer can display a message on the admin page with SFTP login details.
Optimizing images for mobile
Guide to using responsive images with srcset in your Shoporama theme to provide optimized images for mobile users.
Extended fields
Learn how to use Shoporama extended fields to add extra content to your products, categories and pages - defined by your theme.