Custom CSS
Last updated
Last updated
⚙️ Powered by Rock RMS
If the need arises to add CSS inline on a single page, it can be done with the following syntax:
In most cases though, it's recommended to add custom styles globally to your app in the Styles tab of the application settings under the Advanced Options section. This allows styles to be defined once and accessible from any page within the app.
Here you can add custom classes, target specific views, etc. There are several custom variables you can use in your CSS to represent colors and settings. These variables are listed below.
Rock Mobile provides a set of utility class selectors to help target your styling to specific platforms, device types, pages, and blocks. Each is discussed below.
If you need to target styling to a specific platform (iOS or Android) you can use the parent classes .ios
or .android
.
You can also target specific platforms in XAML with an On Device Platform extension.
Similar to platforms you can also target device types with .phone
or .tablet
.
Need to get really specific? You can combine the two classes as shown below. In general, you should try to make your design work without too many of these specific styles.
When configuring a page you can provide a CSS class you would like to add to the page. This will allow you to scope the styling of elements on that page.
Each Rock mobile block has a CSS class assigned to it. This allows you to target the visual elements within a specific block. The pattern to use is .block-[block type name lowercase]
. For example, the calendar block would be .block-calendarview
.
Each XAML component can also be targeted. The selector for the control is its name in all lowercase. For instance the Label
control becomes label
, a DatePicker
would be datepicker
.
If you wanted to style all instances of FieldStack
you could use the CSS below.
The CSS above would make the border color of all instances of FieldStack
a gray color. Many controls in Rock Mobile inherit from other controls. For instance, the Address
control inherits from FieldStack
. The CSS above would not affect the Address
control. If you want all controls that inherit from another control add a ^
in front of the selector. The CSS below would select controls that are a FieldStack
or inherit from one.
The example below is not a best practice but shows you how you can use all of the utility classes together if needed. If you find yourself writing these types of CSS rules you're trying to swim upstream and should consider a better styling strategy.
Rock Mobile has a couple of custom CSS properties for use in mobile. These include:
This property allows you to add a shadow to Labels. The syntax looks like this:
-rock-text-shadow: [distanceX] [distanceY] [blurRadius] [color]
Example:
Unlike normal CSS, referencing an invalid custom variable with the ?
syntax will cause the app to crash.
Downhill includes several color variables that you can use in your CSS to reference colors defined in the administrative settings as well as a curated palette of colors that will bring consistency to your application.
Variable
Value
?color-text
Text Color provided in the Style settings.
?color-heading
Heading Color provided in the Style settings.
?color-primary
Primary Color provided in the Style settings.
?color-secondary
Secondary Color provided in the Style settings.
?color-success
Success Color provided in the Style settings.
?color-danger
Danger Color provided in the Style settings.
?color-warning
Warning Color provided in the Style settings.
?color-light
Light Color provided in the Style settings.
?color-dark
Dark Color provided in the Style settings.
Palette colors can be referenced with the following notation.
?color-{color}-{intensity}
Example
?color-orange-400
Alert boxes are made up of three different colors:
Background Color
Text Color
Border Color
These three colors are generated based on the Bootstrap alert recipe from the application colors above. The patterns for usage are:
?color-{application-color}-{property}
Example
?color-primary-background
?color-primary-border
?color-primary-text
Unlike normal CSS, referencing an invalid custom variable with the ?
syntax will cause the app to crash.
Below are some additional variables you can reference:
Variable
Value
?radius-base
The base radius that is configured.
?spacing-base
The default value to use for margins and padding.
?font-size-default
The default font size.
?color-text
The default color for text.
?color-heading
The default color for use with headings.
?color-background
The default background color.
Below are some additional items that behave like functions in your CSS. These allow you to run calculations to provide the CSS value.
Function
Usage
Takes the passed in floatValue
number and multiplies it by the system font scale. This is usually set by the user in the device accessibility settings.
?shell-font-scale(floatValue)