Skip to content

Maps and flags

A map answers where. WerkOS draws its maps on one projection, without labels or water, and keeps flags off the map and beside country names instead.

One projection

Openness scores run from 24 to 74 of 100 across the 26 countries scored

  • 0 to 20
  • 20 to 40
  • 40 to 60
  • 60 to 80
  • 80 to 100
  • No data
  • Not in scope
  • Partial evidence
  • 0 to 20
  • 20 to 40
  • 40 to 60
  • 60 to 80
  • 80 to 100
  • No data
  • Not in scope
  • Partial evidence

Source: example figures, not a measurement.

Show the numbers
Openness score by country, grouped by the steps of the key
CountryOpenness score, 0 to 100
60 to 80
Ireland74
Croatia72
Netherlands71
Sweden69
Germany68
Denmark67
Portugal66
Poland64
Finland63
Slovenia61
40 to 60
Czechia58
Bulgaria55
Austria52
Spain49
Romania47
Italy44
Philippines42
Hungary41
20 to 40
Slovakia39
Greece38
Indonesia36
Vietnam33
Nepal31
Sri Lanka29
India27
Bangladesh24
Not in scope
RussiaNot in scope
BelarusNot in scope
North KoreaNot in scope
SyriaNot in scope
AfghanistanNot in scope
IranNot in scope

Openness score by country, grouped by the steps of the key

60 to 80

Ireland

Openness score, 0 to 100
74

Croatia

Openness score, 0 to 100
72

Netherlands

Openness score, 0 to 100
71

Sweden

Openness score, 0 to 100
69

Germany

Openness score, 0 to 100
68

Denmark

Openness score, 0 to 100
67

Portugal

Openness score, 0 to 100
66

Poland

Openness score, 0 to 100
64

Finland

Openness score, 0 to 100
63

Slovenia

Openness score, 0 to 100
61

40 to 60

Czechia

Openness score, 0 to 100
58

Bulgaria

Openness score, 0 to 100
55

Austria

Openness score, 0 to 100
52

Spain

Openness score, 0 to 100
49

Romania

Openness score, 0 to 100
47

Italy

Openness score, 0 to 100
44

Philippines

Openness score, 0 to 100
42

Hungary

Openness score, 0 to 100
41

20 to 40

Slovakia

Openness score, 0 to 100
39

Greece

Openness score, 0 to 100
38

Indonesia

Openness score, 0 to 100
36

Vietnam

Openness score, 0 to 100
33

Nepal

Openness score, 0 to 100
31

Sri Lanka

Openness score, 0 to 100
29

India

Openness score, 0 to 100
27

Bangladesh

Openness score, 0 to 100
24

Not in scope

Russia

Openness score, 0 to 100
Not in scope

Belarus

Openness score, 0 to 100
Not in scope

North Korea

Openness score, 0 to 100
Not in scope

Syria

Openness score, 0 to 100
Not in scope

Afghanistan

Openness score, 0 to 100
Not in scope

Iran

Openness score, 0 to 100
Not in scope

Partial evidence: Greece, Italy and Sri Lanka.

Source: example figures, not a measurement.

Maps use the Equal Earth projection, which keeps each country's area true to scale, so a large fill does not exaggerate a small market. The frame runs from 84 degrees north to 56 degrees south and leaves Antarctica out.

The page itself is the sea. Countries are filled, borders are a thin line in the page color, and a faint grid of meridians and parallels every 30 degrees gives the eye its bearings.

Projection
Equal Earth
Frame
84 degrees north to 56 degrees south
Borders
a hairline on screen, 0.3 pt in print, in the page color
Grid
every 30 degrees, a hairline
--border
Labels on the map
none

Three kinds of map

A choropleth colors each country by one score in five steps. A bubble map sizes a circle by volume and names the largest eight. A corridor map draws the flow from one country to another as a ribbon, colored by origin.

Nepal to Poland is the largest of the eight corridors, with 2,600 work permits issued

NepalIndiaPhilippinesBangladeshPolandCroatiaCzechiaRomania
NepalIndiaPhilippinesBangladeshPolandCroatiaCzechiaRomania
NepalIndiaPhilippinesBangladeshPolandCroatiaCzechiaRomania
NepalIndiaPhilippinesBangladeshPolandCroatiaCzechiaRomania
NepalIndiaPhilippinesBangladeshPolandCroatiaCzechiaRomania
NepalIndiaPhilippinesBangladeshPolandCroatiaCzechiaRomania

Source: example figures, not a measurement.

Show the numbers
Work permits issued by corridor
CorridorWork permits issued
Nepal to Poland2,600
India to Poland2,200
Nepal to Croatia1,800
India to Czechia1,500
Philippines to Croatia1,100
Philippines to Romania800
Bangladesh to Romania700
Bangladesh to Czechia400

Work permits issued by corridor

Nepal to Poland

Work permits issued
2,600

India to Poland

Work permits issued
2,200

Nepal to Croatia

Work permits issued
1,800

India to Czechia

