<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ashley Kolodziej</title>
    <description>The latest articles on DEV Community by Ashley Kolodziej (@ashleykolodziej).</description>
    <link>https://dev.to/ashleykolodziej</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F492856%2F92821e34-b5c9-4682-8620-2568da080ca3.jpeg</url>
      <title>DEV Community: Ashley Kolodziej</title>
      <link>https://dev.to/ashleykolodziej</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashleykolodziej"/>
    <language>en</language>
    <item>
      <title>Exploring circular text in CSS and SVG</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Sun, 26 Jun 2022 01:05:32 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/exploring-circular-text-in-css-and-svg-bc1</link>
      <guid>https://dev.to/ashleykolodziej/exploring-circular-text-in-css-and-svg-bc1</guid>
      <description>&lt;p&gt;I decided I'm sick of the grid. I want to align some text to a circle.&lt;/p&gt;

&lt;p&gt;As it turns out, it's not so hard to do this with SVG. You don't even need a complicated path element. Just grab yourself a &lt;code&gt;&amp;lt;circle&amp;gt;&lt;/code&gt;, like so:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/ashleykolodziej/embed/XWpEdaJ?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;With this pen, I wanted to explore depth, so I adjusted the placement, opacity, and size of the text in each circle.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/ashleykolodziej/embed/poRLbeg?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;And of course, if you know me, you know I'm into my colors. So I thought, well, rainbows are sort of a circle too.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/ashleykolodziej/embed/gOgeMvJ?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing creative CSS
&lt;/h2&gt;

&lt;p&gt;My best moments in CSS are when I find out something new, and just keep riffing on it endlessly. I've got a &lt;a href="https://www.bu.edu/cds-faculty/"&gt;whole site&lt;/a&gt; dedicated to this rainbow situation here:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/ashleykolodziej/embed/VwYagVN?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This is how you learn in design school. You take a piece of paper, and you cut it up and really focus on how the shapes or colors or just one piece of it is interacting with the rest. And then, you figure out the best bits.&lt;/p&gt;

</description>
      <category>css</category>
      <category>design</category>
    </item>
    <item>
      <title>Build an idea generator from scratch, part 4: Speed up the page by caching API results [Video]</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Thu, 17 Jun 2021 23:58:28 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-4-speed-up-the-page-by-caching-api-results-video-21jd</link>
      <guid>https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-4-speed-up-the-page-by-caching-api-results-video-21jd</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/kMq3YHwEIxk"&gt;
&lt;/iframe&gt;
&lt;br&gt;
Hello again folks! This week's installment of the Idea Generator Tutorial focuses on performance and caching. We'll examine cookies and localStorage as possibilities, and how to ensure users still get fresh results periodically even with caching data. We'll also reinforce good programming practices by breaking up our functions into smaller, easier parts to manage and debug.&lt;/p&gt;

&lt;p&gt;If you're new to this series, catch up by checking out &lt;a href="https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-1-project-setup-with-github-and-dotenv-video-34mn"&gt;my post on the first tutorial in this series&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  This video covers:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to create localStorage data with expiration times so data stays fresh for returning users&lt;/li&gt;
&lt;li&gt;The difference between save and save-dev in npm packages&lt;/li&gt;
&lt;li&gt;How to troubleshoot common errors and importing with ES6 syntax&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... and, as usual, a number of other fun tidbits that will help you work more effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  The final product
&lt;/h2&gt;

&lt;p&gt;In this series, we’ll be working toward &lt;a href="https://professorkolodziej.github.io/idea-generator/"&gt;this idea generator&lt;/a&gt; as our final product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code links
&lt;/h2&gt;

