Resources

Quarto with brand.yml with Isabella Velásquez

video
Mar 12, 2025
56:29

image: thumbnail.jpg

Transcript#

This transcript was generated automatically and may contain errors.

All right, so we have started our recording and we are so excited to welcome Isabella today to talk about branding your Quarto projects with brand.yml.

If you aren't familiar with R-Ladies, R-Ladies is a worldwide organization that promotes gender diversity in the art community via meetups and mentorship in a safe and friendly environment. And gender diversity includes, but it's not limited to, cis, trans women, trans men, non-binary, genderqueer, agender, all are welcome and encouraged here.

We do have a code of conduct that you can find on our website rladies.org.coc and if there are any violations of that code of conduct, you can report back to reporting at rladies.org. We'd love to see more people get involved in R-Ladies Philly. You can learn about our meetups at our meetup page. You can join our Slack community, you can subscribe to our YouTube channel, and we'd love, love, love to have you volunteer as a speaker.

And so today we're so pleased to have Isabella. I will let you say a few words about yourself. Sure. Thank you so much. Thank you Shannon and all of R-Ladies Philly and everybody for joining. My name is Isabella Velásquez. I work at Posit PBC, formerly RStudio, as a senior product marketing manager. And I love my job because I get to talk about some really cool tools. I've been a very long time R user, a perpetual Python learner is what I like to say. And I'm really excited to share about something that has been in the works for a while and that hopefully that you find very useful.

So I'm going to stop sharing my screen. I'm going to let Isabella take the screen over. I'll be monitoring the chat for questions, and we're going to try to hold questions till the end.

Introduction to brand.yml

Well, thank you again to everybody so much for joining. Again, I'm really excited to talk about brand at YAML and using it to brand your Quarto documents. So I just gave myself a little bit of introduction. I'm very active on social media, so I would love to keep in touch. And I did want to note, you may notice that I'm using the default Quarto theme here, and that's on purpose. And we will come back to that later.

But first, I want to start with a true story. So Quarto is a scientific and technical publishing system, but it's not so new anymore. It was announced in July 28, 2022 at RStudioConf. And if you're here, I hope you have some familiarity with Quarto. So essentially, the idea of Quarto is to create documents that have executable code and text. And from them, you can create a variety of outputs, such as websites and presentations and books and more, all from that single source.

And the idea behind Quarto is that it's inherently multilingual and supports R and Python and Julia and Observable. And it's designed to handle other programming languages in the future. And another thing is that it aims to have a consistent syntax across tools. So if you are coming from an R Markdown background, you might be aware you have to install Bookdown. If you want to create a book, Schrodingen. If you want to create slides, Quarto is not like that. All of the outputs are built into Quarto. And what you have to do is change the format within your Quarto file itself, but you don't have to install anything additional.

So back to the story, Quarto was announced in July 2022. And not quite two months later, on September 19th, I get a message like this. So from a friend saying, hey, I'm trying to sell my Quarto reports to match our company's brand guide, but I have no idea what I'm doing with the CSS. And at the time, the only thing that I could think to respond is something like, I hear something is in the works.

But just thinking about it, like, why did this come up? In terms of thinking about Quarto, at least for me, the initial release, it was super exciting. Quarto, for me, it was super easy to use, coming from R Markdown. I loved how it looked. I loved playing around with it. But after a while, you start thinking about how to use it practically. And so when these questions come up, then you want to make sure that you have some sort of way of thinking about how you're actually going to apply it at your job.

The motivation behind brand.yml

And so I got to hear Garek Edombuyi, who's a developer on the Shiny team and one of the creators of brand.yaml, talk about the motivation behind brand.yaml. And I want to mention that Garek is an amazing speaker. His talks are super approachable and thoughtful and insightful. And he'll actually be talking about brand.yaml in April at ShinyConf. And ShinyConf is a free and virtual conference hosted by Appsilon. And so if you have the opportunity, I really encourage you to join and watch Garek's talk to hear about brand.yaml, both from the eyes of a developer, but also to hear about how it applies to Shiny, since this talk is going to be mostly about Quarto.

