Create a portal theme
Summarize
Summary of Create a portal theme
ServiceNow allows customers to create custom portal themes for advanced styling beyond the Branding Editor capabilities. Creating a custom theme requires knowledge of CSS and involves configuring theme properties, adding CSS stylesheets, and including JavaScript files to tailor the portal’s appearance and behavior.
Show less
Creating and Configuring a Theme
To create a theme, navigate to Service Portal > Themes, select New, and complete the form fields. Key configurable properties include:
- Name: Internal identifier for the theme to apply it to portals.
- Turn off SCSS compilation: Option to disable SCSS compilation and send plain CSS directly to clients.
- Application: Defines the scope to ensure compatibility with related records like header/footer.
- Header/Footer: Associate widgets for portal headers and footers from the
spheaderfootertable. - Fixed header/footer: Options to lock these elements on the screen during scrolling.
- CSS variables: Define CSS custom properties for colors and styles (e.g., margins, colors) to enable consistent theming.
Note: Use the CSS variables field exclusively for CSS variable definitions. CSS rules should be included separately via CSS Includes.
Adding CSS Includes
To add stylesheets to your theme, use the CSS Include related list and create new records with these settings:
- Name and Application: Identify the CSS Include and set the scope.
- Source: Choose between internal style sheets uploaded to the
spcsstable or external URLs to reference corporate or third-party CSS files. - Lazy Load: Optionally load CSS asynchronously to improve page load performance. This setting should be consistent across all CSS Includes in the theme. Avoid enabling Lazy Load if the portal shows unstyled content flashes.
- RTL CSS file URL: Provide an external stylesheet to support right-to-left languages (like Hebrew) for portal text direction mirroring.
Adding JavaScript Includes
The theme can also include JavaScript files to add client-side functionality. Use the JS Include related list to add new JavaScript includes with these options:
- Display Name and Application: Name the include and define its scope.
- Source: Choose between internal UI Scripts (stored in the
sysuiscripttable) or external JavaScript URLs. - UI Script or JS file URL: Associate the internal script or external file URL based on the source selection.
Practical Impact for ServiceNow Customers
By creating custom portal themes, customers can achieve a higher level of visual and functional customization tailored to their brand and user experience requirements. The ability to define CSS variables, include multiple stylesheets, and add JavaScript enhances flexibility and control over the portal’s look and feel. Proper use of scopes ensures maintainability and compatibility with other portal components like headers and footers.
If you need more customization than Branding Editor can provide, you can create your own custom theme.
Only users with an understanding of CSS should create custom themes.
- Navigate to , then select New.
- Complete the form fields and then from the form context menu, select
Save.
Table 1. Theme form fields Field Description Name Name of your theme. Use this name to associate the theme with your portal. This name is not visible to users, you should know it to apply the correct theme to a portal. Turn off SCSS compilation Turns off compiling SCSS and sends the plain CSS file directly to the client. Application The record scope. The header menu record and the source table must have the same application scope.
Header List of headers and footers from the sp_header_footer table that you can associate with a portal theme. Headers and footers are widgets and can be configured the same way. Footer List of headers and footers from the sp_header_footer table that you can associate with a portal theme. Fixed header Locks the header at the top of the page so that when a user scrolls the header remains on the screen. Fixed footer Locks the footer at the bottom of the page so that when a user scrolls the footer remains on the screen. CSS variables CSS custom properties that you can use to change the color and styles in a portal. For example, the stock theme uses some of the following variables: $sp-logo-margin-x: 15px !default; $sp-tagline-color: $text-color !default; $navbar-inverse-bg: #3a3f51 !default;Note:Use the CSS variables field to define CSS variables only. Use CSS Includes to define CSS rules. As of the Madrid release, Sass and LESS can be used within CSS Includes. - To add a style sheet to the theme, in the CSS Include related list, select New.
- Complete the style sheet form fields and select
Submit.
Table 2. Style sheet form fields Field Description Name Name of the CSS Include. Remember this name to associate the CSS Include with the theme. Application The record scope. The header menu record and the source table must have the same application scope. Source Select one of the following options: - Style Sheet: Add an internal style sheet that has been uploaded to the CSS table [sp_css]. For example, ng-sortable.min.css. Internal style sheets use standard CSS in the CSS field.
- URL: Link to an external style sheet. Use external style sheets to use the same CSS as a corporate website or other online resource.
Style sheet An internal style sheet to associate with the theme. CSS file URL A URL to an external style sheet to associate with the theme. Lazy Load Option to load the CSS Include asynchronously to improve page load time. This option should be set to the same value for all CSS Includes of a theme. Enabling asynchronous loading for only some CSS Includes associated with a theme isn’t recommended.
Note:Enabling Lazy Load isn’t recommended for portals with flashing of unstyled content.The CSS Includes with Lazy Load enabled are listed in the Lazy load CSS includes related list in the theme record.
RTL CSS file URL A URL to an external style sheet for mirroring the direction of a portal when the session language is a right-to-left language, such as Hebrew.
For information about support for right-to-left languages, see Styling for right-to-left languages in portals.
- To add a JavaScript include to the theme, in the JS Include related list, select New.
- Complete the JS Include form fields and select
Submit.
Table 3. JS Include form fields Field Description Display name Name of the JS Include. Remember this name to associate the JS Include with the theme. Application The record scope. The header menu record and the source table must have the same application scope. Source Select one of the following options: - UI Script: Add an internal UI script that has been uploaded to the UI script table [sys_ui_script]. UI scripts allow you to create client-side JavaScript and reuse it in multiple locations. For more information on UI scripts, see UI scripts.
- URL: Link to an external JavaScript file. Use external URLs to use the same JavaScript as a corporate website or other online resource.
UI Script or JS file URL Associate an internal UI script or JavaScript file URL, depending on which option you select in the Source field. Updated Date and time that the JS Include was last updated Package The Service Portal package that the JS include is associated with. For example, Service Portal Configuration Pages. This field is populated by default.