&lt;p&gt;Follow along by cloning or forking the main branch here: &lt;a href="https://github.com/ProfessorKolodziej/idea-generator"&gt;https://github.com/ProfessorKolodziej/idea-generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also start on your own project by using my Student Site Boilerplate template: &lt;a href="https://github.com/ProfessorKolodziej/student-site-boilerplate/"&gt;https://github.com/ProfessorKolodziej/student-site-boilerplate/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/kMq3YHwEIxk"&gt;Catch the new video over here.&lt;/a&gt;&lt;/strong&gt; Happy coding!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;I'm always happy to connect!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐰 &lt;a href="https://twitter.com/ashleykolodziej"&gt;@ashleykolodziej on Twitter&lt;/a&gt;&lt;br&gt;
🐰 &lt;a href="https://www.youtube.com/c/ProfessorKExplains?sub_confirmation=1"&gt;Subscribe to Professor K Explains on YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>video</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Build an idea generator from scratch, part 3: Create dynamic HTML from data [Video]</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Thu, 10 Jun 2021 21:12:42 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-3-create-dynamic-html-from-data-video-45n9</link>
      <guid>https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-3-create-dynamic-html-from-data-video-45n9</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7A5h91F5wuc"&gt;
&lt;/iframe&gt;
&lt;br&gt;
Hello again folks! This week, for our Idea Generator Tutorial, we'll be focusing on HTML markup. Which tags should you choose? How do you plan your class naming and IDs while thinking of your functionality? And of course - we'll be connecting that data we pulled from the API last time to our markup as well.&lt;/p&gt;

&lt;p&gt;If you're new to this series, catch up by checking out &lt;a href="https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-1-project-setup-with-github-and-dotenv-video-34mn"&gt;my post on the first tutorial in this series&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  This video covers:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to create a solid HTML markup structure for your JavaScript app&lt;/li&gt;
&lt;li&gt;How to move that markup into templates you can use in your JavaScript&lt;/li&gt;
&lt;li&gt;How to connect the data from an API call to your page&lt;/li&gt;
&lt;li&gt;Some fun new explanations on professional Git development workflows&lt;/li&gt;
&lt;li&gt;Thinking through functionality and writing it down&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... and, as usual, a number of other fun tidbits that will help you work more effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  The final product
&lt;/h2&gt;

&lt;p&gt;In this series, we’ll be working toward &lt;a href="https://professorkolodziej.github.io/idea-generator/"&gt;this idea generator&lt;/a&gt; as our final product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code links
&lt;/h2&gt;

&lt;p&gt;Follow along by cloning or forking the main branch here: &lt;a href="https://github.com/ProfessorKolodziej/idea-generator"&gt;https://github.com/ProfessorKolodziej/idea-generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also start on your own project by using my Student Site Boilerplate template: &lt;a href="https://github.com/ProfessorKolodziej/student-site-boilerplate/"&gt;https://github.com/ProfessorKolodziej/student-site-boilerplate/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/7A5h91F5wuc"&gt;Catch the new video over here.&lt;/a&gt;&lt;/strong&gt; Happy coding!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;I'm always happy to connect!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐰 &lt;a href="https://twitter.com/ashleykolodziej"&gt;@ashleykolodziej on Twitter&lt;/a&gt;&lt;br&gt;
🐰 &lt;a href="https://www.youtube.com/c/ProfessorKExplains?sub_confirmation=1"&gt;Subscribe to Professor K Explains on YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>video</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Build an idea generator from scratch, part 2: Writing an authenticated fetch request [Video]</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Sat, 05 Jun 2021 17:56:41 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-2-writing-an-authenticated-fetch-request-video-5f7p</link>
      <guid>https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-2-writing-an-authenticated-fetch-request-video-5f7p</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/71I_pd8h0x4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;It's a new week and a new opportunity to learn! This week's section of the Idea Generator Tutorial focuses on Fetch and authenticated API calls in JavaScript.&lt;/p&gt;

&lt;p&gt;If you missed my last post, catch up by checking out &lt;a href="https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-1-project-setup-with-github-and-dotenv-video-34mn"&gt;my post on the first tutorial in this series&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  This video covers:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to write a basic fetch request to an API with JavaScript&lt;/li&gt;
&lt;li&gt;Strategies for debugging errors in fetch requests&lt;/li&gt;
&lt;li&gt;How to review API documentation and decide what endpoint to use&lt;/li&gt;
&lt;li&gt;How to add parameters to your fetch calls to narrow down data&lt;/li&gt;
&lt;li&gt;How to use the new for loop syntax in ES6 to log out individual results from an API call&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... and so much more!&lt;/p&gt;

&lt;h2&gt;
  
  
  The final product
&lt;/h2&gt;