But back to the story, at PositConf 2024, Garek mentioned that David Keyes gave this talk about Quarto's default styles. And the defaults work well, but his company focuses on creating reports that are not just functional, but also more effective and more accessible by being visually pleasing.

And you may wonder, does this actually matter, being visually pleasing? And the answer is yes. David discusses the aesthetic usability effect, which is the idea that people perceive visually appealing designs as more intuitive and easier to use. So making things look better isn't just about style. It also ensures that your work is actually more effective in reaching your audience. So ultimately, it's in your best interest to make your things look nice.

It also ensures that your work is actually more effective in reaching your audience. So ultimately, it's in your best interest to make your things look nice.

Another example that Garek gave was at RStudio Conf 2019, Heather and Jacqueline Nolis gave a talk about prototyping a Shiny app that they presented to stakeholders to gain their buy-in. And their goal wasn't just to deliver information in the right format, like a web app, but also to present it in a way that stakeholders would find familiar and engaging. And they shared that they spent an extra day theming the app to match T-Mobile's brand style. So as you can see here, it's bright pink, the fonts are different, and things like that. And they concluded that this turned out to be a crucial step in securing the stakeholder approval. So really, theming the app made a difference.

And this really isn't a new idea. A lot of you have mentioned that your company do have, or your companies do have brand guidelines. And this is really why marketing teams invest time and resources into developing these brand guidelines. But it's not just for marketers. We, as developers, also need to consider it as essential to make our work more effective and engaging. So take data visualizations, for example. When you see a certain style, you might instantly recognize this as economists. And their style is so distinct and standardized that it even has its own ggplot2 theme.

Challenges of branding and what brand.yml solves

With that being said, branding can come with some challenges. So one challenge is excessive manual effort. So the idea of applying colors and fonts and logos across reports and apps and dashboards, this all takes time and is prone to errors. And especially if you're an R user, you might find yourself a bit overwhelmed with the number of options that you have to apply branding to your plots or your documents and your reports, et cetera.

Another thing is that brands can be difficult to update. So if you think about after you've applied all those colors and fonts and logos across reports and apps and dashboards, if something needs to be updated, it can be really hard to manage that across all your products consistently. And speaking of consistency, you want to make sure that all the contributors follow brand guidelines across everything that you're creating. And that can also be challenging to manage, depending on their familiarity and their tool sets and things like that.

So that's why when brand.yaml was released, it was so exciting. It provided another option for people looking to create beautifully themed documents with ease. So its tagline, brand.yaml's tagline, is unified branding with a simple YAML file. And the idea is straightforward. Every company has brand guidelines, or most companies have brand guidelines. And brand.yaml translates them into a YAML file that can style slides and websites and shiny apps and more. And this approach ensures that branding is consistent across different projects. And the goal is to structure a YAML file in a way that makes sense to both those referencing it for brand consistency and to developers using it to theme their work.

And so the way that it works is you take your brand guidelines and you translate them into structured YAML. We'll talk more about what YAML is in a little bit. So you create this one single structured YAML file that Quarto and Shiny can pick up. And so it ensures that you have consistent branding across your outputs. And the idea, speaking about what we mentioned earlier, is you don't have to use different systems to change the appearance of your documents. So will you need a CSS? Would you need to learn BSLib? Really the answer is maybe. The idea behind brand.yaml is to offer good enough theming. It might not perfectly match your company's guidelines, but it will get you very close.

And so to specify a brand, you create something called a brand.yaml file in the root directory of your Quarto project. And if you've created a Quarto project before, you know it comes bundled with an underscore Quarto.yaml file. So you put your brand.yaml file next to your Quarto.yaml file. And then Quarto will automatically detect the brand.yaml file and apply the branding to all supported document formats in the project. And then another advantage is that you can use brand.yaml in conjunction with other theming files, like if you need additional tweaking with CSS.

