Atlas 3 Change Summary

Last modified: September 19, 2024

Introduction

This document is a high-level summary of the changes Atlas 3 brings to Mendix.

High-Level Summary

Atlas 3 includes many changes to style and branding, and has a more modern look and feel. The differences between Atlas 2 and Atlas 3 are best expressed through comparison, using our reference apps. To learn more about how your app can look with Atlas 3, see the Atlas Design System website.

On both web and native, improvements have been made to layouts, widgets, building blocks, and page templates. These changes include but are not limited to layout and spacing, colors and aesthetics, and user experience.

New Theme

Our new theme has the following advantages:

  • Updated color palette
  • Values changed in variables
  • Introduced exclusion variables for widget default styling
  • Changed from Mendix Blue to Ultramarine
  • MxDock added to template to create one unified platform experience

Grid System

Our new grid system has the following advantages:

  • Moved to an 8 pixel grid system
  • Provides a good basic unit to work with (the numbers 4 and 8 are easily multiplied)
  • Offers more uniformity in design

Float Removal

Our removal of float has the following advantages:

  • Removal of the use of “float: left” and “float: right” throughout Atlas core
  • Migration of float to flex layout
  • Removal of the reliance on floats for layout (flex is more a modern option than float)

Design Properties

Consult the table below for a summary of the changes to existing design properties.

Spacing options -
added spacing-inner, spacing-inner-medium, spacing-inner-large
Introduction of options for inner spacing to all components. Align design properties with that of native. Design in the two mediums of native and web should be the same experience.
Spacing outer optionsPrevious spacing options are renamed to outer to be more explicit and to refer to “margin”, while inner refers to “padding”. Aligning design implementation between native and web.
Streamlined style optionsAcross a number of widgets we have streamlined the options available for style to primary, secondary, success, warning and danger. The options of “brand-inverse” and “brand-info” are still actionable classes in the sass framework.

Consult the table below for a summary of additional design properties.

Tab ContainerAddition of design properties for tab styling and positioning.
Datagrid 2Addition of design properties for styling and layout of the datagrid 2.
BadgeAddition of style design property for styling the new updated badge.
Badge ButtonAddition of design properties for design of the badge button, same properties as that of the standard button: style, size, full-width and border.
Progress CircleAddition of design properties for styling the new updated progress circle. Properties including bar color and bar thickness.
Progress BarAddition of design properties for the styling the new updated progress bar. Properties including bar color and bar thickness.
Additional background variantsDark and light variations can be added to your background colors via design properties.
Responsive images with image-fitOptions can now be added for images to be resized to fit its container. Options include fill, contain, cover and scale-down.

Web Environment Changes

Here is a list of key changes pertaining to the web environment:

  • The color palette has been improved which influences all aspects of design and user-experience, from widgets to page templates
  • Layout and spacing now relies on an 8 pixel system, creating more uniformity in design
  • Display type flex has been used instead of float where possible
  • Many design properties have been introduced, and existing ones have received added options:
    • Inner spacing options allowing users to configure padding for widgets. This applies to all widgets
      • Previous spacing options are now renamed to Outer to be more explicit and apply to margin for widgets
    • Structure widgets get a new gradient option for background color
    • Structure widgets get a shade design property with options to apply shades to background colors
    • List View widgets get a style option to add horizontal borders at the top and bottom of each list item
    • Static and dynamic images each get a new design property to assist with fitting images (for example fill, contain, cover, or scale-down)
    • Tab container widgets get new design properties to style and space tabs
    • Text widgets get a new color option to color text white
    • Table widgets get new design properties for styling and layout
  • Helper classes have been added (in core/base/_spacing.scss) to assist with the following:
    • Spacing
    • Shadows
    • Widget height
    • Widget width
    • Widget borders
  • Some design properties have been removed:
    • Info and Inverse brand styles for all widgets
  • Some design properties have been deprecated:
    • List View widgets’ styleless option
  • Design properties such as Style, Color, and Background color that had a Brand Default option are now called Brand Secondary

UI Content

If you are using building blocks or page templates, please make sure you download the corresponding modules from the Mendix Marketplace.

For the web platform, download the Atlas Web Content module:

Atlas web content

For the native platform, download the Atlas Native Mobile Content module:

Atlas native content

Design Properties for Web

These are the design property changes for Atlas 3 web:

ParentPropertyRemovedAddedRenamed
WidgetSpacing Top{"name": "Inner none","class": "spacing-inner-top-none"},{"name": "Inner small","class": "spacing-inner-top"},{"name": "Inner medium","class": "spacing-inner-top-medium"},{"name": "Inner large","class": "spacing-inner-top-large"}“None” => "Outer none”“Small” => “Outer small”“Medium” => “Outer medium”“Large” => “Outer large”
WidgetSpacing bottomSame as Spacing TopSame as Spacing Top
WidgetSpacing rightSame as Spacing TopSame as Spacing Top
WidgetSpacing leftSame as Spacing TopSame as Spacing Top
DivContainerBackground color{ "name": "Brand Default", "oldNames": [ "Default" ], "class": "background-default"},{ "name": "Brand Inverse", "oldNames": ["Inverse"], "class": "background-inverse"},{ "name": "Brand Info", "oldNames": ["Info"], "class": "background-info"},{ "name": "Background Primary", "oldNames": ["Background Default"], "class": "background-main"},{ "name": "Brand Secondary", “oldNames”: [“Brand Default”, “Default”] "class": "background-secondary"},{ "name": "Brand Gradient", "class": "background-brand-gradient"}
DivContainerShade (new){"name": "Light","class": "background-light"},{"name": "Dark","class": "background-dark"}
GroupBoxStyle{"name": "Brand Default","oldNames": ["Default"],"class": "groupbox-default"},{"name": "Brand Inverse","oldNames": ["Inverse"],"class": "groupbox-inverse"},{"name": "Brand Info","oldNames": ["Info"],"class": "groupbox-info"},{"name": "Brand Secondary","oldNames": ["Default", "Brand Default"],"class": "groupbox-secondary"},
StaticImageViewerFit (new){"name": "Fill","class": "img-fill"},{"name": "Contain","class": "img-contain"},{"name": "Cover","class": "img-cover"},{"name": "Scale-down","class": "img-scale-down"}
DynamicImageViewerFit (new)Same as StaticImageViewer
LabelStyle{"name": "Brand Default","oldNames": ["Default"],"class": "label-default"},{"name": "Brand Inverse","oldNames": ["Inverse"],"class": "label-inverse"},{"name": "Brand Info","oldNames": ["Info"],"class": "label-info"},{"name": "Brand Secondary","oldNames": ["Default", "Brand Default"],"class": "label-secondary"},
TabContainer (new)
DynamicTextFontWeight renamed to Weight
DynamicTextSize (new){"name": "Small","class": "text-small"},{"name": "Large","class": "text-large"}
DynamicTextColor{"name": "Brand Default","oldNames": ["Default"],"class": "text-default"},{"name": "Brand Inverse","oldNames": ["Inverse"],"class": "text-inverse"},{"name": "Brand Info","oldNames": ["Info"],"class": "text-info"},{"name": "White","class": "text-white"},{ "name": "Brand Secondary", "oldNames": ["Default", "Brand Default"], "class": "text-secondary"},
Table (new )
com.mendix.widget.custom.badge.Badge (new)
com.mendix.widget.custom.progressbar.ProgressBar (new)
com.mendix.widget.custom.badgebutton.BadgeButton (new)
com.mendix.widget.custom.progresscircle.ProgressCircle (new)

Design Properties for Native Mobile

These are the design property changes for Atlas 3 native mobile:

ParentPropertyRemovedAdded
AllBackground color{
"name": "Primary",
"class": "backgroundPrimary"
},
{
"name": "Gray",
"class": "backgroundGray"
},
{
"name": "Background Primary",
"oldNames": ["Background Default"],
"class": "background-main"
},
{
"name": "Background Secondary",
"oldNames": ["Background Dashboard"],
"class": "background-secondary"
},
WidgetSpacing top{
"name": "Smaller",
"class": "spacingOuterTopSmaller"
},
{
"name": "Larger",
"class": "spacingOuterTopLarger"
},
WidgetSpacing bottom{
"name": "Smaller",
"class": "spacingOuterBottomSmaller"
},
{
"name": "Larger",
"class": "spacingOuterBottomLarger"
},
WidgetSpacing right{
"name": "Smaller",
"class": "spacingOuterRightSmaller"
},
{
"name": "Larger",
"class": "spacingOuterRightLarger"
},
WidgetSpacing left{
"name": "Smaller",
"class": "spacingOuterLeftSmaller"
},
{
"name": "Larger",
"class": "spacingOuterLeftLarger"
},
DivContainerBackground color{
"name": "Secondary",
"class": "backgroundSecondary"
},
{
"name": "Gray",
"class": "backgroundGray"
},
{
"name": "Brand Info",
"class": "backgroundBrandInfo"
}
ScrollContainerBackground color{
"name": "Secondary",
"class": "backgroundSecondary"
},
{
"name": "Gray",
"class": "backgroundGray"
},
{
"name": "Brand Info",
"class": "backgroundBrandInfo"
}
ImageNo longer existsNo longer existsNo longer exists
StaticImageViewerShape{
"name": "Square",
"class": "imageSquare"
},
{
"name": "Circle",
"class": "imageCircle"
}
StaticImageViewerSize{
"name": "Icon",
"class": "imageIcon",
"oldNames": ["imageCircleIcon", "imageSquareIcon"]
},
{
"name": "Small",
"class": "imageSmall",
"oldNames": ["imageCircleSmall", "imageSquareSmall"]
},
{
"name": "Medium",
"class": "imageMedium",
"oldNames": ["imageCircleMedium", "imageSquareMedium"]
},
{
"name": "Large",
"class": "imageLarge",
"oldNames": ["imageCircleLarge", "imageSquareLarge"]
},
{
"name": "Larger",
"class": "imageLarger",
"oldNames": ["imageCircleLarger", "imageSquareLarger"]
},
{
"name": "FullSize",
"class": "imageFullSize"
}
DynamicImageNo longer existsNo longer existsNo longer exists
DynamicImageViewerSame as StaticImageViewerSame as StaticImageViewerSame as StaticImageViewer
DynamicTextColor{
"name": "Contrast lowest",
"class": "textContrastLowest"
},
{
"name": "Contrast lower",
"class": "textContrastLower"
},
{
"name": "Contrast low",
"class": "textContrastLow"
},
{
"name": "Contrast default",
"class": "textContrastDefault"
},
{
"name": "Contrast high",
"class": "textContrastHigh"
},
{
"name": "Contrast higher",
"class": "textContrastHigher"
},
{
"name": "Contrast highest",
"class": "textContrastHighest"
}
{
"name": "Paragraph",
"class": "textParagraph"
},
{
"name": "Disabled",
"class": "textDisabled"
},
{
"name": "Black",
"class": "textBlack"
},
DynamicTextSize{
"name": "Smallest",
"class": "textSmallest"
},
{
"name": "Largest",
"class": "textLargest"
}
DynamicTextWeight{
"name": "Light",
"class": "textLight"
},
{
"name": "Semibold",
"class": "textSemiBold"
},
Decoration (New){
"name": "Underline",
"class": "textUnderline"
},
{
"name": "Line Through",
"class": "textLineThrough"
}
LayoutGrid (New)
LayoutGridRow (New)
LayoutGridColumn (New)
ListViewBackground color (new){
"name": "Primary",
"class": "backgroundPrimary"
},
{
"name": "Gray",
"class": "backgroundGray"
},
{
"name": "Brand Primary",
"class": "backgroundBrandPrimary"
},
{
"name": "Brand Success",
"class": "backgroundBrandSuccess"
},
{
"name": "Brand Warning",
"class": "backgroundBrandWarning"
},
{
"name": "Brand Danger",
"class": "backgroundBrandDanger"
},
{
"name": "Brand Info",
"class": "backgroundBrandInfo"
}
com.mendix.widget.native.animation.AnimationBackground color{
"name": "Secondary",
"class": "backgroundSecondary"
},
{
"name": "Gray",
"class": "backgroundGray"
},
{
"name": "Brand Info",
"class": "backgroundBrandInfo"
}
com.mendix.widget.native.floatingactionbutton.FloatingActionButtonStyle{
"name": "Secondary",
"class": "floatingActionButtonSecondary"
},
com.mendix.widget.native.safeareaview.SafeAreaViewBackground color{
"name": "Secondary",
"class": "backgroundSecondary"
},
{
"name": "Gray",
"class": "backgroundGray"
},
{
"name": "Brand Info",
"class": "backgroundBrandInfo"
}

Read More