grattan_richlegend(), an on-chart legend that places coloured labels at a chosen panel corner with a white background behind the text so it’s readable over gridlines. Inspired by ggdirectlabel::geom_richlegend(), in the no-border style of grattan_label().grattan_save_web(), a wrapper around grattan_save() that saves a PNG using the “slide” font (Avenir Next), without creating a PowerPoint or chart data."blog" chart type as an active, square (23.16cm x 23.16cm) format with a grey title bar, Grattan logo, subtitle, chart panel, and caption area. Assembly is handled by the new create_blog() function. type = "blog" is now included in type = "all" exports.create_fullslide() and create_blog(), rather than in grattan_save().create_fullslide() and create_blog() to render with a white background instead of a transparent one, as per the powerpoint formatting.grattan_save() now applies the slide font (Avenir Next) to non-fullslide chart types when font = "slide" is explicitly set.grattan_label_repel() border visibility caused by ggrepel switching from label.size to linewidth aesthetic for border control. Labels now explicitly set linewidth = 0 to suppress borders.grattan_write_ai_guide() function writes a style guide for AI coding assistants (Claude, Codex, Gemini) to your project directory.theme_grattan() now auto-detects horizontal/flipped charts and applies flipped = TRUE automatically. Detection triggers for coord_flip() and bar charts (discrete y + continuous x). A message is shown every 8 hours when auto-detection fires. Set flipped = TRUE explicitly to silence the message, or flipped = FALSE to opt out of auto-detection.check_chart_aspect_ratio() to check_chart().grattan_point_filled function signature for consistency with geom_point.export_latex_code for consistency with grattan_save_overleaf.save_chartdata function.grattan_save_overleaf function and associated utilities to identify and save charts to an Overleaf atlas.create_fullslide function to ensure .pdf outputs match Grattan’s current powerpoint template.grattan_scale functions to by default hide the zero label if the axis starts at zero.ragg for export of .png and .jpeg charts.grattan_save and grattan_save_pptx, including adding no_new_folder option to prevent creation of subfolders, setting cairo_pdf as the default device, and adding rich_subtitle option for preserving markdown formatting in PowerPoint exports. Powerpoint templates are also updated for consistency with internal Grattan templates.save_chartdata, including adding select_data option to remove extraneous columns from chartdata, and adding the round parameter to control decimal places in numeric data.grattan_fill_manual and grattan_fill_manual in favour of a different implementation of scale_fill_manual and scale_colour_manual
grDevices::colorRampPalette to make the lighter/darker permutationsgrattan_pal in favour of make_grattan_pal and make_grattan_pal_discrete
create_pptx_shell and create_slide_shell as officer now offers functionality to edit notes directlyhelvetica font choice as arial is now the standard font choicecheck_chart_aspect_ratio to help with checking charts are formatted correctlychart_types data frame is now exported, for contexts where it is useful to have information about the chart types in the grattantheme package.create_fullslide() and related functions.grattan_save_pptx(), including ‘blog’, ‘fullpage’, ‘normal’, ‘wholecolumn’.grattan_save_pptx() function - it would previously fail when title and/or subtitle was blank.grattan_label() reduced to 0.8grattan_save_pptx() saves a ggplot2 plot, or a list of plots, as a Powerpoint document with vector graphics and editable labels.grattan_save() gains an argument: save_pptx. When TRUE, it will use grattan_save_pptx() to also save your image as a Powerpoint document.make_slide() and make_presentation() have been deprecated.grattan_save(), save_data no longer automatically TRUE if type = "all"
create_fullslide() completely rewritten; now much more flexible + fasterwarn_labs argument to grattan_save() has been removedn up to 9