And in terms of where it works, if you're using it in Quarto, you need version 1.6 or above. So please make sure that you're running 1.6 or above. And if you're not, you can download it from the Quarto website or install it the way that you usually do with Quarto. And more specifically in Quarto, the formats that are available are HTML, Dashboard, RevealJS, HR Slides, and Typst, which are PDF files. You can also use brand.yaml in Shiny for Python version 1.2 and above. And very recently, BSLib version 0.9 was released. And with that, now brand.yaml also works with R Markdown and Shiny for R.

The five elements of brand.yml

And the brand.yaml elements. So here are the five elements that make up your brand.yaml. So there's meta, which is identifying information, the logo, which are your company or organization's logos, colors, which are the brand's color palette, typography, which are fonts, and then defaults, which are additional context-specific settings. And we're not going to talk too much about defaults today, but we will be focusing on the other four.

So you may notice I am saying brand.yaml and brand.yaml. And so brand.yaml is the name of the project. And brand.yaml, more specifically this underscore brand.yaml, is the file that you put in your Quarto project in order to apply the elements that we just spoke about, the meta, the logo, the color, the typography.

And so you might also be wondering, what is YAML? So YAML stands for Yet Another Markup Language, or YAML Ain't a Markup Language, depending on who you ask. And the idea is that it's a format that uses key value pairs to represent data in a human readable way. So if you've used Quarto before, you may have noticed you might have title as your key, and my title here is your value, or name as your key, and Isabella as your value. So that is the way that YAML is generally structured. And then your brand.yaml file is all made up of YAML.

And here is an example. Let's take a look at the file. So this would be in your project. And here we have meta as the key, and then underneath are all additional different keys with their associated value. Again, logo, color, and typography. And so you structure your YAML like this in a way that hopefully is easy for you to follow. But notice and note that everything in here is actually optional. You can add as much or as little as you need. So if you want a simple brand.yaml file or a more complex one, it's completely up to you.

So let's talk about metadata first, which is that information under the meta tag. So this would be the first thing that you include in your brand.yaml file, which is your key identity information, such as your company name, the links to your brand guidelines, and more. So under the meta section here, you'll find the name of the company and a link to their website. So this is very minimal. Quarto, however, doesn't do anything with the meta values. These are just for reference.

And you can also include a range of names or social media handles. So here we've expanded link to not just point to the home page, but we've specified we want a home link, which is the home page, and we also want a GitHub link, which is listed there. And you can continue from here. So you can really add whatever it is that you need as part of your metadata for your company.

Next up is logo. So here you use the logo field to specify your brand's logo, and you can do this at various sizes. You can provide a local file path relative to the location of brand.yaml file, or you can provide a URL, and the idea is that the system is very flexible to support different logo sizes, light, dark variants, and you can also store multiple image resources for various use cases.

So in this case, this is just pointing to a single logo.png, but let's say we have different varieties that we want to point to. Here we can have small, which defines the logo used for a small display context. For example, if you have a favicon or a mobile app icon or things like that. Medium specifies the logo for medium-sized display contexts, so things like website headers and navigation bars. And then finally, you can have a large attribute, which is the logo for a large display context, like slides and marketing materials.

And then from there, you can specify different logos for light and dark backgrounds by, you know, by giving the small, medium, and large attributes kind of a nesting attribute with light and dark child elements. So light would mean used for a light background or a light color mode, dark means used on a dark background or a dark color mode, and you can keep adding from here.

And so here is another example that you can just keep building out, but one thing to note is, say you define a header logo under your images up on line four, you can use that name to reference that logo in other places, such as in line nine. So you don't have to give it the file path again, you just give it the logo name. That you designated up above. Another thing is that you can also add alternative text for accessibility purposes. So, the alternative text would be directly associated with each of the images that you put up above.

Colors and typography

Okay, that's logos, and next up is colors, which I think is pretty fun. So, to define your brand's colors in your structured YAML, there's actually two parts, two sections to the color section. Here's the first one, which is palette, which is a set of name colors specific to your brand. And then there's a second part, which we'll talk about in a second, which are the theme colors, which assign your colors to various UI elements.

And so, here we're using the color field to set your brand's color palette. So, each color is mapped to a name, and you can load your colors, you know, if Quarto is able to read the name of it as a color, for example, red, white, black, you can do that. But more recommended is to use the hex code, and then you load your colors in with this hex code and map to their name. And you want to make sure you use these special names that are able to define your palette in a way that it's easy to reference the different colors.

