HTML & CSS Styling
The Homey Style Library is the key to a consistent user experience across all Homey Apps. We recommend to use this library above custom styling.
Header and Titles
For custom pairing screens and app settings you might want to use our default header with title and an optional subtitle.
.homey-header
.homey-title
.homey-subtitle
Example

homey-header class you create spacing and a line between your settings and title(s).Forms
Start a new form by using the homey-form CSS class.
.homey-form
Example
Fieldset and legend
With <fieldset class="homey-form-fieldset"> you can create a new fieldset in your form.
A fieldset is useful to create larger sections in your forms. Make sure your always use a <legend class="homey-form-legend"> to give the fieldset a title.
.homey-form-fieldset
.homey-form-legend
Example

homey-form-legend to create headings between form elements.Groups
Use <div class="homey-form-group"> to create a group combining a label with an input field. Use the homey-form-group class to create equal vertical spacing between all inputs.
.homey-form-group
Example

.homey-form-group classBasic input & label
.homey-form-label
.homey-form-input
Can be used for the input types: text, number, password and url .
Example

Radio input
Radio set
.homey-form-radio-set
.homey-form-radio-set-title
Radio buttons
.homey-form-radio
.homey-form-radio-input
.homey-form-radio-checkmark
.homey-form-radio-text
Example

Checkbox input
Checkbox set
.homey-form-checkbox-set
.homey-form-checkbox-set-title
Checkboxes
.homey-form-checkbox
.homey-form-checkbox-input
.homey-form-checkbox-checkmark
.homey-form-checkbox-text
Example

Select
.homey-form-select
Example

Textarea
.homey-form-textarea
Example

Buttons
Button variants
.homey-button-primary
.homey-button-primary-full
.homey-button-primary-shadow
.homey-button-primary-shadow-full
.homey-button-transparent
v8.1.1
.homey-button-secondary-shadow
v8.1.1
.homey-button-danger-shadow
v8.1.1
.homey-button-small
Example

.homey-button-primary-full
.homey-button-secondary-shadow
.homey-button-danger-shadowDisabled state
.homey-button-{variant}.is-disabled
.homey-button-{variant}[disabled=disabled]
Example

.homey-button-primary-full.is-disabledLoading state
.homey-button-primary-{variant}.is-loading
Example

.homey-button-primary-full.is-loadingRight-to-Left (RTL) Styling
Homey supports Right-to-Left (RTL) layouts for languages such as Arabic. RTL layout direction is handled automatically by Homey, but custom views may require additional styling to ensure the interface remains clear and consistent in RTL contexts.
When styling custom views, keep RTL in mind from the start to avoid layout issues.
Recommended practices
Use direction-aware CSS wherever possible so your styles work in both Left-to-Right (LTR) and Right-to-Left (RTL) layouts.
For general information about RTL support and language localization, see Internationalization.
Prefer logical properties over left/right
Logical properties automatically adapt to the active text direction.
Use direction-aware text alignment
Avoid hard-coding left or right unless absolutely necessary.
Use :dir(rtl)for direction-specific adjustments
Some visuals are inherently directional and may require explicit RTL handling.
Common cases include:
arrows and chevrons
animations and transitions
progress indicators
absolute positioning
Be careful with absolute positioning
If possible, use logical positioning properties:
Only fall back to left / right with a :dir(rtl) override when needed.
Last updated
Was this helpful?