Work permits issued
1,500

Philippines to Croatia

Work permits issued
1,100

Philippines to Romania

Work permits issued
800

Bangladesh to Romania

Work permits issued
700

Bangladesh to Czechia

Work permits issued
400

Source: example figures, not a measurement.

No data and not in scope

A country without data and a country outside the question are different facts, so each has its own fill and its own legend entry. No data is a mid gray with a dotted edge. Not in scope is paler and carries fine horizontal lines.

A score that rests on thin evidence keeps the fill of its step and adds a fine dot grid, with Partial evidence in the key.

No data
mid gray with a dotted outline, per theme
Not in scope
pale gray with horizontal lines, per theme
Partial evidence
the step's own fill with a fine dot grid
Steps
five steps with fixed breaks
  • 0 to 20

    #a0b7fa

  • 20 to 40

    #7092f8

  • 40 to 60

    #3d6bf5

  • 60 to 80

    #2d4fb6

  • 80 to 100

    #1e357a

  • No data

    #d9d9de

  • Not in scope

    #f2f2f5

  • Partial evidence

    #d9d9de

  • 0 to 20

    #2d4fb6

  • 20 to 40

    #3d6bf5

  • 40 to 60

    #7092f8

  • 60 to 80

    #a0b7fa

  • 80 to 100

    #d0dbfd

  • No data

    #3e424e

  • Not in scope

    #2b2d37

  • Partial evidence

    #3e424e

The table beside the map

A map cannot be read aloud, and small countries hide in it. Each map comes with its data as a table, grouped by the steps of the key. Where a value carries a range, the range shares its cell.

Maps stay still: no zoom, no pan, no recentering. Hovering or focusing a country shows its name and value, and the arrow keys move through the countries in the order of the table.

Flags beside names

In a table, a ranked bar or a list, a country's round flag sits before its name, at a size set by where it appears. Screen readers skip the flag because the name that follows says it.

Flags stay off maps, legends and status labels.

In a board cell
20 px
Beside 13 px table text
1.15 em
In a dense list
16 px
In a printed table
10 pt
Smallest
15 px on screen, 8 pt in print
Edge
1 px ring with a backfill
--border
Without a flag
the two letter country code in a disc
--surface-control

Nepal leads the origins with 4,400 work permits issued

Nepal4,400India3,700Philippines1,900Bangladesh1,100
Nepal4,400India3,700Philippines1,900Bangladesh1,100
Nepal4,400India3,700Philippines1,900Bangladesh1,100
Nepal4,400India3,700Philippines1,900Bangladesh1,100
Nepal4,400India3,700Philippines1,900Bangladesh1,100
Nepal4,400India3,700Philippines1,900Bangladesh1,100

Source: example figures, not a measurement.

Show the numbers
Work permits issued by citizenship
CitizenshipWork permits issued
Nepal4,400
India3,700
Philippines1,900
Bangladesh1,100

Work permits issued by citizenship

Nepal

Work permits issued
4,400

India

Work permits issued
3,700

Philippines

Work permits issued
1,900

Bangladesh

Work permits issued
1,100

Source: example figures, not a measurement.

Permitted and not permitted

Permitted

  • Pair each map with its table

    The table is where a small country's value can be read.

  • Keep the flag before the name

    The name and the flag read as one.

Not permitted

  • Label countries on the map

    Names belong in the table and the tooltip.

  • Put a flag on a map or in a legend

    A flag names a country; it does not key a color.

  • Show a rank as a fill or a bubble size

    A rank is a position. Show it in a list.

NextReports

Maps and flags

One projection for every map, and the places a country's flag may appear in data.

  • Kind: data
  • Page: https://design.werklist.com/data/maps
  • Version: 2.1.2

When to use it

  • Where a score or a volume sits geographically
  • A flag before a country name in a table, a ranked bar or a list

When not to use it

  • A map for a rank
  • A flag on a map, in a legend, as a bullet or as a status

Rules

  • One projection for every map
  • No labels, capitals, place names or water on a map
  • A map never zooms, pans or recenters
  • No data and not in scope are separate fills with separate legend entries
  • A score on partial evidence keeps its step and adds a dot grid
  • A rank is never a fill or a bubble size
  • A flag sits before the name, never on a map, in a legend, as a bullet or as a status

Anatomy

  • Projection: Equal Earth; 84 degrees north to 56 degrees south; Antarctica is not drawn
  • Borders: a hairline on screen, 0.3 pt in print, in the page color
  • Grid: meridians and parallels every 30 degrees, a hairline on screen, 0.3 pt at 8 percent ink in print, no labels (--border)
  • Choropleth: five steps of one hue per theme, with fixed breaks
  • No data: light #d9d9de, dark #3e424e, with a 0.3 pt dotted outline in the page color
  • Not in scope: light #f2f2f5, dark #2b2d37, with fine horizontal lines
  • Partial evidence: the step's own fill with a fine dot grid, and its own entry in the key
  • Bubbles: area by volume; the 8 largest named with leader lines; a size key of 3 steps
  • Small countries: shown as a dot with an edge in the page color; close neighbors share one dot
  • Flag: round; 20 px in a board cell, 1.15 em beside 13 px table text, 16 px in a dense list, 10 pt in a printed table; never under 15 px on screen or 8 pt in print; a 1 px ring over a --surface-2 backfill (--border)
  • Without a flag: the two letter country code in a disc: --surface-control fill, --text-muted ink, 9 px weight 700 on screen; in print a disc at 8 percent ink with 4.5 pt letters at 55 percent (--surface-control)