&lt;p&gt;In this series, we’ll be working toward &lt;a href="https://professorkolodziej.github.io/idea-generator/"&gt;this idea generator&lt;/a&gt; as our final product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code links
&lt;/h2&gt;

&lt;p&gt;Follow along by cloning or forking the main branch here: &lt;a href="https://github.com/ProfessorKolodziej/idea-generator"&gt;https://github.com/ProfessorKolodziej/idea-generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also start on your own project by using my Student Site Boilerplate template: &lt;a href="https://github.com/ProfessorKolodziej/student-site-boilerplate/"&gt;https://github.com/ProfessorKolodziej/student-site-boilerplate/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/71I_pd8h0x4"&gt;Catch the new video over here.&lt;/a&gt;&lt;/strong&gt; Happy coding!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;I'm always happy to connect!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐰 &lt;a href="https://twitter.com/ashleykolodziej"&gt;@ashleykolodziej on Twitter&lt;/a&gt;&lt;br&gt;
🐰 &lt;a href="https://www.youtube.com/c/ProfessorKExplains?sub_confirmation=1"&gt;Subscribe to Professor K Explains on YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>video</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Build an idea generator from scratch, part 1: Project setup with Github and dotenv [Video]</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Fri, 28 May 2021 01:32:45 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-1-project-setup-with-github-and-dotenv-video-34mn</link>
      <guid>https://dev.to/ashleykolodziej/build-an-idea-generator-from-scratch-part-1-project-setup-with-github-and-dotenv-video-34mn</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/TqdmUdi8xbY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;So as I was finishing up teaching my web development class last year, I really wanted to give my students something to help them continue growing and learning. I decided to build an idea generator with HTML, CSS, and JavaScript using the &lt;a href="https://developer.raindrop.io/"&gt;raindrop.io API&lt;/a&gt;, and now, I’m finally getting around to posting the process recordings. Woohoo! I’ll be posting a new recording each week. &lt;/p&gt;

&lt;p&gt;In this first part of the tutorial, we'll set up a Github repository, get our template code set up, and install dotenv, a library which will help us make an authenticated call to the API securely. You'll also see your first introduction to Git Flow. I use Tower to make things a little easier, but you can use any method of interacting with git you like. This would be a great intermediate JavaScript challenge for someone looking to practice ES6 syntax! &lt;/p&gt;

&lt;h2&gt;
  
  
  This video covers:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to set up a new repository in Github using a template&lt;/li&gt;
&lt;li&gt;How to clone a remote Github repository to your computer&lt;/li&gt;
&lt;li&gt;How to use Git Flow to create a feature branch&lt;/li&gt;
&lt;li&gt;How to make an authenticated call to an API using JavaScript&lt;/li&gt;
&lt;li&gt;How to use dotenv to store access tokens and other sensitive information in your app without committing it to your codebase&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... and so much more!&lt;/p&gt;

&lt;h2&gt;
  
  
  The final product
&lt;/h2&gt;

&lt;p&gt;In this series, we’ll be working toward &lt;a href="https://professorkolodziej.github.io/idea-generator/"&gt;this idea generator&lt;/a&gt; as our final product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code links
&lt;/h2&gt;

&lt;p&gt;Follow along by cloning or forking the main branch here: &lt;a href="https://github.com/ProfessorKolodziej/idea-generator"&gt;https://github.com/ProfessorKolodziej/idea-generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also start on your own project by using my Student Site Boilerplate template: &lt;a href="https://github.com/ProfessorKolodziej/student-site-boilerplate/"&gt;https://github.com/ProfessorKolodziej/student-site-boilerplate/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/TqdmUdi8xbY"&gt;Catch the new video over here.&lt;/a&gt;&lt;/strong&gt; Happy coding!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;I'm always happy to connect!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐰 &lt;a href="https://twitter.com/ashleykolodziej"&gt;@ashleykolodziej on Twitter&lt;/a&gt;&lt;br&gt;
🐰 &lt;a href="https://www.youtube.com/c/ProfessorKExplains?sub_confirmation=1"&gt;Subscribe to Professor K Explains on YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>video</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Back to basics: Why excellent markup is the foundation of accessible content</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Fri, 21 May 2021 17:50:25 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/back-to-basics-why-excellent-markup-is-the-foundation-of-accessible-content-3kd6</link>
      <guid>https://dev.to/ashleykolodziej/back-to-basics-why-excellent-markup-is-the-foundation-of-accessible-content-3kd6</guid>
      <description>&lt;p&gt;Happy Global Accessibility Awareness day, my friends!&lt;/p&gt;

