Glossary
This page defines the words the docs use, in the sense Day gives them. Where a term has an everyday meaning too, the entry says which one applies. Each entry names the page that introduces the concept; that is the place to read next. Elsewhere in the docs, a term with a dotted underline is one of these, and hovering it shows the definition.
- Backend
- The Rust crate that implements Day's toolkit interface for one toolkit, such as
day-appkitorday-gtk. A Day binary links exactly one, chosen by a Cargo feature when it is built.Defined in Architecture - Binding
- The link between a reactive closure and one native widget attribute: the closure re-runs when its reads change, and its result is applied to the widget.
label(move || …)creates one. Also the trait behind two-way controls such asslider(signal).Defined in Reactivity - Capabilityalso Cap
- What a backend can do, asked at run time with
capability(Cap::…):Native,Emulated, orUnsupported. An app checks before offering a toolbar or a menu bar. A device capability, such as the battery or location, is a different thing: that is a part.Defined in Menus, toolbars, and windows - day (the CLI)also day-cli
- The command-line tool that creates, builds, launches, packs, lints, and scripts Day projects, the same by hand, from CI, or from an IDE. Lowercase
dayis the binary and the Rust crate; capitalized Day is the framework.Defined in CLI & projects - Day.toml
- The project manifest, and the marker that makes a Cargo package a Day project. It holds everything Day-specific, such as the app id and its targets; name and version come from
Cargo.tomland are never restated.Defined in CLI & projects - dayscript
- Day's automation language: a YAML file of steps that drives and asserts a running app. The engine is compiled into your app and executes steps as real Day events, so one script runs on every target and waits are deterministic.Defined in Testing with dayscript
- Declarative
- Describing what the UI is rather than the steps that build it. A Day app is a declarative tree of pieces; Day turns the tree into widgets and keeps them in sync with your state.Defined in Overview
- Decoratoralso modifier
- A modifier such as
.padding(),.frame(), or.id()that wraps a piece and returnsDecorated<P>, keeping the piece's own type. Decorators live only in Day's tree and create no native widget.Defined in Pieces - Fluent
- Mozilla Fluent, the message format Day localizes with. Translations live in
resource/locales/<lang>/app.ftl, one file per language, andbuild.rsturns each message into a typed function underres::str.Defined in Localization - Imperative
- Step-by-step instructions to a widget, as opposed to a description of the result. Day keeps imperative work behind the reactive system, in the patches that update a native widget.Defined in Tweaks
- Kind
- The stable string that names a piece to every backend, such as
day.labelorday.piece.lottie. A backend dispatches a kind to its renderer; a kind it does not know draws a placeholder.Defined in How rendering works - Locale
- Which translation and formatting rules are in force. A locale is chosen from a CLI override, then the OS preference, then the app's default, and it can change while the app runs.Defined in Localization
- Native
- Made of the platform's own widgets. A Day
button()is anNSButtonon macOS and aMaterialButtonon Android, so text input, scrolling, dark mode, and screen readers are the platform's too.Defined in Overview - Page
- One screen's worth of UI: a function that returns a piece, registered under a route and shown by a
navor anav_stack. Pages live undersrc/pages/by convention. A window can show more than one at a time: a phone shows a single page, while the same app on a tablet or desktop may lay out a sidebar, a list, a detail page, and an inspector across several navigation levels.Defined in Navigation - Part
- A headless platform capability: a set of functions with no UI whose implementation differs per operating system, shipped as an ordinary crate (
day-part-*). Battery, clipboard, and location are parts.Defined in Device capabilities (parts) - Piece
- A description of one part of the UI, built once into a native widget.
label,button, andcolumnare pieces; so is any function of yours that returnsimpl Piece. The word also names a UI extension crate (day-piece-*).Defined in Pieces - Placeholder
- What you see where a piece has no native implementation on this toolkit: its kind, in angle brackets. Coverage grows toolkit by toolkit, and the placeholder marks what is left.Defined in The extension model
- Platform
- An operating system a Day app is built for and deployed to: macOS, iOS, Android, Linux, Windows, HarmonyOS, or the web. A platform can host more than one toolkit; the pair is a target.Defined in Platform support
- Reactive
- Updating by itself when something it reads changes. Day's reactive system is a fine-grained signal graph: state lives in signals, and a closure that reads one re-runs when it changes, ending in one native widget update.Defined in Reactivity
- Resource
- A file under the project's
resource/directory, such as a locale, an image, a font, an icon, or an asset, each staged through the platform's native resource system. Code reaches one through a generated constant underres::rather than a bare string. Each platform's own tooling processes, compresses, and packages them, so a resource ends up where that platform expects it, in the form it expects.Defined in Resources, images, fonts & icons - Route
- A typed navigation destination declared with the
routes!macro: whatnav,nav_stack, deep links, and dayscriptnavigatespeak. Written assegments/joined/by/slashes; a single key is relative and a multi-segment path is absolute.Defined in Navigation - Sidebar
- A list of sections beside the content. Day builds the selected page on demand and disposes it when the selection changes, so a sidebar's page state lives in your signals.Defined in Navigation
- Signal
Signal<T>, a reactive cell holding one value. The handle isCopy, so you move it into as many closures as you like; reading it inside a reactive closure subscribes that closure to changes.Defined in Reactivity- Size class
- A bucket for a window's width or height in points, using Android's window size classes on every platform:
Compact,Medium,Expanded,Large, andExtraLargefor width. The class can change while the app runs, when a phone rotates or a desktop, tablet, or browser window is resized, and navigation re-resolves its shape each time, so one nav host fits a phone, a tablet, and a desktop window.Defined in Size classes - Split view
- A window divided into a section list and a detail pane. It is how the platform draws a sidebar nav host when there is room; on narrow screens the same nav host pushes pages instead.Defined in API tour
- Target
- An
(OS, toolkit)pair, writtenmacos-appkit,ios-uikit,android-mdc. One binary is compiled per target, containing only that toolkit's backend.Defined in Overview - Toolkit
- A native widget system: UIKit, Android's Material Components, AppKit, GTK 4, Qt 6 Widgets, Windows XAML, ArkUI, or the browser DOM. Day builds each piece with the widgets of one toolkit per binary.Defined in Overview
- Tweak
- A supported way to reach the real native widget behind a built-in piece and configure it, while Day keeps owning layout and lifecycle. A piece with a tweak applied keeps the same widget, with a little more configured.Defined in Tweaks
- Walkthrough
- The main script in a project's
dayscript/, conventionallywalkthrough.yaml. CI runs it on every target, and the gallery shows its captures.Defined in Testing with dayscript