<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Making on Charles Reynolds-Talbot</title><link>https://charlesrt.uk/themes/making/</link><description>Recent content in Making on Charles Reynolds-Talbot</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><copyright>This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License</copyright><lastBuildDate>Fri, 13 Nov 2026 19:00:00 +0000</lastBuildDate><image><url>https://charlesrt.uk/apple-touch-icon.png</url><title>Making on Charles Reynolds-Talbot</title><link>https://charlesrt.uk/themes/making/</link><width>144</width><height>144</height></image><atom:link href="https://charlesrt.uk/themes/making/feed.xml" rel="self" type="application/rss+xml"/><item><title>Apply for a clown car licence</title><link>https://charlesrt.uk/blog/apply-for-a-clown-car-licence/</link><pubDate>Fri, 13 Nov 2026 19:00:00 +0000</pubDate><guid>https://charlesrt.uk/blog/apply-for-a-clown-car-licence/</guid><description>&lt;p&gt;I&amp;rsquo;m writing this on the train home from London. I left the house 14 hours ago and I&amp;rsquo;m still not back. I&amp;rsquo;m wiped.&lt;/p&gt;
&lt;p&gt;It was a great day.&lt;/p&gt;
&lt;p&gt;Becca, Tash and I ran a full day of training on prototyping in code with the GOV.UK Prototype Kit. There were 20 people in the room, from central government departments, the wider public sector and consultancies. Some of our own joined, because we train our people on this content too.&lt;/p&gt;
&lt;p&gt;We started with the basics of HTML and CSS. Then the kit itself. The aim was to build a service and publish it online. The service was &amp;ldquo;Apply for a clown car licence&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Why a clown car licence? For fun, and because nobody would believe it&amp;rsquo;s a real government service. And it&amp;rsquo;s still within the common service pattern of applying for a thing.&lt;/p&gt;
&lt;h2 id="little-moments-of-joy"&gt;Little moments of joy&lt;/h2&gt;
&lt;p&gt;The best part of the day was watching people get something working.&lt;/p&gt;
&lt;p&gt;Sure, there were parts people found frustrating. A line of code deleted by accident. Syntax that wasn&amp;rsquo;t quite there yet. But the frustration is what made it so good when the page finally loaded and they realised they&amp;rsquo;d made a thing.&lt;/p&gt;
&lt;p&gt;There were actual little physical joy reactions. It was lovely to see.&lt;/p&gt;
&lt;h2 id="why-we-do-this-in-person"&gt;Why we do this in person&lt;/h2&gt;
&lt;p&gt;People were at different levels, and that&amp;rsquo;s okay.&lt;/p&gt;
&lt;p&gt;Not everything went to plan. Different organisations have put different security controls on their laptops, so not everyone could get to the software they needed, like the terminal or GitHub Desktop. That&amp;rsquo;s no reflection on anyone in the room. We worked around it where we could, and we&amp;rsquo;ve offered to follow up once people have sorted things with their IT departments.&lt;/p&gt;
&lt;p&gt;We never stopped. Keeping a sense of the whole room while helping people one to one kept all three of us busy. It&amp;rsquo;s also why this is the sort of thing you need to do in person, so you can troubleshoot together.&lt;/p&gt;
&lt;h2 id="why-designers-should-know-how-to-code"&gt;Why designers should know how to code&lt;/h2&gt;
&lt;p&gt;I believe all designers should know how to code.&lt;/p&gt;
&lt;p&gt;Not because they should become developers. There&amp;rsquo;s a sweet spot much, much sooner than that. It&amp;rsquo;s another tool in your toolkit.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s about understanding the medium you&amp;rsquo;re designing for. I wrote &lt;a href="https://charlesrt.uk/blog/interaction-design-clearing-the-confusion/"&gt;back in 2017&lt;/a&gt; that interactions are made of code, not mock-ups, and I still think that. A prototype in code makes the interaction real, and that gets you better evidence from research sessions. It also leads to deeper conversations with developers, translating design intent from policy and problem to working software.&lt;/p&gt;
&lt;p&gt;Not every prototype should be in code. But when it should, it&amp;rsquo;s better to know how than to make do with Figma or a similar design tool.&lt;/p&gt;
&lt;p&gt;And it shouldn&amp;rsquo;t become a prototype so complex that you&amp;rsquo;ve created a whole new environment to maintain, one more before dev, test and prod. That&amp;rsquo;s why we kept repeating why we prototype in the first place. To learn something new. To communicate intent. To validate or disprove an assumption. At some point the deep collaboration with developers should be happening, and the product should be the thing you maintain.&lt;/p&gt;
&lt;p&gt;Thank you Becca and Tash, for organising and for assertively controlling the room. You were great.&lt;/p&gt;
&lt;p&gt;And thank you to everyone who came and gave it a go.&lt;/p&gt;</description></item><item><title>Designer in the loop</title><link>https://charlesrt.uk/blog/designer-in-the-loop/</link><pubDate>Thu, 15 Oct 2026 17:44:11 +0100</pubDate><guid>https://charlesrt.uk/blog/designer-in-the-loop/</guid><description>&lt;p&gt;Anyone can prompt an AI for an output now.&lt;/p&gt;
&lt;p&gt;A user interface. A set of personas. A service strategy. A 10-page paper. Ask, and a few seconds later you&amp;rsquo;ll have something that looks finished.&lt;/p&gt;
&lt;p&gt;I think that&amp;rsquo;s a good thing. The lower the barrier for anyone to turn their ideas into something, the better. In that sense, everyone is a designer, and always has been. I&amp;rsquo;m a big advocate for ideas coming from everyone, and for the value of diverse thinking. In workshops, I encourage people who say they can&amp;rsquo;t sketch: words and boxes are sketches too.&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;m not lobbying to stop any of that.&lt;/p&gt;
&lt;p&gt;But when outputs come this cheap, it&amp;rsquo;s easy to mistake them for design that&amp;rsquo;s done. The best designers know: &lt;strong&gt;it&amp;rsquo;s never been about outputs. It&amp;rsquo;s about outcomes.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="why-ai-feels-like-a-threat-to-designers"&gt;Why AI feels like a threat to designers&lt;/h2&gt;
&lt;p&gt;A lot of designers are worried AI is coming for their jobs. I understand why.&lt;/p&gt;
&lt;p&gt;The people we work with are going to use it. If a stakeholder can get something that looks like a design in minutes, rather than waiting for a team of designers, why wouldn&amp;rsquo;t they? Why not skip the design process altogether, and cut the designer out of the loop?&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a fair question. If you boil product and interaction design down to making pictures of websites, AI can probably do that quite quickly.&lt;/p&gt;
&lt;p&gt;But that&amp;rsquo;s not the job. It&amp;rsquo;s never been the job.&lt;/p&gt;
&lt;p&gt;So can they do it all themselves? I&amp;rsquo;ve decided they can&amp;rsquo;t. Not because only designers are allowed to design, but because of what gets skipped: the critical thinking that design brings to a team.&lt;/p&gt;
&lt;h2 id="designers-have-always-had-to-adapt"&gt;Designers have always had to adapt&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve been here before, in smaller ways.&lt;/p&gt;
&lt;p&gt;Once upon a time it was Macromedia Fireworks. Then Photoshop, Sketch, Figma, and now prototyping directly in code.&lt;/p&gt;
&lt;p&gt;Every new tool changed how we work. None of them changed why.&lt;/p&gt;
&lt;p&gt;A designer&amp;rsquo;s greatest skill is being able to adapt. That&amp;rsquo;s what gives me confidence now. Not that AI will leave design alone, but that designers have always worked out what a new tool is for, and what it isn&amp;rsquo;t. Our value in teams doesn&amp;rsquo;t disappear. It evolves.&lt;/p&gt;
&lt;h2 id="how-im-experimenting-with-ai"&gt;How I&amp;rsquo;m experimenting with AI&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m not writing this from the sidelines. I&amp;rsquo;ve been experimenting with AI for a few years, and so has my team. We&amp;rsquo;ve agreed principles and guardrails for what we will and won&amp;rsquo;t use it for. In particular, we don&amp;rsquo;t use it to generate user interfaces or graphic design that could feel imitative or derivative of other people&amp;rsquo;s work.&lt;/p&gt;
&lt;p&gt;Most recently, I wanted to see what was possible beyond the basic generation of assets. So I stress-tested it against an end-to-end design process. What would it get right? What would it get wrong? How much could it support a team doing real-world work? And how much would it simply make up, convincingly enough to catch people out?&lt;/p&gt;
&lt;p&gt;The briefs came from our design team away day on 30 September. We split into multidisciplinary teams and tackled three related briefs about women’s urinary tract infections (UTIs).&lt;/p&gt;
&lt;p&gt;I took one of those briefs to experiment with AI: a patient sharing their history of UTIs with pharmacists and GPs. Crucially, I didn’t just prompt &amp;ldquo;give me a solution to this brief&amp;rdquo;. That would be lazy. It&amp;rsquo;s also the biggest risk I see when anyone uses AI.&lt;/p&gt;
&lt;p&gt;I started by framing the problem to be solved: what I already knew, and the why. As designers, we don’t simply rely on the brief. We challenge it, pick it apart and look for the opportunities in it. Doing that here shifted the problem. It wasn’t really about the patient remembering their history. It was about showing it to a rushed GP in a way they’d believe. Proto-personas for everyone involved, from out-of-hours clinicians to pharmacists, set out what each of them needs before they’ll act on what they’re shown. From those came a set of design principles: a framework to guide every decision that followed, so each one was deliberate.&lt;/p&gt;
&lt;p&gt;Then three genuinely different ideas, scored against those principles so the choice was traceable rather than a matter of taste. A prototype built with the NHS Design System so nothing was borrowed. An accessibility statement, written from what was actually built and used straight away to improve the prototype. And a strategy for what to validate first, and with whom.&lt;/p&gt;
&lt;p&gt;Each step fed the next, and I made sure it kept track. Every stage includes a short narrative on how it shaped what came after, and messages to socialise with a real team at that point, to maintain shared understanding.&lt;/p&gt;
&lt;figure class="figure figure--aside"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/designer-in-the-loop//blog/designer-in-the-loop/04-team-note-thread.png" alt="A yellow note in five parts: we decided, because, where it came from, we&amp;#39;ll know when, and so next. It explains why a patient&amp;#39;s shared record needs a code they can read out loud for out-of-hours calls."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;Transparent traceability of decisions, so everyone has a shared understanding.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Then I audited the whole chain, tagging every claim as verified, desk knowledge, assumption or illustrative. That&amp;rsquo;s provenance: being clear where each claim came from. Has it been checked? Is it drawn from existing knowledge? Is it something we believe? Or was it made up to make the design look legit?&lt;/p&gt;
&lt;figure class="figure figure--aside"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/designer-in-the-loop//blog/designer-in-the-loop/01-honest-review.png" alt="A table titled &amp;#39;Tag your thinking by where it came from&amp;#39;, with three columns: what we said, where it came from, and how we&amp;#39;ll find out. Five claims are tagged as my assumption, AI assumption, not checked, or self-check. Each one has a test that would prove or disprove it."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;Most of what looked like progress was assumption. Tagging it doesn&amp;#39;t make it wrong. It shows what to test first.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Everything looked finished: the personas, the prototype, the strategy. None of it had been tested with real people.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s fine for a first pass, as long as you&amp;rsquo;re honest about it. What matters is calling it out, by declaring the provenance of every piece of data, evidence and decision.&lt;/p&gt;
&lt;p&gt;I didn’t just use AI to give me a solution or a pretty picture. I used it as part of a deep design co-creation process, albeit with a computer.&lt;/p&gt;
&lt;p&gt;I was impressed by how far it got. I&amp;rsquo;ll share more detail at some point. But I&amp;rsquo;ve only done it once, and not in a real team context. Putting it out into the world as a finished thing would be the very thing I&amp;rsquo;m arguing against: prompt, response, done.&lt;/p&gt;
&lt;h2 id="the-real-risk-is-what-people-act-on"&gt;The real risk is what people act on&lt;/h2&gt;
&lt;p&gt;What the shortcut gets you is an output. It may well look plausible.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s the real risk. It&amp;rsquo;s bigger than who gets to design. AI output is so convincing that people act on it. A prototype gets mistaken for a decision. A confident summary gets treated as fact. Just because it looks right doesn&amp;rsquo;t mean it is.&lt;/p&gt;
&lt;p&gt;So someone has to ask. Is it solving the right problem? Is it solving the problem right? Is it built on evidence, or on something that only sounds like evidence? Did anyone think critically about it, or did that step get skipped? Who does it leave out? And who else understands it, or was it made in a silo?&lt;/p&gt;
&lt;p&gt;Those are design questions. Answering them is the job.&lt;/p&gt;
&lt;figure class="figure figure--aside"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/designer-in-the-loop//blog/designer-in-the-loop/03-lab-verified-solution.png" alt="A culture result as the GP would see it in the prototype, with a blue &amp;#39;Lab verified&amp;#39; label. Alongside, notes saying no lab has been asked whether this is possible, that other ideas depend on it, and that the first step is to ask pathology labs."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;It took seconds to design, and it&amp;#39;s probably the label a GP would trust most. Nobody has checked whether it’s feasible.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;People talk about keeping a human in the loop with AI. I&amp;rsquo;m not saying everything has to go through a designer. But the critical thinking that design brings to a team has to stay in the loop, and that&amp;rsquo;s where designers earn their place.&lt;/p&gt;
&lt;p&gt;They start with outcomes. Before anything is generated, a designer makes sure the whole team knows what problem we&amp;rsquo;re solving, for whom, and how we&amp;rsquo;ll know if it&amp;rsquo;s worked.&lt;/p&gt;
&lt;p&gt;They think critically about what comes back. Ask an AI for personas and every quote in them will be written, not heard. A designer keeps the thinking traceable, and treats all of it as an assumption or a hypothesis to test in delivery, until it&amp;rsquo;s validated or disproven with real people.&lt;/p&gt;
&lt;figure class="figure figure--aside"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/designer-in-the-loop//blog/designer-in-the-loop/02-persona-written-not-heard.png" alt="A proto-persona card for a GP who has a few seconds with a patient to decide what to trust. It covers their day, a quote, who they trust, and their riskiest guess. Each line is tagged. Only one comes from desk research. The quote and the trust rules are AI assumptions."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;It reads like a real person, and that&amp;#39;s the risk. It&amp;#39;s useful for starting a conversation, but not as evidence.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;They look for the edges. Generated work drifts towards the average. A designer asks whose needs we&amp;rsquo;re not meeting, because those people are often the hardest to reach, and their needs the most interesting problems to solve.&lt;/p&gt;
&lt;p&gt;They align humans. Getting a GP, a pharmacist and a patient to agree on what problem we&amp;rsquo;re solving doesn&amp;rsquo;t happen one-on-one with a computer. Designers create shared understanding, communicate it, and inject enough certainty that a whole team can make progress.&lt;/p&gt;
&lt;p&gt;And they&amp;rsquo;re connoisseurs. Over years of experience, designers build a sense of what good looks like, and what bad looks like, mostly from getting it wrong. The best connoisseurs are connoisseurs for a reason: they have a deep understanding of users, of the problem, and of the product and technical context. That&amp;rsquo;s what lets them steer the back and forth of prompting and iterating towards something worth having. And it&amp;rsquo;s what lets them see what&amp;rsquo;s missing when something only looks finished.&lt;/p&gt;
&lt;p&gt;I see a lot of people saying roles are changing and designers need to become prompt designers. I don&amp;rsquo;t agree. What you put into the machine is part of it, sure. But the more critical end is what comes out.&lt;/p&gt;
&lt;p&gt;None of this is new. It&amp;rsquo;s always been the job. AI just makes it easier to skip. That&amp;rsquo;s the unintended consequence we all need to be aware of.&lt;/p&gt;
&lt;h2 id="using-ai-purposefully-as-a-multiplier"&gt;Using AI purposefully, as a multiplier&lt;/h2&gt;
&lt;p&gt;So this is also a message to designers. If you use AI, use it purposefully. Be pragmatic about it, not dogmatic.&lt;/p&gt;
&lt;p&gt;Used well, it becomes a multiplier rather than a replacement. It accelerates the skills you already have instead of standing in for them.&lt;/p&gt;
&lt;p&gt;Just be open about it. Using AI quietly, on your own, is how silos start. Openness is where shared understanding starts. So own it and say it plainly. Yes, we&amp;rsquo;re using AI. This is how.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why I&amp;rsquo;m excited by the idea of using it in a structured and repeatable way. There&amp;rsquo;ll be a process. We can go through it together.&lt;/p&gt;
&lt;p&gt;These are strong opinions, loosely held. I&amp;rsquo;m still experimenting, and I expect my position to change. Adapting is what designers do.&lt;/p&gt;
&lt;p&gt;But I&amp;rsquo;m sure of this much. Anyone can make an output, and I hope more people do. Outcomes still need someone in the loop thinking critically.&lt;/p&gt;
&lt;p&gt;So don&amp;rsquo;t be afraid of AI. But don&amp;rsquo;t be lazy with it either.&lt;/p&gt;
&lt;p&gt;Be the designer in the loop.&lt;/p&gt;</description></item><item><title>The Dark (Mode) Web Rises</title><link>https://charlesrt.uk/blog/the-dark-web-rises/</link><pubDate>Wed, 28 Nov 2018 20:50:37 +0000</pubDate><guid>https://charlesrt.uk/blog/the-dark-web-rises/</guid><description>&lt;p&gt;&lt;em&gt;This is part 3 in a series about why we need Dark Mode to be an inclusive design consideration.&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://charlesrt.uk/blog/solving-molly-watts-problems"&gt;Molly Watt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://charlesrt.uk/blog/apple-need-a-dark-mode-for-people-like-molly-watt/"&gt;Apple need a Dark Mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The Dark (Mode) Web Rises&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In 2016, I met Molly Watt.&lt;/p&gt;
&lt;p&gt;I was inspired by Molly and her experience of living with &lt;a href="http://www.molly-watt-trust.org"&gt;Usher Syndrome&lt;/a&gt;; a condition that has left her deaf with 5&amp;ndash;degree vision in one eye. &lt;a href="https://charlesrt.uk/blog/solving-molly-watts-problems"&gt;I wrote about my immediate desire to solve some of the problems Molly faces with using digital products&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then, in 2017, &lt;a href="https://charlesrt.uk/blog/apple-need-a-dark-mode-for-people-like-molly-watt/"&gt;I wrote a follow up post on how Apple (and others) need a Dark Mode&lt;/a&gt;; a system-level preference setting that would affect the interfaces of native, third-party apps and websites.&lt;/p&gt;
&lt;p&gt;This year (2018), we were gifted with an update to MacOS: Mojave. Mojave shipped with a system-level &lt;strong&gt;Dark Mode&lt;/strong&gt; preference setting. Finally!&lt;/p&gt;
&lt;p&gt;Turning on Dark Mode in Mojave made instant changes to the system interface and the native Mac apps. Soon after, third-party apps started to release updates that took advantage of this preference setting too; making their interfaces work in Dark Mode. But, there was still a gap: websites.&lt;/p&gt;
&lt;p&gt;Whilst the Safari app supported Dark Mode, there was no change to the content of the websites viewed through it. Glaring white websites were still glaringly white. It felt like a giant leap in the right direction but a small step short: until now.&lt;/p&gt;
&lt;h2 id="give-yourself-to-the-dark-side"&gt;Give yourself to the dark side&lt;/h2&gt;
&lt;p&gt;Please, allow me to introduce you to the &lt;code&gt;prefers-color-scheme&lt;/code&gt; CSS media query.&lt;/p&gt;
&lt;p&gt;Media queries are used to modify a website depending on specific characteristics (print, size, orientation, etc).&lt;/p&gt;
&lt;p&gt;Now, we have one to detect if a user has set system-level preferences to use a light or dark colour theme.&lt;/p&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/the-dark-web-rises//blog/the-dark-web-rises/dark-web-demo.gif" alt="MacOS Mojave has system-level colour preferences"&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;MacOS Mojave has system-level colour preferences&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This feature is not yet ready for use on general release browsers but it&amp;rsquo;s coming soon. &lt;a href="https://webkit.org/blog/8475/release-notes-for-safari-technology-preview-68/"&gt;Safari Technology Preview 68&lt;/a&gt; added support last month so hopefully, it won&amp;rsquo;t be long before this finds its way into a mainstream Safari release.&lt;/p&gt;
&lt;h2 id="add-support-for-dark-mode-on-your-website"&gt;Add support for Dark Mode on your website&lt;/h2&gt;
&lt;p&gt;Developers can (and should) start getting their websites ready for Dark Mode. You can install &lt;a href="https://developer.apple.com/safari/download/"&gt;Safari Technology Preview&lt;/a&gt; now and start designing the perfect Dark Mode theme using colours that compliment your brand and work consistently across your website.&lt;/p&gt;
&lt;p&gt;A simple example, to get you started:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt; &lt;span class="nt"&gt;screen&lt;/span&gt; &lt;span class="nt"&gt;and&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;dark&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="dark-by-default"&gt;Dark by default&lt;/h2&gt;
&lt;p&gt;You might notice that my own website is dark by default. I have made this decision as it&amp;rsquo;s not only my preference but I know it works better for Molly and for users in certain scenarios (browsing at night, migraines, hangovers, etc). Designing for the few, makes things better for the many.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve used the &lt;code&gt;prefers-color-scheme&lt;/code&gt; CSS media query to target the &lt;code&gt;light&lt;/code&gt; preference. If you are using &lt;a href="https://developer.apple.com/safari/download/"&gt;Safari Technology Preview&lt;/a&gt; on Mojave and have your preferences set to &lt;code&gt;light&lt;/code&gt; you&amp;rsquo;ll see the light theme of my website.&lt;/p&gt;
&lt;p&gt;You do this using:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt; &lt;span class="nt"&gt;screen&lt;/span&gt; &lt;span class="nt"&gt;and&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;light&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="the-future-is-dark-a-good-thing"&gt;The future is dark (a good thing)&lt;/h2&gt;
&lt;p&gt;I am a designer at the UK government. This series of posts started as a result of wanting to influence the design of &lt;a href="http://gov.uk"&gt;GOV.UK&lt;/a&gt; (a typically white website) so that it works better for users like Molly Watt.&lt;/p&gt;
&lt;p&gt;So far, I haven&amp;rsquo;t got very far with this. Every potential solution seemed to come with a degree of risk and complication when considering the design principle: &lt;a href="https://www.gov.uk/guidance/government-design-principles#this-is-for-everyone"&gt;this is for everyone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I reckon that using &lt;code&gt;prefers-color-scheme&lt;/code&gt; CSS media query is a risk-free low-impact solution. It will give &lt;a href="http://gov.uk"&gt;GOV.UK&lt;/a&gt; a Dark Mode for the users that prefer one and remain the same for everyone else. I&amp;rsquo;m going to prototype this and start pushing to make it happen.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m hopeful that, the more websites (and big brands) that implement and blog about their Dark Modes, the more chance we&amp;rsquo;ll have of seeing this feature across all browsers (not just Safari).&lt;/p&gt;
&lt;p&gt;Other platforms need to start introducing their own system-level Dark Mode preference setting to work this way too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Look out for a similar feature coming to iOS soon.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I can&amp;rsquo;t wait to see how websites take advantage of this new CSS media query. Share how you use it: tweet me &lt;a href="https://twitter.com/charles_rt/"&gt;@charles_rt&lt;/a&gt; or toot me &lt;a href="https://mastodon.social/@crt"&gt;@crt&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Better responsive iframe for embedded YouTube video</title><link>https://charlesrt.uk/blog/better-responsive-iframe-for-embedded-youtube-video/</link><pubDate>Thu, 09 Aug 2018 08:03:51 +0100</pubDate><guid>https://charlesrt.uk/blog/better-responsive-iframe-for-embedded-youtube-video/</guid><description>&lt;p&gt;I started to include embedded music videos from YouTube on a couple of blog posts, just for fun.&lt;/p&gt;
&lt;p&gt;This presented an interesting challenge; YouTube videos are embedded in iframes. You can give them a fixed height and width which ensures they display correctly but then they overflow the screen on a smaller viewport. Alternatively, you can specify a width of 100% which makes the width respond as intended but there&amp;rsquo;s no way to get the height to comply and maintain the correct aspect ratio.&lt;/p&gt;
&lt;p&gt;I searched online and found a couple of solutions; neither of which I was keen on.&lt;/p&gt;
&lt;h2 id="extra-html"&gt;Extra HTML&lt;/h2&gt;
&lt;p&gt;The first common solution I found involved adding an additional &lt;code&gt;div.wrapper&lt;/code&gt; around the iframe and applying CSS to both. Whilst this does work, I didn&amp;rsquo;t want to have to add extra HTML for stylistic purposes. I should be able to do this job using CSS only, on the main element.&lt;/p&gt;
&lt;h2 id="javascript-"&gt;Javascript 😒&lt;/h2&gt;
&lt;p&gt;The second solution involved the use of javascript which I wasn&amp;rsquo;t interested in. If I can get away with it, I don&amp;rsquo;t want to use any javascript on this site.&lt;/p&gt;
&lt;h2 id="a-better-solution-using-calc"&gt;A better solution using calc()&lt;/h2&gt;
&lt;p&gt;After [a lot of] trial and error, I discovered a great use for &lt;code&gt;calc()&lt;/code&gt;. The &lt;code&gt;calc()&lt;/code&gt; function lets you perform calculations on CSS property values.&lt;/p&gt;
&lt;p&gt;The clever part that makes this work is knowing the width of my main content containing block: &lt;code&gt;512px&lt;/code&gt;. I don&amp;rsquo;t need to worry about the iframe being responsive beyond this width. I know the width it should be. I can specify the appropriate height for a 16:9 widescreen aspect ratio.&lt;/p&gt;
&lt;p&gt;I set &lt;code&gt;width: 100%;&lt;/code&gt; as this should always be true even though I know the exact width it makes things simpler later. I then set &lt;code&gt;height: calc((512px / 16) * 9);&lt;/code&gt;. Technically, I don&amp;rsquo;t have to do this. I could calculate the height manually as it won&amp;rsquo;t change when the width is above &lt;code&gt;512px&lt;/code&gt; but I&amp;rsquo;ve left the calculation in so you can see what changes later to make the magic happen. &lt;code&gt;(512px / 16) * 9&lt;/code&gt; equals the correct height for a 16:9 widescreen aspect ratio when I know the width is &lt;code&gt;512px&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When the viewport is narrower than &lt;code&gt;512px&lt;/code&gt;, I use a media query to make the iframe respond accordingly. The width is already set to &lt;code&gt;100%&lt;/code&gt; so I don&amp;rsquo;t need to worry about that. It&amp;rsquo;s the height I need to start responding at the correct size to maintain a 16:9 widescreen aspect ratio. The width of the viewport is suddenly very relevant to help achieve this. I am able to find out what the width of the viewport is by using &lt;code&gt;vw&lt;/code&gt; as a measurement unit.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;vw&lt;/code&gt; is equal to 1% of the width of the viewport and the browser knows what this is whenever it changes. I can use the measurement of &lt;code&gt;100vw&lt;/code&gt; in my calculation to track the width of the viewport and serve up the right height to maintain a responsive aspect ratio with &lt;code&gt;height: calc((100vw / 16) * 9);&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;max-width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;512px&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;iframe&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;vw&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;That&amp;rsquo;s it: a better responsive iframe for embedded YouTube videos using CSS only, on the element.&lt;/p&gt;</description></item><item><title>Dat’s the way I like it</title><link>https://charlesrt.uk/blog/dats-the-way-i-like-it/</link><pubDate>Fri, 03 Aug 2018 19:10:07 +0100</pubDate><guid>https://charlesrt.uk/blog/dats-the-way-i-like-it/</guid><description>&lt;figure class="youtube"&gt;
&lt;div class="youtube__screen"&gt;
&lt;iframe src="https://www.youtube-nocookie.com/embed/k_ZPaQUS8W4?rel=0" title="Video embedded in Dat’s the way I like it" loading="eager" referrerpolicy="strict-origin-when-cross-origin" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;I committed to supporting a decentralised peer-to-peer web by serving my site over &lt;strong&gt;dat://&lt;/strong&gt; as well as &lt;strong&gt;https://&lt;/strong&gt;. Since starting this I have been stumped as to how to make my url over dat:// friendly, because &lt;a href="dat://59278ae8cc9d27492b4a0a5d4392ff3c913aebd8fa079760ce732f26b70c4eef"&gt;dat://59278ae8cc9d27492b4a0a5d4392ff3c913aebd8fa079760ce732f26b70c4eef&lt;/a&gt; &lt;em&gt;(open in &lt;a href="https://beakerbrowser.com"&gt;BeakerBrowser&lt;/a&gt;)&lt;/em&gt; is just mean.&lt;/p&gt;
&lt;p&gt;I could see other sites had achieved this. Beaker&amp;rsquo;s own site does exactly what I wanted with &lt;a href="dat://beakerbrowser.com/"&gt;dat://beakerbrowser.com/&lt;/a&gt; &lt;em&gt;(open in &lt;a href="https://beakerbrowser.com"&gt;BeakerBrowser&lt;/a&gt;)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I read several docs about it and kept getting confused to the point that I&amp;rsquo;d give up, hoping to return later with a fresh mind and try again.&lt;/p&gt;
&lt;p&gt;Eventually, I have succeeded and it is ridiculously easy so I&amp;rsquo;ll share a simple step-by-step guide so you don&amp;rsquo;t have to do through the same pain.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a folder called &lt;code&gt;.well-known&lt;/code&gt; in the root of your https:// served directory.&lt;/li&gt;
&lt;li&gt;Create a file called &lt;code&gt;dat&lt;/code&gt; in that folder.&lt;/li&gt;
&lt;li&gt;Add the following code to that file, replacing {key} with the mega long dat URL key to your site. Fe, dat://59278ae8cc9d27492b4a0a5d4392ff3c913aebd8fa079760ce732f26b70c4eef
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dat://{key}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;TTL=60&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Save and upload to wherever you host your https:// site.&lt;/li&gt;
&lt;li&gt;Now, visit your site in &lt;a href="https://beakerbrowser.com"&gt;BeakerBrowser&lt;/a&gt; but use dat:// instead of https:// as the URL and automagically it works 🎉&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/dats-the-way-i-like-it//blog/dats-the-way-i-like-it/screenshot-2018-08-03-19-29-24.png" alt="dat://charlesrt.uk is finally working and it turns out it was easy peasy hotdog squeezy."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;dat://charlesrt.uk is finally working and it turns out it was easy peasy hotdog squeezy.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;</description></item><item><title>This is my baseline</title><link>https://charlesrt.uk/blog/this-is-my-baseline/</link><pubDate>Thu, 26 Jul 2018 16:47:08 +0100</pubDate><guid>https://charlesrt.uk/blog/this-is-my-baseline/</guid><description>&lt;p&gt;I&amp;rsquo;m throwing caution to the wind and forgetting about global CSS resets like &lt;a href="https://necolas.github.io/normalize.css/"&gt;normalize.css&lt;/a&gt; and &lt;a href="https://meyerweb.com/eric/tools/css/reset/"&gt;Eric Meyer&amp;rsquo;s reset.css&lt;/a&gt; because:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;I&amp;rsquo;m not convinced I need to make use of everything in these resets (I don&amp;rsquo;t even know what &lt;code&gt;&amp;lt;kbd&amp;gt;&lt;/code&gt; is 🤷‍♂️) or support all the browsers they attempt to. Does it matter if someone visits my tiny website in IE8 and something doesn&amp;rsquo;t look perfect? I&amp;rsquo;ll give you a hint: no.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They&amp;rsquo;re pretty bloated because they&amp;rsquo;re trying to fix everything for everyone. I don&amp;rsquo;t need 341 lines of code before I&amp;rsquo;ve even written a line of my own.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There&amp;rsquo;s no point in resetting something that I&amp;rsquo;m just going to override later. I should declare the values I want to set and forget the reset.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is my master plan: to lay only the CSS foundation I need to&amp;mdash;when I need to&amp;mdash;and layer on my opinionated component styling to serve as my own default for building websites: my baseline.&lt;/p&gt;
&lt;figure class="youtube"&gt;
&lt;div class="youtube__screen"&gt;
&lt;iframe src="https://www.youtube-nocookie.com/embed/Jd5GaSPeNJY?rel=0" title="Video embedded in This is my baseline" loading="eager" referrerpolicy="strict-origin-when-cross-origin" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="my-baseline"&gt;My Baseline&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;This post is out of date relative to the CSS I&amp;rsquo;m currently using on this site. I will update this and create a repo as soon as possible.&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;system-ui&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;apple-system&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;BlinkMacSystemFont&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Segoe UI&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Roboto&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Oxygen&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Ubuntu&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Cantarell&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Fira Sans&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Droid Sans&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Helvetica Neue&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Apple Color Emoji&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Segoe UI Emoji&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Segoe UI Symbol&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kc"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;overflow-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;break-word&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-ms-&lt;/span&gt;&lt;span class="n"&gt;text-size-adjust&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-webkit-&lt;/span&gt;&lt;span class="n"&gt;text-size-adjust&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-webkit-&lt;/span&gt;&lt;span class="n"&gt;font-smoothing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;antialiased&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-moz-&lt;/span&gt;&lt;span class="n"&gt;osx-font-smoothing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grayscale&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-webkit-&lt;/span&gt;&lt;span class="n"&gt;tap-highlight-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;silver&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;blockquote&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;figure&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kc"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h5&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h6&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;bold&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;800&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h3&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h4&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;aqua&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;link&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;visited&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;aqua&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;hover&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;active&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;focus&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;yellow&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;figcaption&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;gray&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;code&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;navy&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;gray&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;.875&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;letter-spacing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;.05&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;.125&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt; &lt;span class="mf"&gt;.25&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Let&amp;rsquo;s break it down.&lt;/p&gt;
&lt;h3 id="images"&gt;Images&lt;/h3&gt;
&lt;p&gt;One of the immediately obvious problems viewing my website using only native browser styling is how images are rendered: huge. Well, full size to be fair, but in all circumstances that full size is much bigger than your average viewport. On mobile it&amp;rsquo;s just ridiculous so let&amp;rsquo;s add some CSS to take care of this.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;By using &lt;code&gt;max-width: 100%;&lt;/code&gt; images will confine themselves to the &lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt; element and stop overflowing the viewport. Aspect ratios are kept in check with &lt;code&gt;height: auto;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/img-before.png" alt="Clearly there&amp;#39;s a problem with lack of default img styling."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;Clearly there&amp;#39;s a problem with lack of default img styling.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/img-after.png" alt="Much better. Now you can see me, Chris and the legendary Jake Knapp."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;Much better. Now you can see me, Chris and the legendary Jake Knapp.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id="margins"&gt;Margins&lt;/h3&gt;
&lt;p&gt;Now my images are in control it&amp;rsquo;s clear there are some unwanted margins present. It might be necessary to play with the content rhythm later but that&amp;rsquo;s a conscious design decision that&amp;rsquo;ll need be made. In the meantime everything should be aligned consistently.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;blockquote&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;figure&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/margin-before.png" alt="Browser defaults have made design decisions for me."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;Browser defaults have made design decisions for me.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/margin-after.png" alt="Consistent alignment but too close to the edge."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;Consistent alignment but too close to the edge.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;All content is now aligned to the very edge of the viewport and is only constrained by the width of the users browser. This isn&amp;rsquo;t ideal and can make for some lengthy reading lines.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to solve this problem by wrapping the dominant content of the page in a &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; element with a maximum width of &lt;code&gt;512px&lt;/code&gt;. This keeps line lengths appropriate for better readability. The content block is centred with &lt;code&gt;auto&lt;/code&gt; margins left and right, while a little padding keeps content off the edges of smaller viewports.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kc"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Better&lt;/strong&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/margin-better.png" alt="If only, browsers did this by default."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;If only, browsers did this by default.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id="typography"&gt;Typography&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve already started to address some typographic defaults by setting a maximum width on the content to maintain a readable line length. Time to get serious.&lt;/p&gt;
&lt;p&gt;System fonts are the new black. All browsers should use system fonts by default. This means my website will use the same core font as the device you are using. Fe, San Fransisco on iOS or Roboto on Android.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s go through them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;system-ui&lt;/code&gt; is future proofing this concept and the latest versions of Safari and Chrome already use this so eventually we don&amp;rsquo;t have to maintain a huge stack.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-apple-system, BlinkMacSystemFont&lt;/code&gt; is for Apple device users and dynamically uses the correct font depending on size between San Fransisco and San Fransisco Display.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Segoe UI&amp;quot;, &amp;quot;Roboto&amp;quot;, &amp;quot;Oxygen&amp;quot;, &amp;quot;Ubuntu&amp;quot;, &amp;quot;Cantarell&amp;quot;, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;&lt;/code&gt; take care of every other operating system I could find.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Helvetica Neue&amp;quot;&lt;/code&gt; is for legacy Apple devices.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;&lt;/code&gt; force the use of the devices emoji fonts which are often more up-to-date than the browsers.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sans-serif&lt;/code&gt; if all else fails.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not all browsers share the same &lt;code&gt;font-size&lt;/code&gt; and &lt;code&gt;line-height&lt;/code&gt; so setting defaults for this ensures consistency and provides a base to build off. &lt;code&gt;16px&lt;/code&gt; and &lt;code&gt;1.5&lt;/code&gt; are a great default for better reading.&lt;/p&gt;
&lt;p&gt;On occasion, I display full URLs as part of links in content. If lengthy, these can overflow the &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; container and cause some unwanted side-scrolling. &lt;code&gt; overflow-wrap: break-word;&lt;/code&gt; stops this from happening.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;text-size-adjust&lt;/code&gt; declarations stop mobile browsers from scaling your text causing rendering issues. Why they do this: I don&amp;rsquo;t know.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s good to use &lt;code&gt;font-smoothing&lt;/code&gt; to make text lighter and easier to scan. This also helps prevents occasional flicker on load or scroll and takes some load off browser performance too.&lt;/p&gt;
&lt;p&gt;Finally &lt;code&gt;tap-highlight-color&lt;/code&gt; hides the flicker that happens when you tap an element on mobile devices. I&amp;rsquo;ll need to ensure I have suitable hover states later so users get feedback to their interaction.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;system-ui&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;apple-system&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;BlinkMacSystemFont&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Segoe UI&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Roboto&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Oxygen&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Ubuntu&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Cantarell&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Fira Sans&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Droid Sans&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Helvetica Neue&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Apple Color Emoji&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Segoe UI Emoji&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;Segoe UI Symbol&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kc"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;overflow-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;break-word&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-ms-&lt;/span&gt;&lt;span class="n"&gt;text-size-adjust&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-webkit-&lt;/span&gt;&lt;span class="n"&gt;text-size-adjust&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-webkit-&lt;/span&gt;&lt;span class="n"&gt;font-smoothing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;antialiased&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-moz-&lt;/span&gt;&lt;span class="n"&gt;osx-font-smoothing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grayscale&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kp"&gt;-webkit-&lt;/span&gt;&lt;span class="n"&gt;tap-highlight-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/typography-before.png" alt="This looks a little unpleasant and the browser doesn&amp;#39;t understand the latest unicode [emoji] characters."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;This looks a little unpleasant and the browser doesn&amp;#39;t understand the latest unicode [emoji] characters.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/typography-after.png" alt="A much better default."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;A much better default.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id="colour"&gt;Colour&lt;/h3&gt;
&lt;p&gt;Colour choice can be highly opinionated&amp;mdash;such as my desire for &amp;lsquo;dark by default&amp;rsquo; user interfaces&amp;mdash;but there&amp;rsquo;s sound reason behind it you can read more about in &lt;a href="https://charlesrt.uk/blog/apple-need-a-dark-mode-for-people-like-molly-watt/"&gt;Apple and others need a dark mode for people like Molly Watt&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Where possible, baseline colours should aim for strong &lt;a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html"&gt;Level AAA&lt;/a&gt; contrast ratios. Whilst Level AA is the minimum, there is rarely a need to go so low and higher contrast can be better for everyone. However, go too high and you could be introducing unwanted glare.&lt;/p&gt;
&lt;p&gt;Be mindful of the colours you choose. This is where colour choice is less about opinion and more about responsible selection and use.&lt;/p&gt;
&lt;p&gt;Another thing to be mindful of is links. Links are the cornerstone of the internet so it&amp;rsquo;s surprising they&amp;rsquo;re still not handled well by default.&lt;/p&gt;
&lt;p&gt;Hover states should always be honoured regardless of whether the link has been previously visited or not. On that subject, visited links don&amp;rsquo;t need their own distinguished style; they should be styled the same as regular links. Don&amp;rsquo;t forget about focus states for keyboard users.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;silver&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;aqua&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;link&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;visited&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;aqua&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;hover&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;active&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;focus&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;yellow&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;figcaption&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;gray&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;code&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;navy&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;gray&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/colour-after.png" alt="Dark by default; Level AAA colour contrast."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;Dark by default; Level AAA colour contrast.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id="font-size-and-margins"&gt;Font size and margins&lt;/h3&gt;
&lt;p&gt;A lot of CSS resets aim to do just that: reset. They take away any browser styling and make everything the same so you can declare the values you want after&amp;mdash;but. You can do this anyway. There is no need to reset a value. Just declare your own from the outset.&lt;/p&gt;
&lt;p&gt;I enjoy working with multiples of 8 and only tend to deviate for certain elements. You can achieve good progressive size and spacing this way: 8px 16px 32px 64px 128px.&lt;/p&gt;
&lt;p&gt;I use &lt;code&gt;rem&lt;/code&gt; as it&amp;rsquo;s easier to work from my root em measurement which is &lt;code&gt;16px&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h5&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h6&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;bold&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;800&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h3&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;h4&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;code&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;.875&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;letter-spacing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;.05&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;.125&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt; &lt;span class="mf"&gt;.25&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/this-is-my-baseline//blog/this-is-my-baseline/size-after.png" alt="8 16 32 64 128."&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;8 16 32 64 128.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;</description></item><item><title>Making progress</title><link>https://charlesrt.uk/blog/making-progress/</link><pubDate>Wed, 25 Jul 2018 10:23:59 +0100</pubDate><guid>https://charlesrt.uk/blog/making-progress/</guid><description>&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/making-progress//blog/making-progress/screenshot-2018-07-25-10-23-21.png" alt="Things are still looking basic but I&amp;#39;m making progress"&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;Things are still looking basic but I&amp;#39;m making progress&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I&amp;rsquo;ve had some time away and I&amp;rsquo;m mostly relying on train journeys to make updates so progress has been slow but I&amp;rsquo;m getting somewhere.&lt;/p&gt;
&lt;p&gt;All of the important content from my previous website build has been migrated and is better structured from a directory perspective. Redirects are in place to ensure I don&amp;rsquo;t break the web and I have a &lt;a href="https://gulpjs.com"&gt;Gulp&lt;/a&gt; task running to compile &lt;a href="http://stylus-lang.com"&gt;Stylus&lt;/a&gt; (my preprocessor of choice) into CSS.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m ready to think about my &lt;a href="https://charlesrt.uk/blog/design-goals"&gt;design goals&lt;/a&gt; and how I will structure the content better for the user so that navigation is contextual and I&amp;rsquo;m getting across the right message and flow.&lt;/p&gt;
&lt;p&gt;Before that, I&amp;rsquo;m going to consider what a good baseline CSS should be.&lt;/p&gt;</description></item><item><title>Style.less</title><link>https://charlesrt.uk/blog/style-less/</link><pubDate>Wed, 11 Jul 2018 09:54:15 +0100</pubDate><guid>https://charlesrt.uk/blog/style-less/</guid><description>&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/style-less//blog/style-less/screenshot-2018-07-12-08-48-00.png" alt="No style here"&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;No style here&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Right now, things are looking a little basic.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;Style&lt;/span&gt; &lt;span class="nt"&gt;Attribute&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;🤷‍♂️&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The plan was to get the website up and running and let your default browser styles do the work, then carefully layer on top the bare minimum required to achieve the &lt;a href="https://charlesrt.uk/blog/design-goals"&gt;design goals&lt;/a&gt; I set.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;d think I would have done more research into &lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt; before choosing it as the framework to rebuild my website. It turns out it doesn&amp;rsquo;t natively do any CSS preprocessing. I don&amp;rsquo;t know why I assumed it did&amp;mdash;I guess because so many &lt;a href="http://staticgen.com/"&gt;static site generators&lt;/a&gt; do.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t the end of the world&amp;mdash;I do know how to write in vanilla CSS&amp;mdash;I&amp;rsquo;ve just gotten used to writing in syntax, like &lt;a href="http://lesscss.org"&gt;less&lt;/a&gt;, and taking advantage of the power that has to offer, such as variables, mixins, etc.&lt;/p&gt;
&lt;p&gt;Not to worry. I&amp;rsquo;ll take a small break to add some sort of &lt;a href="https://gulpjs.com"&gt;Gulp&lt;/a&gt; task and do some of the mundane work that needs doing first; like migrating all my old blog posts and making sure redirects are in place so as not to break the web.&lt;/p&gt;</description></item><item><title>Design goals</title><link>https://charlesrt.uk/blog/design-goals/</link><pubDate>Wed, 11 Jul 2018 09:40:39 +0100</pubDate><guid>https://charlesrt.uk/blog/design-goals/</guid><description>&lt;p&gt;Design decisions will be based on a combination of the assumptions I make on what people might want, and the message and flow I want to get across.&lt;/p&gt;
&lt;p&gt;I also want to achieving the following goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;move away from Jekyll and build my site with Hugo which I&amp;rsquo;ve had my eye on ✅&lt;/li&gt;
&lt;li&gt;use only contextual navigation; no &lt;em&gt;&amp;ldquo;I don&amp;rsquo;t know what I want&amp;rdquo;&lt;/em&gt; menu&lt;/li&gt;
&lt;li&gt;focus on typography; include emoji (the universal language of the future) at every opportunity 😉&lt;/li&gt;
&lt;li&gt;allow for long and short form posts&lt;/li&gt;
&lt;li&gt;create an owned space for my content to exist &lt;em&gt;first&lt;/em&gt; before sharing to centralised social networks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ll add to and revisit this list of goals as I go.&lt;/p&gt;</description></item><item><title>Hello World</title><link>https://charlesrt.uk/blog/hello-world/</link><pubDate>Wed, 11 Jul 2018 08:24:18 +0100</pubDate><guid>https://charlesrt.uk/blog/hello-world/</guid><description>&lt;figure class="figure"&gt;
&lt;div class="figure__screen"&gt;&lt;img src="https://charlesrt.uk/blog/hello-world//blog/hello-world/screenshot-2018-07-11-08-50-04.png" alt="A screenshot of my zero dawn refresh served over the peer-to-peer web via Beaker Browser. It works!"&gt;&lt;/div&gt;
&lt;figcaption&gt;
&lt;p&gt;A screenshot of my zero dawn refresh served over the peer-to-peer web via Beaker Browser. It works!&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I have been meaning to redesign my website for a long time. I want to do more than just another &lt;em&gt;re:skin&lt;/em&gt; so I am starting from scratch and designing the site live; partly to open my process to others who want to see and learn, partly to hold myself accountable so I do it properly.&lt;/p&gt;
&lt;p&gt;Live design: means more than just having my code commits in the open on &lt;a href="https://gitlab.com/charlesrt/charlesrt.hugo"&gt;Gitlab&lt;/a&gt;. Instead of large wholesale design changes magically appearing on the internet, each individual change I make can be tracked live over &lt;strong&gt;dat://&lt;/strong&gt; the peer-to-peer web, enabled by the &lt;a href="https://datproject.org"&gt;Dat Protocol&lt;/a&gt;. If you use &lt;a href="https://beakerbrowser.com"&gt;BeakerBrowser&lt;/a&gt; you can turn on &lt;em&gt;live reloading&lt;/em&gt;, to experience changes and blog updates auto refresh, as they happen. This, essentially, allows me to create a live blogging engine without any additional code.&lt;/p&gt;
&lt;p&gt;You will still be able to refresh [the old fashioned way] over &lt;strong&gt;https://&lt;/strong&gt; if you use any other browser.&lt;/p&gt;
&lt;p&gt;I can&amp;rsquo;t promise I will blog about the reason behind every design decision: but I will try.&lt;/p&gt;
&lt;p&gt;This, is all part of my commitment to support a better, open and decentralised web for the future.&lt;/p&gt;</description></item></channel></rss>