&lt;p&gt;One of the things I didn't learn until late in my career as a frontend developer was just how important HTML is to accessibility. When I first started learning to write code, HTML felt like a means to an end - something I just needed to get out of the way in order to be able to write CSS.&lt;/p&gt;

&lt;p&gt;How wrong I was.&lt;/p&gt;

&lt;p&gt;This post is for all the newbies out there who might be tempted to skip the fundamentals of HTML. Today, we're going to look at what exactly it is HTML does, and why that's so important for making your websites accessible.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML, really?
&lt;/h2&gt;

&lt;p&gt;HTML is a language of intent - the bridge between what you mean to say, and how the computer interprets it.&lt;/p&gt;

&lt;p&gt;Okay, I realize that sounds a little weird.  But hear me out. As a markup language, HTML is all about telling a computer how your content is structured. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/-8yYuRSkSdo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Why should you care about how a computer understands your content?
&lt;/h2&gt;

&lt;p&gt;Computers are the interface between your content and the rest of the world. This comes up in two contexts: search engine optimization, and accessibility.&lt;/p&gt;

&lt;p&gt;Search engines and screen readers are both computer-based interfaces that help people access information they might not otherwise be able to access. They do two different jobs, and are aimed at two different use cases, but fundamentally, they are the same: computers that interpret human intent in content. This is why so many best practices for accessibility also happen to coincide with good SEO practice.&lt;/p&gt;

&lt;p&gt;Using semantic HTML tags in your layout helps these tools understand your intent in organizing the content, and how to navigate it.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/zM1ZBY1ieuw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Think about what it's like to navigate a new neighborhood.
&lt;/h2&gt;

&lt;p&gt;Imagine if you suddenly placed in an unfamiliar neighborhood that you've never been in, and needed to find out how to get to the nearest store to buy a drink.&lt;/p&gt;

&lt;p&gt;You might ask someone for directions.&lt;/p&gt;

&lt;p&gt;You might think about some rules you know are usually true - the sun sets in the west. Streets are normally in a grid pattern. Usually, they intersect about once every block.&lt;/p&gt;

&lt;p&gt;You might look for street signs, or traffic signals. These help you understand where you are.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why is HTML so important for accessibility?
&lt;/h2&gt;

&lt;p&gt;HTML provides these types of rules and structure to make it possible to navigate content using a computer. Using a screen reader, you can ask HTML for directions - landmarks around the content. Where's the nearest &lt;code&gt;main&lt;/code&gt; content? What are some of the most important pieces of information in this &lt;code&gt;article&lt;/code&gt;, and where can I find them?&lt;/p&gt;

&lt;p&gt;HTML also has some rules that are usually true. Well-formatted HTML headings are always ordered from &lt;code&gt;h1&lt;/code&gt; to &lt;code&gt;h6&lt;/code&gt;, without skipping levels. Skipping a level is kind of like when a road you thought was straight suddenly veers off into a bunch of confusing curves. It can make it difficult to understand where you are in the neighborhood, relative to where you started.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/enP0e5oS9Z8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  How do I write more semantic HTML?
&lt;/h2&gt;

&lt;p&gt;The simple answer is to always ask yourself if your &lt;em&gt;non-semantic&lt;/em&gt; HTML elements are really the best choice for your content's meaning. Could your &lt;code&gt;div&lt;/code&gt; be a &lt;code&gt;section&lt;/code&gt; instead? In some cases, you need to add HTML to style something in a purely decorative way, and that tag doesn't have any new meaning. But in many cases, &lt;code&gt;section&lt;/code&gt;, &lt;code&gt;aside&lt;/code&gt;, and other elements are much better choices.&lt;/p&gt;