And so, down below is the theme part where we map the brand colors to these specific UI elements. And so, for example, the foreground property is the main text color. In this case, it would be black. The background is white. Primary, so primary accent colors used for hyperlinks and so on. And so, there's, again, more documentation linked there. If you want to read up more about what all of these different things mean, I just put them in the comments for quick reference. But something else to note is that you can actually reuse these color names throughout your brand YAML file, like in the typography section.

So, this is what the full color section would look like. And so, note that colors that are defined in the palette, this 447099 for blue, can be referenced by name in the other parts of the color sections and in the typography section. So, you don't have to rewrite the hex color every single time.

And then another thing to note is if you don't want to do that, if you don't want to have the two different parts of the color section, you can also skip that part completely and then just pick your UI elements colors directly like so.

The next part I want to talk about is typography or fonts. And so, this lets you specify fonts and their styles and use the fonts field to list the fonts for your brand. And this can be simple, as you see here, or it can be much more detailed. So, you would specify the fonts that are used by your brand, and you can reference these fonts by the family in other places in your typography section. And then you can also define the style for these different fonts across your typography elements.

And just a note, you can use fonts from public sources like Google Fonts. You can list custom font files using a relative path or URL. But here, at its most minimum, you can directly set the font families for base text, headings, and monospaced text. However, do note that if you don't specify a source, Quarto is going to assume that you have these installed on your computer. So, in this case, that I have Open Sans, Roboto Slab, and Vera Code installed on my computer. If I don't, they're not going to work.

So, if you don't have the fonts on your computer, you can specify a source. And if you want to use fonts from Google Fonts or Bunny Fonts, you define the font sources underneath each source. So, here the key is source, the value is Google. And if you have never heard of Bunny before, I had not until this internal presentation on brand.yaml. And it's absolutely fascinating. So, it turns out that Google, when you load fonts from Google on a website, they may include tracking, which is not GDPR compliant. And so, and because of how it's set up, folks are not asked to give their consent through cookies and things like that. And they just open up a website, right? And it has Open Sans from Google and things like that. And the developers mentioned that they included this Bunny source because it's a GDPR compliant way of adding these fonts to your web products.

And it just really struck me of how thoughtful and deliberate they were in thinking about the different options and how people approach building data products. And I just thought it was, you know, just a really cool example of, you know, how well thought out and, you know, how deep they go into the research in designing these sorts of packages and tools.

So, here we have the source instead of Google, we have Bunny. And so, that way, they are GDPR compliant, but they look the nice way that we expect.

From here, you can really go further. So, we talked about sourcing from Google or Bunny or online sources, but you can also add local fonts. So, those that are not from the internet. And local fonts are specified using source file, and then you add the different files for the different types of font underneath. So, in this case, you have Open Sans, the regular type, and then also italic. And so, each one of these would represent a different weight and style. And so, you would list each of them under the file section and then provide the path attributes to wherever they live on your computer or whatnot. And then you can use them like you did the other fonts.

And from there, kind of similar to how we saw with colors, you have the fonts defined up above, and then you specify how the fonts are applied and styled. And so, base, in this case, is the font and appearance settings for the base body text. And this would be using Open Sans headings with Roboto Slab, Monospace, Sphere of Code, and so on.

And from there, just note, like, it doesn't have to just be the font that you defined. You can continue adding different attributes, different weights, different styles to be exactly what it is that you want your document to look like. So, in this case, the base font is Open Sans, but you can also define a line height and a size. And as mentioned earlier, you defined a primary color, which it was blue, and you can use primary as the color for your heading and just reference it using primary. You don't have to give it a hex code or anything like that.

And defaults, as mentioned, we're not going to talk too much about them, but these are additional context-specific settings beyond the basic brand colors and typography. So, for example, if you want to use options used by Bootstrap, in Quarto, or Shiny. So, I will point you to the documentation if you want to learn more.

Inspiration and live demo

