Changelog

What changed, and when.

Every released version of the atelier extension, and what each one changed.

0

0.11

0.11.0 (2026-10-29)

Breaking Changes
  • Atelier needs Quarto 1.9.38 or later, the highest version its embedded extensions need. (#63)
  • If your project has its own copy of iconify, gitlink, code-window, toc-depth or collapse-output, remove it and its filters entry. Otherwise both copies run. (#63)
New Features
  • feat: Style blockquotes with an inset bar, a decorative opening quote that screen readers skip, and a quieter attribution for footer, cite and .attribution. (#61)
  • feat: Set section numbers smaller, in tabular numerals and in the primary colour. Listing and appendix headings keep the default look. (#61)
  • feat: Include the iconify, gitlink, code-window, toc-depth and collapse-output extensions, so installing Atelier is enough for a documentation website. gitlink shows only its repository widget, and Code Window frames only blocks with a filename. (#63)
  • feat: Draw a Code Window with the border, corner radius and spacing of a plain code block, in both colour schemes. (#63)
  • feat: Add opt-in classes for a landing page: a hero, feature rows with an optional numbered legend, and a card grid whose cards are links. Modifiers change the layout, and add a title gradient and a figure glow from the primary colour. (#65)
Bug Fixes
  • fix: Keep aria-expanded off the click area of the narrow-screen bar and the backdrop of the open sidebar, which have no role to carry it. (#74)
  • fix: Derive the small and large corner radii from $border-radius, so a brand that sets only the base radius keeps the three in proportion. (#73)
  • fix: Remove the copy button of a .visually-hidden code block, which covered the text below when it had focus. (#73)
  • fix: Leave Ctrl, Alt and Meta shortcuts alone on a listing category, and filter once when Enter or Space is held down. (#72)
  • fix: Give a link in a callout title the colour of the title and an underline, so it keeps a 4.5:1 contrast ratio on the tinted title band. (#71)
  • fix: Make the skip link the first Tab stop on Quarto before 1.11.2, ahead of the navbar, the sidebar and the floating colour scheme toggle. (#70)
  • fix: Update the embedded gitlink to 1.12.0, so a site with no repository no longer gets a gitlink warning on every page. (#68)
  • fix: Print a filled button, such as .btn-primary, with a readable label and a border, because browsers print without background colours. (#65)
  • fix: Show one focus ring on every control, including form fields, search, sidebar toggles, navigation tools, the copy button, the colour scheme toggle and pagination, and use the system highlight colour in forced colours mode. (#62)
  • fix: Keep a focused control clear of the fixed navbar, including the secondary bar on narrow screens. (#62)
  • fix: Cut every animation and transition to a blink, and stop smooth scrolling, when the reader prefers reduced motion. (#62)
  • fix: Put the back-to-top button in the Tab order and show it while it has focus, so keyboard users can reach it and press it with Enter or Space. (#58)
  • fix: Announce navbar menus as buttons rather than links, and drop the invalid menu role from the collapsed navbar button. (#58)
  • fix: Hide navigation icons that sit beside text from screen readers, and name icon-only tools from their icon. (#58)
  • fix: Make the search overlay a modal dialog. Tab stays inside it, the result count is announced, the highlighted result follows focus, and closing it puts focus back on the search button. (#58)
  • fix: Size the colour scheme toggle in the sidebar tools like the icons beside it. (#58)
  • fix: Move the floating colour scheme toggle to the start of the focus order, next to where it is drawn. (#58)
  • fix: Show one skip link with Quarto 1.11.2 or later, which adds its own. (#58)
  • fix: Underline links in table listings again. Quarto removes the underline, so colour alone marked links in running text. (#52)
  • fix: Make listing categories reachable with Tab and usable with Enter or Space. Quarto renders them as plain div elements. (#52)
  • fix: Give the author email link in the title block an accessible name, taken from the address. (#53)
  • fix: Keep the text of title block category badges at full strength, so it passes the contrast check. (#53)
  • fix: Fade h3 to h6 headings by their colour rather than their opacity, so links inside them keep their contrast. (#53)
  • fix: Hide the title block metadata container when the page has no metadata. (#53)
  • fix: Name each footnote back-link for screen readers and give it a 24 pixel target. The name is in English, because Quarto offers no translated string for it. (#54)
  • fix: Draw the appendix at full opacity, so its back-links and licence link keep a 4.5:1 contrast ratio. (#54)
  • fix: Apply the theme corner radius in website projects, where Quarto reset it to 0.25rem. A project theme that sets $border-radius or $border-radius-sm still wins. (#55)
  • fix: Remove the lightbox link of an image made for the other colour scheme from the tab order. (#55)
  • fix: Make the header of a collapsible callout a button that exposes whether it is open, and keep a link in the title working. (#55)
  • fix: Separate the callout type from the title for screen readers, so “Note Title” no longer reads as one word. (#55)
  • fix: Paint Mermaid subgraphs from the page surface, so they are no longer dark grey on a light page and white on a dark one. (#55)
  • fix: Default to the arrow-light and arrow-dark highlighting themes, with every token colour at 4.5:1 or more on the default code surface. Many github-light tokens failed that ratio. (#56)
  • fix: Put highlighted inline code on the code block surface, so its token colours stay readable in dark mode and in a link. (#56)
  • fix: Keep a .visually-hidden code block hidden. It no longer shows a thin frame or a copy button, or leaves a scrollable box that the keyboard cannot reach. (#56)
  • fix: Keep the highlight of a selected code annotation inside the code block, level with the gutter highlight. (#56)
  • fix: Mark the current page in the sidebar for screen readers, as the navbar already does. (#57)
  • fix: Show the current page by more than its colour. It is bold in every sidebar style, and underlined in the navbar of a page without a sidebar. (#57)
  • fix: Make sidebar section toggles 24 by 24 px, and space the sidebar links so that each one meets the 24 px target size. (#57)
  • fix: Let keyboard users open the “On this page” and sidebar toggles that replace a side column when wide content overlaps it. The toggles now say whether they are open, and their hidden links leave the tab order. (#57)
  • fix: Stop announcing the bar above the page on narrow screens as a navigation landmark, because its links are in the breadcrumbs. (#57)
  • fix: Name the sidebar and page navigation landmarks, so that each landmark has its own name on Quarto 1.11.3 and earlier. (#57)
  • fix: Let keyboard users open and close sidebar sections on Quarto 1.11.1 and earlier. (#57)
  • fix: Start the names of the previous and next page links with “Previous” or “Next”, so that screen readers say which way each link goes. (#57)
  • fix: Start the page outline with the page title, rather than with the “On this page” heading of a side table of contents. (#57)

0.10

0.10.7 (2026-10-15)

  • fix: Keep the current item of a navbar or sidebar dropdown readable. It now takes the hover colours, rather than mixing Bootstrap’s active fill with the menu text colour. (#49)
  • fix: Give the search field its localised “Search” name for screen readers in every search layout. Quarto names it “Submit” in a text box and gives it no name in the overlay. (#48)

0.10.6 (2026-10-11)

  • fix: Theme Code Window through its --code-window-bg and --code-window-title-bg variables, so its title bar stays distinct in dark mode and a collapsible window’s filename stays readable. This needs Code Window 1.6.0 or later. (#43)
  • fix: Always inset code inside its frame so it stands apart from prose, and show code blocks as outlines when code-block-bg is false. A filename title bar no longer picks up that frame. (#44)
  • fix: Blend the code annotation gutter into the code surface, so annotated code no longer shows a light strip down its edge. (#44)
  • fix: Keep the copy button clear of the annotation markers on annotated code. (#44)
  • fix: Space code at the start or end of a callout like text, and keep its copy button inside the frame. (#45)
  • fix: Hold inline code, the navbar and sidebar accent, and footer text to a 4.5:1 contrast ratio on the surface each one sits on. (#46)
  • fix: Fade callout titles by colour rather than opacity, so code in a title keeps its contrast, and give a callout with no type a light title band. (#46)
  • fix: Derive muted text, such as the previous and next page links, from the page colours at a 4.5:1 contrast ratio or more. Set $atelier-text-muted to change it. (#46)

0.10.5 (2026-09-23)

Documentation
  • docs: Serve the extension’s social card as the Open Graph image, so a shared link shows the card rather than the first image on the page. (#38)
Refactoring
  • build: Update the vendored Lua modules to 2.5.0. The three modules this project type uses changed only by dropping the version line from their headers, so their checksums moved and their behaviour did not. (#39, #40)

0.10.4 (2026-09-06)

Refactoring
  • build: Declare the vendored Lua modules in _extensions/atelier/_dependencies.yml and move them to _extensions/atelier/_vendor/. Each module names the release it came from, so it can be checked against that release. (#33)

0.10.3 (2026-08-26)

  • fix: Paint the close button of a modal, an offcanvas, a toast, and a dismissible alert from the text colour around it, so it stays readable in both colour schemes. (#31)

0.10.2 (2026-08-01)

  • fix: keep the gitlink widget’s menu inside the sidebar, so a docked sidebar carrying it no longer has a permanent horizontal scrollbar. Quarto gives the column overflow-y: auto and leaves overflow-x at visible, which computes to auto, so anything wider scrolls it sideways rather than being clipped; the menu is anchored to its trigger’s left edge and sized to its content, and the theme centres the tools row, so it ran past the right edge. It raised the scrollbar even while shut, because it is hidden with visibility and so still takes part in layout. It is now anchored to the tools row, which spans the column.
Documentation
  • docs: Move the website into docs/, matching the layout every other extension in the family now uses, so the release workflow detects it and the Pages workflow deploys it from the release tag.
  • docs: Generate a changelog page from CHANGELOG.md, through the shared pre-render and post-render scripts.
  • docs: Build the site from the copy of the extension synced from the repository root, so it is rendered by the version being released.
  • docs: Trim README.md to a landing page pointing at the website.
  • docs: Add the Pages workflow and the Quarto Extensions Updates workflow.
  • docs: Serve the site in the book-like layout the rest of the family uses: no navbar, with the docked sidebar carrying the navigation, the search, and the repository widget, and a three-part footer. --profile navbar renders the same pages with the navbar the project type ships by default.
  • docs: Rename example.qmd to examples.qmd and reference/index.qmd to reference.qmd, so the pages are named as they are everywhere else.
  • docs: Pin the installs the site offers to the release tag it is built from, and offer them from the editor through Quarto Wizard.

0.10.1 (2026-08-01)

  • fix: frame an .embed-art card at the dimensions of what it holds rather than at a fixed shape. An <img> is framed at its own dimensions and an <embed> at the width and height given on the image, so the padding stays the same on all four sides; anything that did not match the old fixed 1.5 was letterboxed inside it, which read as a band of padding down one axis and none on the other. --atelier-embed-art-width and --atelier-embed-art-ratio now apply only to an <embed> given no size of its own, which is the one case with nothing to follow.

0.10.0 (2026-08-01)

New Features
  • feat: .embed-art, a utility class that frames an embedded document or an image as a tilted, centred card. The class goes on the image itself, so no wrapper div is needed. --atelier-embed-art-width, --atelier-embed-art-ratio, and --atelier-embed-art-tilt resize or straighten it, and the card holds its resting angle under prefers-reduced-motion: reduce.

  • fix: cancel the tabset link colour transition under prefers-reduced-motion: reduce. It was the one motion the theme introduced that the guard did not cover.

0.9

0.9.0 (2026-07-31)

Breaking Changes
  • The navbar, the page footer, and the sidebar now follow the colour scheme by default rather than staying dark in both. Set $atelier-chrome: dark; in the defaults block of a project stylesheet to keep the previous appearance.
  • website.navbar.background, website.navbar.foreground, website.page-footer.background, and website.page-footer.foreground no longer have any effect: the chrome palette sets $navbar-bg, $navbar-fg, $footer-bg, and $footer-fg from a layer Quarto evaluates first. The project type no longer sets them either.
New Features
  • feat: $atelier-chrome, taking auto, light, or dark, which decides whether the chrome follows the colour scheme or is pinned to one palette in both. The three bars are drawn from one triple, $atelier-chrome-bg, $atelier-chrome-fg, and $atelier-chrome-accent, each of which can be set on its own; the two pinned palettes are $atelier-chrome-dark-* and $atelier-chrome-light-*. An unknown value fails the render with a named error rather than compiling to something arbitrary.

  • feat: hand the resolved palette to Quarto’s own $navbar-*, $sidebar-*, and $footer-* variables from a defaults layer evaluated after _brand.yml. This is what puts the colours Quarto bakes into its own markup, which CSS cannot reach afterwards, on the same palette as everything else, and it retires most of the !important repainting the theme carried.

  • feat: --atelier-navbar-control-border and --atelier-sidebar-control-border, the boundary of a boxed control, at 55% of the chrome foreground. The existing border tokens stay the hairline between two surfaces, which is what the sidebar edge, the section dividers, and the navbar and footer edges want.

  • feat: --atelier-navbar-control-size, --atelier-navbar-control-icon-size, --atelier-navbar-search-icon-size, and --atelier-navbar-control-gap, the one box the navbar-right controls are drawn in. The defaults are the numbers the gitlink widget uses, so the bar reads the same whether or not that extension is installed.

  • feat: fall back per scheme to the brand background for extensions.atelier.theme-color, so a site with a _brand.yml gets both <meta name="theme-color"> tags without restating colours it has already declared. The value is the one Quarto compiles into $body-bg for that bundle, which is the colour the page is painted with; an explicit theme-color still wins, scheme by scheme, and a site with neither still emits nothing.

  • fix: ink the reader-mode toggle from the chrome foreground. Quarto bakes $sidebar-fg into the glyph’s SVG markup, which on the sidebar was the page ink and could match the column it sat on.

  • fix: run the chrome foreground and accent through Quarto’s theme-contrast() at the AA level, which lifts either only when it falls under 4.5:1 against the bar. A brand primary picked against the page can fall under the ratio on a tint of that page.

  • fix: draw the sidebar search field and the gitlink widget pill from the new control-border tokens. Both took the hairline token, which against the bars is around 1.5:1 and reads as no border at all, where WCAG 1.4.11 asks 3:1 of a user-interface component; 55% clears it on a light bar as well as a dark one.

  • fix: size the navbar search button, the colour-scheme toggle, and the navbar tools from one control box, so the bar carries one set of controls rather than three. Quarto draws the search as a 40px button with a 26px glyph, leaves the toggle an inline link with no height of its own, and gives a tool icon the link font size. The search’s margin-left: auto is replaced by the control gap at every width, which also retires the collapsed-navbar rule that did the same for small screens alone. The magnifier itself sat in a block wrapper whose height was a line box rather than the icon, which left uneven space above and below it and dropped the glyph off the button’s centre, and it draws in 20 units of a 24-unit viewBox, so at the shared icon size it painted a sixth shorter than the colour-scheme glyph beside it.

  • fix: give the sidebar tools their own line, below the title and above the search field, following sidebar.align. Quarto renders them inside the sidebar title whenever a titled sidebar has no navbar, as an inline row pulled up six pixels, which left the colour-scheme toggle trailing the title text. The rule forces nothing the gitlink extension sets, so a sidebar tool widget keeps its column layout and its ordering between the icon tools and the search.

Documentation
  • docs: document the chrome as one palette across the three bars: the $atelier-chrome modes, the pinned palettes, the resolved triple, and when to reach for the Sass variables rather than the custom properties.
  • docs: add a sidebar Quarto profile to the demo site, rendering it with navbar: false and a pinned, docked sidebar carrying the navigation and a location: sidebar, type: textbox search, which is the book-like layout the README describes. Run it with quarto preview --profile sidebar.

0.8

0.8.0 (2026-07-31)

New Features
  • feat: dark-pinned docked sidebar, so a book-like website.sidebar with style: docked joins the navbar and the footer as one chrome in both colour schemes. Quarto derives that surface from the page instead, which alongside a navbar leaves the column following the body, and without one falls back to Bootstrap’s $light, painting a near-white column beside a dark page.

  • feat: --atelier-sidebar-* custom properties, each defaulting to its --atelier-navbar-* counterpart, driving the whole column: item ink, active item pill, section dividers, collapse chevrons, group labels, header and logo link, sidebar tools and their dropdown menus, sidebar search, the mobile bar carrying the sidebar toggle and the breadcrumbs, the sidebar edge, the sidebar scrollbar, and the focus ring. A style: floating sidebar keeps Quarto’s page-coloured treatment, since it has no surface of its own.

  • fix: colour sidebar links, hover, and the active item from the sidebar accent instead of $primary, which with the default tokens was 3.2:1 against the dark column in the light scheme. The focus ring inside the sidebar takes the accent for the same reason.

  • fix: ink the sidebar search field, caret, placeholder, and magnifier, and the overlay search button beside them. Quarto colours the field from $body-color and the button only inside .sidebar-tools-*, either of which can match the surface it sits on.

  • fix: paint the mobile secondary navigation bar, which Quarto paints with the sidebar surface this theme replaces.

  • fix: draw the sidebar’s right edge and the footer’s top edge from the border tokens, so all three bars carry the same hairline. Quarto draws both from its baked #dee2e6, the sidebar with !important since sidebar.border defaults to true when docked, and the footer through a body-prefixed rule that outranked the previous selector.

Documentation
  • docs: document the sidebar tokens, the book-like sidebar configuration, that website.sidebar.background and foreground have no effect on a docked sidebar, and that a project setting navbar: false renders no search until the sidebar asks for it.

0.7

0.7.1 (2026-07-27)

  • fix: keep a small gap between the colour-scheme toggle and the search button once they are grouped at the right edge of the collapsed navbar. Cancelling Quarto’s automatic margin also removed every space between the two controls.

0.7.0 (2026-07-27)

  • fix: group the colour-scheme toggle with the search button at the right edge of the collapsed navbar and centre the brand. Quarto hands all the free space to the search button alone, which left the toggle stranded beside the brand and the search on its own at the far right.

0.6

0.6.0 (2026-07-26)

  • fix: build og:url from the page’s output file rather than from its input name, so a page setting output-file no longer advertises a URL that does not exist and that disagrees with its own canonical link.
  • fix: emit the canonical link through Quarto’s own canonical-url, now on by default, instead of from the bundled filter. canonical-url is a render key and never reaches a Lua filter, so a project that set it shipped two <link rel="canonical"> tags. Quarto builds the same directory URL for a directory index, so the tag itself is unchanged; set canonical-url: false on a page served from more than one URL, as the bundled 404 front matter now does.
Documentation
  • docs: add a reference page listing the website, format, and extensions.atelier options the project type contributes, which is also the demo site’s first page below the site root.
  • docs: correct the icon path note. Since 0.5.0 the filter writes each path exactly as configured and Quarto’s resource resolver applies the page offset.
  • docs: note that sitemap.xml lists a directory index as index.html while the canonical link uses the directory URL, that both serve the same page, and that the canonical is the stronger signal.

0.5

0.5.0 (2026-07-26)

  • fix: write the icon, Apple touch icon, and manifest href exactly as configured. Quarto’s website resource resolver already prefixes each page’s offset to the project root onto every link[href] it finds, so adding one in the filter doubled it and broke every icon on pages below the site root.
  • fix: point og:url and <link rel="canonical"> of a directory index at its directory rather than at index.html, since that is the URL the site serves and the one a scraper de-duplicates against.

0.4

0.4.0 (2026-07-26)

New Features
  • feat: bundled social-metadata filter emitting the head tags Quarto’s website machinery has no configuration for: og:type, a per-page og:url and <link rel="canonical">, and <meta name="description"> from the page’s description or subtitle (Quarto never populates the pandoc description-meta variable its own HTML template reads).
  • feat: extensions.atelier options for icon, apple-touch-icon, manifest, and a light and dark theme-color, each emitted only when set, with paths rewritten per page so they resolve under quarto preview and under a project-path prefix alike.
  • feat: og:locale set to en_GB to match the format’s lang: en-GB, and the Twitter card switched on as summary_large_image, which Quarto otherwise leaves off entirely.
Documentation
  • docs: document the social metadata and icon options, including the YAML anchor needed to reach website.site-url from a Lua filter, and the project.resources entries that get the icon and manifest files copied to the output directory.

0.3

0.3.0 (2026-07-26)

Documentation
  • docs: document that format options go under atelier-html, since declaring html replaces the format and silently drops the bundled scripts, lang, and the theme.
  • docs: document how to add a project stylesheet, including the body-mix() function and the $brand-* variables generated from _brand.yml.
  • docs: document which controls receive a tooltip, and that a navbar item with visible text is given an aria-label instead.

0.2

0.2.0 (2026-07-26)

  • fix: give icon-only navbar links a themed tooltip and an accessible name when the glyph is not an iconify-icon, such as an inline SVG or a CSS mask-image mark; the link previously kept the browser’s unstyled tooltip and gained no label.

0.1

0.1.0 (2026-07-24)

New Features
  • feat: atelier project type providing a portable, accessible documentation-website foundation (dark-pinned navbar with search, page footer, repo actions, Open Graph, page navigation, back-to-top, and llms-txt).
  • feat: dark-mode-correct code surfaces, tabset panels, and scrollbars derived from the brand palette through body-mix(), working around Quarto’s baked light greys and the never-set data-bs-theme selector (Quarto marks the scheme with body.quarto-dark and swaps the stylesheet bundle).
  • feat: accessibility scaffolding (keyboard-reachable skip link, visible focus outline, navbar tooltips, external-link treatment) and ordinal-date rendering via bundled scripts.
  • feat: dark-pinned navbar tokens exposed as --atelier-navbar-* custom properties so a project can override the neutral-slate defaults to match its palette.
  • feat: bridge the --atelier-navbar-* tokens onto the gitlink widget’s --gitlink-widget-* custom properties so the navbar widget matches the dark-pinned navbar out of the box (inert without the extension).
  • feat: sidebar, table-of-contents, and back-to-top styling; active links and the TOC border take the palette accent, and the back-to-top pill gains a body-mix() hairline.
  • feat: palette-accent code-copy button, legible on the tinted code surface in both schemes.
  • feat: heading letter-spacing exposed as --atelier-heading-letter-spacing.
  • feat: dark-pinned footer repainted from the navbar tokens, including link colours.
  • feat: scheme-stable announcement-banner colours pinned per alert type via --atelier-announcement-* custom properties.
  • feat: styled 404 page pattern; .atelier-404 ghost-numeral hero derived from body-mix(), demonstrated by the site’s own 404.qmd and documented in the README.
Back to top