&lt;p&gt;There are &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element"&gt;over 100 elements in HTML&lt;/a&gt; - it's easy to get overwhelmed. The videos above will introduce you to the most common semantic HTML elements, so if you're not sure where to start, start with those.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;I'm always happy to connect!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐰 &lt;a href="https://twitter.com/ashleykolodziej"&gt;@ashleykolodziej on Twitter&lt;/a&gt;&lt;br&gt;
🐰 &lt;a href="https://www.youtube.com/channel/UCEH9yYZu65uFf9CEB-aH7tg"&gt;Professor K Explains on YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>html</category>
      <category>a11y</category>
    </item>
    <item>
      <title>The Golden Rules of Code Review Etiquette, as explained by teeny tiny bunnies</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Wed, 19 May 2021 03:00:43 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/the-golden-rules-of-code-review-etiquette-as-explained-by-teeny-tiny-bunnies-3eg5</link>
      <guid>https://dev.to/ashleykolodziej/the-golden-rules-of-code-review-etiquette-as-explained-by-teeny-tiny-bunnies-3eg5</guid>
      <description>&lt;p&gt;Inspired by this &lt;a href="https://twitter.com/hashtag/DevDiscuss?src=hashtag_click" rel="noopener noreferrer"&gt;#DevDiscuss&lt;/a&gt; on Twitter:&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1394820139347070978-710" src="https://platform.twitter.com/embed/Tweet.html?id=1394820139347070978"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1394820139347070978-710');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1394820139347070978&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;This is the advice I gave folks in my department when starting our code review process up, and three years later, it's still going strong.&lt;/p&gt;

&lt;p&gt;Bunny gifs are critical to the messages that follow and are included here for improved understanding of the rules.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F8sIjp46.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F8sIjp46.jpg" alt="Tiny gray rabbit sitting inside in a one cup measuring cup. The ears are extra smol."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep your review requests small and focused.
&lt;/h2&gt;

&lt;p&gt;This helps your reviewer get feedback to you in a timely manner.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.gifer.com%2F9Yv5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.gifer.com%2F9Yv5.gif" alt="Medium sized tan rabbit binkying on a mattress. This bun has the energy."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try to get to a review the same day it is requested.
&lt;/h2&gt;

&lt;p&gt;Most folks depend on code for upcoming meetings, releases, and to keep moving on our ideas. Don’t let review requests sit.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsecureservercdn.net%2F198.71.233.25%2F6c6.158.myftpupload.com%2Fwp-content%2Fuploads%2F2013%2F04%2FBunny-Shower.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsecureservercdn.net%2F198.71.233.25%2F6c6.158.myftpupload.com%2Fwp-content%2Fuploads%2F2013%2F04%2FBunny-Shower.gif" alt="Small brown rabbit being showered by human. The bun looks confused and uncomfortable."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Approve or request changes, but never comment only.
&lt;/h2&gt;

&lt;p&gt;Comments don’t give the author clear direction on whether or not they can move forward. They’re great for discussion, but it’s important to be clear about next steps too.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.pinimg.com%2Foriginals%2F46%2Fe5%2F34%2F46e5347c715b3a89941adcdf4143c246.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.pinimg.com%2Foriginals%2F46%2Fe5%2F34%2F46e5347c715b3a89941adcdf4143c246.gif" alt="Teeny tiny brown rabbit tries to escape a coffee mug it is stuck in by wiggling back and forth. A white rabbit is nearby, completely ignoring the brown rabbit."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Be clear about what needs addressing.
&lt;/h2&gt;

&lt;p&gt;If you request changes, be clear about what types of changes are required for approval, and what aren’t, in the overall description for your review.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2Fproxy%2FoCWm40ylsiXBPruSpUcKfLpvjSn-eK1pzg9oucYo1bGBjvyipYTuQ6Dr_ce3saAA_uNPYtn0e3RsYckWTJ3uflqBAxxbTVGwb7-2lESry44l1ONCV4pY" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2Fproxy%2FoCWm40ylsiXBPruSpUcKfLpvjSn-eK1pzg9oucYo1bGBjvyipYTuQ6Dr_ce3saAA_uNPYtn0e3RsYckWTJ3uflqBAxxbTVGwb7-2lESry44l1ONCV4pY" alt="White rabbit with floppy ears hops down hallway, carrying a soft rabbit stuffed toy."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Review with teaching in mind.
&lt;/h2&gt;