And if you go to the brand YAML documentation, there's an inspiration page, which features examples of companies and their themes, and it's a really great resource and reference. It provides a brand.yaml file that you can download and play around with. And just note, the team would absolutely love to have your company's theme to the inspiration page. If you are so inclined, you can go ahead and put in a pull request. We would absolutely love to see it.

So, I wanted to try it out. And, you know, I was thinking, oh, I'm giving an R-Ladies talk. Maybe we can try it out with the R-Ladies brand. And so, the R-Ladies has a branding page on their organization guide. And so, I started playing around with it, and I wanted to show you how it would work live. So, it being a live demo, I do ask for your grace. You know how it goes. But maybe we can get started.

Okay. So, I have the brand page opened here. I have the R-Ladies.org website opened here. And then, I have RStudio here. So, this is my project for this slide deck. And so, you know it's a project because I have an __quarto.yaml file. And so, here is everything for these slides and things like that. And as I mentioned, it's just using the default theme.

So, if I want to create a brand.yaml file, what I would do is open up a new text file. And I would save it as brand.yaml. And here it is in my project directory. Okay. And so, all right. Let's begin. Thanks for watching me type. So, as mentioned in the beginning, we start off with meta. And then, let's start with name.

So, I have not verified this with anything. So, happy to change anything after the fact. But let's say short. We're going to just use R-Ladies. And then, full. We're going to do R-Ladies global. Because you can have both of those different options.

Awesome. And this is for the link. So, this is what I have. This is open. If you scroll down to the bottom of the R-Ladies website, you can see that there are a variety of different options. So, I'm going to copy the link from Mastodon. And then, the autocomplete does help with that. Let's do Instagram. Let's do one more. GitHub.

Okay. So, now, let's move on. We say we've completed our metadata part. Let's do logo. So, we can start logo. And notice that RStudio has the autocomplete, which is pretty handy if you don't want to remember everything. But let's say we want to do the small, medium, and large. So, if we go back to the brand, if you notice, the branding materials are linked here. We can click logo. And then, there are a few different options, but I'm going to go with just the PNG versions. So, I should be able to copy the image link. Yes, and we want to make sure that we have the PNG raw is true. And so, again, with logo, you can point to a file in your directory, or you can just put a URL like I just did. Let's do medium. One more large. And I tested this out. That's why I know where everything is.

Okay. So, now, we have meta. We have logo. Think about what's next. Probably the most fun part. We go back to the brand. If you notice, the official colors are listed there. So, we can go ahead and add our colors. And then, we specify palette, if you recall, first. And then, purple. And let me copy this. And then, gray. And then, we can specify that we want our primary color in this, like, remember the UI elements. I want the primary color, which is the main theme color for hyperlinks and stuff like that. I want it to be purple.

Okay. And then, the last part is typography. And I looked up, I think I looked up the correct one. Again, happy to change anything. But that really does help here in terms of fonts family. It's called Work Sans. And I'm going to specify the source as bunny because I don't want to attract people. And then, base. Here, I can specify, like, the fonts that I want to use for my code, my text, and things like that. So, base, I'm going to put Work Sans. And then, for headings, I'm going to be more specific. I want it to be Work Sans. But I want the color to be that primary that we listed up above. And the weight to be 300. And the last thing I want to do, did I? No, that's right. I'm going to do monospace, which is, like, the fonts for your code and things like that. Because I have a favorite, which is Encapsulata.

All right. So, I have saved this. Do I have to? Okay. Sorry. So, I have this one brand.yaml file. I'm in my Quarto document. So, please, let's hold our breath. If I click render. Ta-da! It has automatically picked up that brand.yaml file and applied the headings that I specified, the fonts that I've specified, and everything like that. And I didn't have to change anything in my Quarto presentation at all. It's all automatic. See, that's the Encapsulata font that I really like.

Using LLMs to create brand.yml files

So, you might be thinking, wow, that was quite a bit of work. Extracting the color values and the fonts and the logos from the brand guidelines can be a little bit tedious. But with large language models or LLMs, they're really great at processing this information, and they can do a lot of this hard work for you.

