Overview
Joplin is a no-frills notes app where the theme is the design. Its interface is deliberately plain: white paper, charcoal text, one link blue and a dark header, with the personality supplied by whichever of eight bundled themes the user picks. The iOS and Android apps look nearly identical, with a few small platform adjustments. [Measured]
Three decisions define the look:
- Colors are numbered by layer, not by meaning. Each theme defines
colorandbackgroundColorfor the main surface, thencolor2andbackgroundColor2for the dark header and side areas,color3for faded panels andcolor4for accents. A theme is a short list of these values, which is why it is easy to add new themes. [Measured] - A dark header over a light body. In the default light theme the app bar and side menu use
#313640with white text while note content stays white. [Measured] - Eight themes, one structure. Light, Dark, OLED Dark, Solarized Light, Solarized Dark, Dracula, Nord and Aritim Dark. [Measured]
Source for this file: the public repository (mobile app and shared theme files) and joplinapp.org, read on 2026-10-06. No on-device capture was done. See Known Gaps.
Core
Colors
| Role | Light theme | Dark theme |
|---|---|---|
| Background | #ffffff | #1d2024 |
| Text | #32373f | #dddddd |
| Faded text | #627184 | #999999 |
| Divider | #dddddd | #555555 |
| Selected row | #e5e5e5 | #616161 |
| Link | #155bda | #a6a6ff |
| Header background | #313640 | #181a1d |
| Header text | #ffffff | #ffffff |
| Panel background (layer 3) | #f4f5f6 | #2e3138 |
| Accent text (layer 4) | #2d5be5 | #789fe9 |
| Accent dimmed fill | #e3eaff | #303543 |
| Raised background | #e5e5e5 | #474747 |
| Warning background | #ffd08d | #013f74 |
| Warning text | #e45600 | #9a5b00 |
| Error | #d00000 | #ff4444 |
| Search marker | #f7d26e | #f7d26e |
All [Measured] from the theme files. The website uses a standard web palette: #0d6efd, #212529, #6c757d, #dc3545, #198754. [Measured]
Typography
Roboto throughout the app. Base size is 16, with 14 for small, 18 for larger and 20 for large text. Body line height is 1.6em. Faded caption text is 80 percent of the base size (about 12.8). Headings in notes scale by multiples of the base size, for example 1.5 times and 1.3 times. [Measured] The website uses Montserrat. [Measured]
Shape and spacing
- Margins:
16default,12medium,8small and6extra small. The theme file states that no text or interactive component should sit inside the 16 margin. [Measured] - Corner radius is
4for most surfaces and100for pill chips. [Measured] - A disabled opacity of
0.2is used. [Measured] - Icons are 30 in size. [Measured]
Iconography and motion
Icons use the text color at size 30, with a lighter icon color on the dark header. No motion tokens were found. [Measured]
Themes
Eight bundled themes, each a small color table: light, dark, OLED dark, Solarized light, Solarized dark, Dracula, Nord and Aritim dark. Each also picks a code highlighting theme (for example atom-one-light and atom-one-dark-reasonable). [Measured]
Platform: iOS
How the iOS app looks and behaves. Items come from public source files.
Back and up navigation
Expected on iOS: chevron plus previous title, swipe from the left edge.
Navigation is a custom header with a back button rather than the native navigation bar, so the previous-title chevron pattern is not followed. [Inferred]
Primary navigation
Expected on iOS: bottom tab bar, about five items.
No bottom tab bar. Navigation is a side menu (notebooks, tags) plus the header. [Inferred]
Main action
Expected on iOS: nav bar or bottom bar button.
A floating new-note style button is used on both platforms. [Inferred]
Sheets, dialogs and messages
Expected on iOS: action sheets, alerts, modals.
A custom modal dialog component and header menus. [Measured]
Controls
Expected on iOS: Cupertino switches, pickers, segmented controls.
Controls styled from the theme. [Inferred]
Text sizing
Expected on iOS: Dynamic Type.
A fixed base size of 16 with an app setting for text size. System Dynamic Type was not verified. [Inferred]
Touch and pointer targets
Expected on iOS: 44pt minimum.
Not verified. [Inferred]
Insets and system bars
Expected on iOS: safe areas, status bar.
Not verified. [Inferred]
Icons
Expected on iOS: SF Symbols or custom.
An icon font at size 30. [Measured]
Account and sign-in rules
Expected on iOS: equivalent login option when third-party sign-in exists (Guideline 4.8) and in-app account deletion. Note the date checked.
No account is required. Sync uses the user's chosen service or Joplin Cloud. [Inferred] Checked: 2026-10-06 against source and general knowledge only.
Platform conformance
Expected on iOS: system components.
Low fidelity to iOS conventions. One look on both platforms, with small adjustments, for example removing the bottom border on text inputs on iOS. [Measured]
Platform: Android
How the Android app looks and behaves. Items come from public source files.
Back and up navigation
Expected on Android: system back and gesture, up arrow in the top bar.
System back is supported. A custom header with a back arrow. [Inferred]
Primary navigation
Expected on Android: navigation bar, rail on tablets.
A side menu opened from the header, not a bottom navigation bar. [Inferred]
Main action
Expected on Android: floating action button.
A floating button for new notes, which fits Android. [Inferred]
Sheets, dialogs and messages
Expected on Android: bottom sheets, dialogs, snackbars.
Custom modal dialog and header menu. [Measured]
Controls
Expected on Android: Material switches, pickers, chips.
Text inputs keep a bottom border on Android. Other controls are themed. [Measured]
Text sizing
Expected on Android: font scale.
Not verified. [Inferred]
Touch and pointer targets
Expected on Android: 48dp minimum.
Not verified. [Inferred]
Insets and system bars
Expected on Android: edge to edge, system bars.
Not verified. [Inferred]
Icons
Expected on Android: Material Symbols or custom.
An icon font. [Measured]
Account and sign-in rules
Expected on Android: account deletion and data safety requirements. Note the date checked.
No account is required. [Inferred] Checked: 2026-10-06 against source only.
Platform conformance
Expected on Android: Material 3 components and roles.
Does not follow Material 3. The look is Joplin's own. [Inferred]
Platform: Web
The joplinapp.org marketing site.
Back and up navigation
Expected on Web: browser back, breadcrumbs.
Browser back and a persistent navbar. [Inferred]
Primary navigation
Expected on Web: top nav or sidebar.
Top navbar. [Inferred]
Main action
Expected on Web: page-level button.
Download buttons in a standard web blue. [Inferred]
Sheets, dialogs and messages
Expected on Web: modals, toasts.
Not a feature of the site. [Inferred]
Controls
Expected on Web: native or custom.
Standard web form controls. [Inferred]
Text sizing
Expected on Web: browser zoom.
Sizes in rem, em and px. [Measured]
Touch and pointer targets
Expected on Web: pointer and keyboard.
Not verified. [Inferred]
Insets and system bars
Expected on Web: viewport, scrollbars.
A responsive grid layout. [Inferred]
Icons
Expected on Web: any.
Font Awesome. [Measured]
Account and sign-in rules
Expected on Web: not applicable unless the product has accounts.
Informational site. [Inferred]
Platform conformance
Expected on Web: web norms for links and forms.
A standard web blue palette that does not share the app's. [Measured]
Cross-platform consistency
The two apps are the same UI. The website does not share the app's color scheme: it uses web blue #0d6efd while the app link color is #155bda. [Measured]
Do's and Don'ts
Do
- Define every theme as a short list of layered colors (surface, header, panel, accent).
- Keep the header dark even in the light theme.
- Keep margins at 16 and never place content inside that margin.
- Offer many themes, including an OLED black.
- Use faded text for secondary information and an accent for links.
Don't
- Don't hard-code colors in components. Read them from the theme.
- Don't add a second link color per screen.
- Don't use decorative shadows. The look is flat.
Known Gaps
- No on-device capture was done. All app statements come from reading source, so layouts and behavior are not confirmed.
- Only the light and dark themes were read in detail. The other six were not.
- Per-screen layout, the exact navigation structure and the floating button were inferred from product knowledge.
- Corner radius and spacing were read from the shared theme file and may differ on individual screens.
- Account deletion and store policy rules were not verified.