&lt;p&gt;Code review is about helping each other and sharing our knowledge. Phrase your feedback and ideas in a way that helps others around you to learn more about your area of expertise! Don’t make assumptions or get frustrated. Help your coworkers improve instead.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2Fet8w8Rn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2Fet8w8Rn.gif" alt="Teeny tiny baby white bunny nuzzles into an opened hand. The ears are roughly the size of your thumb."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Review with empathy.
&lt;/h2&gt;

&lt;p&gt;Deadlines are hard. Being new is hard. Learning is hard. We are all working to be the best people we can be, so take extra care to call out the cool ideas you see and be positive with your feedback. Use fun and appropriate emoji liberally! 🐰 Be aware of your voice and tone - humor is easily misinterpreted in text.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia1.tenor.com%2Fimages%2Fea05bfda2085087687583f18e229256b%2Ftenor.gif%3Fitemid%3D7362463" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia1.tenor.com%2Fimages%2Fea05bfda2085087687583f18e229256b%2Ftenor.gif%3Fitemid%3D7362463" alt="Dark gray rabbit runs up and rudely surprises unsuspecting medium gray rabbit from behind, causing the gray rabbit to hop directly into the air."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Review with common sense.
&lt;/h2&gt;

&lt;p&gt;If you get a review the same morning as a meeting or the week of launch, approve it, but leave your feedback anyway for when the designer or developer won’t be scrambling to improve things. Be deliberate about what’s okay to leave for later.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.chzbgr.com%2Ffull%2F5672400896%2Fh77E3896F%2Fzomg-its-bunday" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.chzbgr.com%2Ffull%2F5672400896%2Fh77E3896F%2Fzomg-its-bunday" alt="Medium rabbit runs all over bed, throughout room, and straight out the door."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Be aware that changes introduce bugs.
&lt;/h2&gt;

&lt;p&gt;Each change that has to be made can impact the stability of the code. Keep this in mind as you review around tight deadlines.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdata.whicdn.com%2Fimages%2F217591613%2Foriginal.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdata.whicdn.com%2Fimages%2F217591613%2Foriginal.gif" alt="Two teeny tiny fluffy white buns. One falls over backwards, as if it is absolutely, positively over this nonsense."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Don’t require perfection.
&lt;/h2&gt;

&lt;p&gt;Your job as a reviewer is to act in the best interest of the code and the people you’re working with. Early on, asking someone to refactor repetitive or overly complex CSS or JS is a good call. During QA, it is not.&lt;/p&gt;




&lt;p&gt;This list was taken from a code review training I ran for my department a few years ago. &lt;a href="https://docs.google.com/presentation/d/12J3eghKvTDq6dZ7EBVveDEEn6jdEF9nLt-XRGeZjjW8/edit?usp=sharing" rel="noopener noreferrer"&gt;Check out the full training on Google Slides.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codereview</category>
      <category>codequality</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>7 HTML debugging tips for complete beginners</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Sat, 15 May 2021 19:54:52 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/7-html-debugging-tips-for-complete-beginners-4o3o</link>
      <guid>https://dev.to/ashleykolodziej/7-html-debugging-tips-for-complete-beginners-4o3o</guid>
      <description>&lt;p&gt;I teach introductory web development classes to students who don't have any programming experience whatsoever, and one of the questions I always get is - how do I debug my code when I don't even really know how to write it just yet? &lt;/p&gt;

&lt;p&gt;Debugging can be overwhelming if you're new to coding or a particular language. Luckily, you don't need to know a language by heart to debug your code. Debugging is just a method of thinking and checking things step by step, one at a time, until you've discovered what's happening. Anyone can do it with the right checklist!&lt;/p&gt;

&lt;p&gt;So with that in mind, here are my tips for debugging in HTML, including a practice problem and video explanation at the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip 1: Talk through what you expected
&lt;/h2&gt;

&lt;p&gt;When you're stuck, one of the best things you can do is to try talking through what you expected to see, step by step. Talking through what you expected is a great way to start identifying some of the places something might have gone wrong in your code. You can also try writing down some key words while you talk so you don't forget them, such as what elements aren't working like you thought they would. This will help you down the road if you need to Google it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip 2: Make sure your code is properly indented
&lt;/h2&gt;

