Jira

Jira's iOS app is a work-tracking instrument — dense, structured, and deliberately utilitarian.

Back to all styles

Preview

Every style on this site is applied to the same sample page — same headline, same three columns, same footer. Only the stylesheet changes, so every difference you see below belongs to Jira, not to the copy.

A live page, not a screenshot — the frame scrolls. Open full preview ↗

At a glance

24tokens
9type steps
2radius steps
8pxspacing base

Jira, in one page

Jira's iOS app is a work-tracking instrument — dense, structured, and deliberately utilitarian. Where consumer apps chase delight, Jira chases *legibility under load*: a single sprint board can hold dozens of issue cards across five columns, each card carrying an issue type, key, summary, labels, story points, and an assignee avatar. The design system exists to make that density scannable. The atmosphere is "clean engineering tool" — Atlassian's neutral grays, generous internal padding, hairline dividers, and exactly one saturated brand color (Jira Blue #0052CC) used sparingly so it always means "primary action."

The signature surface is the board — horizontally-scrolling status columns (To Do, In Progress, In Review, Done) each containing a vertical stack of issue cards. The issue card is Jira's atomic unit: an 8pt-radius rounded rectangle on a lifted surface, with a one-to-two-line summary in 15pt medium, a row of colored label chips, and a footer row pairing the issue-type icon + issue key (e.g. MOB-388) on the left with story points and a circular assignee avatar on the right. Tapping a card pushes the issue detail — a full scrollable record with a status lozenge dropdown, fields panel (Assignee, Priority, Sprint, Story points), description, and an activity/comment timeline. Board ⇄ issue detail is the loop the entire app orbits.

The color system is semantic, not decorative. Atlassian's design language assigns meaning to color: blue = information / primary, green = success / done, yellow = warning / in-progress-attention, red = blocked / error, purple = epics, plus a neutral gray ramp for everything structural. These appear as status lozenges (small uppercase rounded chips: TO DO, IN PROGRESS, DONE, BLOCKED), issue-type icons (green square = Story, red circle = Bug, blue check = Task, purple lightning = Epic), and label chips on cards. The brand blue is reserved for the Create button, links, selected tabs, and primary CTAs — it is never used as a background fill for content.

Typography is Atlassian Sans (Atlassian's 2023 proprietary humanist sans; falls back to SF Pro on iOS, with Inter as the closest free analog). Hierarchy is product-UI, not editorial: screen titles at 28-32pt bold, section/board titles at 20-22pt bold, issue summaries at 15-16pt medium, metadata at 12-14pt regular, and the distinctive 11-12pt uppercase letter-spaced labels used for column headers and field names. Numerals are tabular so story-point totals and counts align in columns.

Key Characteristics:

Do's and don'ts

Do

  • Use Jira Blue (#0052CC) ONLY for primary actions, links, and selected states — never as a content background
  • Keep the canvas and chrome neutral gray so semantic colors carry meaning
  • Render status as a lozenge — uppercase, tracked, semantic-colored, 3pt radius
  • Use the correct issue-type icon + color (green Story / red Bug / blue Task / purple Epic / gray Sub-task)
  • Pair every card footer with issue-type icon + key on the left, points + assignee on the right
  • Clamp card summaries to 2 lines with ellipsis
  • Use tabular numerals for points, counts, and issue keys so they align
  • Use uppercase 11-12pt tracked micro-labels for columns and field labels
  • Use Atlassian Navy #172B4D for primary text on light — not pure black
  • Use neutral charcoal #1D2125 for dark mode — not true black
  • Brighten interactive blue to #1868DB on dark surfaces for AA contrast
  • Make the board horizontally scrollable with sticky column headers and per-column Create

Don't

  • Don't use Jira Blue as a card or section background — it must read as "action only"
  • Don't introduce new accent colors — the semantic set (blue/green/red/yellow/purple/neutral) is the whole palette
  • Don't show status as plain text — always a colored lozenge
  • Don't let issue cards grow unbounded — 2-line summary clamp is mandatory
  • Don't use pure black text (#000000) — #172B4D navy ink is correct on light
  • Don't use true black (#000000) for dark mode — #1D2125 Atlassian neutral is correct
  • Don't mix issue-type colors (e.g. a red Story) — the type→color mapping is fixed
  • Don't nest cards inside cards — field/list rows use hairline dividers, not boxes
  • Don't proportional-space numerals — points and counts must align in columns
  • Don't animate aggressively — Atlassian motion is 150-300ms ease-out, functional
  • Don't drop shadows with pure black on light — tint them with rgba(9,30,66,…) navy
  • Don't hide the issue key — it is the primary reference users speak and search by

Copy this into your AI builder

Paste it as-is. Every value below was measured from the original site, not guessed.

Assembled from the measured tokens — the source document has no prompt block.

Build a page in the Jira design language. Follow the measured tokens below — do not substitute your own palette.

Colors:
- Jira Blue: #0052cc
- Jira Blue Bold: #1868db
- Jira Blue Pressed: #09326c
- Link Blue (light): #0c66e4
- Canvas White: #ffffff
- Surface Sunken: #f7f8f9
- Surface Raised: #ffffff
- Surface Hover: #f1f2f4
- Divider: #091e42
- Border: #091e42

Type:
- families: Atlassian Sans, Atlassian Mono, Mono, Inter
- scale: 10, 11, 12, 13, 14, 15, 16, 20, 22
- weights: 400, 500, 600, 700

Shape:
- radius: 6, 8
- elevation: Focus: 2pt `#0052CC` / `#1868DB` border ring, no shadow

Spacing: 8, 10, 12, 24

Rules:
- Use Jira Blue (`#0052CC`) ONLY for primary actions, links, and selected states — never as a content background
- Keep the canvas and chrome neutral gray so semantic colors carry meaning
- Render status as a lozenge — uppercase, tracked, semantic-colored, 3pt radius
- Use the correct issue-type icon + color (green Story / red Bug / blue Task / purple Epic / gray Sub-task)
- Pair every card footer with issue-type icon + key on the left, points + assignee on the right
- Clamp card summaries to 2 lines with ellipsis

Avoid:
- Don't use Jira Blue as a card or section background — it must read as "action only"
- Don't introduce new accent colors — the semantic set (blue/green/red/yellow/purple/neutral) is the whole palette
- Don't show status as plain text — always a colored lozenge
- Don't let issue cards grow unbounded — 2-line summary clamp is mandatory
- Don't use pure black text (`#000000`) — `#172B4D` navy ink is correct on light
- Don't use true black (`#000000`) for dark mode — `#1D2125` Atlassian neutral is correct

Keep every value literal. If a token is given, use that exact value.

The specification

Colour paletteRead the full spec

Primary (Interactive)

  • Jira Blue (#0052CC): Primary brand & action color — Create button, primary CTA fill, selected states, links (light mode).
  • Jira Blue Bold (#1868DB): Brighter interactive blue used on dark surfaces — links, active tab, focus ring.
  • Jira Blue Pressed (#09326C): Pressed state of primary buttons.
  • Link Blue (light) (#0C66E4): Inline hyperlinks and tappable text in light mode.

Canvas & Surfaces (Light Mode)

  • Canvas White (#FFFFFF): Primary light canvas — issue detail, modals.
  • Surface Sunken (#F7F8F9): Board background, list background — subtle gray behind cards.
  • Surface Raised (#FFFFFF): Issue cards (white on sunken gray, lifted by 1px border + soft shadow).
  • Surface Hover (#F1F2F4): Pressed/selected rows and hovered cards.
  • Divider (#091E4224): Hairline dividers between rows, fields, and sections (≈14% navy).
  • Border (#091E420F): Card and input borders (≈6% navy).

Canvas & Surfaces (Dark Mode)

  • Dark Canvas (#1D2125): Primary dark canvas — Atlassian neutral, NOT pure black.
  • Dark Surface 1 (#22272B): Issue cards, raised surfaces.
  • Dark Surface 2 (#2C333A): Columns, input fields, hovered rows.
  • Dark Surface 3 (#38414A): Pressed states, neutral lozenge fill.
  • Dark Divider (#38414A): Hairline dividers between rows and sections.

Text

  • Text Primary Light (#172B4D): Primary body text — Atlassian Navy ("ink"), NOT pure black.
  • Text Subtle Light (#44546F): Secondary text, field labels, metadata.
  • Text Subtlest Light (#626F86): Placeholder, timestamps, low-emphasis.
  • Text Disabled Light (#091E424F): Disabled labels.
  • Text Primary Dark (#C7D1DB): Primary body on dark.
  • Text Subtle Dark (#9FADBC): Secondary text on dark.
  • Text Subtlest Dark (#738496): Placeholder/timestamps on dark.

Semantic / Status

RoleLight FillLight TextDark FillDark Text
Neutral (To Do)#DCDFE4#44546F#38414A#9FADBC
Information (In Progress)#E9F2FF#0055CC#092957#8FB8F6
Success (Done)#DCFFF1#216E4E#1C3329#7EE2B8
Warning (Attention)#FFF7D6#7F5F01#3D3000#F5CD47
Danger (Blocked / Error)#FFECEB#AE2A19#5D1F1A#FD9891
Discovery (Epic)#F3F0FF#5E4DB2#352C63#B8ACF6

Issue-Type Accent Colors

  • Story Green (#1F845A icon on #FFFFFF square): Stories.
  • Bug Red (#C9372C): Bugs.
  • Task Blue (#1868DB): Tasks.
  • Epic Purple (#8270DB / #6E5DC6): Epics.
  • Sub-task Blue-Gray (#5E6C84): Sub-tasks.

Label / Avatar Palette

Avatars and labels rotate through Atlassian's accent set: Purple #5E4DB2, Teal #1D7F8C, Magenta #943D73, Orange #A54800, Lime #4C6B1F, Blue #0C66E4.

Accent Functional

  • Sprint Active (#0052CC): Active sprint pill.
  • Story-Point Badge (#DDE1E6 light / #2C333A dark): Rounded point counter.
  • Flag/Blocker Stripe (#E2483D): Left edge stripe on flagged cards.
Type scaleRead the full spec

Font Family

  • Primary: Atlassian Sans (Atlassian, 2023) — humanist sans engineered for product UI density and tabular numerals.
  • Mono: Atlassian Mono — used in code blocks and inline code within descriptions/comments.
  • iOS Fallback: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display'
  • Closest Free Analog: Inter (by Rasmus Andersson, SIL OFL) — geometric humanist with tabular figures and excellent small-size hinting.
  • Fallback Stack: 'Atlassian Sans', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
Screen TitleAtlassian Sans28-32pt7001.2-0.4pt"Your work", "Boards" — top nav large title
Board / Section TitleAtlassian Sans22pt7001.25-0.3ptBoard name, backlog header
Issue Title (detail)Atlassian Sans20pt6001.3-0.2ptIssue summary in the detail screen
SubsectionAtlassian Sans16pt6001.40pt"Details", "Activity", "Description" headers
BodyAtlassian Sans16pt4001.50ptDescription text, comment body
Card SummaryAtlassian Sans15pt5001.40ptIssue card title — 2-line clamp
Meta / SecondaryAtlassian Sans14pt4001.40ptTimestamps, "Updated by", field values
Field LabelAtlassian Sans12pt6001.30.4ptUPPERCASE — "ASSIGNEE", "PRIORITY", "SPRINT"
Column HeaderAtlassian Sans12pt7001.30.6ptUPPERCASE — "IN PROGRESS", with count badge
Lozenge / LabelAtlassian Sans11pt7001.00.4ptUPPERCASE — status lozenges & label chips
Issue KeyAtlassian Sans11pt7001.00.2ptTabular — MOB-388
Tab LabelAtlassian Sans10pt5001.00.1ptBottom tab labels
Code InlineAtlassian Mono13pt4001.40ptinline code in descriptions

Principles

  • Tabular numerals everywhere: story points, counts, issue keys, and totals must align — enable font-variant-numeric: tabular-nums.
  • Uppercase micro-labels are structural: 11-12pt uppercase with +0.4-0.6pt tracking signals "this is a field/column/status", not content.
  • Weight ladder 400 / 500 / 600 / 700: regular body, medium card summaries, semibold subsection/field labels, bold titles & lozenges. No thin, no black.
  • 2-line clamp on card summaries: never let a card grow unbounded — truncate at 2 lines with ellipsis.
  • Dynamic Type on content, fixed on chrome: titles, body, descriptions scale; lozenges, issue keys, column headers, tab labels stay fixed (column layout is width-sensitive).
Components and layoutRead the full spec

Buttons

Primary Button (Create / Save / primary CTA)

  • Shape: Rounded rectangle, 6pt corner radius (Atlassian uses 3pt for compact, 6pt for prominent — prefer 6pt on mobile touch)
  • Background: #0052CC light / #1868DB dark
  • Text: #FFFFFF, Atlassian Sans 15pt weight 600
  • Padding: 12pt vertical, 24pt horizontal
  • Pressed: background #09326C light / #0C66E4 dark + 0.98 scale
  • Disabled: background #091E420F / text #091E424F

Subtle Button (Assign to me / secondary)

  • Background: #091E420F light / #2C333A dark (subtle neutral)
  • Text: #172B4D light / #C7D1DB dark, weight 500, 14pt
  • Padding: 10pt vertical, 18pt horizontal, 6pt radius
  • Pressed: background #091E4224 / #38414A

Outline / Default Button (Add child)

  • Background: transparent
  • Border: 1pt #091E4224 light / #38414A dark
  • Text: #172B4D / #C7D1DB, weight 500, 14pt, 6pt radius
  • Pressed: background #F1F2F4 / #22272B

Text / Link Button (View workflow)

  • No background, no border
  • Text: #0C66E4 light / #579DFF dark, weight 600, 14pt
  • Pressed: underline + #F1F2F4 faint background

Icon Button (overflow ⋯ / add)

  • 24pt glyph in 44pt hit area, color #626F86 / #9FADBC
  • Pressed: circular #091E420F / #2C333A background

Core Atoms

Status Lozenge

  • Shape: 3pt corner radius pill-rect
  • Size: auto-width, 4pt vertical / 8pt horizontal padding
  • Text: 11pt weight 700 UPPERCASE, +0.4pt tracking
  • Color: semantic pair from §2 table (Neutral / Information / Success / Warning / Danger / Discovery)
  • Dropdown variant: trailing 12pt chevron, tap opens status transition menu

Issue-Type Icon

  • 16pt glyph in a 16-20pt rounded container (3pt radius)
  • Story = white square on #1F845A; Bug = white circle on #C9372C; Task = white check on #1868DB; Epic = white lightning on #8270DB; Sub-task = link glyph on #5E6C84

Label Chip

  • 3pt radius, 2pt/7pt padding, 10pt weight 700 UPPERCASE
  • Tinted pastel background + saturated text from the label palette (e.g. design = #3B2C5E/#C0B6F2 dark)

Avatar

  • Circle, 22-26pt on cards, 32pt in detail header
  • Initials in 10-12pt weight 700 white on a palette color, or photo
  • Overlapping stack: -8pt overlap, 2pt canvas-colored border, "+N" overflow chip

Story-Point Badge

  • Rounded pill (500pt radius), min 18pt, 11pt weight 700
  • Background #DDE1E6 light / #2C333A dark, text subtle

Issue Card

  • Surface: #FFFFFF light / #22272B dark
  • Corner radius: 8pt
  • Border: 1pt #091E420F / #38414A
  • Shadow: 0 1px 1px rgba(9,30,66,0.13), 0 0 1px rgba(9,30,66,0.16) light / 0 1px 2px rgba(0,0,0,0.4) dark
  • Padding: 12pt all
  • Structure (top → bottom): optional cover/epic-color top stripe → summary (15pt/500, 2-line clamp) → label chips row (8pt gap above) → footer row (12pt gap above): left = issue-type icon + issue key (11pt/700 subtle); right = story-point badge + assignee avatar
  • Flagged variant: 3pt left edge stripe #E2483D + flag glyph
  • Drag state: lifts to elevation 200 (0 8px 12px rgba(9,30,66,0.15)), 2° tilt, ghost placeholder in source column

Navigation

Bottom Tab Bar

  • Height: 56pt + safe area
  • Background: #FFFFFF / #1D2125 with 0.5pt top border #091E4224 / #38414A
  • Tabs (5): Boards, Backlog, Search, Notifications, You
  • Icon: 22-24pt; active fill, inactive stroke
  • Active color: #0052CC light / #1868DB dark; inactive #626F86 / #738496
  • Labels: 10pt weight 500, always shown

Top Bar (board/issue)

  • Height: 44pt + safe area
  • Leading: back chevron OR project breadcrumb (12pt subtle)
  • Center: board/issue title (compact when scrolled)
  • Trailing: filter icon + overflow ⋯ + (board) avatar stack

Board Column Header

  • 12pt UPPERCASE weight 700 column name + count badge (rounded, subtle bg)
  • Sticky at top of each column while its cards scroll
  • WIP-limit variant: count turns red #C9372C when over limit

Sprint / Tab Strip (under title)

  • Horizontal pills: active = #0052CC filled white text; inactive = #F1F2F4/#2C333A subtle
  • "Sprint 24", "Backlog", "Filters"

Input Fields

Text Field (search / inline edit)

  • Height: 40pt
  • Background: #FFFFFF with 1pt #091E4224 border light / #22272B with 1pt #38414A dark (Atlassian fields are bordered, not filled)
  • Corner radius: 6pt
  • Leading icon (search): magnifyingglass 16pt subtle
  • Placeholder: 14pt #626F86 / #738496
  • Focus: 2pt #0052CC / #1868DB border ring, no shadow

Field Row (issue detail Details panel)

  • Label: 12pt UPPERCASE weight 600 subtle, fixed ~110pt leading column
  • Value: 14-16pt primary; tappable values open a picker (assignee, priority, sprint, status)
  • 44pt row height, hairline divider between fields

Dropdown / Select

  • Trigger looks like a value with a trailing 12pt chevron
  • Menu: 8pt radius card, elevation 300, 40pt rows, selected row checkmark + #E9F2FF/#092957 tint

Comment Composer

  • Multi-line, bordered, 6pt radius, "Add a comment…" placeholder
  • Trailing Save (primary) + Cancel (subtle) on focus; @-mention picker on @

Distinctive Components

Board (horizontal status columns)

Responsive behaviourRead the full spec

Device Sizes

DeviceWidthKey Changes
iPhone SE (3rd gen)375ptBoard columns ~248pt; 1.x columns visible; compact card footer
iPhone 13/14/15390ptStandard layout; ~1.4 columns visible
iPhone 15/16 Pro393ptDynamic Island accommodated in top bar
iPhone 15/16 Pro Max430ptWider columns (~280pt); ~1.6 visible
iPad (portrait)768pt3 columns no horizontal scroll; backlog can split list + detail
iPad (landscape)1024pt+4-5 columns; 2-pane (board/backlog list + issue detail) persistent

Dynamic Type

  • Scales: screen titles, issue title, body/description, comment text, field values
  • Fixed: status lozenges, label chips, issue keys, column headers, tab labels (column width-sensitive)
  • Code blocks scale to XL but stay monospace

Orientation

  • iPhone: portrait-primary; landscape shows more columns
  • iPad: split-view controller — primary backlog/board list + secondary issue detail; both rotate freely

Touch Targets

  • Issue card: full-card tap (≥64pt tall), long-press to drag
  • Status lozenge dropdown: 32pt tall, 44pt hit
  • Tab bar icons: 24pt glyph, 44pt hit
  • Field row: 44pt full-row tap
  • Overflow / icon buttons: 24pt glyph, 44pt hit

Safe Area Handling

  • Top: top bar + breadcrumb respect safe area and Dynamic Island
  • Bottom: tab bar + home indicator respected
  • Keyboard: comment composer and inline edit lift above keyboard; board scroll preserved
  • Sides: 16pt content inset; board columns can bleed to edge on scroll

Drop-in CSS variables

The same values as a theme block. Add the class to <body> and the site repaints.

body.theme-jira {--page-bg: #ffffff;
  --page-bg-gradient: none;
  --text-color: #1d2125;
  --heading-color: #1d2125;
  --link-color: #0052cc;
  --link-hover-color: #003d99;
  --border-color: #d6d7d8;
  --card-bg: #ffffff;
  --card-shadow: 0 1px 2px rgba(29,33,37,0.06);
  --card-hover-shadow: 0 6px 18px rgba(29,33,37,0.12);
  --header-bg: #1d2125;
  --header-text-color: #ffffff;
  --header-shadow: none;
  --footer-bg: #ffffff;
  --footer-text-color: #6c6f71;
  --button-bg: #0052cc;
  --button-text-color: #ffffff;
  --button-hover-bg: #003d99;
  --button-border: none;
  --button-border-radius: 8px;
  --button-secondary-bg: #f1f2f2;
  --button-secondary-text-color: #1d2125;
  --button-secondary-hover-bg: #e4e4e5;
  --button-secondary-border: 1px solid #d6d7d8;
  --prompt-bg: #f4f4f4;
  --prompt-text-color: #1d2125;
  --base-font: var(--font-helvetica);
  --heading-font: var(--font-mono);
  --card-border-radius: 8px;
}

Download theme.css

Visually close to

Measured with a deterministic colour + geometry comparison across 958 styles. Not a hand-picked list.

Where this came from

Source document
ios/design-md/productivity/jira/DESIGN.md · 27.6 KB
Repository
Meliwat/awesome-ios-design-md
Licence
MIT

Source text is reproduced under its original licence. Tokens, similarity scores and page structure are ours.