And so, if you go on the brand.yaml documentation and open up that article, give you more specific information. But since brand.yaml is a relatively new project, LLMs like OpenAI or, sorry, ChatGPT or Claude might not know the syntax yet. But you can teach the LLM everything it needs to know about brand.yaml. There is a markdown file that you can copy and give to your AI explaining what it is. You can either copy and paste that file into your chat interface, or you could use a system prompt, and then you give it the instructions to create your brand.yaml file after referencing, like, if you give it a website or if you give it an image of what you want it to copy and things like that. And then at the bottom of the article, there's also a Shiny Live app, where if you want to try out your new brand.yaml file from your AI just to see what it looks like, you can.

Advanced features and Positron demo

A couple of other really nice features from brand.yaml. So in the values that you define in brand.yaml, you can actually access them directly in your Quarto documents via this brand shortcode. So in the shortcode, you can see it with the two squiggles. So in this case, if you have a Quarto document and you put the shortcode, your logo will be dropped in. If you specify, like in our case, if we said small, medium, large, whatever is attributed to that logo name would be inserted wherever you have the shortcode. Similarly, you can reference the colors that you defined in your brand.yaml file using brand color and then the name of the color that you want to use. One thing to note, though, is you can't currently access typography, meta, or default values using the brand shortcode.

So you might be wondering, what if I don't have a Quarto project? So Quarto projects are a specific way of working with Quarto. If you notice, it binds different documents together. So things like websites and books are Quarto projects, but presentations and dashboards not necessarily. And so you can use brand.yaml outside of Quarto projects. You can use them for specific documents if you would like. And in this case, you can, when you create it, it'll automatically apply to the documents in the same directory. And rather than having this separate brand.yaml file that you would put in your directory, you would put it in the documents regular yaml section. So where you specify the title, the author, and things like that, you would write brand and then underneath everything that you want to include.

So let's try this out. And so we just work through an example in RStudio. But did want to mention, so Posit is working on a new IDE for data science called Positron. And the tagline is the Next Generation Data Science IDE. The idea behind it is that it's very opinionated, similar to how RStudio is about what it is that people who work with data need in order to do their work well. So things like being able to look at your data and see the range of it and look at your plots and everything like that. And so the team is working very, very deliberately and thoughtfully about creating this option for you if you want to use it for data science. Another thing is that it's, like Quarto, inherently multilingual. And so you could use it for R and you could use it for Python. And it does things like, for me personally, I love using it for Python because it does things like picks up my Python environment and I don't have to fight with it and things like that. And so the idea is to be familiar for those coming from RStudio. And even if you're not, it's a great option if you want to do data science.

So a few things I wanted to try out. So here I have Positron open and I've created a Quarto document and I've already filled in a bunch of the things. But so let's say R-Ladies came up to me and was like, hey, could you please write a report about our membership or things like that? I'm like, sure thing. I will create it with Quarto. And so here I have the title, the author, the date. If you've used Quarto before, those will probably look pretty familiar. But then here I have listed my brand, kind of referencing that brand YAML file that we just created. So I have the logo, typography, the different fonts, and so on.

As I mentioned earlier, you can use these shortcodes to reference the things listed in your brand. And I forgot to mention, this is a standalone Quarto file. So it's not in a project. It's just this one Quarto file. But so this brand logo large is referencing this brand logo large up here. And then down below, I have all of my headings and the text and things like that. So let's see what it looks like. So say I don't have this. I can click this preview. Oh, there we go. It's just taking its time. So if you notice, this is the standard Quarto style that comes bundled with Quarto. It looks very nice. But let's say I want to add those specific things that I mentioned below. Then I can click preview again. It's going to render. And now it's applied the things that I designated up here in brand. So it has this font where I had the shortcode. Now it has the actual logo and things like that.

And so let's say now I also want to add colors. So I can go here. And like RStudio, Positron has this auto-completion, which makes it really easy to remember things. And for background, I'm going to use that official purple. So I'm going to write it down. OK, save. So now I have color, background. And if I click preview again, as you can imagine, it has changed my document so that it has this purple background.