&lt;p&gt;Once you've identified the problem and talked through what you expected to see, the next thing that you can do to help get unstuck is to make sure all your code is properly indented. This is a great step to take because it will force you to go line by line and make sure everything makes sense to you, and it will naturally get you to work on the next tip, which is...&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip 3: Make sure all tags are closed
&lt;/h2&gt;

&lt;p&gt;There's nothing like a missing close tag in HTML to throw you off! When styles are applying to more of the page than you think they should, or your layout is acting especially wonky with no clear reason in the CSS, a missing close tag is almost always the culprit. The best time to check this is while you are fixing your indentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip 4: Check for syntax errors
&lt;/h2&gt;

&lt;p&gt;HTML is pretty permissive when it comes to syntax, but you can still run into trouble if you don't have quotes around your attribute values, or you forget an equals sign, or even miss a closing &lt;code&gt;&amp;gt;&lt;/code&gt; on a tag. These types of errors are called &lt;strong&gt;syntax errors&lt;/strong&gt; - errors that stop your code from running correctly (or in some cases, from working altogether!). The w3c has a &lt;a href="https://www.w3.org/community/webed/wiki/HTML/Training/Tag_syntax"&gt;simple explanation of HTML syntax&lt;/a&gt; that can help you double check for these types of errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip 5: Use an HTML validator
&lt;/h2&gt;

&lt;p&gt;Tips 1 through 4 will get the majority of HTML problems solved if you have sharp eyes. But what if you miss something, or you've written a tag that is syntactically correct, but doesn't actually exist in HTML? This is where a validator can really help you out. Validators automatically check for things like missing close tags, syntax errors, and even tags that don't exist.&lt;/p&gt;

&lt;p&gt;So why not just jump straight to a validator? You can, but you might find some of the errors a little daunting at first. Going through these other preliminary steps can help get you in the right mindset to read and understand error messages in a validator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://validator.w3.org/"&gt;The w3c's validator service&lt;/a&gt; is a great tool for this that you'll want to bookmark.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip 6: If the error looks weird and unfamiliar, double check your approach
&lt;/h2&gt;

&lt;p&gt;If an error comes up in the validator that just plain does not make sense to you, it might be a good time to start doing some Googling and double checking your approach. Do you understand what the code is doing? Can you explain it line by line? You may have inadvertently used the wrong kind of tag. It's surprisingly easy to do!&lt;/p&gt;

&lt;p&gt;Alternately, you may find there are no syntax errors, in which case, it's time for...&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip 7: Use rubber ducky debugging
&lt;/h2&gt;

&lt;p&gt;If worse comes to worse and you just don't know what's going on, try explaining the problem to your nearest inanimate object - or friend. Even if they don't know how to write HTML, if you can explain your problem to someone who knows nothing about what you're doing, it might help you discover a &lt;strong&gt;logical error&lt;/strong&gt; - or an error in the way that your code is built that isn't necessarily wrong or broken, but also doesn't solve the problem you intended to solve in the first place. If you've ever heard the term &lt;a href="https://en.wikipedia.org/wiki/Rubber_duck_debugging"&gt;"rubber ducky debugging"&lt;/a&gt;, this is what that is!&lt;/p&gt;

&lt;h2&gt;
  
  
  Code along and practice debugging
&lt;/h2&gt;

&lt;p&gt;The best way to learn debugging is to practice and see how others debug. If you want to try some of these steps out, check out my video, &lt;a href="https://youtu.be/1Q-eYG1tCG8"&gt;7 Beginner-Friendly Tips for HTML Debugging on YouTube&lt;/a&gt;. I've included a CodePen practice problem in the description, and I recorded myself explaining these tips step by step as I solve the problem. Try debugging your way first, and then compare it with how I did it, and see how far you can get in solving it.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1Q-eYG1tCG8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>html</category>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Tip: use the WordPress code editor to pass attributes to your Gutenberg block variations</title>
      <dc:creator>Ashley Kolodziej</dc:creator>
      <pubDate>Sun, 11 Apr 2021 02:00:02 +0000</pubDate>
      <link>https://dev.to/ashleykolodziej/tip-use-the-wordpress-code-editor-to-pass-attributes-to-your-gutenberg-block-variations-4jcb</link>
      <guid>https://dev.to/ashleykolodziej/tip-use-the-wordpress-code-editor-to-pass-attributes-to-your-gutenberg-block-variations-4jcb</guid>
      <description>&lt;p&gt;I’ve been learning Gutenberg block development lately, and one of the things I was struggling with was trying to figure out what parameters I could pass on to blocks defined in block variations. I was looking all over the place for documentation on the parameters each block takes, such as font size and color. Little did I know I had all the documentation I needed right in front of me, in the form of the WordPress code editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wait, what’s a variation?