States

  • Hover or focus: the country's name and value in the chart tooltip
  • No flag: the two letter disc takes the place of the flag

Keyboard

  • Tab: Enter or leave the map, one stop
  • Arrow keys: Move through the countries in the order of the table
  • Escape: Close the tooltip

Accessibility

  • The map is an image with a summary written from its data
  • Each map comes with its data as a table, grouped by the steps of the key; where a value carries a range, the range shares its cell
  • Screen readers skip the flag, because the name that follows says it

Tokens

  • --border
  • --surface-1
  • --surface-2
  • --surface-control
  • --text-muted

JSON

{
  "title": "Maps and flags",
  "path": "/data/maps",
  "url": "https://design.werklist.com/data/maps",
  "text": "https://design.werklist.com/agent/data/maps",
  "summary": "How WerkOS draws the world on one projection, and where a country's flag may appear in data.",
  "version": "2.1.2",
  "kind": "data",
  "name": "Maps and flags",
  "purpose": "One projection for every map, and the places a country's flag may appear in data.",
  "use": [
    "Where a score or a volume sits geographically",
    "A flag before a country name in a table, a ranked bar or a list"
  ],
  "avoid": [
    "A map for a rank",
    "A flag on a map, in a legend, as a bullet or as a status"
  ],
  "anatomy": [
    {
      "part": "Projection",
      "measure": "Equal Earth; 84 degrees north to 56 degrees south; Antarctica is not drawn"
    },
    {
      "part": "Borders",
      "measure": "a hairline on screen, 0.3 pt in print, in the page color"
    },
    {
      "part": "Grid",
      "measure": "meridians and parallels every 30 degrees, a hairline on screen, 0.3 pt at 8 percent ink in print, no labels",
      "token": "--border"
    },
    {
      "part": "Choropleth",
      "measure": "five steps of one hue per theme, with fixed breaks"
    },
    {
      "part": "No data",
      "measure": "light #d9d9de, dark #3e424e, with a 0.3 pt dotted outline in the page color"
    },
    {
      "part": "Not in scope",
      "measure": "light #f2f2f5, dark #2b2d37, with fine horizontal lines"
    },
    {
      "part": "Partial evidence",
      "measure": "the step's own fill with a fine dot grid, and its own entry in the key"
    },
    {
      "part": "Bubbles",
      "measure": "area by volume; the 8 largest named with leader lines; a size key of 3 steps"
    },
    {
      "part": "Small countries",
      "measure": "shown as a dot with an edge in the page color; close neighbors share one dot"
    },
    {
      "part": "Flag",
      "measure": "round; 20 px in a board cell, 1.15 em beside 13 px table text, 16 px in a dense list, 10 pt in a printed table; never under 15 px on screen or 8 pt in print; a 1 px ring over a --surface-2 backfill",
      "token": "--border"
    },
    {
      "part": "Without a flag",
      "measure": "the two letter country code in a disc: --surface-control fill, --text-muted ink, 9 px weight 700 on screen; in print a disc at 8 percent ink with 4.5 pt letters at 55 percent",
      "token": "--surface-control"
    }
  ],
  "states": [
    {
      "name": "Hover or focus",
      "change": "the country's name and value in the chart tooltip"
    },
    {
      "name": "No flag",
      "change": "the two letter disc takes the place of the flag"
    }
  ],
  "keys": [
    {
      "key": "Tab",
      "action": "Enter or leave the map, one stop"
    },
    {
      "key": "Arrow keys",
      "action": "Move through the countries in the order of the table"
    },
    {
      "key": "Escape",
      "action": "Close the tooltip"
    }
  ],
  "accessibility": [
    "The map is an image with a summary written from its data",
    "Each map comes with its data as a table, grouped by the steps of the key; where a value carries a range, the range shares its cell",
    "Screen readers skip the flag, because the name that follows says it"
  ],
  "tokens": [
    "--border",
    "--surface-1",
    "--surface-2",
    "--surface-control",
    "--text-muted"
  ],
  "rules": [
    "One projection for every map",
    "No labels, capitals, place names or water on a map",
    "A map never zooms, pans or recenters",
    "No data and not in scope are separate fills with separate legend entries",
    "A score on partial evidence keeps its step and adds a dot grid",
    "A rank is never a fill or a bubble size",
    "A flag sits before the name, never on a map, in a legend, as a bullet or as a status"
  ]
}

Raw file: https://design.werklist.com/agent/data/maps