<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://bridgetownrb.com/" version="2.1.1">Bridgetown</generator><link href="https://www.beflagrant.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.beflagrant.com/" rel="alternate" type="text/html" /><updated>2026-02-27T09:58:35-06:00</updated><id>https://www.beflagrant.com/feed.xml</id><title type="html">Flagrant</title><entry><title type="html">Delightfully Friday Junior: Tier List Edition</title><link href="https://www.beflagrant.com/blog/delightfully-friday-junior-tier-list-edition" rel="alternate" type="text/html" title="Delightfully Friday Junior: Tier List Edition" /><published>2026-02-19T05:08:00-06:00</published><updated>2026-02-19T05:08:00-06:00</updated><id>repo://posts.collection/_posts/delightfully-friday-junior-tier-list-edition-2026-02-17.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/delightfully-friday-junior-tier-list-edition">&lt;p&gt;Delightfully Friday Junior comes for us all, and this time it was my turn. (What’s Delightfully Friday Junior? &lt;a href=&quot;https://www.beflagrant.com/blog/introducing-delightfully-friday-junior-at-flagrant-2025-10-10&quot;&gt;Check this out&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;I thought what we’d do was set up some &lt;a href=&quot;https://en.wikipedia.org/wiki/Tier_list&quot;&gt;tier lists&lt;/a&gt; for rating things. Rating what? Whatever we wanted! That’s part of the fun of just putting a little bit of structure around an activity — seeing what direction people go once you give them a starting point. And that’s what I really wanted to see.&lt;/p&gt;

&lt;p&gt;Sure, I provided not only the tier list template, but also some ideas of things that would be interesting to rate. In the end, though, I think I was the only one who chose something from the list of ideas.&lt;/p&gt;