&lt;/h2&gt;

&lt;p&gt;A block variation is an easy way of leveraging WordPress core blocks (and even custom blocks you build) to create your own sets of blocks without writing any React code. You’ll need to write a bit of JavaScript, but it’s a lot like writing an array or object. If you can do that, you can write a block variation.&lt;/p&gt;

&lt;p&gt;I like using block variations to create recommended sets of content and help guide my users in content entry. You can nest blocks in block variations, and do things like pre-set the background or font size on them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use the editor to speed up block variation development
&lt;/h2&gt;

&lt;p&gt;My new workflow with block variations is to build the variation just the way I like it in the visual editor, and then switch over to the code editor to grab the attributes I need from there. This lets me set hard-to-remember parameters the right way, like gradients, without having to guess and check, like so:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8hg7bjq1pk76zj8q5ae.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8hg7bjq1pk76zj8q5ae.jpeg" alt="The attributes in the code editor are between curly braces, and can be used in block variations."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you identify the block you want to model your variation off of in the code editor, just grab those attributes and bring them back into your block variations code. &lt;a href="https://github.com/ashleykolodziej/professorkexplains-block-variations/blob/solution-code/src/variations/index.js#L61" rel="noopener noreferrer"&gt;Here’s what that looks like in my final code.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6s03fvk2bs6j9ma3hzt.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6s03fvk2bs6j9ma3hzt.jpeg" alt="Code example demonstrating attributes being passed to a block variation using the attributes parameter."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This works for both your variations and your &lt;code&gt;innerBlocks&lt;/code&gt;. &lt;a href="https://github.com/ashleykolodziej/professorkexplains-block-variations/blob/solution-code/src/variations/index.js#L28" rel="noopener noreferrer"&gt;Here’s an example in my final code of how I used this in a nested block.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5pl3yxmaj8qh82eopv9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5pl3yxmaj8qh82eopv9.jpeg" alt="Code example demonstrating attributes being passed to inner blocks in a block variation."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Block variations are a low key way to get into Gutenberg block development and get familiar with the ecosystem without getting into React or the more complicated bits. Check it out if you’re new to Gutenberg and looking for a place to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full tutorial
&lt;/h2&gt;

&lt;p&gt;If you’re new to JavaScript or Gutenberg, I recorded my full process of building block variations using this method in a beginner-friendly way here.  I also put together sample code below in Github you can use to get started with a new block variation.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/m6IH-G286DU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ashleykolodziej" rel="noopener noreferrer"&gt;
        ashleykolodziej
      &lt;/a&gt; / &lt;a href="https://github.com/ashleykolodziej/professorkexplains-block-variations" rel="noopener noreferrer"&gt;
        professorkexplains-block-variations
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Block Variations tutorial&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;These are companion files to my &lt;a href="https://youtu.be/m6IH-G286DU" rel="nofollow noopener noreferrer"&gt;Build Your First Block Variation tutorial on YouTube&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To use these files, download them, and then unzip them to the directory of your choice. In my tutorial, this directory is called &lt;code&gt;variations-example&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can view the final code from the tutorial on the &lt;a href="https://github.com/ashleykolodziej/professorkexplains-block-variations/tree/solution-code" rel="noopener noreferrer"&gt;solution-code branch&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can also see exactly what changed codewise from the beginning of the tutorial to the end of the tutorial by &lt;a href="https://github.com/ashleykolodziej/professorkexplains-block-variations/pull/1" rel="noopener noreferrer"&gt;taking a look at this pull request&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ashleykolodziej/professorkexplains-block-variations" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>wordpress</category>
      <category>javascript</category>
      <category>gutenberg</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
