{
  "_id": "6ae340e0327abcdf86866fe8",
  "Package": "hairline",
  "Title": "Clean, Predictable Figures for Medical and Data Science",
  "Version": "0.2.1",
  "Authors@R": "person(\"Nikolas\", \"Schrader\", email = \"hi@nikolasschrader.com\",\nrole = c(\"aut\", \"cre\", \"cph\"), comment = c(ORCID = \"0009-0001-4616-3804\"))",
  "Description": "A design system for 'ggplot2' figures: one frame for\ntitles, legends, panels and captions, a fixed spacing and type\nscale, colour-vision checked palettes, brand files in the\n'brand.yml' format, and print-ready export. Produces output\nmatching the 'hairline' Python package.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/schradern/hairline",
  "BugReports": "https://github.com/schradern/hairline/issues",
  "Copyright": "The bundled 'Hairline Sans' font is a modified Public Sans,\nCopyright 2015 The Public Sans Project Authors, under the SIL\nOpen Font License 1.1; see inst/COPYRIGHTS.",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.1.1",
  "Config/pak/sysreqs": "libfontconfig1-dev libfreetype6-dev libfribidi-dev\nlibharfbuzz-dev libicu-dev libjpeg-dev libpng-dev libtiff-dev\nlibwebp-dev",
  "Repository": "https://schradern.r-universe.dev",
  "Date/Publication": "2026-10-22 19:23:49 UTC",
  "RemoteUrl": "https://github.com/schradern/hairline",
  "RemoteRef": "HEAD",
  "RemoteSha": "4f8b16470bea78c26171ab4e30d61037a8f75560",
  "RemoteSubdir": "r",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-29 12:00:38 UTC",
    "User": "root"
  },
  "Author": "Nikolas Schrader [aut, cre, cph] (ORCID:\n<https://orcid.org/0009-0001-4616-3804>)",
  "Maintainer": "Nikolas Schrader <hi@nikolasschrader.com>",
  "_user": "schradern",
  "_type": "src",
  "_file": "hairline_0.2.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/f5196dcf9dcab6ba4a581a5b61dc95076fdbcfed13ffc93dd43af4851d72bff0",
  "_filesize": 920558,
  "_sha256": "f5196dcf9dcab6ba4a581a5b61dc95076fdbcfed13ffc93dd43af4851d72bff0",
  "_expires": "2027-02-06T12:49:34.000Z",
  "_created": "2026-10-29T12:00:38.000Z",
  "_published": "2026-10-29T12:49:36.348Z",
  "_upstream": "https://github.com/schradern/hairline",
  "_status": "success",
  "_maintainer": {
    "name": "Nikolas Schrader",
    "email": "hi@nikolasschrader.com",
    "login": "schradern",
    "description": "",
    "uuid": 204494220,
    "orcid": "0009-0001-4616-3804"
  },
  "_jobs": [
    {
      "job": 123433803987,
      "time": 293,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12896315577"
    },
    {
      "job": 123433803927,
      "time": 221,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12895702069"
    },
    {
      "job": 123433803963,
      "time": 355,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12897429370"
    },
    {
      "job": 123433804010,
      "time": 271,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12897694107"
    },
    {
      "job": 123431207832,
      "time": 352,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12895686472"
    },
    {
      "job": 123433804066,
      "time": 115,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12895003739"
    },
    {
      "job": 123433804074,
      "time": 266,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12896205442"
    },
    {
      "job": 123433804193,
      "time": 273,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12896285310"
    },
    {
      "job": 123433804242,
      "time": 344,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12895552820"
    }
  ],
  "_buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197",
  "_commit": {
    "id": "4f8b16470bea78c26171ab4e30d61037a8f75560",
    "author": "Nikolas Schrader <hi@nikolasschrader.com>",
    "committer": "Nikolas Schrader <hi@nikolasschrader.com>",
    "message": "test: name the host app Paperings in a docstring\n",
    "time": 1792697029
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.3",
      "role": "Depends"
    },
    {
      "package": "S7",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 4.0.0",
      "role": "Imports"
    },
    {
      "package": "grid",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "ragg",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "systemfonts",
      "version": ">= 1.1.0",
      "role": "Imports"
    },
    {
      "package": "textshaping",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "cowplot",
      "role": "Suggests"
    },
    {
      "package": "metafor",
      "role": "Suggests"
    },
    {
      "package": "patchwork",
      "role": "Suggests"
    },
    {
      "package": "png",
      "role": "Suggests"
    },
    {
      "package": "rsvg",
      "role": "Suggests"
    },
    {
      "package": "survival",
      "role": "Suggests"
    },
    {
      "package": "svglite",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "schradern",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-42",
      "n": 61
    },
    {
      "week": "2026-43",
      "n": 21
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-10-18"
    },
    {
      "name": "v0.2.0",
      "date": "2026-10-22"
    },
    {
      "name": "v0.2.1",
      "date": "2026-10-22"
    }
  ],
  "_topics": [
    "data-visualization",
    "ggplot2",
    "matplotlib",
    "medical-research",
    "python",
    "scientific-figures"
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "schradern",
      "count": 83,
      "uuid": 204494220
    }
  ],
  "_userbio": {
    "uuid": 204494220,
    "type": "user",
    "name": "Nikolas B. Schrader",
    "followers": 1
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/hairline"
  },
  "_devurl": "https://github.com/schradern/hairline",
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/hairline.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/schradern/hairline",
  "_realowner": "schradern",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-10-28"
    }
  ],
  "_exports": [
    "hl_arcs",
    "hl_bars",
    "hl_brand_report",
    "hl_check_palette",
    "hl_chord",
    "hl_color",
    "hl_colors",
    "hl_compare",
    "hl_correlation",
    "hl_describe",
    "hl_distribution",
    "hl_donut",
    "hl_dotplot",
    "hl_effects",
    "hl_find_brand",
    "hl_forest",
    "hl_format_interval",
    "hl_format_number",
    "hl_format_percent",
    "hl_funnel",
    "hl_highlight",
    "hl_install_font",
    "hl_kaplan_meier",
    "hl_layout_report",
    "hl_legend",
    "hl_load_brand",
    "hl_over_time",
    "hl_palette",
    "hl_palettes",
    "hl_panel_header",
    "hl_partition",
    "hl_prisma",
    "hl_raincloud",
    "hl_ramp",
    "hl_reference",
    "hl_ridgeline",
    "hl_risk_of_bias",
    "hl_sankey",
    "hl_save",
    "hl_scatter",
    "hl_settings",
    "hl_spread",
    "hl_study",
    "hl_survival",
    "hl_swatches",
    "hl_timeseries",
    "hl_use",
    "hl_venn",
    "scale_colour_hairline",
    "scale_colour_hairline_c",
    "scale_fill_hairline",
    "scale_fill_hairline_c",
    "scale_x_hairline",
    "scale_y_hairline",
    "theme_hairline"
  ],
  "_help": [
    {
      "page": "hairline_colours",
      "title": "Colours in hairline",
      "topics": [
        "hairline_colors",
        "hairline_colours"
      ]
    },
    {
      "page": "hl_arcs",
      "title": "Arc diagram",
      "topics": [
        "hl_arcs"
      ]
    },
    {
      "page": "hl_bars",
      "title": "Bar chart",
      "topics": [
        "hl_bars"
      ]
    },
    {
      "page": "hl_brand_report",
      "title": "Brand report",
      "topics": [
        "hl_brand_report"
      ]
    },
    {
      "page": "hl_check_palette",
      "title": "Check a palette for readability",
      "topics": [
        "hl_check_palette"
      ]
    },
    {
      "page": "hl_chord",
      "title": "Chord diagram",
      "topics": [
        "hl_chord"
      ]
    },
    {
      "page": "hl_color",
      "title": "Entity colours",
      "topics": [
        "hl_color",
        "hl_colors"
      ]
    },
    {
      "page": "hl_compare",
      "title": "Compare one variable between groups",
      "topics": [
        "hl_compare"
      ]
    },
    {
      "page": "hl_correlation",
      "title": "Correlation heatmap",
      "topics": [
        "hl_correlation"
      ]
    },
    {
      "page": "hl_describe",
      "title": "Table 1: the cohort by group",
      "topics": [
        "hl_describe"
      ]
    },
    {
      "page": "hl_distribution",
      "title": "Distribution of one numeric variable by group",
      "topics": [
        "hl_distribution"
      ]
    },
    {
      "page": "hl_donut",
      "title": "Donut and nested donut",
      "topics": [
        "hl_donut"
      ]
    },
    {
      "page": "hl_dotplot",
      "title": "Dot plot with intervals",
      "topics": [
        "hl_dotplot"
      ]
    },
    {
      "page": "hl_effects",
      "title": "Effects with 95 % intervals",
      "topics": [
        "hl_effects"
      ]
    },
    {
      "page": "hl_find_brand",
      "title": "Find a brand file",
      "topics": [
        "hl_find_brand"
      ]
    },
    {
      "page": "hl_forest",
      "title": "Forest plot",
      "topics": [
        "hl_forest"
      ]
    },
    {
      "page": "hl_format_number",
      "title": "Format numbers, percentages and intervals",
      "topics": [
        "hl_format_interval",
        "hl_format_number",
        "hl_format_percent"
      ]
    },
    {
      "page": "hl_funnel",
      "title": "Funnel plot",
      "topics": [
        "hl_funnel"
      ]
    },
    {
      "page": "hl_highlight",
      "title": "Highlight series or panels",
      "topics": [
        "hl_highlight"
      ]
    },
    {
      "page": "hl_install_font",
      "title": "Install the bundled font for PDF output",
      "topics": [
        "hl_install_font"
      ]
    },
    {
      "page": "hl_kaplan_meier",
      "title": "Kaplan–Meier curves",
      "topics": [
        "hl_kaplan_meier"
      ]
    },
    {
      "page": "hl_layout_report",
      "title": "Frame positions of a hairline plot",
      "topics": [
        "hl_layout_report"
      ]
    },
    {
      "page": "hl_legend",
      "title": "Explicit legend items",
      "topics": [
        "hl_legend"
      ]
    },
    {
      "page": "hl_load_brand",
      "title": "Read a brand file",
      "topics": [
        "hl_load_brand"
      ]
    },
    {
      "page": "hl_over_time",
      "title": "One measure over time by group",
      "topics": [
        "hl_over_time"
      ]
    },
    {
      "page": "hl_palette",
      "title": "Palette colours in slot order",
      "topics": [
        "hl_palette"
      ]
    },
    {
      "page": "hl_palettes",
      "title": "Every colour set, with its use",
      "topics": [
        "hl_palettes"
      ]
    },
    {
      "page": "hl_panel_header",
      "title": "Panel header with key numbers",
      "topics": [
        "hl_panel_header"
      ]
    },
    {
      "page": "hl_partition",
      "title": "Partition bars",
      "topics": [
        "hl_partition"
      ]
    },
    {
      "page": "hl_prisma",
      "title": "PRISMA 2020 flow diagram",
      "topics": [
        "hl_prisma"
      ]
    },
    {
      "page": "hl_raincloud",
      "title": "Raincloud plot",
      "topics": [
        "hl_raincloud"
      ]
    },
    {
      "page": "hl_ramp",
      "title": "Sequential or diverging ramp",
      "topics": [
        "hl_ramp"
      ]
    },
    {
      "page": "hl_reference",
      "title": "Reference line with a label",
      "topics": [
        "hl_reference"
      ]
    },
    {
      "page": "hl_ridgeline",
      "title": "Ridgeline plot",
      "topics": [
        "hl_ridgeline"
      ]
    },
    {
      "page": "hl_risk_of_bias",
      "title": "Risk-of-bias summary",
      "topics": [
        "hl_risk_of_bias"
      ]
    },
    {
      "page": "hl_sankey",
      "title": "Sankey diagram",
      "topics": [
        "hl_sankey"
      ]
    },
    {
      "page": "hl_save",
      "title": "Save print-ready files",
      "topics": [
        "hl_save"
      ]
    },
    {
      "page": "hl_scatter",
      "title": "Scatter plot with fit",
      "topics": [
        "hl_scatter"
      ]
    },
    {
      "page": "hl_settings",
      "title": "Active hairline settings",
      "topics": [
        "hl_settings"
      ]
    },
    {
      "page": "hl_spread",
      "title": "Spread rows: distributions per group on one axis",
      "topics": [
        "hl_spread"
      ]
    },
    {
      "page": "hl_study",
      "title": "Describe a dataset once for the study endpoints",
      "topics": [
        "hl_study"
      ]
    },
    {
      "page": "hl_survival",
      "title": "Survival by group",
      "topics": [
        "hl_survival"
      ]
    },
    {
      "page": "hl_swatches",
      "title": "Colour sets as swatches",
      "topics": [
        "hl_swatches"
      ]
    },
    {
      "page": "hl_timeseries",
      "title": "Small-multiple time series with two levels of detail",
      "topics": [
        "hl_timeseries"
      ]
    },
    {
      "page": "hl_use",
      "title": "Set hairline's style for this session",
      "topics": [
        "hl_use"
      ]
    },
    {
      "page": "hl_venn",
      "title": "Venn diagram",
      "topics": [
        "hl_venn"
      ]
    },
    {
      "page": "scale_colour_hairline",
      "title": "Colour and fill scales from hairline palettes and ramps",
      "topics": [
        "scale_colour_hairline",
        "scale_colour_hairline_c",
        "scale_fill_hairline",
        "scale_fill_hairline_c"
      ]
    },
    {
      "page": "scale_y_hairline",
      "title": "Position scales with nice breaks",
      "topics": [
        "scale_x_hairline",
        "scale_y_hairline"
      ]
    },
    {
      "page": "theme_hairline",
      "title": "hairline theme and frame",
      "topics": [
        "theme_hairline"
      ]
    }
  ],
  "_readme": "https://github.com/schradern/hairline/raw/HEAD/r/README.md",
  "_rundeps": [
    "base64enc",
    "cli",
    "cpp11",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "jsonlite",
    "labeling",
    "lifecycle",
    "R6",
    "ragg",
    "RColorBrewer",
    "rlang",
    "S7",
    "scales",
    "stringi",
    "systemfonts",
    "textshaping",
    "vctrs",
    "viridisLite",
    "withr",
    "yaml"
  ],
  "_score": 3,
  "_indexed": true,
  "_nocasepkg": "hairline",
  "_universes": [
    "schradern"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.1",
      "date": "2026-10-29T12:02:59.000Z",
      "distro": "resolute",
      "commit": "4f8b16470bea78c26171ab4e30d61037a8f75560",
      "fileid": "https://r2.ropensci.org/426e71c6a34757308e103cfe516266429857771f594cc60c132ca8b9da55e691",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.1",
      "date": "2026-10-29T12:02:55.000Z",
      "distro": "resolute",
      "commit": "4f8b16470bea78c26171ab4e30d61037a8f75560",
      "fileid": "https://r2.ropensci.org/75cda4c16f7eaa33c583b8c0c433bfed568d4d4e76bd146958c1438f6bd0840d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.1",
      "date": "2026-10-29T12:45:58.000Z",
      "commit": "4f8b16470bea78c26171ab4e30d61037a8f75560",
      "fileid": "https://r2.ropensci.org/942f9383f8d3232ea84ab461e001cb3b5f5df2425eadd16cba2ddee6f9f57142",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.1",
      "date": "2026-10-29T12:44:47.000Z",
      "commit": "4f8b16470bea78c26171ab4e30d61037a8f75560",
      "fileid": "https://r2.ropensci.org/21cad19416811405c12b3f155654fa8c117199bb34241f354d2445ecb0076e5a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.1",
      "date": "2026-10-29T12:02:56.000Z",
      "commit": "4f8b16470bea78c26171ab4e30d61037a8f75560",
      "fileid": "https://r2.ropensci.org/165a9a6c01187b5016121d8273bdab54403a4173e7f0b4f559e5d31c2439d864",
      "status": "success",
      "buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.1",
      "date": "2026-10-29T12:01:50.000Z",
      "commit": "4f8b16470bea78c26171ab4e30d61037a8f75560",
      "fileid": "https://r2.ropensci.org/59f26ce0e38da55cd32c9b0149faf2aa852086e2b7513eddecd721a51f22e334",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.1",
      "date": "2026-10-29T12:02:03.000Z",
      "commit": "4f8b16470bea78c26171ab4e30d61037a8f75560",
      "fileid": "https://r2.ropensci.org/4f834fba6a6fab13909f367796e4b0baefa3161f417a1be31b4698b7930f9ff8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.1",
      "date": "2026-10-29T12:03:07.000Z",
      "commit": "4f8b16470bea78c26171ab4e30d61037a8f75560",
      "fileid": "https://r2.ropensci.org/a78612fc880128c03aa54a9685ee0aa7755271cdd12bfb57b4584a720faf957b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/schradern/actions/runs/40869047197"
    }
  ]
}