clamp(). For structural decisions — changing a flex direction, hiding an element, or reordering items — you need discrete control at specific breakpoints. The --on-* suffix system is how you express those layout shifts: append a breakpoint suffix to any supported class name and that override takes effect only at the viewport size you specify.
Breakpoint map
AtomicKit ships six breakpoints, covering everything from widescreen displays down to small mobile viewports. Each suffix maps to a CSS media query:| Suffix | Media Query | Viewport |
|---|---|---|
--on-xxl | min-width: 2400px | Widescreen and above |
--on-xl | max-width: 1366px | Laptop and below |
--on-l | max-width: 1200px | Tablet landscape and below |
--on-m | max-width: 1024px | Tablet and below |
--on-s | max-width: 880px | Mobile landscape and below |
--on-xs | max-width: 767px | Mobile only |
Notice that
--on-xxl uses min-width (a “wide and above” query), while all other suffixes use max-width (“this size and below”). Design mobile-first by setting your default class for small screens and overriding upward with --on-xxl, or design desktop-first and override downward with the max-width suffixes.How to use responsive suffixes
Append the suffix directly to the end of the class name with no space. The base class always applies first; the suffixed variant overrides it when the media query is active. Syntax:flex enables flex display, flex-col sets the default direction to column, and flex-row--on-m overrides the direction to row at viewports 1024 px wide and below. You apply all three classes in the Advanced → CSS Classes field, space-separated, just like any other utility combination.
Responsive layout example
The following class combination creates a three-column card grid that collapses to a single column on mobile:When you hide an element with a responsive suffix, the element is still in the DOM — only its display value changes. This is intentional for accessibility and SEO. If you need to remove content entirely on certain devices, use Elementor’s built-in responsive visibility controls instead.
Supported utility families
Responsive suffixes are available on structural utilities that affect layout and composition. They are intentionally not available on every utility family — fluid scaling handles continuous value shifts, so breakpoint overrides are reserved for genuinely discrete structural changes. The following families support--on-* suffixes:
Display
flex, block, inline, hidden, and related display values.Overflow
overflow-hidden, overflow-auto, overflow-scroll, and axis variants.Object Fit
object-cover, object-contain, object-fill, and related values.Aspect Ratio
aspect-square, aspect-video, aspect-auto, and numeric ratios.Positioning
relative, absolute, fixed, sticky, and static.Z-Index
z-0 through z-50 and z-auto.Flex Direction
flex-row, flex-col, flex-row-reverse, flex-col-reverse.Flex Wrap
flex-wrap, flex-nowrap, flex-wrap-reverse.Alignment
justify-*, items-*, self-*, and content-* alignment utilities.Flex Basis & Order
flex-basis-* size steps and order-* values.Best practices
Use suffixes for structural shifts only
Use suffixes for structural shifts only
Responsive suffixes exist to change how elements are arranged at different screen sizes — not to tweak every visual property at every breakpoint. Apply a suffix when the layout genuinely needs to reorganize (a row becomes a column, an element is hidden), not for minor stylistic adjustments. Fluid scaling handles gradual changes to font sizes and spacing automatically.
Keep the base class readable first
Keep the base class readable first
Write your default (unsuffixed) classes before any responsive overrides. Reading
flex-col flex-row--on-m is immediately clear; reading flex-row--on-m flex-col forces the reader to figure out which is the default. Consistent ordering makes the CSS Classes field easier to scan.Prefer fewer breakpoint changes over stacking many suffixes
Prefer fewer breakpoint changes over stacking many suffixes
Each additional breakpoint suffix adds cognitive overhead and increases the risk of conflicting overrides. Aim for one or two structural breakpoints per component. If you find yourself adding three or more suffixes to a single element, consider whether a simpler layout approach would serve the design better.
Test at actual device sizes, not just resized browser windows
Test at actual device sizes, not just resized browser windows
The breakpoint values in AtomicKit are chosen to align with common device categories, but real devices don’t always match. Use browser DevTools device emulation — and test on actual hardware when possible — to confirm your responsive overrides behave as expected.
Related concepts
For values that should scale gradually rather than jump at breakpoints, see the Fluid Scaling page. Font sizes, spacing, and gap values use CSSclamp() so a single class stays proportional across the full viewport range — no suffix needed.