Guides
Twenty-four answers to problems every Compose Multiplatform app meets. Each says what is seen and why, gives the fix with Pantrix, and most give the same fix without it, in a form any project can copy.
Layout and windows
Fitting a screen to its window, its panes and its bars.
- Fitting the window: The window’s size classes, posture and folds that PantrixTheme gives, and how a test fixes them.
- Which window helper, when: Three screens worked through: which helper answers which question, and how state survives a resize.
- The window’s title: One window and many screens: the window’s name kept in step with what is shown.
- Focus beneath a bar: Keyboard focus that slides behind a top or bottom bar, and the modifier that keeps it in view.
- Resize pointers: The pointer that should change over a handle that resizes, on every platform but iOS.
- System bars that follow the theme: The system’s bars, keyboard and controls in the app’s own light or dark, not the system’s.
- A modal layer of the app’s own: A scrim over the whole window and content the app draws over it, the same on every platform.
Text and input
Fields, keyboards, type and the order of words.
- Putting the keyboard away: Why a field’s keyboard stays open on an iPhone, and the tap outside that puts it away.
- A number field and its action key: A number field that cannot be sent on an iPhone, and the action key that sends it.
- Keyboard shortcuts: A shortcut for the whole window, Cmd+K or Ctrl+K, written once for each system.
- Typography: The type scale, what text with no style is set in, and the size of what is typed.
- A typeface that arrives late on the web: Why an app’s own typeface comes a moment late on the web, measured and cured.
- Sorting by a language’s alphabet: A list of names in the order of the language’s alphabet, not of character codes.
- Formatting numbers: An amount that comes out the same on every platform, in each language’s digits.
Platform services
What common code cannot reach by itself.
- Date and time: A day and a time of day in common code without a date library, and how they become a moment.
- Copying text to the clipboard: Copying is not one call: what a copy button should say, and when, on each platform.
- Picking, dropping and saving files: A file the user picks or drops, read in common code, and one the app makes, saved where the user says.
- Exporting a chart as a file: A chart as PNG, SVG or PDF, and how the file reaches the user on each platform.
Quality and tooling
Tests, checks and the tools around an app.
- Testing a screen: Tests that answer the same on every machine: tags, a fixed theme and doubles of the platform.
- Runtime diagnostics: Flaws seen only on a running screen, caught in the app’s own debug build.
- detekt rules in your app: The rules the library keeps, and the ones an app turns on.
- Connecting events to analytics: The events the components report, what they never carry, and a connector to a product.
- The Material 3 bridge: Moving from Material 3 a screen at a time, both themes speaking the same colours.
- Teaching Pantrix to an assistant: The documents and the MCP server that teach Pantrix to Claude, Copilot or Cursor.