But let's say, you know, this is kind of hard to read. It's not very like, yeah, like the dark text and then the dark background just makes it hard to read. Positron comes with this feature where if I hover over the color preview, it comes up with this color picker where I can change, you know, like let's say I want this light purple instead, right? And then it automatically changes it. And then I can click preview again. And now I have this light purple as my background instead. And so it just lets you be able to iterate and play around if you have ability in your branding directly within your IDE.

And one thing to note, we've talked a lot about documents and things like that, but there are several formats in Quarto that are supported by brand.yaml. So this is a web page. But let's say, you know, R-Ladies just like, oh, could you please create a presentation? I'm like, sure thing. So I can change this to reveal.js, which is how Quarto creates presentations. Click preview again. And now I have a reveal.js presentation with all of the brand guidelines that I have specified up here in the YAML.

Disabling brand.yml, priority, and sharing

Okay, just to start wrapping things up, you can also disable brand.yaml. Like, let's say there is a document in your project that you don't want to have brand.yaml. You can specify brand is false.

Another thing, especially if you're coming from a previous version of Quarto and you're like, oh, how do all these things work together? So the brand.yaml file will always take the lowest priority in the styles, and the fine themes will override the brand settings. So, for example, here, if you have these themes listed in your Quarto.yaml project file, your brand.yaml will be overridden by Cosmo or by Tweaks.sass. So while it could be useful in some cases, you may want the brand settings to take priority, in which case you would want to switch to order. So it's just something you have to be aware of in case you have more than one file that your Quarto project or documents are referencing.

And in terms of how to share brand.yaml, there are a couple of ideas that we have, but we also would love to hear about how you work with brand.yaml and what would work for you. But two ideas if you want to share your brand.yaml file, say, with your colleagues or your teammate or anything like that. With Quarto, you can create an extension, and if somebody has built an extension similar to how in this presentation, for example, I installed the Font Awesome extension. So in the terminal, I say Quarto add and the name of the extension. Other people can do that as long as you've created an extension, too. So it can work for Quarto projects and things like that.

A more straightforward way is upload it to a GitHub repo or some sort of common place where it can be downloaded and try to maintain a single source of truth in terms of sharing your brand.yaml file. But again, we're welcome to suggestions and hearing about what works and doesn't work in terms of this idea of sharing brand.yaml files across an organization.

But just to sum up, you want to ensure your work consistently follows brand guidelines and avoid duplication. And you can share a single brand.yaml file across your organizations so that everybody has these easily applicable branding guidelines. You eliminate the need for every single person to recreate their design for each project. And you can create custom themes for whatever project it is that you're creating. And so if you are thinking about all of those things, brand.yaml might be the tool for you.

But just to sum up, you want to ensure your work consistently follows brand guidelines and avoid duplication. And you can share a single brand.yaml file across your organizations so that everybody has these easily applicable branding guidelines.

Future of brand.yml and Q&A

And in terms of the future of brand.yaml, for us, our users, the team is actively working on extending brand.yaml to plots and tables. And so if you are a Python user, there is already a way of doing that using a Python package, as you can see in this example here. And so coming soon for us, our users. And you can keep an eye out on the Posit blog or the Shiny blog for more information. And then also additional tools for creating your brand.yaml file using LLMs. But that being said, brand.yaml is a very new project. And we'd absolutely love your feedback to help shape its future. And so things might change as we learn what works and what doesn't. And if you want to be part of that, please join the discussion on GitHub. And with that, thank you so much. We'd love to hear about your impressions, whether you see an immediate use cases, and answer any questions. And again, if I can't answer them, I'm more than happy to relay them to the team so that they can get back to you. Thank you.

Thanks, Isabella. That was great. I learned so much. And there were a lot of questions that came in. And so I will just start. And also, thank you for the live coding. That was awesome to see it happen in real time. And also for customizing it for R-Ladies. So thank you for that.

Just to confirm, it looks like the underscore brand.yaml file goes at the top level of the project. Is that correct? You can reference it. But then you have to be specific in your Quarto.yaml file about where it is. If it's in the, is it called the root directory?