Atlas.Ui
The QML module every Atlas app imports, with windows, pages, buttons, fields, lists, dialogs, charts and the style and services behind them; how to install it, check it and find a type.
Atlas.Ui is the QML module of Atlas controls. Every Atlas app imports it, so they all share one look, one set of keyboard and accessibility rules and one copy on disk. It is a QML module installed next to Qt's own, like Kirigami. Its URI is Atlas.Ui.
Install and import
Install the atlas-ui package (Fedora 44, Qt 6.11). It brings in the Material Symbols fonts (atlas-symbols-fonts), Kirigami, IBM Plex Sans and JetBrains Mono.
sudo dnf install atlas-uiThe module lives in Qt's QML directory (/usr/lib64/qt6/qml/Atlas/Ui/). An app writes import Atlas.Ui in QML and links nothing: the QML engine loads the plugin. There is no CMake package and no devel package.
import QtQuick
import Atlas.Ui
AtlasWindow {
title: qsTr("Hello")
visible: true
AtlasPage {
anchors.fill: parent
title: qsTr("Hello")
PrimaryButton {
text: qsTr("Say hello")
symbol: Symbols.WavingHand
}
}
}Note
import Atlas.Ui wins over the QML files in an app's own directory. An app file named like an Atlas.Ui type (say SearchField.qml) is hidden by it. New Atlas.Ui types are named Atlas<Name> to keep clear of apps' names; see Compatibility.
Check the module at configure time
The app template fails the CMake configure with a plain message when the module is missing. qmlcachegen and qmllint find it in Qt's QML directory by themselves, so the app's <app>_qmllint target checks the app's QML against it.
if(NOT EXISTS "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_QML}/Atlas/Ui/qmldir")
message(FATAL_ERROR "Atlas.Ui is not installed: dnf install atlas-ui")
endif()Version rule
Atlas.Ui only ever adds API. An app that uses something added after 1.0.0 states the oldest version it works with in two places, and keeps them equal:
Requires: atlas-ui >= X.Y.Z(andBuildRequires) in the app's RPM spec, so dnf installs a new enough one;ui: "X.Y.Z"in the app'sapp!call, so at startup an older Atlas.Ui, installed some other way, gives a plain error window instead of a broken one.
AtlasApp.uiVersion reports the installed version at run time. Each page says which version added its type (since).
Guides
- Design rules: what every Atlas app does.
- Style and theming: colours, spacing, radii, density, blur and text scale.
- Motion: springs, reduced motion and the violet to sakura gradient.
- Compatibility: the API contract and what it means for an app.
- Accessibility: focus, roles, names, right-to-left and the framework's tests.
The types
Every type has a page. The groups below are the sidebar sections.
Windows and pages
- AtlasWindow: The application window: blurred or opaque by the shared switch, remembers its size, and goes frameless with a header bar.
- AtlasHeaderBar: The merged header of a frameless window: window menu, title, tools and window buttons.
- AtlasWindowButtons: Minimise, maximise and close buttons drawn like the AtlasOS window decoration.
- AtlasWindowChrome: Singleton with the desktop's caption-button layout and whether a global menu exists.
- AtlasPage: A scrolling page with a large bold title and centred margins.
- AtlasAboutPage: A ready-made About page for any app.
- AtlasOnboarding: A setup scaffold: steps, one page at a time, Back, Skip and Next.
- StatusBar: A slim bottom bar of cells such as line, column and encoding.
- StatusBarItem: One cell of a status bar, optionally clickable or with a menu.
Buttons
- AtlasButton: The shared base of the buttons, with four variants and a busy state.
- PrimaryButton: The filled accent button for the main action.
- SecondaryButton: The soft, tinted button for ordinary actions.
- TextButton: A button that looks like a link.
- MenuButton: A button that opens a menu.
- ToolbarButton: A small icon button for toolbars that never takes the editor's focus.
- AtlasSplitButton: A main button joined to an arrow that opens a menu of variants.
- AtlasInstallButton: An install button with progress inside it and states for install, update, open and retry.
- AtlasCopyButton: An icon button that copies text and shows a check mark.
- AtlasSwitch: A round switch.
- AtlasCheckBox: A check box with an optional partly-checked state.
- AtlasRadioButton: A radio button; siblings form a group.
- AtlasSegmentedControl: Joined segments with one selected.
- AtlasChip: A small chip for a tag, filter or value.
- AtlasChipGroup: A wrapping group of chips, optionally one-of.
Fields and pickers
- AtlasTextField: A single-line text field with error, clear button, prefix, suffix and counter.
- AtlasTextArea: A multi-line text field.
- AtlasPasswordField: A password field with a show toggle.
- SearchField: A search field with a debounced query.
- AtlasAutocompleteField: A text field that suggests completions.
- AtlasComboBox: A drop-down list, optionally filterable.
- AtlasSpinBox: A whole-number field with minus and plus buttons.
- AtlasDoubleSpinBox: A number field with decimals.
- AtlasSlider: A slider with an accent track, horizontal or vertical.
- AtlasRating: Zero to five stars, read-only or editable.
- AtlasDatePicker: A date field that opens a calendar.
- AtlasCalendar: A month grid for choosing a day.
- AtlasTimePicker: Hours and minutes, with AM/PM in 12-hour mode.
- AtlasColorField: A colour chooser with a palette and a hex field.
- AtlasFileField: A file chooser with a Browse button.
- AtlasFolderField: A folder chooser with a Browse button.
- AtlasFontPicker: A font chooser with a searchable list of families.
- AtlasShortcutField: A field that records a key combination and reports conflicts.
- AtlasDropZone: An area that files can be dropped on.
Lists and tables
- AtlasListView: A ListView in the Atlas look with selection, type-ahead and drag reordering.
- AtlasTreeView: A tree view in the Atlas list look.
- AtlasTreeModel: A read-only tree model built from nested JavaScript objects, for the tree view.
- DataTable: A sortable table that only makes the rows on screen.
- AtlasIconGrid: A scrolling grid of icons over names.
- AtlasDetailGrid: Names and values in aligned columns.
- AtlasSearchResults: A launcher's results list with sections and shortcut hints.
- AtlasAppCard: A store card for one app.
- AtlasScreenshotCarousel: Screenshots shown one at a time.
Navigation
- AtlasSidebar: A scrolling sidebar for sidebar items and groups.
- SidebarItem: One sidebar entry with a live value and badge.
- SidebarGroup: A foldable group of sidebar entries.
- StepItem: One step of a setup sidebar: done, current or to come.
- TabBar: Document tabs with an unsaved dot and a close button.
- AtlasViewSwitcher: Page tabs for the top of a window.
- AtlasNavigationStack: Drill-down pages with a Back button.
- AtlasBreadcrumb: A path bar that folds its middle into a menu.
- AtlasToolbar: A bar of actions that moves what does not fit into a menu.
- AtlasFloatingToolbar: A capsule of icon buttons that floats over content.
Menus, dialogs and popups
- ContextMenu: A right-click menu.
- ContextMenuItem: One row of a context menu.
- ContextMenuSeparator: A divider line in a context menu.
- AtlasAppMenu: The app's menus for the header bar or the desktop's global menu.
- AtlasAction: One user action shared by buttons, menus and the keyboard.
- AtlasDialog: The general modal dialog.
- ConfirmDialog: A modal question with small rounded buttons.
- AtlasPopover: A raised card that opens next to a control.
- AtlasToolTip: A hint on a raised card.
- AtlasCommandPalette: A searchable list of the app's actions, opened with Ctrl+K.
- AtlasShortcutsDialog: A modal list of the app's keyboard shortcuts.
Feedback and status
- InfoBanner: An inline info, warning or error banner with actions.
- Toast: A short message that goes by itself.
- AtlasProgressBar: A progress bar with indeterminate, paused and error states.
- AtlasSpinner: A busy indicator.
- AtlasPlaceholder: Skeleton bars shown while content loads.
- AtlasEmptyState: What a list shows when it has nothing.
- AtlasBadge: A small pill label for a status or count.
- AtlasAvatar: A round picture of a person, with initials as the fallback.
- AtlasStat: A figure with a label, a unit, a trend and a sparkline.
- AtlasEdgeGlow: The violet-to-sakura glow for "the system is working for you now".
- StatusHero: A big centred status: icon, headline, subtitle and actions.
Charts
- LiveChart: A live line chart.
- LiveChartItem: The painted item behind the live chart.
- UsageBar: A stacked usage bar.
- MiniBars: A row of small bars.
- AtlasSparkline: A small line chart with no axes.
- AtlasSparklineItem: The painted item behind the sparkline.
- RepaintArea: An invisible item that makes a table row repaint as one rectangle.
Text and code
- AtlasLabel: Text in one of the Atlas looks.
- AtlasCodeView: Read-only monospace text with an optional copy button.
- AtlasShortcutLabel: A keyboard shortcut drawn as keycaps.
- NotesText: Release notes from a safe HTML fragment.
- FindBar: A find and replace bar.
Layout
- Section: A rounded card of rows.
- SectionRow: One row of a section: title, subtitle, value and a switch, check mark or chevron.
- AtlasCard: A padded card with an optional header and footer.
- AtlasExpandableSection: A header row that folds its content.
- AtlasSplitView: Panes with a draggable divider.
- AtlasFlowLayout: A wrapping row layout.
- AtlasScrollBar: A thin scroll bar that fades out.
- AtlasTransparencySwitch: A settings row with the shared Transparency and blur switch.
Style and motion
- AtlasStyle: The design tokens: colours, spacing, radii, fonts, motion and density.
- Appearance: The look switches every app shares: transparency, colour scheme, motion and text scale.
- AtlasSpringAnimation: The Atlas spring for movement and size.
- AtlasFocusRing: The keyboard focus outline.
Icons
Services
- AtlasApp: The running app's name, ID, version and the OS.
- AtlasSettings: The app's own settings file.
- AtlasClipboard: The system clipboard.
- AtlasFormat: Formats sizes, speeds, numbers, durations and dates for the user's locale.
- AtlasPortal: Opens links and sends desktop notifications.
- AtlasShortcuts: The registry of the app's actions and shortcut conflicts.
- AccessibilityState: Whether a screen reader is listening.
Validators
- AtlasEmailValidator: Checks an email address.
- AtlasUrlValidator: Checks a URL and its scheme.
- AtlasPathValidator: Checks a file path.
- AtlasNumberValidator: Checks a number's range, decimals and locale format.
Pages
Guides
Design rulesThe rules every Atlas app follows, and which Atlas.Ui control or token carries each one.- Style and themingAtlasStyle's colour, spacing, radius, size and density tokens, how the Plasma accent, light and dark, blur, high contrast and text scale reach an app.
- MotionHow Atlas apps move: AtlasSpringAnimation standard and expressive, the duration tokens, reduced motion, the violet to sakura gradient rule and why nothing animates while idle.
- CompatibilityAtlas.Ui's API is a contract with every Atlas app: it only grows, and what that means for the app's version requirements and names.
- AccessibilityKeyboard focus, the focus ring, accessible roles and names, right-to-left mirroring and the checks the framework runs on every control.
Services
AccessibilityStateA singleton that says whether a screen reader or other assistive technology is listening.- AtlasAppA read-only singleton with the running app's name, ID, version and repository, the OS, and the Qt and Atlas.Ui versions.
- AtlasClipboardA singleton for the system clipboard: copy and read text, rich text and images without a hidden TextEdit.
- AtlasFormatA singleton that formats sizes, speeds, percentages, numbers, durations and dates alike in every Atlas app and in the user's language.
- AtlasPortalA singleton for what an app asks the desktop to do: open a link with the default app and show a desktop notification.
- AtlasSettingsAn app's own settings file, read and written in the format the Rust settings crate uses, with typed values, atomic batched writes and change notices.
- AtlasShortcutsA singleton registry of the app's actions that reports shortcut conflicts and turns shortcuts into readable text.
Style and motion
AppearanceA singleton with the look switches every Atlas app shares: transparency and blur, colour scheme, motion, text scale and the brand fonts.- AtlasFocusRingThe keyboard focus ring every Atlas control shows: a magenta-violet outline with a gap, only for keyboard focus.
- AtlasSpringAnimationThe Atlas spring for movement and size, standard or with a small overshoot, for use in a Behavior.
- AtlasStyleA singleton of design tokens: colours by role, spacing, radii, fonts, durations and density, so no app hard-codes a number.
Windows and pages
AtlasAboutPageA ready-made About page: app icon, name, version, system info, links, licence and a "Copy system info" button.- AtlasHeaderBarThe merged header of a frameless Atlas window: window menu, title, main tools and window buttons in one row.
- AtlasOnboardingA setup scaffold with a column of steps, one page at a time, and a footer with Back, Skip and Next or Finish.
- AtlasPageA scrolling page with a large bold title, generous centred margins and a place for buttons at the end of the title row.
- AtlasWindowThe application window of an Atlas app: blur or opaque, a width class, saved size and an optional frameless header.
- AtlasWindowButtonsThe minimise, maximise or restore and close buttons of a frameless window, drawn like the AtlasOS window decoration.
- AtlasWindowChromeA singleton with KWin's caption button layout and whether the desktop has a global menu.
- StatusBarA slim bar along the bottom of a window for Ln/Col, encoding, zoom and similar cells.
- StatusBarItemOne cell of a StatusBar: a short text, optionally clickable, with a symbol, a tooltip and a menu.
Menus, dialogs and popups
AtlasActionOne user action with its text, symbol, shortcut and tooltip in one place, shared by toolbar buttons, menu items and the keyboard.- AtlasAppMenuThe app's menus for the header bar: exported to the desktop's global menu when there is one, else a menu button.
- AtlasCommandPaletteA searchable popup list of the app's actions, opened with a shortcut such as Ctrl+K.
- AtlasDialogThe general modal dialog: a title row, a scrolling body and a row of buttons, over a dimmed window.
- AtlasPopoverA raised card that opens next to a control, with a soft shadow, a border and an optional arrow pointing at its target.
- AtlasShortcutsDialogA modal list of the app's keyboard shortcuts grouped by section, with search, scrolling and a Close button.
- AtlasToolTipA small rounded hint on a raised card, opened after the hover delay.
- ConfirmDialogA modal dialog in the Atlas look with small rounded buttons, an optional third button and a destructive style.
- ContextMenuA right-click menu in the Atlas look: a raised card with 6 px corners with inset rows.
- ContextMenuItemOne row of a ContextMenu: an icon or symbol, the text and a shortcut hint, optionally checkable or a radio choice.
- ContextMenuSeparatorA thin rule between groups of ContextMenuItem rows.
Lists and tables
AtlasAppCardA store card for one app: icon, name, short summary, rating and size, with an install button at the end.- AtlasDetailGridNames and values in aligned columns for an item's facts, with optional monospace and copy buttons.
- AtlasIconGridA scrolling grid of icons over names that makes cells only for what is on screen, for folders of files or apps.
- AtlasListViewA ListView in the Atlas look with selection, type-ahead, a default row from model roles, a context menu and optional drag reordering.
- AtlasScreenshotCarouselA row of screenshots shown one at a time with previous and next buttons, dots and arrow keys, loading only the neighbours.
- AtlasSearchResultsA launcher's results list with section headings, icons, subtitles and shortcut hints, driven by keys passed on from the search field.
- AtlasTreeModelA read-only tree model built from nested JavaScript objects, for AtlasTreeView.
- AtlasTreeViewA tree of rows in the Atlas list look, on Qt Quick's TreeView.
- DataTableA sortable table in the Section style that only makes the rows on screen.
Fields and pickers
AtlasAutocompleteFieldA text field that suggests completions from a list or model while you type.- AtlasCalendarA month grid for choosing a day, with keyboard navigation and optional date limits.
- AtlasColorFieldA colour chooser: a swatch and hex field that opens a palette, a hex field and the system colour dialog.
- AtlasComboBoxA drop-down list with the current choice in a field and the choices in a raised card, optionally filterable.
- AtlasDatePickerA date field that shows the chosen date and opens a calendar in a raised card.
- AtlasDoubleSpinBoxA number field with decimals, minus and plus buttons, a prefix and a suffix.
- AtlasDropZoneA dashed, rounded area that files can be dropped on, with a symbol, text and an optional Browse button.
- AtlasFileFieldA file chooser: a path field and a Browse button that opens the system file dialog.
- AtlasFolderFieldA folder chooser: a path field and a Browse button that opens the system folder dialog.
- AtlasFontPickerA font chooser: a small rounded button showing the family in its own face and the size, opening a searchable list of installed families.
- AtlasPasswordFieldA rounded password field with an eye that shows the text, an error message, and automatic hiding when focus leaves.
- AtlasRatingZero to five stars with halves drawn, read-only by default, or editable with hover preview, click and keyboard.
- AtlasShortcutFieldA field that records a key combination and reports conflicts with other registered actions.
- AtlasSliderA slider with a thin accent track with round ends and a knob, horizontal or vertical, with Page Up, Page Down, Home and End keys.
- AtlasSpinBoxA whole-number field with minus and plus buttons, a prefix and a suffix, which can be shown as a plain number field.
- AtlasTextAreaA multi-line text field with small rounded corners that wraps long lines and lets Tab move focus on.
- AtlasTextFieldA single-line text field with an error message, a clear button, a prefix and suffix, a character counter and validation messages.
- AtlasTimePickerA time of day as hours and minutes number fields, with AM/PM in 12-hour mode and an optional day-of-week drop-down.
- SearchFieldA search field with a magnifier, a clear button and a debounced query.
Feedback and status
AtlasAvatarA round picture of a person or account, falling back to initials on a name-based colour, or a symbol.- AtlasBadgeA small pill label for a status or count, or a dot meaning "something is new here".
- AtlasEdgeGlowA soft violet-to-sakura glow along the inside edges of its parent, meaning "the system is doing something for you now".
- AtlasEmptyStateWhat a list shows when it has nothing: a large symbol, a title, an explanation and an optional action button, centred.
- AtlasPlaceholderA skeleton block of soft rounded bars with a light sweep, shown where content is still loading.
- AtlasProgressBarA rounded progress bar in the accent colour, with an indeterminate mode, a text label beside it and normal, paused and error states.
- AtlasSpinnerA busy indicator, an accent arc that turns while something loads.
- AtlasStatA figure with a small muted label, a big value with a unit, an optional trend arrow and an optional sparkline.
- InfoBannerAn inline banner above the content for notices such as "File changed on disk" or "Could not save".
- StatusHeroA big centred status: a round icon badge with an optional ring, a headline, a subtitle and action buttons.
- ToastA short message that appears at the bottom centre of its parent and goes by itself.
Navigation
AtlasBreadcrumbA path bar with one button per segment; a long path collapses its middle into a menu.- AtlasFloatingToolbarA capsule of icon buttons that floats over content, such as formatting tools over an editor.
- AtlasNavigationStackDrill-down navigation with pages pushed over each other, a header with a Back button and the page title, and Alt+Left to go back.
- AtlasSidebarA scrolling sidebar for SidebarItem and SidebarGroup entries with filtering, a placeholder, context menus and drop targets.
- AtlasToolbarA horizontal bar of actions that moves the ones that don't fit into a "more" menu.
- AtlasViewSwitcherPage tabs for the top of a window: a symbol and text per tab, the current one tinted, with an optional count badge.
- SidebarGroupA sidebar entry that folds out into sub-entries.
- SidebarItemA sidebar entry: accent icon and label with a soft selection and an optional live value or badge.
- StepItemOne step in a setup sidebar: a numbered circle, or a check mark once done, and the step's name.
- TabBarA strip of document tabs with an unsaved dot, a close button, a new-tab button and drag to reorder.
Buttons
AtlasButtonThe button every Atlas app uses, with four variants, an optional symbol and a busy state.- AtlasCheckBoxA rounded check box with a label and an optional partly-checked state.
- AtlasChipA small label for a tag, a filter or a value; plain, checkable or closable.
- AtlasChipGroupA wrapping flow of chips, optionally one-of like radio buttons, with one Tab stop.
- AtlasCopyButtonA small icon button that copies its text to the clipboard and shows a check mark for a moment.
- AtlasInstallButtonAn install button for apps with a progress bar inside it, a cancel press while installing, and states for install, update, open and retry.
- AtlasRadioButtonA round radio button with a label; buttons with the same parent form a group and the arrow keys move the choice.
- AtlasSegmentedControlA row of joined segments with one selected, for a choice between a few views or modes.
- AtlasSplitButtonA main button joined to an arrow that opens a menu of variants of the action, such as Save and Save As.
- AtlasSwitchA pill switch with an accent track when on and a knob that slides across with a small overshoot.
- MenuButtonA SecondaryButton with a chevron that opens a menu of the items inside it.
- PrimaryButtonAn AtlasButton preset as a filled accent button, for the main action.
- SecondaryButtonAn AtlasButton preset as a soft tinted button with a hairline border.
- TextButtonA link-styled button: accent text, no fill.
- ToolbarButtonA small icon button for toolbars that never takes the editor's focus.
Layout
AtlasCardA padded card on the raised surface, with an optional header and footer, and optionally clickable.- AtlasExpandableSectionA header row that folds its content away, with an optional symbol, subtitle and chevron.
- AtlasFlowLayoutLays children out left to right and wraps them onto new rows, honouring Layout attached properties.
- AtlasScrollBarA thin, rounded scroll bar whose thumb widens on hover and fades out when nothing is scrolling.
- AtlasSplitViewPanes side by side or stacked with a thin draggable Atlas divider that can remember the pane sizes between runs.
- AtlasTransparencySwitchA settings row with a switch for the "Transparency and blur" setting every Atlas app shares.
- SectionA rounded card that groups SectionRows, or any items, on a raised background.
- SectionRowOne row in a Section: icon, title and subtitle, with a value, extra items, a check mark, a switch or a chevron.
Text and code
AtlasCodeViewRead-only monospace text for a command, log excerpt, snippet or config, with optional line numbers and a copy button.- AtlasLabelText in one of the Atlas looks (body, title, heading, caption, monospace) so an app never hard-codes sizes and weights.
- AtlasShortcutLabelA keyboard shortcut drawn as keycaps, one per key, in the platform's own spelling.
- FindBarA find and replace bar that slides down above an editor.
- NotesTextRelease notes shown from a safe HTML fragment, styled with Atlas colours and spacing.
Validators
AtlasEmailValidatorA validator for an email address field: one @, a dotted domain and a bounded length.- AtlasNumberValidatorA validator for a number field that checks a range, a number of decimals and the locale's way of writing numbers.
- AtlasPathValidatorA validator for a file path field that can require an absolute path or an existing file or folder.
- AtlasUrlValidatorA validator for a text field that accepts a URL with one of a set of schemes.
Charts
AtlasSparklineA small line chart with no axes or captions that shows the trend of a figure in a card or a row.- AtlasSparklineItemThe painted item behind AtlasSparkline, a small axis-less line chart drawn with QPainter.
- LiveChartA live line-and-area chart of the last 60 samples in the theme's colours.
- LiveChartItemThe painted item behind LiveChart: a line-and-area chart of the last 60 samples.
- MiniBarsA row of small upright bars, one per value, wrapping onto more rows when there are many.
- RepaintAreaAn invisible item that repaints its whole area as one rectangle whenever its content changes.
- UsageBarA stacked bar of how something is shared out, with an optional legend.
Icons
SymbolDraws one Material Symbol, tinted like text.- SymbolsThe singleton that holds every Material Symbol's value as Symbols.Name, and looks symbols up by name.