&lt;p&gt;(It was Muppets, by the way.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/tierlist-muppets.png&quot; alt=&quot;tier list rating Muppets&quot; /&gt;&lt;/p&gt;

&lt;p&gt;(I will be taking no questions.)&lt;/p&gt;

&lt;p&gt;But from others, we got to share wonderful things like thoughts on hot breakfast foods (we don’t have time to rank &lt;em&gt;all&lt;/em&gt; breakfast foods), or dice used in Dungeons &amp;amp; Dragons (a &lt;a href=&quot;https://en.wikipedia.org/wiki/Four-sided_die&quot;&gt;d4&lt;/a&gt; ranked surprisingly highly, but with an explanation that got me on board). There was an entire run-down of all the stuffies on someone’s living room couch (just the couch — again, we’re operating with limited time here). And I think we all learned a good bit about just how many Barbie movies there were.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/tierlist-barbie.png&quot; alt=&quot;tier list rating Barbie movies&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
And in a moment of delicious meta-ness, we also got a rating of rating systems.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/tierlist-ratings.png&quot; alt=&quot;tier list rating rating systems&quot; /&gt;&lt;/p&gt;</content><author><name>Yossef Mendelssohn</name></author><category term="[&quot;consulting&quot;]" /><category term="DelightfullyFridayJunior" /><category term="TierList" /><category term="Rating" /><category term="TeamBuilding" /><category term="FlagrantLife" /></entry><entry><title type="html">Feeling John Henry</title><link href="https://www.beflagrant.com/blog/feeling-john-henry-2026-02-17" rel="alternate" type="text/html" title="Feeling John Henry" /><published>2026-02-17T06:00:00-06:00</published><updated>2026-02-17T06:00:00-06:00</updated><id>repo://posts.collection/_posts/feeling-john-henry-2026-02-17.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/feeling-john-henry-2026-02-17">&lt;p&gt;This week, for the first time, I decided to try out a coding agent using the Zed editor on a free pro trial. As a seasoned developer I have found patterns that suit my pace and personality so there is often resistance to trying out the latest new tool that might disrupt my workflow.&lt;/p&gt;

&lt;p&gt;Of course, AI has already largely replaced much of my searching for answers from documentation, tutorials and Stack Overflow entries. I will also get coding suggestions and copy snippets from chatbots. However, as a software craftsman I feel ambivalent about completely opening up my personal workspace to the powerful yet invasive forces of AI.&lt;/p&gt;

&lt;p&gt;When not working at my computer you will often find me outside in my garden. With small scale agriculture you get a visceral experience of both the benefits and cost from using tools. With gardening, there is a clear boundary you cross once you get involved with mechanized devices. While your productivity increases dramatically so do your material costs and dependency on external resources and supply chains. You are also more removed from the long term impact on the soil and ecology that sustains us.&lt;/p&gt;

&lt;p&gt;With AI encroaching on my profession as a computer software engineer I now face a similar choice. Here is a task that might take me fifteen minutes of tedious copying and pasting to complete. Even though I know exactly where the files are located and some pretty efficient keystrokes on my trusted primitive editor my fingers and single core brain can only move so fast.&lt;/p&gt;

&lt;p&gt;On the other hand, in a few minutes I can compose a prompt for an agent in the Zed editor and if I explain myself clearly and the AI stars align I could end up with success and shave off quite a bit of time.&lt;/p&gt;

&lt;p&gt;It occurs to me that for the first time in my career, the specter of obsolescence lurks in my own machine. I am reminded of the story of &lt;a href=&quot;https://en.wikipedia.org/wiki/John_Henry_(folklore)&quot;&gt;John Henry&lt;/a&gt;, the folklore hero who raced the newly invented steam powered drill to tunnel through a mountain with a chisel and sledge hammer. In the legend our hero competes at the pivot point of a new technology and is still able to keep up with and even win against the machine but only at the cost of collapsing from exhaustion.&lt;/p&gt;

&lt;p&gt;In these early days of AI agents I can probably keep up and maybe even perform faster for simple tasks. However, the more I practice and get better at prompting and as the LLM models evolve and become more powerful, it will make less and less sense to physically compose and write my own code. Like John Henry, I will need to choose to adapt or perish.&lt;/p&gt;

&lt;p&gt;However, it is worth taking some time to consider some of the larger impacts of these options. Though we are at the precipice of something completely revolutionary and novel, we have many historical precedents to refer to for wisdom and caution.&lt;/p&gt;

&lt;p&gt;Take for example, the impact of industrial agriculture. Mechanization, fertilizers and genetic engineering has been credited with transforming human society, ending famine and the drudgery of an agrarian lifestyle.&lt;/p&gt;

&lt;p&gt;On the other hand, one could argue that there has been incalculable loss to the ecological health and resiliency  of the soils and environment that sustain us. Machines do not have the same relationship with the organisms that protect and sustain human beings. Less hands working the soil and fewer eyes directly observing the impacts means that we are vulnerable to destructive practices on a massive scale.&lt;/p&gt;

&lt;p&gt;Today, when we purchase an amazing quantity and variety of food from the supermarket we have little connection with the impact of our choices. We are also disempowered from doing much about it since we are so dependent on the technology that has replaced the centuries of agricultural experience and wisdom now largely lost.&lt;/p&gt;

&lt;p&gt;Am I embarking on a similar inevitable process of erosion as I choose to prompt an agent while I am completely detached from the short and long term environmental and cultural impacts? How much are my savings of time and effort subsidized by the reckless financial risks and ambitions of large corporations? How much future employment am I sacrificing to meet immediate deadlines? How much learning and experience am I foregoing, contributing to the atrophy of my craftwork?&lt;/p&gt;

&lt;p&gt;While the immediate cost of AI tokens and savings in human work hours are easily tabulated it may take generations to realize the overall balance of AI’s impact on humanity. Will we once again become dependent on a new level of technology we lack the skills and knowledge to maintain and control? How much of our accumulated experience and expertise are we willing to surrender in the name of questionable progress?&lt;/p&gt;

&lt;p&gt;I feel humbled by the enormity of the transformation we are presented with; changes we could not have foreseen even five years ago. I can only hope that our culture will find ways to adapt as it has through other major industrial revolutions. With any luck, there will still be a place for the software craftsmen just like the small scale homesteaders that find joy and satisfaction from tending their gardens.&lt;/p&gt;</content><author><name>Jonathan Greenberg</name></author><category term="[&quot;development&quot;]" /><category term="AI" /></entry><entry><title type="html">Delightfully Friday Junior: Gingerbread Houses</title><link href="https://www.beflagrant.com/blog/delightfully-friday-junior-gingerbread-houses-2025-12-29" rel="alternate" type="text/html" title="Delightfully Friday Junior: Gingerbread Houses" /><published>2025-12-29T03:13:00-06:00</published><updated>2025-12-29T03:13:00-06:00</updated><id>repo://posts.collection/_posts/delightfully-friday-junior-gingerbread-houses-2025-12-29.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/delightfully-friday-junior-gingerbread-houses-2025-12-29">&lt;p&gt;For our final Delightfully Friday Junior (if you haven’t heard of it yet, &lt;a href=&quot;https://www.beflagrant.com/blog/introducing-delightfully-friday-junior-at-flagrant-2025-10-10&quot;&gt;learn more here&lt;/a&gt;) of the year, the team gathered to make gingerbread houses and other digitally baked scenes. As we weren’t limited to the social integrity of the usual marshmallows and graham crackers, we closed out 2025 and wielded our imaginations with a celebration of gingerbread houses, gardens, trains, and a crematorium 🪦😂 Enjoy our silly, festive creations!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/delightfully-friday-junior-–-supplimentory-website-image-2up.png&quot; alt=&quot;Gingerbread arch above a garden of scallions, carrots, and broccoli and a gingerbread arch lined with white frosting, peppermint candies, and multi-colored gumdrops.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/delightfully-friday-junior-–-supplimentory-website-image-full-2.png&quot; alt=&quot;Gingerbread dawned with an exorbitant amount of frosting with gingerbread snowflakes falling on top of gingerbread people next to a gingerbread car with peppermint wheels.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/delightfully-friday-junior-–-supplimentory-website-image-2up-2.png&quot; alt=&quot;An under-construction gingerbread house plastered with frosting, gumdrops, peppermint candies, and candy canes. A sweet gingerbread house lined with frosted dots and candy canes.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/delightfully-friday-junior-–-supplimentory-website-image-full-3.png&quot; alt=&quot;The famous holiday gingerbread crematorium. There are three gingerbread tombstones to the left of the gingerbread crematorium that read, “Here Lies Santa: What a jolly old elf he was,” “RIP Rudolph: His nose shone too bright for this world,” and “A Elf Who is Nameless: He was found in the candy cane forest.” Besides the gingerbread tombstones is a person touring the gingerbread graves. To the right of the gingerbread crematorium, there is Jesus in a bikini being rolled into the crematorium entrance.&quot; /&gt;&lt;/p&gt;</content><author><name>Lena Yen</name></author><category term="[&quot;design&quot;]" /><category term="DelightfullyFridayJunior" /><category term="WorkDoesntHaveToSuck" /><category term="FlagrantLife" /><category term="RemoteWorkVibes" /><category term="RemoteWork" /><category term="PhotoDump" /><category term="TeamBuilding" /></entry><entry><title type="html">Garbage Pile Friends</title><link href="https://www.beflagrant.com/blog/garbage-pile-friends-2025-12-18" rel="alternate" type="text/html" title="Garbage Pile Friends" /><published>2025-12-18T07:35:00-06:00</published><updated>2025-12-18T07:35:00-06:00</updated><id>repo://posts.collection/_posts/garbage-pile-friends-2025-12-18.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/garbage-pile-friends-2025-12-18">&lt;p&gt;In case you missed it, Flagrant just launched our &lt;a href=&quot;https://www.beflagrant.com/shop/&quot;&gt;swag shop&lt;/a&gt;! In honor of this, I’m super excited to give you a little BTS of the creation of some of our items and some insight into how this came about.&lt;/p&gt;

&lt;h3 id=&quot;quick-overview-of-the-problem-finding-a-way-to-show-and-sell-our-designs&quot;&gt;Quick overview of the problem: Finding a way to show and sell our designs.&lt;/h3&gt;

&lt;p&gt;We wanted to make a place to sell Flagrant-flavored items for a while now, but could not find a way to do it that was not labor-intensive for the team. One of our previous attempts was through Gumroad, which would handle the listing and money exchange part of the process, but left members of the team needing to find a place to get the item printed (t-shirts, stickers or pins) through a separate vendor, a place to store the items, and handle all of the packing and shipping once an order came through. This was NOT an effective or sustainable way for us to operate our shop. So, thanks to an internal project called #co-shipit (see more about #co-shipit in the footnote) by Max and me, we were able to find a solution that worked for the whole team: Big Cartel!&lt;/p&gt;

&lt;p&gt;Big Cartel is a platform that creates a storefront for you to display items and process payments. On the inventory front, Big Cartel integrates with platforms like Printful and CreativeHub. These sites are where you can upload your designs and create items for sale. The items are printed on demand once a customer makes a purchase and is directly shipped to the customer. This takes all the hassle of storage, shipping, and processing away from the team and allows us to focus on other tasks.&lt;/p&gt;

&lt;h3 id=&quot;the-swag-why-i-made-what-i-made&quot;&gt;The Swag: Why I made what I made&lt;/h3&gt;

&lt;p&gt;One of the long-time jokes here at Flagrant amongst the designers is that we are like possums guarding our “trashpile” of designs when someone asks to see what we are working on. Because of this common phrase, I thought it would be fun to make some designs to represent this. I started by sketching out some ideas of how I’d like to make the possum, how I wanted the character to look and feel. I also wanted to make sure that the style was repeatable so that I could create a series of related items/designs.&lt;/p&gt;

&lt;h4 id=&quot;the-inspo&quot;&gt;The inspo:&lt;/h4&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/inspo_gpf.png&quot; alt=&quot;A collection of images used as inspiration&quot; title=&quot;Inpiration board&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4 id=&quot;the-sketches&quot;&gt;The sketches:&lt;/h4&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/sketches_swag.png&quot; alt=&quot;Sketches of possums, raccons and dogs in various poses&quot; title=&quot;Sketches&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;After I had a solid idea of how I wanted it to look, I started making the poses. The poses I made were based on some of the phrases that float around the Flagrant workspace, like partners in sublime, garbage pile kids and unleashing your spark.&lt;/p&gt;

&lt;p&gt;I wanted to make all of these phrases into fun, wearable designs that people would like, even if they didn’t know the meaning behind them. So, the following designs were born under the umbrella of “Garbage Pile Friends”, a series of swag designs:&lt;/p&gt;

&lt;h3 id=&quot;the-stinker-like-the-thinker-but-with-trash&quot;&gt;The Stinker (Like “The Thinker”, but with trash)&lt;/h3&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/the-stinker.png&quot; alt=&quot;Illustrated possom on a pile of trash&quot; title=&quot;The Stinker&quot; /&gt;&lt;/p&gt;

&lt;h6&gt;&lt;br /&gt;&lt;/h6&gt;

&lt;h3 id=&quot;partners-in-sublime-possum-and-raccoon-friends-in-a-famous-anime-pose-dragon-ball-z--fusion-dance&quot;&gt;Partners in Sublime (Possum and Raccoon friends in a famous anime pose, Dragon Ball Z  Fusion Dance)&lt;/h3&gt;

&lt;h6 id=&quot;-1&quot;&gt;&lt;br /&gt;&lt;/h6&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/partners-in-sublime.png&quot; alt=&quot;An illustration of a possom and a raccon posed next to each other&quot; title=&quot;Partners in Sublime&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;-2&quot;&gt;&lt;br /&gt;&lt;/h3&gt;

&lt;h3 id=&quot;unleash-your-spark-a-junkyard-dog-making-a-break-for-it&quot;&gt;Unleash Your Spark (a junkyard dog making a break for it)&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/unleash.png&quot; alt=&quot;A illustration of a dog with a flame behind it and a broken chain&quot; title=&quot;Unleash Your Spark&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt; These designs, as well as a few designs from our vault, have been added to the Flagrant shop! We are so excited to finally see them out in the world &amp;lt;3 &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;See some sneak peeks of some of the items!  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/swag-mockup_2.png&quot; alt=&quot;Mockups of t-shirts, sweaters, and stickers&quot; title=&quot;Mockups&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt; Our model Jim is showing off the “Unleash Your Spark” t-shirt in “Grape”. &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/img_2218-1-.jpg&quot; alt=&quot;Picture of Jim wearing a shirt with Uleash Your Spark design on a purple shirt &quot; title=&quot;Model Jim&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Footnote: Co-ship it is something we do on a biweekly basis. Two individuals pair together in order to ship ‘a thing’. They present the thing during Friday’s clap &amp;amp; cringe, and all of us will get to marvel at the wonder that is teamwork.&lt;/p&gt;
&lt;/blockquote&gt;</content><author><name>Valenzia Cina</name></author><category term="[&quot;design&quot;]" /><category term="Swag" /><category term="Apparel" /><category term="Fashion" /><category term="Friends" /></entry><entry><title type="html">Making an Old-School Game</title><link href="https://www.beflagrant.com/blog/making-an-old-school-game" rel="alternate" type="text/html" title="Making an Old-School Game" /><published>2025-12-15T06:56:00-06:00</published><updated>2025-12-15T06:56:00-06:00</updated><id>repo://posts.collection/_posts/making-an-old-school-game-2025-12-15.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/making-an-old-school-game">&lt;p&gt;I just participated in &lt;a href=&quot;https://itch.io/jam/picostevemo-3&quot;&gt;PiCoSteveMo&lt;/a&gt;. What’s that? It’s a month-long game jam for making a PICO-8 game inspired by a Stephen King work.&lt;/p&gt;

&lt;p&gt;Oh, did that just raise further questions? Hold on.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“What’s a game jam?” It’s an event where you try to create a video game &lt;a href=&quot;https://www.brainyquote.com/quotes/carl_sagan_137409&quot;&gt;from scratch&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;“What’s PICO-8?” In the creator’s words, “&lt;a href=&quot;https://www.lexaloffle.com/pico-8.php&quot;&gt;PICO-8&lt;/a&gt; is a &lt;a href=&quot;https://www.lexaloffle.com/pico-8.php?page=faq&quot;&gt;fantasy console&lt;/a&gt; for making, sharing and playing tiny games and other computer programs.” If it helps, think of it as a constrained virtual environment for running little games and programs. But there’s also an integrated editor for code, and graphics, and sound and music. And a standard library on top of the embedded &lt;a href=&quot;https://www.lua.org/&quot;&gt;Lua&lt;/a&gt; language. Actually, “fantasy console” is probably easier.&lt;/li&gt;
  &lt;li&gt;“Who’s Stephen King?” You’re kidding, right?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why did I do it? Well, partly because it’s hosted by former Flagrantino Casey, and he’s talked about it and PICO-8 a lot. Partly because it just seemed interesting. And honestly, partly because I’m a silly, silly man — there’s been so much going on in my life lately, and why not add one more thing to do? I’m glad I did, because it turned out to be really fun and rewarding.&lt;/p&gt;

&lt;p&gt;I think I’ve made it clear that I don’t necessarily think of myself as a very &lt;em&gt;creative&lt;/em&gt; guy, but I do really like working on &lt;a href=&quot;https://www.beflagrant.com/blog/the-six-layers-of-art-a-personal-journey-2023-02-16&quot;&gt;the craft&lt;/a&gt;. And also I super feel the terror of the blank page. Constraints and prompts are great. So the combination of a clear prompt (“write a game inspired by a Stephen King work”) and constraints (do it in a month, use PICO-8 — which has its own constraints) really sparked my interest. Also, I nerd-sniped myself by making a throwaway snarky comment like “sure, if I could somehow find a way to make a game based on ‘The Jaunt’… oh wait I just had the idea”.&lt;/p&gt;

&lt;p&gt;So began a journey that started with a purchase and download of &lt;a href=&quot;https://www.lexaloffle.com/pico-8.php?#getpico8&quot;&gt;PICO-8&lt;/a&gt;, and then &lt;a href=&quot;https://mboffin.itch.io/gamedev-with-pico-8-issue1&quot;&gt;a tutorial zine&lt;/a&gt; and working through that. And finding various other incredibly useful resources, like &lt;a href=&quot;https://www.lexaloffle.com/dl/docs/pico-8_manual.html&quot;&gt;the manual&lt;/a&gt;, and &lt;a href=&quot;https://pico-8.fandom.com/wiki/Pico-8_Wikia&quot;&gt;the PICO-8 Wiki&lt;/a&gt;, and &lt;a href=&quot;https://nerdyteachers.com/PICO-8/&quot;&gt;NerdyTeachers&lt;/a&gt;, and &lt;a href=&quot;https://www.youtube.com/watch?v=HnY7Inp74dw&amp;amp;list=PLea8cjCua_P3LL7J1Q9b6PJua0A-96uUS&quot;&gt;Lazy Devs Academy&lt;/a&gt;, and &lt;a href=&quot;https://www.youtube.com/watch?v=nwFcitLtCsA&amp;amp;list=PLur95ujyAigsqZR1aNTrVGAvXD7EqywdS&quot;&gt;Gruber&lt;/a&gt;, and so much on &lt;a href=&quot;https://www.lexaloffle.com/bbs/?cat=7&quot;&gt;the Lexaloffle BBS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In keeping with the spirit of the jam, I toyed around a bit with PICO-8 enough to get some things working (like going through the examples in the tutorial zine), but then I didn’t work on my project until the first of November. And then I really dove in, documenting my progress in a sort of &lt;a href=&quot;https://itch.io/jam/picostevemo-3/topic/5488128/lets-get-jaunty&quot;&gt;devlog community thread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So much of the experience fell somewhere between comfortable and uncomfortable. Yes, I’ve been programming for a long time, but there are many forms and focuses in that field. And there are many frameworks for working in. Thankfully, I was already familiar with &lt;a href=&quot;https://pico-8.fandom.com/wiki/GameLoop&quot;&gt;the init/update/draw game loop&lt;/a&gt; through my interest in &lt;a href=&quot;https://processing.org/&quot;&gt;Processing&lt;/a&gt; (in particular &lt;a href=&quot;https://p5js.org/&quot;&gt;the JS version&lt;/a&gt;, and its &lt;a href=&quot;https://p5js.org/tutorials/get-started/&quot;&gt;`setup()` and `draw()`&lt;/a&gt;). However, that sort of thing makes me put far more in global state than I like. And the restriction PICO-8 has on &lt;a href=&quot;https://pico-8.fandom.com/wiki/Tokens&quot;&gt;tokens&lt;/a&gt; can put some major incentives on having variables in the global namespace rather than nicely encapsulated in objects, or having logic in-line rather than in separate functions.&lt;/p&gt;

&lt;p&gt;None of this is to say that what PICO-8 does is &lt;em&gt;wrong&lt;/em&gt;. The constraints are deliberate choices, and are incredible aids in the creative process. They force you to consider what really belongs in your game, or at least what different things are worth to you. This mostly goes for the token limit, but is also definitely felt with the graphics and sound limitations. The “fantasy console” gives you one single platform to deal with — one resolution, one color palette, one sound library — and you’re freed from having to worry about all the different options here. (Note that this is very reminiscent of the &lt;a href=&quot;https://www.geeksforgeeks.org/java/how-jvm-works-jvm-architecture/&quot;&gt;&lt;strong&gt;J&lt;/strong&gt;ava &lt;strong&gt;V&lt;/strong&gt;irtual &lt;strong&gt;M&lt;/strong&gt;achine&lt;/a&gt; “write once, run anywhere” promise.)&lt;/p&gt;

&lt;p&gt;And the game loop is incredibly helpful for breaking down the frankly thorny problem of handling game input + logic + visuals into easier-to-handle pieces. I may feel uncomfortable with putting more into global state, but I can’t say I’d feel better if I had to somehow manage updating game state and the screen 30 times every second all on my own. (And PICO-8 &lt;a href=&quot;https://pico-8.fandom.com/wiki/GameLoop#Writing_your_own_game_loop&quot;&gt;lets you do that&lt;/a&gt;, if you’re so inclined. I’m not… yet?)&lt;/p&gt;

&lt;p&gt;One thing I especially appreciated was getting a good reason to dive into Lua for real. I’ve toyed with it before, but nothing serious — probably my biggest thing was making some improvements to someone else’s &lt;a href=&quot;https://api.tabletopsimulator.com/&quot;&gt;Tabletop Simulator mod&lt;/a&gt;. (There it is, programming + games again.) And I somehow thought that’s what Lua was &lt;em&gt;for&lt;/em&gt; — scripting in games. I’d just heard of it being used in video games so much that I somehow internalized the idea that it was created for that purpose. And I was correct in a sense, but not entirely. Lua was created in 1993 (a few years before Ruby, Java, and Javascript; a few years after Python and Visual Basic) and designed to be embedded in other applications to allow greater flexibility and customization. And I really enjoyed it! I mean, apart from array (sorry, “table”) indices starting at 1. Again, I’m not going to say Lua is doing it &lt;em&gt;wrong&lt;/em&gt;, but array indices starting at 0 is so ingrained in me — my thought processes, my habits, my &lt;em&gt;math&lt;/em&gt; — that this caused no small number of bugs.&lt;/p&gt;

&lt;p&gt;That was no big deal, though. My experience as a programmer helped me in a good few ways, especially in noticing the patterns where I have trouble and making some helper and utility functions to give me guardrails.&lt;/p&gt;

&lt;p&gt;So I got to really enjoy this creative process and these constraints. It’s funny to look back on various times during the month when I cycled through:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;feeling like there was still maybe too much freedom&lt;/li&gt;
  &lt;li&gt;feeling like the constraints were helpful but still nice and loose&lt;/li&gt;
  &lt;li&gt;bumping against some hard wall like screen size and resolution, or color palette&lt;/li&gt;
  &lt;li&gt;accepting the situation and finding a solution I enjoyed&lt;/li&gt;
  &lt;li&gt;lather, rinse, repeat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And just like in any effort, there was the biggest constraint of all: time. There’s no relaxing this, no pushing against it and winning. In fact, that went for me in both the obvious way of having to finish this game in a month and carving out moments to work on it, but also how much of the game was built on events happening at specific times, or at least specific intervals. That worked out fine with actual gameplay, but it really bit me when I wanted to make a tutorial and had to figure out ways to pause in the middle of events or delay them so that the player could have time to read and understand what they’re being taught.&lt;/p&gt;

&lt;p&gt;As I said in &lt;a href=&quot;https://itch.io/post/14767207&quot;&gt;a devlog post&lt;/a&gt;, the things I did there weren’t quite “&lt;a href=&quot;https://www.pcgamer.com/heres-whats-happening-inside-fallout-3s-metro-train/&quot;&gt;NPC train hat&lt;/a&gt; funky”, but I’m starting to understand how things like that happen. I’ve definitely learned some lessons about how to do this better in the future, just as I’ve learned over the years how to write better code for flexibility and testing.&lt;/p&gt;

&lt;p&gt;Oh, testing. That’s something that would be a great luxury here. Can it be done? Can I get myself to do it? I’ve never been good at testing visuals and UI interactions.&lt;/p&gt;

&lt;p&gt;In the end, I made something that I consider successful and I’m pretty proud of — &lt;a href=&quot;https://ymendel.itch.io/jauntender&quot;&gt;check out JaunTender on&lt;/a&gt; &lt;a href=&quot;http://itch.io&quot;&gt;itch.io&lt;/a&gt;. But more than that, I really enjoyed the experience, and I felt I learned a lot and had a good time doing it. I learned these skills and about this framework, sure, but I also feel I learned a bit about myself, and experienced some growth as well.&lt;/p&gt;

&lt;p&gt;Looking forward to more, for all of it.&lt;/p&gt;</content><author><name>Yossef Mendelssohn</name></author><category term="[&quot;development&quot;]" /><category term="programming" /><category term="games" /><category term="pico 8" /></entry><entry><title type="html">Delightfully Friday Junior: Puzzling Together</title><link href="https://www.beflagrant.com/blog/puzzling-together-2025-12-12" rel="alternate" type="text/html" title="Delightfully Friday Junior: Puzzling Together" /><published>2025-12-12T09:47:00-06:00</published><updated>2025-12-12T09:47:00-06:00</updated><id>repo://posts.collection/_posts/puzzling-together-2025-12-12.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/puzzling-together-2025-12-12">&lt;p&gt;&lt;img src=&quot;/images/uploads/puzzling-together-feature-image.jpg&quot; alt=&quot;Feature Image Puzzling Together&quot; title=&quot;Feature Image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Life is a puzzle. You are born, you die and a lot of puzzling stuff happens in between.&lt;/p&gt;

&lt;p&gt;We here at Flagrant love puzzles. I think the thing I enjoy most about my work is that I get to solve real world puzzles everyday. Sometimes it is trying to figure out how to write a database query, debug a flaky test or get css to match a design. Other times it is helping a client figure out what problem they are trying to solve and then come up with the right solution. And then of course there is the puzzle of figuring out what we are feeling and how to best express it to our co-workers so that it can be heard and understood.&lt;/p&gt;

&lt;p&gt;But sometimes we just need to do some old fashioned puzzles just for fun! In fact, once a week we at Flagrant take a break from our “regular work” to do a puzzle together. Our goto website is &lt;a href=&quot;https://www.jigsawexplorer.com/&quot;&gt;Jigsaw Explorer&lt;/a&gt;. A link is shared and everyone logs on while we get our dopamine hits from virtually snapping pieces into place and racing to get that final piece to complete the image and maybe guess where the photo was taken. Sometimes it is quiet and other times we banter. Afterwards we all take a moment to share some appreciations from our work and/or personal lives.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/puzzling-together-our-puzzle-masters.jpg&quot; alt=&quot;Our Puzzle Masters for Puzzling Together&quot; title=&quot;Our Puzzle Masters&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Putting a puzzle together is a great metaphor for how we work at Flagrant. Each of us has a different perspective and skill set and it takes a team to figure out how all the pieces fit together to get a complete picture. Most of all, it is more fun and satisfying to work together and celebrate our individual and collective accomplishments as a team.&lt;/p&gt;

&lt;p&gt;While puzzles are a year round daily part of our lives, the holidays are an especially rich time for puzzles. Some of our developers stay up late working on &lt;a href=&quot;https://adventofcode.com/&quot;&gt;Advent Of Code&lt;/a&gt;. It is also when the New York Times releases their &lt;a href=&quot;https://store.nytimes.com/products/puzzle-mania-nov-2025?variant=43845603622982&quot;&gt;Puzzle Mania&lt;/a&gt;. And everyone appreciates that jigsaw puzzle on the coffee table to help break the ice during holiday gatherings and vacations.&lt;/p&gt;

&lt;p&gt;Puzzles are such a rich part of our culture at Flagrant so we decided a couple weeks to get together and find a way to share some of it with you! At a recent Friday Junior (what is that? &lt;a href=&quot;https://www.beflagrant.com/blog/introducing-delightfully-friday-junior-at-flagrant-2025-10-10&quot;&gt;see here&lt;/a&gt;) we put together a montage of our favorite puzzles to share with the world.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/puzzling-together-sharing-puzzles.jpg&quot; alt=&quot;Sharing Puzzles for Puzzling Together&quot; title=&quot;Sharing Puzzles&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then as a group activity we created a puzzle of our own for you to solve! A new favorite puzzle called &lt;a href=&quot;https://www.theatlantic.com/games/bracket-city/&quot;&gt;bracket-city&lt;/a&gt; by the Atlantic recently released a puzzle builder which allows you to send your own secret messages or special announcements. You should check out how to play and it may become a new favorite daily puzzle of your own.&lt;/p&gt;

&lt;p&gt;Then when you are ready you can try out our own puzzle &lt;a href=&quot;https://suburbs.bracket.city/3H5W2X&quot;&gt;here&lt;/a&gt;. Once you have it solved it will reveal a very important message about something new on our website that you might also find helpful for your celebrations this holiday season (spolier alert: you might need to come back here once you are done). Let use know what you think!&lt;/p&gt;</content><author><name>Jonathan Greenberg</name></author><category term="[&quot;development&quot;]" /><category term="Puzzles" /><category term="TeamBonding" /></entry><entry><title type="html">Delightfully Friday Junior: Photo Scavenger Hunt</title><link href="https://www.beflagrant.com/blog/delightfully-friday-junior-photo-scavenger-hunt-2025-11-19" rel="alternate" type="text/html" title="Delightfully Friday Junior: Photo Scavenger Hunt" /><published>2025-11-19T10:04:00-06:00</published><updated>2025-11-19T10:04:00-06:00</updated><id>repo://posts.collection/_posts/delightfully-friday-junior-photo-scavenger-hunt-2025-11-19.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/delightfully-friday-junior-photo-scavenger-hunt-2025-11-19">&lt;p&gt;For our 4th Delightfully Friday Junior activity (&lt;a href=&quot;https://www.beflagrant.com/blog/introducing-delightfully-friday-junior-at-flagrant-2025-10-10&quot;&gt;see more about Delightfully Friday Junior here!&lt;/a&gt;) the team embarked on a virtual scavenger hunt. The goal was to use photos from our camera rolls to answer prompts and then share a bit about the photos we share. This activity was designed to get us to open up about what has been happening in our lives and show more of what is important to us as individuals. We gathered some interesting results, including: a shoe filled with tennis balls, an old baby blanket, and lots of kitties. Take a look for yourself!&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Something you like to eat or drink&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/something-you-like-to-eat-or-drink.png&quot; alt=&quot;Pictures of things poeple like to eat and drink&quot; title=&quot;Something you like to eat or drink&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Something that makes you happy&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/something-that-makes-you-happy.png&quot; alt=&quot;Pictures of things that make people happy, including: pet, babies, partners and plushies&quot; title=&quot;Something that makes you happy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Something that reminds you of someone important in your life&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/something-that-reminds-you-of-someone-important-in-your-life.png&quot; alt=&quot;Pictures of friends, family and assorted precious items&quot; title=&quot;Something that reminds you of someone important in your life&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The oldest thing you own&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/the-oldest-thing-you-own.png&quot; alt=&quot;An assortment of old items including a blanket, a rock and a pair of shoes&quot; title=&quot;The oldest thing you own&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. The view from your window&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/the-view-from-your-window.png&quot; alt=&quot;A collection of pictures showing the view from people&apos;s windows.&quot; title=&quot;The view from your window&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;A no-context photo from your camera roll&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/a-no-context-photo-from-your-camera-roll.png&quot; alt=&quot;An assortment of random images from peoples camera rolls&quot; title=&quot;A no-context photo from your camera roll&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After posting our photos, we went around and got to ask questions about the photos people uploaded and hear their stories. It was a relaxing and simple way to share more about our lives. We hope you have enjoyed these goofy, lovely, and precious photos the team shared!&lt;/p&gt;

&lt;p&gt;Until next time!&lt;/p&gt;</content><author><name>Valenzia Cina</name></author><category term="[&quot;design&quot;, &quot;development&quot;, &quot;consulting&quot;]" /><category term="photo" /><category term="creative" /><category term="fun" /><category term="photography" /><category term="sharing" /><category term="stories" /></entry><entry><title type="html">The Dark Art of Designing for Dark Mode</title><link href="https://www.beflagrant.com/blog/dark-art-of-dark-mode" rel="alternate" type="text/html" title="The Dark Art of Designing for Dark Mode" /><published>2025-11-07T11:26:00-06:00</published><updated>2025-11-07T11:26:00-06:00</updated><id>repo://posts.collection/_posts/the-dark-art-of-designing-for-dark-mode-2025-10-13.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/dark-art-of-dark-mode">&lt;p&gt;&lt;em&gt;From a talk I gave on September 20, 2025, at &lt;a href=&quot;http://www.xoruby.com&quot;&gt;XO Ruby New Orleans&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you use dark mode on any of your devices—or even if you don’t—you’ve probably seen a lot of interfaces and websites in dark themes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.framer.com&quot;&gt;Framer&lt;/a&gt;, &lt;a href=&quot;http://fonts.google.com&quot;&gt;Google Fonts&lt;/a&gt;, &lt;a href=&quot;http://www.linear.app&quot;&gt;Linear&lt;/a&gt;’s website, and many others showcase dark mode designs, even when you view them with “light mode” on:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-10.53.45.png&quot; alt=&quot;Screen captures of three websites are layered on top of each other, each appearing with a dark mode look and feel: Google Fonts, Framer, and Linear.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There’s a surprising amount happening here. Even as a professional designer who uses dark mode all day every day, I didn’t fully intuit what design principles to follow when designing for dark mode.&lt;/p&gt;

&lt;p&gt;After adding dark mode to several client products, I’ve gathered useful guidelines to follow when designing for dark mode.&lt;/p&gt;

&lt;h2 id=&quot;color-terminology-101&quot;&gt;Color terminology 101&lt;/h2&gt;

&lt;p&gt;Before we get to guidelines and the Dark Mode Dark Arts, let’s step back and define some key color terminology.&lt;/p&gt;

&lt;p&gt;There are many ways to talk about, identify, and work with color. A lot of how we talk about and work with color depends on the medium.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;CMYK, color spaces, Pantone&lt;/strong&gt; - These may indicate you’re dealing with printed materials.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Subtractive color vs. additive color&lt;/strong&gt; - Pigmented color (paint, ink, etc.) is subtractive, where mixing all colors gets you something brown or black. Colored light (theater lighting, etc.) is additive—mixing all colors gets you white light.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;P3 and other color gamuts&lt;/strong&gt; - Color gamuts often come into play when we’re dealing with digital devices and how many colors they can display.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;HSL / HSB / RGB / RGBa / Hex&lt;/strong&gt; - Any and all of these are used on the web and when designing software.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Since we’re talking about software UI and dealing with color on screens, we’ll focus on #4—specifically HSB, (&lt;strong&gt;h&lt;/strong&gt;ue, &lt;strong&gt;s&lt;/strong&gt;aturation, and &lt;strong&gt;b&lt;/strong&gt;rightness), which is what I use to manipulate color when designing.&lt;/p&gt;

&lt;p&gt;All color is a result of how our eyes physically process light waves. Each color has a different wavelength in the spectrum of light.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/color-wheel.png&quot; alt=&quot;A chart shows a list of colors in the left column with their respective wavelengths in the right column: red (650-800nm), orange (590-640nm), yellow (550-580nm), green (490-530nm), blue (460-480nm), indigo (440-450), and violet (390-430nm). To the right of the chart is a rainbow ring of all the colors.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In color theory, we often talk about “the color wheel” which is really just the spectrum of light twisted around so that the violet and red ends are joined.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hue&lt;/strong&gt; is often what we mean when we say “color”—like red, green, blue, yellow. Hues have different wavelengths in the spectrum of light. Hue is the “H” value in both HSL and HSB.&lt;/p&gt;

&lt;p&gt;Here you can see the different H values for each color:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-13-at-15.51.06.png&quot; alt=&quot;Four color swatches with their H or hue values beneath each. From left to right: red (H: 359), green (H: 103), blue (H: 209), yellow (H: 45)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Saturation&lt;/strong&gt; can also be called a color’s intensity. It’s a measurement of how different a color is from pure gray. Saturation isn’t really a matter of light and dark—it’s more how pale or intense the color is.&lt;/p&gt;

&lt;p&gt;Here you can see high saturation on the left moving to low saturation on the right, with a constant hue—or H value—of 359:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-13-at-15.51.14.png&quot; alt=&quot;Four color swatches move from high saturation on the left side with a bright, intense red to low saturation on the right side with a pinkish gray. Under the most saturated red on the far left are the values H:359 and S:99. The second swatch from the left is a dark pink color with the values H:359 and S:50. The third swatch is a dusty pink with the values H:359 and S:25, and the far right grayish swatch has the values H:359 and S:5.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When we talk about how light or dark a color is, we’re talking about &lt;strong&gt;brightness&lt;/strong&gt;. The higher the brightness of a color, the more light it emits on a screen.&lt;/p&gt;

&lt;p&gt;Here’s a chart showing how brightness and saturation impact a color (&lt;a href=&quot;https://learn.leighcotnoir.com/artspeak/elements-color/hue-value-saturation/ &quot;&gt;from Leigh Cotnoir&lt;/a&gt;):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/saturation-brightness.png&quot; alt=&quot;A grid of ~80 color swatches shows white in the top left corner, black in the bottom left corner, intense saturated red in the top right corner, and dark burgundy reds in the lower right quadrant. The grid is labeled on the x axis as moving from low saturation to high saturation (left to right). The y axis of the grid moves from low brightness on the bottom to high brightness at the top.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When I work with clients on design projects, I’m often given just two or three core brand colors from which I derive a full color ramp of more shades. HSB is what I use to do that.&lt;/p&gt;

&lt;p&gt;Defining the extended color ramps for a brand’s palette is a crucial early step in design projects to ensure there are enough shades to work with in order to meet accessibility guidelines for color contrast.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-13-at-16.19.06.png&quot; alt=&quot;On the right is a color ramp of 11 different purple swatches with hex codes and contrast values inside each square. Every color in the ramp is purple in hue, with very light-colored purples at the top moving to much darker purples at the bottom.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I manipulate the saturation and brightness of a brand color to make a color ramp with many steps. For this purple palette, the hue—the H value—stays the same.&lt;/p&gt;

&lt;p&gt;As you move from top to bottom (from 50-950):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Hue&lt;/strong&gt; stays the same&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Saturation&lt;/strong&gt; increases&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Brightness&lt;/strong&gt; decreases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This mimics how light and shadow impact color in the real world. In &lt;a href=&quot;https://medium.com/@erikdkennedy/color-in-ui-design-a-practical-framework-e18cacd97f9e#.cxg0crdro &quot;&gt;these examples from Erik Kennedy&lt;/a&gt;, the area of shadow has higher saturation and lower brightness than the area not in shadow:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-11.25.50.png&quot; alt=&quot;Two photographs from Erik Kennedy&apos;s article about color show colors in the real world. On the left is a street lamp casting a shadow against an orange wall, with color swatches showing two oranges—one taken from the orange wall in sunlight and one taken from the area of the street lamp&apos;s shadow against the wall. On the right is a street scene showing a palm tree casting a shadow against a blue wall as a man walks past. Two color swatches show the blue of the wall in sunlight vs. the darker blue where the tree is casting its shadow.&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;color-and-accessibility&quot;&gt;Color and accessibility&lt;/h2&gt;

&lt;p&gt;Now that we’ve talked about hue, saturation, and brightness, let’s cover some basic accessibility guidelines when it comes to color.&lt;/p&gt;

&lt;p&gt;Fortunately, there are some well-documented accessibility standards we can follow. If you’re not familiar with WCAG, it stands for the &lt;a href=&quot;https://www.w3.org/WAI/standards-guidelines/wcag/&quot;&gt;Web Content Accessibility Guidelines&lt;/a&gt;. WCAG standards aim to make web content more accessible to people with visual, auditory, physical, cognitive, and neurological impairments. So it’s not just about color.&lt;/p&gt;

&lt;p&gt;WCAG supplies us with guidelines for color contrast ratios—the difference in contrast between two colors. For example, in the second button the dark text has a contrast ratio of 9.5 to 1 against the green button background. The same green button background has a contrast ratio of only 1.2:1 with the gray page background.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/button-contrast.png&quot; alt=&quot;Three buttons with color swatches showing the text vs. the background, the button background vs. the page background, and the color contrast ratios for each. The top button has white text against a royal blue background for a contrast ratio of 4.5:1, and the blue button against the gray page background has a ratio of 4.1:1 (both pass). The second button has dark green text against a light green background, with 9.5:1 contrast ratio for text, but the green background fails contrast against the gray page background with only 1.2:1 contrast ratio. The last button has a turquoise background with white text, for 3.1:1 text contrast (passes) and 2.8:1 contrast of the button against the gray page background (fails).&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Did you know that there are several different types of colorblindness? It’s another thing to factor in when working with color. As you can see with some of these oranges, yellows, greens, and reds, color contrast might help with legibility, but high color contrast alone may not help with color differentiation for certain types of color blindness:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-13-at-16.28.04.png&quot; alt=&quot;8 different color ramps showing grays, reds, oranges, yellows, and greens show together under the label &amp;quot;Normal color vision&amp;quot;, followed by the same color ramps with simulated colorblindness for deuteranopia and deuteranomaly where reds and greens are more difficult to tell apart.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-13-at-16.28.17.png&quot; alt=&quot;8 color ramps showing grays, reds, oranges, yellows, and greens show under the label &amp;quot;Normal color vision&amp;quot; followed by the same color ramps under a colorblindness simulator labeled &amp;quot;Protonopia&amp;quot; and &amp;quot;Protanomaly&amp;quot;—types of color blindness that make yellows and greens look very similar.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That’s why one of the standards from WCAG is not to rely on color alone as the only way to convey information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WCAG cheat sheet:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Don’t use color as the only way to convey information&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;3:1&lt;/strong&gt; - Buttons against a background&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;3:1&lt;/strong&gt; - Large text (24px+)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;4.5:1&lt;/strong&gt; - Normal text against a background (any size)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;3:1&lt;/strong&gt; - Icons &amp;amp; graphs, any size&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;3:1&lt;/strong&gt; - Focus rings, UI elements, or other signifiers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But even if all you’re going to do is comply with contrast ratios, it’s a lot to consider. Especially since this is not a complete list.&lt;/p&gt;

&lt;p&gt;As if that’s not complicated enough, when you add dark mode to your website or application, &lt;em&gt;you effectively double the amount of color combinations that must be accessible&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I’m not going to go in depth about the solutions for dealing with this complexity, but if you’re interested in knowing more, you can read my post on &lt;a href=&quot;https://www.beflagrant.com/blog/how-we-built-a-color-system-from-the-ground-up-2024-09-05&quot;&gt;setting up color systems with color variables&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;color--your-brain&quot;&gt;Color + your brain&lt;/h2&gt;

&lt;h3 id=&quot;color-perception-and-relativity&quot;&gt;Color perception and relativity&lt;/h3&gt;

&lt;p&gt;I said earlier that all color is a result of how your eyes physically process light waves. That’s true. What’s also true is that colors are the way your brain &lt;em&gt;by use of your eyes&lt;/em&gt; interprets those colors in a given context.&lt;/p&gt;

&lt;p&gt;Color is perception. Yes—the physical mechanisms like rods and cones in your eyes and wavelengths of light—but there’s an added influence given how our brains process those physical inputs, like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Proximity to other colors&lt;/li&gt;
  &lt;li&gt;The color temperature and amount of light in our given context&lt;/li&gt;
  &lt;li&gt;The way light reflects off of something (your glass phone screen, shiny vs. matte paper, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This could mean that the kind of light a color is seen in impacts the colors we think we see.&lt;/p&gt;

&lt;p&gt;Is this dress black and blue? Or is it white and gold?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-13-at-16.32.30.png&quot; alt=&quot;The dress from a popular meme of &apos;is this dress blue and black? or white and gold?&apos; appears 3 times in slightly different lighting emphasizing either the perspective that it&apos;s blue and black (higher saturation and contrast) or white and gold (lower light, lower contrast and lower saturation) to illustrate the point that color perception is contextual.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I bet you have some personal experience with this if you’ve ever looked at your phone screen when you’re in a dark room.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-09.57.33.png&quot; alt=&quot;A man in a dark room with a bright light shining on his face lifts his head off a pillow with raised eyebrows and very squited eyes. Above him in meme-style text is written &amp;quot;When I wake up to check my phone and my brightness is higher than 2%.&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Our color perception is influenced quite literally by what colors appear next to each other. Many such experiments in color and perception were designed by Joseph Albers in his book &lt;em&gt;Interaction of Color.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For example, focus your eyes on the small rectangle in the center of the top (blue) half of this image. After your eyes rest there for a few moments, the small rectangle in the center of the bottom (red) half appears similar in color to the one you’re focusing on.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-13-at-16.36.09.png&quot; alt=&quot;A large blue and large red rectangle with small rectangles inside them. A small blue rectangle inside the large blue rectangle is labeled &amp;quot;1&amp;quot; and so is a blue rectangle in the upper left of the large red rectangle, indicating that both the &amp;quot;1&amp;quot; rectangles are the same color, even though we don&apos;t perceive them that way. A small brown rectangle at the bottom left of the large blue rectangle is labeled &amp;quot;2&amp;quot; as is a reddish rectangle in the center of the large red rectangle. It appears very brown against the dark blue—very different than against the large red rectangle.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In fact they are very different colors. But we don’t perceive them that way because of the field of color surrounding them.&lt;/p&gt;

&lt;p&gt;The small boxes next to 1 and 1 are the same color. And the small boxes next 2 and 2 are the same color. When you change the colors next to or surrounding them, it impacts your perception of the color.&lt;/p&gt;

&lt;p&gt;This notion of perception—or what I like to call “color relativity”—is especially relevant for dark mode. Your punchy, vibrant brand colors or the reds you’re using to grab the user’s attention for errors may read really differently when they’re on a dark background.&lt;/p&gt;

&lt;p&gt;A bright red or a punchy blue on a light background can feel muddy and against a dark background:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/buttons.png&quot; alt=&quot;On the left against a light background are two buttons with white text: the first button is red, the second button is dark blue. On the right the same buttons appear where they have less contrast against a dark background, making them feel muddy by comparison.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Yes, checking our color contrast ratios can guide us. But there’s a little more going on here. The perceived saturation of a color is not constant. It varies depending on the surroundings and light a color is seen in.&lt;/p&gt;

&lt;h3 id=&quot;when-were-in-the-dark-closer-objects-are-brighter&quot;&gt;When we’re in the dark, closer objects are brighter&lt;/h3&gt;

&lt;p&gt;Another way that our brains interpret and perceive information from our eyeballs has to do with light sources and shadow. In daylight, items that are more distant appear lighter in color.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-11.27.12.png&quot; alt=&quot;Snow-capped mountains are nearby and also as a long range across the horizon in the distance. A nearby mountain&apos;s shadowed face has a small square over it that connects to a bluish-black color swatch. The shadowed face of a mountain in the distance has a small square that connects to a second color swatch, which is a light Prussian blue color.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Photo of mountains from &lt;a href=&quot;https://unsplash.com/photos/a-mountain-range-covered-in-snow-and-clouds-SG2V5Vwk48E &quot;&gt;Mario von Rotz on Unsplash&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But in the dark, items closer to a light source appear lighter in color. Given the way we rely on light in the darkness to help us see, items closer to us and our eyes (and a nearby light source) appear lighter in color.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-11.29.06.png&quot; alt=&quot;A man in silhouette walks through a dark hallway cast in orange toward a bright white light. A small square outlines part of the wall in shadow, connected to a dark brown color swatch. Another square appears on part of the wall close to the bright white light and connects to a goldfish orange color swatch. &quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Photo of dark hallway from &lt;a href=&quot;https://unsplash.com/photos/person-walking-towards-a-bright-light-LIJMSB-b_SY&quot;&gt;Qiu MenFeng on Unsplash&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This perception informs one of the key principles of designing for dark mode. In light mode we can rely on shadows alone to convey elevation. But in dark mode, items that are “closer” to us in the UI should get a lighter background to create that sense of elevation and proximity.&lt;/p&gt;

&lt;p&gt;Even though the differences between a “closer” menu and a background behind it may be quite subtle, it feels quite natural to our eyes and our brain, and when done incorrectly can contribute to a dark mode implementation feeling “off.”&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-11-03-at-14.45.48.png&quot; alt=&quot;In the left column are 4 white squares on a light background. From top to bottom, shadow behind each square gets larger and more noticeable. In the second column are dark squares on a background the same dark color—all one color—with the same shadows behind them. Finally in the third column are 4 different color squares against a dark background, all lighter than the bakground. From top to bottom, the square color gets brighter and the shadow is wider and more intense.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image from &lt;a href=&quot;https://atmos.style/blog/dark-mode-ui-best-practices&quot;&gt;Dark Mode UI: 7 Best Practices&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For example, this drop down menu on Linear’s website pops over the top of the page behind it. To give that sense of “closeness” to a light source near our eyes, it uses a lighter gray background than the page behind it:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-11.31.33.png&quot; alt=&quot;Linear&apos;s homepage with a &amp;quot;Resources&amp;quot; flyover menu open. A swatch connecting to the main homepage background is very dark black in appearance. A swatch connecting to the background color of the flyover menu on top of the homepage is a slightly lighter dark gray color.&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;common-misconceptions&quot;&gt;Common misconceptions&lt;/h2&gt;

&lt;p&gt;If you haven’t spent much time thinking about or dissecting why dark mode looks the way it does, it might seem pretty straightforward. What’s the big deal?&lt;/p&gt;

&lt;p&gt;Let’s talk about some of the common misconceptions.&lt;/p&gt;

&lt;h3 id=&quot;just-invert-the-colors&quot;&gt;“Just invert the colors”&lt;/h3&gt;

&lt;p&gt;Isn’t dark mode just inverting all the color? Not exactly. That would mean any UI elements with shadow would have a soft glow around them.&lt;/p&gt;

&lt;p&gt;True color inversion might be fine for white or black elements like backgrounds and text. But it will also change things like brand colors, which are commonly used for attention-grabbing UI elements like buttons. And we know better than to muck around with &lt;em&gt;brand colors&lt;/em&gt;, don’t we?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-11.32.18.png&quot; alt=&quot;On the left is a section stripe.com&apos;s in its default colors: a white background, a purple CTA button, and a green CTA button on a mobile phone screen. On the right, the same image has colors inverted with a dark background and light text. Arrows draw attention to the purple CTA button which is now green and the green button on the mobile phone which is now pink. Instead of a shadow around the phone, there is a soft light-colored glow.&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;sojust-invert-the-color-ramps-then&quot;&gt;“So…just invert the color ramps then?”&lt;/h3&gt;

&lt;p&gt;So if we don’t do a true inversion, couldn’t we just invert the color ramps and flip where the dark colors and light colors get used? So  dark greens flip to light greens, light greens flip to dark greens, and all the colors for dark mode are…well…darker?&lt;/p&gt;

&lt;p&gt;Not exactly. That gets us that super-saturated “muddy” feeling in dark mode, like with this dark red alert, which doesn’t have much contrast against a dark background:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-11.33.11.png&quot; alt=&quot;On the left are two banners: a success alert and an error alert against a light background. Color swatches under them show the colors used in each: dark green text and light green background for the success alert; dark red text and light red background for the error alert. On the right are the same alerts against a dark background, with light and dark colors reversed. Swatches beneath them show: light green text (was was the background color on the left) and dark green background (what was the text color on the left); a dark red background (what was used for text on the left) and light red text (what was used for the background on the left) for the error alert.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Depending on the specific hue of the color ramp, inverting the light colors to dark ones from the same color ramp may mean that something unimportant (like our green success alert) steals a lot of visual attention from primary content or a call-to-action button.&lt;/p&gt;

&lt;h3 id=&quot;cant-we-just-throw-tailwinds-dark-class-on-it-and-call-it-a-day&quot;&gt;“Can’t we just throw Tailwind’s ‘.dark’ class on it and call it a day?”&lt;/h3&gt;

&lt;p&gt;Haven’t tools like Tailwind solved this problem for us? Well…yes and no.&lt;/p&gt;

&lt;p&gt;As &lt;a href=&quot;https://tailwindcss.com/docs/dark-mode&quot;&gt;Tailwind’s dark mode docs indicate&lt;/a&gt;, you can add Tailwind’s “.dark” class to the body of a page. But that assumes that you’ve specified the right color for every element you want recolored for dark mode. Or that you’re using pre-styled Tailwind components without customization or any additional brand colors.&lt;/p&gt;

&lt;h2 id=&quot;tips--tricks-for-dark-mode&quot;&gt;Tips &amp;amp; tricks for dark mode&lt;/h2&gt;

&lt;p&gt;So what parts of a color’s formula do you manipulate for a successful design in dark mode? What tips and tricks can you follow to do dark mode the “right” way?&lt;/p&gt;

&lt;h3 id=&quot;1-avoid-using-saturated-colors&quot;&gt;1. Avoid using saturated colors.&lt;/h3&gt;

&lt;p&gt;It can be hard to pass accessibility requirements with saturated colors on dark backgrounds.&lt;/p&gt;

&lt;p&gt;Highly saturated colors will feel too intense in dark mode. Because of the way we perceive color, a desaturated color will feel more intense when it’s on a dark background. Lower saturation will still “feel” colorful in dark mode.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/desat.png&quot; alt=&quot;On the top row are 4 color swatches and their saturation values against a light background: yellow (S: 96), red (S: 86), purple (S: 74), and green (S: 94). On a second row are 4 more swatches that are desaturated versions against a dark background of the colors above: yellow (S: 35), red (S: 41), purple (S: 24), green (S: 34).&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Reserve the intense, saturated colors for expressing brand or for call-to-action situations where you really do need to grab attention.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-11.34.18.png&quot; alt=&quot;High saturation background colors appear for an error and warning alert that are bright tomato red and mustard yellow. Next to them is a big red X and text indicating that they are too intense on a dark background and that they steal attention. Under a dividing line are the same alerts but with low saturation red and yellow backgrounds and a big green check with text indicating these versions are easier on the eyes, reserving intense color for expression brand or call-to-action buttons that need to grab attention.&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;2-dont-just-invert-your-light-mode-colors&quot;&gt;2. Don’t just invert your light mode colors.&lt;/h3&gt;

&lt;p&gt;Don’t just invert your light mode color scheme. It won’t necessarily have enough contrast to meet accessibility standards.&lt;/p&gt;

&lt;p&gt;Be patient and create a dark-mode-specific color palette that has enough contrast and is pleasant to the eye.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/bottom-sheet-example.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/bottom-sheet-example2.png&quot; alt=&quot;On the left is the UI for a phone app in light mode with a bottom sheet dialog with a red warning icon and a red button the user can tap to confirm account deletion. On the right is the same UI in dark mode with a red X over it and teh text &amp;quot;Don&apos;t just invert your light mode colors&amp;quot;—the red warning icon and the red button appear dark and muddy against the dark backgrounds of dark mode.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;&quot; alt=&quot;On the left is a dark mode phone UI with a muddy red warning icon and delete button that has low contrast against the dark mode background. On the right is an improved version of the same screen, where the warning icon and red delete button are brighter and less saturated, which makes them stand out more from the background. Next to the right image is the text &amp;quot;Check your contrast ratios. Just inverting your colors may mean buttons, icons, or text don&apos;t meet contrast requirements. Dark-mode specific color theming.&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Just inverting light and dark steps your color palettes will likely result in icons or buttons not meeting contrast requirements against dark backgrounds.&lt;/p&gt;

&lt;h3 id=&quot;3-avoid-using-pure-white-or-pure-black&quot;&gt;3. Avoid using pure white or pure black.&lt;/h3&gt;

&lt;p&gt;White text on a pure black background can be challenging or painful to look at with certain vestibular or vision impairments.&lt;/p&gt;

&lt;h3 id=&quot;4-communicate-elevation-with-lighter-surfaces&quot;&gt;4. Communicate elevation with lighter surfaces.&lt;/h3&gt;

&lt;p&gt;In light mode, we use shadows to communicate depth. The higher the surface is, the closer it is to the “light source” and the bigger shadow it casts.&lt;/p&gt;

&lt;p&gt;This doesn’t work the same way in dark mode. But we can use the same “light source” theory and apply it to surface color.&lt;/p&gt;

&lt;p&gt;For elements in the UI that are “in front” like fly-out menus or dialogs, use soft grays rather than dark blacks and bright whites. Shadows will still show on grays. It will still feel dark, but much softer and nicer to look at.&lt;/p&gt;

&lt;p&gt;If you’re using grays and not blacks, shadows still help create depth in addition to the gray scale giving that sense of elevation:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-10-15-at-11.35.47.png&quot; alt=&quot;A phone interface shows a dialog bottom sheet that has several disclosure rows on it. On the right, swatches for the background (lowest elevation / darkest), dialog surface (mid elevation / lighter), and disclosure row (highest elevation / lightest) are called out.&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;5-use-a-robust-gray-palette-that-carries-some-of-your-brand-color&quot;&gt;5. Use a robust gray palette that carries some of your brand color&lt;/h3&gt;

&lt;p&gt;Consider creating harmony with other UI elements by creating a gray palette that isn’t totally neutral, but carries a very desaturated version of a brand color. It will feel more sophisticated and easier on the eyes.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/cleanshot-2025-11-03-at-14.57.49.png&quot; alt=&quot;On the left is a red X and the text &amp;quot;Don&apos;t use a totally neutral gray palette&amp;quot; next to an 11-swatch color ramp of neautral grays. To the right of the ramp is a plus sign and a purple color ramp, followed by an equal sign. To the right of the equal sign is a purple-gray color ramp and a green check mark with the text &amp;quot;Use a gray palette that carries some of the hue from a brand color.&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Try combining a primary brand color at low opacity with neutral grays to create a gray palette that carries a branded hue.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Designing for dark mode can be surprisingly complex. It requires an understanding of how our eyes perceive color and how to mimic colors in the real world by manipulating the saturation and brightness of colors.&lt;/p&gt;

&lt;p&gt;By using HSB, we can:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;create a gray palette that carries some brand color for added harmony&lt;/li&gt;
  &lt;li&gt;apply lighter grays to “closer” surfaces to convey elevation&lt;/li&gt;
  &lt;li&gt;avoiding saturated colors except in instances where we want to draw attention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope you’ve learned a little something about working with color. Need help with dark mode designs or working with color on your project? Get in touch!&lt;/p&gt;

&lt;h2 id=&quot;resources&quot;&gt;Resources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/@erikdkennedy/color-in-ui-design-a-practical-framework-e18cacd97f9e#.cxg0crdro&quot;&gt;Color in UI Design: A (Practical) Framework&lt;/a&gt; by Erik Kennedy on constructing color palettes and understanding color relationships with hue, saturation, and brightness or HSB&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://smart-interface-design-patterns.com/articles/color-contrast-cheat-sheet/&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://learn.leighcotnoir.com/artspeak/elements-color/hue-value-saturation/&quot;&gt;Hue, Value, Saturation&lt;/a&gt;—a great explanation of different color terminology (beyond just HSB) if you wanna nerd out&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/pilcro/the-surprising-science-behind-colour-codes-6664c6f3b8a3&quot;&gt;The Surprising Science Behind Color Codes&lt;/a&gt; by Patrick Woodhead&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://modus.medium.com/the-myths-of-color-contrast-accessibility-4b7fcba77317&quot;&gt;Seven Myths of Color Contrast Accessibility&lt;/a&gt; from UX Movement exposes when WCAG formulas for contrast ratios actually don’t help&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://uxdesign.cc/dark-app-design-e2bb5979fcf2&quot;&gt;Dark Mode: how to come over to the dark side&lt;/a&gt; by the team at Redmadrobot Design Lab&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://material.io/design/color/dark-theme.html&quot;&gt;Material Design guidelines for creating dark themes&lt;/a&gt;—a good summary of putting all the principles together in an extremely practical way without having to go deep on the theory&lt;/li&gt;
  &lt;li&gt;The same &lt;a href=&quot;https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/dark-mode/&quot;&gt;guidelines for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/videos/play/wwdc2019/808/&quot;&gt;Session from WWDC 2019&lt;/a&gt; on dark theme design for iOS&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://atmos.style/blog/dark-mode-ui-best-practices&quot;&gt;Dark mode UI design—7 best practices&lt;/a&gt; by Ondřej Pešička&lt;/li&gt;
  &lt;li&gt;Color palette generators and tools: &lt;a href=&quot;https://color.hailpixel.com/&quot;&gt;Colordot&lt;/a&gt;, &lt;a href=&quot;https://pokepalettes.com/&quot;&gt;Pokemon Palettes&lt;/a&gt;, &lt;a href=&quot;https://colorlab.dev/&quot;&gt;Colorlab.dev&lt;/a&gt;, &lt;a href=&quot; https://colorbox.io/&quot;&gt;ColorBox&lt;/a&gt;, &lt;a href=&quot;https://material.io/resources/color/#!/&quot;&gt;Material Design color tool&lt;/a&gt;, &lt;a href=&quot; https://toolness.github.io/accessible-color-matrix&quot;&gt;Accessible color palette builder&lt;/a&gt;, &lt;a href=&quot;https://www.happyhues.co/palettes/12&quot;&gt;Happy Hues&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://smart-interface-design-patterns.com/articles/color-contrast-cheat-sheet/&quot;&gt;Color contrast cheat sheet&lt;/a&gt; with a list of many other contrast-oriented accessibility tools and resources&lt;/li&gt;
  &lt;li&gt;Color simulator tools: &lt;a href=&quot;https://apps.apple.com/us/app/sim-daltonism/id1050503579&quot;&gt;Sim Daltonism&lt;/a&gt; for Mac, &lt;a href=&quot;https://www.figma.com/community/plugin/1447480682837346661/color-blindness-simulator&quot;&gt;Color Blindness Simulator&lt;/a&gt; plugin for Figma&lt;/li&gt;
  &lt;li&gt;Color contrast tools: &lt;a href=&quot;https://developer.chrome.com/docs/lighthouse/&quot;&gt;Lighthouse&lt;/a&gt;, &lt;a href=&quot;https://www.figma.com/community/plugin/732603254453395948/stark-contrast-accessibility-checker&quot;&gt;Stark - Contrast &amp;amp; Accessibility Checker&lt;/a&gt; plugin for Figma&lt;/li&gt;
&lt;/ul&gt;</content><author><name>Glynnis Ritchie</name></author><category term="[&quot;design&quot;]" /><category term="dark mode" /><category term="accessibility" /><category term="color" /><category term="WCAG" /></entry><entry><title type="html">Delightfully Friday Junior: Halloween Edition</title><link href="https://www.beflagrant.com/blog/delightfully-friday-junior-halloween-edition-2025-11-07" rel="alternate" type="text/html" title="Delightfully Friday Junior: Halloween Edition" /><published>2025-11-07T08:31:00-06:00</published><updated>2025-11-07T08:31:00-06:00</updated><id>repo://posts.collection/_posts/delightfully-friday-junior-halloween-edition-2025-11-07.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/delightfully-friday-junior-halloween-edition-2025-11-07">&lt;h2 id=&quot;delightfully-friday-junior-iii&quot;&gt;&lt;em&gt;Delightfully Friday Junior&lt;/em&gt; III&lt;/h2&gt;

&lt;p&gt;We have offically done three rounds of Delightfully Friday Junior. Where does the time go?&lt;/p&gt;

&lt;p&gt;If this sounds new to you, here is &lt;a href=&quot;https://www.beflagrant.com/blog/introducing-delightfully-friday-junior-at-flagrant-2025-10-10&quot;&gt;our first take - show and tell&lt;/a&gt;), and &lt;a href=&quot;https://www.beflagrant.com/blog/delightfully-friday-junior-this-or-that-2025-10-22&quot;&gt;our second take - this or that&lt;/a&gt;. Take a gander at these to get the who, what, why, where an when of Delightfully Friday Junior. Plus you will get to learn more about the Flagrant weirdos (like given the choice between chocolate and cheese: we choose cheese).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/untitled.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;episode-3-halloween-edition&quot;&gt;Episode 3: Halloween Edition&lt;/h1&gt;

&lt;p&gt;For our third session, we got into the spooky spirit and carved pumpkins…virtually! We met on Oct. 30, the day before Halloween, which felt like the perfect excuse to unleash our creativity and channel our inner children.&lt;/p&gt;

&lt;p&gt;Don’t worry, no gourds were harmed in the making of this week’s Delightfully Friday Junior. Thanks to Figma’s built-in pumpkin-carving widget, we kept things festive and virtual.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/screenshot-2025-11-07-at-12.17.17 pm.png&quot; alt=&quot;Three screenshots of the pumpkin carving widget in Figma, showing its interface, customization options, and a preview of how the carved pumpkin design changes as the settings are adjusted.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Our virtual pumpkin carving event turned out to be a surprisingly fun way to connect as a team, no matter where we all were. From classic jack-o’-lantern faces to more imaginative designs, the creativity was on full display.&lt;/p&gt;

&lt;p&gt;We had pumpkins representing everything from quirky self-portraits, a cute penguin and a melting face that looked like it had seen one too many bug fixes.&lt;/p&gt;

&lt;p&gt;There was even a Ruby method called carve. Bonus points to Jim who carved out the XORuby logo. And yes, there was a vampire pumpkin looking a bit more sad than scary, because even spooky creatures have bad days.&lt;/p&gt;

&lt;p&gt;Here they are in all their glory:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/screenshot-2025-11-07-at-12.24.11 pm.png&quot; alt=&quot;A collection of carved pumpkins created together by the team, featuring diverse designs including quirky self-portraits, a cute penguin, a melting face, the XORuby logo, a Ruby method called &apos;carve,&apos; and a sad vampire pumpkin, showcasing the team&apos;s creativity and playful spirit.&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And that wraps up our third Delightfully Friday Junior! Each round keeps getting a little more creative, and a lot more “us.” Whether we’re showing off our favorite things, debating the merits of noodles over ice cream, or carving virtual pumpkins that reflect our quirks and humor, these moments remind us why we love working together and help us connect as humans.&lt;/p&gt;

&lt;p&gt;Until the next Delightfully Friday Junior - may your pumpkins stay un-smashed and your ideas delightfully weird. 🎃&lt;/p&gt;</content><author><name>Amanda Klusmeyer</name></author><category term="[&quot;consulting&quot;]" /><category term="CarvingPumpkins" /><category term="TeamBonding" /></entry><entry><title type="html">Delightfully Friday Junior: This or That?</title><link href="https://www.beflagrant.com/blog/delightfully-friday-junior-this-or-that-2025-10-22" rel="alternate" type="text/html" title="Delightfully Friday Junior: This or That?" /><published>2025-10-22T10:59:00-05:00</published><updated>2025-10-22T10:59:00-05:00</updated><id>repo://posts.collection/_posts/delightfully-friday-junior-this-or-that-2025-10-22.md</id><content type="html" xml:base="https://www.beflagrant.com/blog/delightfully-friday-junior-this-or-that-2025-10-22">&lt;h2 id=&quot;whats-delightfully-friday-junior-you-ask&quot;&gt;What’s &lt;em&gt;Delightfully Friday Junior&lt;/em&gt;, you ask?&lt;/h2&gt;

&lt;p&gt;This is only our second go-round (see &lt;a href=&quot;https://www.beflagrant.com/blog/introducing-delightfully-friday-junior-at-flagrant-2025-10-10&quot;&gt;our first take—show and tell—here&lt;/a&gt;), so you’re forgiven for not knowing.&lt;/p&gt;

&lt;p&gt;At Flagrant we have different themes to our daily stand-ups, each one focusing on a different vibe, prompt, or mini team-building moment of fun before each of us scatters to the wind of our respective client projects.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Delightfully Friday Junior&lt;/em&gt; is just the latest iteration of that for the Flagrant team. Every other Thursday for standup, someone else on the team leads a playful activity in FigJam—something a little experimental, a little silly, all in the spirit of getting to connect with our coworkers and learn more about ourselves in the process.&lt;/p&gt;

&lt;p&gt;We love to foster a fun “water cooler” moment with coworkers, especially as a distributed team that is not always staffed together on the same projects. Bonus points if those same moments by the virtual water cooler help us understand a teammate better (or have an interesting disagreement with them about totally hypothetical super powers).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/delightfully-friday-junior-–-feature-website-image.png&quot; alt=&quot;Two &amp;quot;this or that&amp;quot; questions and their votes appear on the left (&amp;quot;Would you rather snuggle with a puppy or an old dog?&amp;quot;, old dog wins + &amp;quot;Outdoors or outside?&amp;quot; surrounded by question marks, outside wins). On the right is the text &amp;quot;Delightfully Friday Junior, an educational bamboozling on 10/16/25&amp;quot; with Polaroid-style photos of Flagrant&apos;s team members who participated.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/delightfully-friday-junior-–-supplimentory-website-image-full.png&quot; alt=&quot;A zoomed out view of a FigJam board with lots of &amp;quot;this or that&amp;quot; questions and their votes and tallies, represented by yellow and purple boxes depending on which answer won out.&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;episode-2-this-or-that&quot;&gt;Episode 2: This or that?&lt;/h1&gt;

&lt;p&gt;For our second session, we put five minutes on the clock and everyone generated “this or that” questions. Wouldn’t you know it? Our team of weirdos came up with a lot of weird questions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/uploads/delightfully-friday-junior-–-supplimentory-website-image-2up.png&quot; alt=&quot;The questions &amp;quot;Would you rather be Gumby or a Gingerbread person?&amp;quot; and &amp;quot;Would you rather eat only noodles forever or only ice cream?&amp;quot; appear, among others, with pill-shaped buttons underneath that reveal the answer and total votes an answer received. More people voted to be Gumby and eat noodles when answering this or that.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then we took some time to read through and answer:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Would you rather snuggle with a puppy or old dog?&lt;/li&gt;
  &lt;li&gt;Outdoors or outside?&lt;/li&gt;
  &lt;li&gt;Dance party or just music listening?&lt;/li&gt;
  &lt;li&gt;Would you rather be Gumby or a gingerbread person?&lt;/li&gt;
  &lt;li&gt;Playlists or podcasts?&lt;/li&gt;
  &lt;li&gt;Are tacos sandwiches or are submarines tacos?&lt;/li&gt;
  &lt;li&gt;Would you rather take a road trip or immediately teleport to your destination?&lt;/li&gt;
  &lt;li&gt;If you had to choose, would you rather always have socks on for the rest of your life, or never be able to wear socks?&lt;/li&gt;
  &lt;li&gt;Would you rather have a time machine that only goes back in time or one that only goes into the future?&lt;/li&gt;
  &lt;li&gt;Are you a cat person or a dog?&lt;/li&gt;
  &lt;li&gt;Chocolate or vanilla?&lt;/li&gt;
  &lt;li&gt;Would you rather eat only noodles forever or only ice cream?&lt;/li&gt;
  &lt;li&gt;Would you rather be able to never eat cheese again or never chocolate?&lt;/li&gt;
  &lt;li&gt;Would you rather be able to control plants or control animals?&lt;/li&gt;
  &lt;li&gt;Would you rather be a superhero with no real powers or a supervillain with incredible abilities?&lt;/li&gt;
  &lt;li&gt;Would you rather have the ability to instantly learn any skill or have the ability to instantly heal from any injury?&lt;/li&gt;
  &lt;li&gt;Are you a summer or a winter person?&lt;/li&gt;
  &lt;li&gt;Would you rather only speak in rhyme or song?&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;what-we-learned&quot;&gt;What we learned&lt;/h3&gt;

&lt;p&gt;Our team choose noodles forever over ice cream forever, and cheese over chocolate. Some folks would rather instantly learn a skill than heal from injury, whereas others think all the fun is in the learning and skill acquisition. Why not choose the ability to repair these fragile, wet meatbags we call bodies?&lt;/p&gt;

&lt;p&gt;Sometimes all it takes is 15 minutes with a fun activity and some silly questions to enjoy your teammates and get to know them a little better.&lt;/p&gt;</content><author><name>Glynnis Ritchie</name></author><category term="[&quot;consulting&quot;]" /><category term="ThisorThat" /><category term="EducationalBamboozlement" /><category term="ImpossibleQuestions" /></entry></feed>