<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><!-- Core Pages -->
  <url>
    <loc>https://www.cleanmarkup.com/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/about/</loc>
    <lastmod>2026-10-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/authors/ahmdrmdn.webp</image:loc>
      <image:title>Ahmed Ramadan — Senior Software Engineer</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/2/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/3/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/4/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/5/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/6/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/7/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/8/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/9/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Topic Tag Pages -->
  <url>
    <loc>https://www.cleanmarkup.com/tags/algorithm/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/highlight/</loc>
    <lastmod>2022-02-22</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/hashtable/</loc>
    <lastmod>2021-10-08</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/complixity/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/javascript/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/html/</loc>
    <lastmod>2022-03-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/accessibility/</loc>
    <lastmod>2022-03-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/css/</loc>
    <lastmod>2022-05-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/layout/</loc>
    <lastmod>2022-05-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/tags/performance/</loc>
    <lastmod>2022-05-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- Articles (Newest First) -->
  <url>
    <loc>https://www.cleanmarkup.com/posts/dynamic-programming-knapsack-problem-javascript/</loc>
    <lastmod>2022-05-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/dynamic-programming-knapsack-problem-javascript.webp</image:loc>
      <image:title>Understanding Tabulation and Dynamic Programming with the Knapsack Problem in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-scrollbar-gutter-preventing-layout-shifts/</loc>
    <lastmod>2022-05-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-scrollbar-gutter-preventing-layout-shifts.webp</image:loc>
      <image:title>Eliminating Scrollbar Layout Shifts with CSS scrollbar-gutter</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/array-at-and-object-hasown-ergonomic-javascript/</loc>
    <lastmod>2022-04-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/array-at-and-object-hasown-ergonomic-javascript.webp</image:loc>
      <image:title>Cleaner Collection Access in JavaScript with Array at and Object hasOwn</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-color-mix-and-modern-color-spaces/</loc>
    <lastmod>2022-04-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-color-mix-and-modern-color-spaces.webp</image:loc>
      <image:title>Dynamic Palette Generation in CSS with color-mix and Perceptual Color Spaces</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/html-inert-attribute-focus-trapping/</loc>
    <lastmod>2022-03-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/html-inert-attribute-focus-trapping.webp</image:loc>
      <image:title>Declarative Focus Trapping and Background Locking with the HTML inert Attribute</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/trie-prefix-tree-autocomplete-javascript/</loc>
    <lastmod>2022-03-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/trie-prefix-tree-autocomplete-javascript.webp</image:loc>
      <image:title>Building Fast Autocomplete Search with a Prefix Trie in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-has-relational-parent-selector/</loc>
    <lastmod>2022-02-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-has-relational-parent-selector.webp</image:loc>
      <image:title>Conditional Parent Styling with the CSS has Relational Pseudo-Class</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/accessible-form-validation-and-aria-invalid/</loc>
    <lastmod>2022-02-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/accessible-form-validation-and-aria-invalid.webp</image:loc>
      <image:title>Accessible Inline Form Error Messaging with aria-invalid and aria-errormessage</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/structuredclone-native-deep-copying-javascript/</loc>
    <lastmod>2022-01-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/structuredclone-native-deep-copying-javascript.webp</image:loc>
      <image:title>Native Deep Copying in JavaScript with structuredClone</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-cascade-layers-with-at-layer/</loc>
    <lastmod>2022-01-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-cascade-layers-with-at-layer.webp</image:loc>
      <image:title>Taming Stylesheet Specificity with CSS Cascade Layers and at-layer</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/topological-sort-and-dependency-graphs-javascript/</loc>
    <lastmod>2021-12-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/topological-sort-and-dependency-graphs-javascript.webp</image:loc>
      <image:title>Resolving Task Dependencies with Topological Sort in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-text-decoration-thickness-and-underline-offset/</loc>
    <lastmod>2021-12-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-text-decoration-thickness-and-underline-offset.webp</image:loc>
      <image:title>Refining Editorial Link Typography with CSS text-underline-offset</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/javascript-error-cause-and-structured-error-handling/</loc>
    <lastmod>2021-11-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/javascript-error-cause-and-structured-error-handling.webp</image:loc>
      <image:title>Chaining Contextual Exceptions with JavaScript Error Cause</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/semantic-time-and-machine-readable-dates/</loc>
    <lastmod>2021-11-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/semantic-time-and-machine-readable-dates.webp</image:loc>
      <image:title>Publishing Machine-Readable Dates and Durations with the HTML time Element</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-container-queries-component-driven-layouts/</loc>
    <lastmod>2021-10-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-container-queries-component-driven-layouts.webp</image:loc>
      <image:title>Preparing Design Systems for CSS Container Queries</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/lru-cache-implementation-in-javascript/</loc>
    <lastmod>2021-10-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/lru-cache-implementation-in-javascript.webp</image:loc>
      <image:title>Designing an O(1) Least Recently Used Cache with JavaScript Map</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/accessible-tabs-interface-with-aria-roles/</loc>
    <lastmod>2021-09-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/accessible-tabs-interface-with-aria-roles.webp</image:loc>
      <image:title>Implementing the WAI-ARIA Tabs Pattern with Roving Tabindex</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-contain-property-layout-and-paint-isolation/</loc>
    <lastmod>2021-09-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-contain-property-layout-and-paint-isolation.webp</image:loc>
      <image:title>Isolating DOM Subtrees with the CSS contain Property</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/url-and-urlsearchparams-clean-query-parsing/</loc>
    <lastmod>2021-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/url-and-urlsearchparams-clean-query-parsing.webp</image:loc>
      <image:title>Parsing and Mutating Query Strings Cleanly with URL and URLSearchParams</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-accent-color-native-form-controls/</loc>
    <lastmod>2021-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-accent-color-native-form-controls.webp</image:loc>
      <image:title>Theming Native Checkboxes and Radio Inputs with CSS accent-color</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/dijkstras-shortest-path-algorithm-javascript/</loc>
    <lastmod>2021-07-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/dijkstras-shortest-path-algorithm-javascript.webp</image:loc>
      <image:title>Finding Shortest Paths in Weighted Graphs with Dijkstras Algorithm in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/preload-prefetch-and-preconnect-resource-hints/</loc>
    <lastmod>2021-07-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/preload-prefetch-and-preconnect-resource-hints.webp</image:loc>
      <image:title>Optimizing Critical Network Paths with HTML Resource Hints</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/accessible-tooltips-and-aria-describedby/</loc>
    <lastmod>2021-06-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/accessible-tooltips-and-aria-describedby.webp</image:loc>
      <image:title>Building Accessible Tooltips with aria-describedby and Keyboard Triggers</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-conic-gradient-charts-and-color-wheels/</loc>
    <lastmod>2021-06-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-conic-gradient-charts-and-color-wheels.webp</image:loc>
      <image:title>Pure CSS Pie Charts and Progress Rings with conic-gradient</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/javascript-intl-api-localized-formatting/</loc>
    <lastmod>2021-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/javascript-intl-api-localized-formatting.webp</image:loc>
      <image:title>Zero-Dependency Date and Number Formatting with the JavaScript Intl API</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/linked-list-data-structure-in-javascript/</loc>
    <lastmod>2021-05-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/linked-list-data-structure-in-javascript.webp</image:loc>
      <image:title>Building and Reversing Singly Linked Lists in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-grid-auto-fit-and-auto-fill-columns/</loc>
    <lastmod>2021-04-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-grid-auto-fit-and-auto-fill-columns.webp</image:loc>
      <image:title>Responsive Card Grids Without Media Queries Using auto-fit and auto-fill</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/semantic-description-lists-dl-dt-dd/</loc>
    <lastmod>2021-04-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/semantic-description-lists-dl-dt-dd.webp</image:loc>
      <image:title>Structuring Key-Value Metadata with HTML Description Lists</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/web-workers-offloading-heavy-computation/</loc>
    <lastmod>2021-03-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/web-workers-offloading-heavy-computation.webp</image:loc>
      <image:title>Keeping the Main Thread Responsive with JavaScript Web Workers</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-backdrop-filter-frosted-glass-ui/</loc>
    <lastmod>2021-03-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-backdrop-filter-frosted-glass-ui.webp</image:loc>
      <image:title>Crafting Translucent Surfaces with CSS backdrop-filter</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/sliding-window-algorithm-pattern-javascript/</loc>
    <lastmod>2021-02-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/sliding-window-algorithm-pattern-javascript.webp</image:loc>
      <image:title>Solving Subarray Problems with the Sliding Window Pattern in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/accessible-skip-links-and-keyboard-landmarks/</loc>
    <lastmod>2021-02-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/accessible-skip-links-and-keyboard-landmarks.webp</image:loc>
      <image:title>Designing Skip Navigation Links and Page Landmarks for Keyboard Users</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/weakmap-and-weakset-memory-safe-caching/</loc>
    <lastmod>2021-01-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/weakmap-and-weakset-memory-safe-caching.webp</image:loc>
      <image:title>Preventing DOM Memory Leaks with JavaScript WeakMap and WeakSet</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-custom-scrollbars-and-overscroll-behavior/</loc>
    <lastmod>2021-01-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-custom-scrollbars-and-overscroll-behavior.webp</image:loc>
      <image:title>Controlling Scroll Chaining with CSS overscroll-behavior</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/html-template-element-client-side-cloning/</loc>
    <lastmod>2020-12-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/html-template-element-client-side-cloning.webp</image:loc>
      <image:title>Reusable Markup Fragments with the Native HTML template Element</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/quicksort-algorithm-and-partitioning-javascript/</loc>
    <lastmod>2020-12-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/quicksort-algorithm-and-partitioning-javascript.webp</image:loc>
      <image:title>Implementing Quicksort and In-Place Partitioning in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-gap-property-for-flexbox-layouts/</loc>
    <lastmod>2020-11-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-gap-property-for-flexbox-layouts.webp</image:loc>
      <image:title>Using the CSS gap Property in Flexbox Without Margin Hacks</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/accessible-svg-icons-and-aria-labels/</loc>
    <lastmod>2020-11-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/accessible-svg-icons-and-aria-labels.webp</image:loc>
      <image:title>Writing Accessible Inline SVG Icons with Semantic ARIA Attributes</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/mutation-observer-tracking-dom-changes/</loc>
    <lastmod>2020-10-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/mutation-observer-tracking-dom-changes.webp</image:loc>
      <image:title>Tracking Dynamic DOM Mutations with MutationObserver in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/content-visibility-auto-rendering-performance/</loc>
    <lastmod>2020-10-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/content-visibility-auto-rendering-performance.webp</image:loc>
      <image:title>Boosting Rendering Performance with CSS content-visibility</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/breadth-first-search-and-depth-first-search-javascript/</loc>
    <lastmod>2020-09-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/breadth-first-search-and-depth-first-search-javascript.webp</image:loc>
      <image:title>Graph Traversal with Breadth-First and Depth-First Search in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-is-and-where-pseudo-class-selectors/</loc>
    <lastmod>2020-09-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-is-and-where-pseudo-class-selectors.webp</image:loc>
      <image:title>Simplifying Selector Specificity with CSS is and where</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/semantic-dialog-and-accessible-modals/</loc>
    <lastmod>2020-08-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/semantic-dialog-and-accessible-modals.webp</image:loc>
      <image:title>Accessible Modal Dialogs with the Native HTML Dialog Element</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-logical-properties-international-layouts/</loc>
    <lastmod>2020-08-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-logical-properties-international-layouts.webp</image:loc>
      <image:title>CSS Logical Properties for Multi-Directional Layouts</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/resize-observer-responsive-components/</loc>
    <lastmod>2020-07-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/resize-observer-responsive-components.webp</image:loc>
      <image:title>Responsive Component Design with ResizeObserver in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-aspect-ratio-box-sizing/</loc>
    <lastmod>2020-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-aspect-ratio-box-sizing.webp</image:loc>
      <image:title>Preventing Layout Shifts with Modern CSS Aspect Ratio Boxes</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/merge-sort-algorithm-in-javascript/</loc>
    <lastmod>2020-06-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/merge-sort-algorithm-in-javascript.webp</image:loc>
      <image:title>Divide and Conquer Sorting with Merge Sort in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/core-web-vitals-cls-lcp-fid-guide/</loc>
    <lastmod>2020-06-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/core-web-vitals-cls-lcp-fid-guide.webp</image:loc>
      <image:title>Optimizing HTML and CSS for Core Web Vitals LCP FID and CLS</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/semantic-figure-and-figcaption-elements/</loc>
    <lastmod>2020-05-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/semantic-figure-and-figcaption-elements.webp</image:loc>
      <image:title>Grouping Media and Code Snippets Semantically with Figure and Figcaption</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/fetch-abortcontroller-canceling-requests/</loc>
    <lastmod>2020-05-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/fetch-abortcontroller-canceling-requests.webp</image:loc>
      <image:title>Canceling Stale Network Requests in JavaScript with AbortController</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/focus-visible-keyboard-navigation-styles/</loc>
    <lastmod>2020-04-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/focus-visible-keyboard-navigation-styles.webp</image:loc>
      <image:title>Separating Mouse and Keyboard Focus Rings with focus-visible</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-position-sticky-headers-and-sidebars/</loc>
    <lastmod>2020-04-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-position-sticky-headers-and-sidebars.webp</image:loc>
      <image:title>Building Performant Sticky Headers and Table of Contents with CSS</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/binary-search-algorithm-in-javascript/</loc>
    <lastmod>2020-03-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/binary-search-algorithm-in-javascript.webp</image:loc>
      <image:title>Implementing Binary Search in JavaScript with Logarithmic Complexity</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/prefers-reduced-motion-accessible-animations/</loc>
    <lastmod>2020-03-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/prefers-reduced-motion-accessible-animations.webp</image:loc>
      <image:title>Designing Inclusive Web Animations with prefers-reduced-motion</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/native-lazy-loading-img-loading-attribute/</loc>
    <lastmod>2020-02-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/native-lazy-loading-img-loading-attribute.webp</image:loc>
      <image:title>Zero JavaScript Image Deferral with the Native HTML loading Attribute</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/promise-allsettled-concurrent-error-handling/</loc>
    <lastmod>2020-02-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/promise-allsettled-concurrent-error-handling.webp</image:loc>
      <image:title>Resilient Parallel Requests with Promise.allSettled in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-clamp-min-max-functions/</loc>
    <lastmod>2020-01-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-clamp-min-max-functions.webp</image:loc>
      <image:title>Responsive Sizing Without Media Queries Using CSS min max and clamp</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/semantic-breadcrumbs-and-aria-current/</loc>
    <lastmod>2020-01-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/semantic-breadcrumbs-and-aria-current.webp</image:loc>
      <image:title>Accessible Breadcrumb Navigation with Semantic HTML and aria-current</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/optional-chaining-and-nullish-coalescing-javascript/</loc>
    <lastmod>2019-12-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/optional-chaining-and-nullish-coalescing-javascript.webp</image:loc>
      <image:title>Safer Property Access with Optional Chaining and Nullish Coalescing</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-subgrid-and-nested-grids/</loc>
    <lastmod>2019-12-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-subgrid-and-nested-grids.webp</image:loc>
      <image:title>Mastering Nested Layouts and CSS Subgrid Fundamentals</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/aria-live-regions-dynamic-ui-updates/</loc>
    <lastmod>2019-11-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/aria-live-regions-dynamic-ui-updates.webp</image:loc>
      <image:title>Announcing Dynamic UI Changes with ARIA Live Regions</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/fluid-typography-with-css-calc-and-viewport-units/</loc>
    <lastmod>2019-11-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/fluid-typography-with-css-calc-and-viewport-units.webp</image:loc>
      <image:title>Fluid Responsive Typography with CSS Calc and Viewport Units</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/memoization-for-recursive-algorithms-javascript/</loc>
    <lastmod>2019-10-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/memoization-for-recursive-algorithms-javascript.webp</image:loc>
      <image:title>Optimizing Recursive Functions with Memoization in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/semantic-tables-for-accessible-data/</loc>
    <lastmod>2019-10-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/semantic-tables-for-accessible-data.webp</image:loc>
      <image:title>Structuring Accessible Data Tables with Caption Scope and Thead</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-feature-queries-with-supports/</loc>
    <lastmod>2019-09-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-feature-queries-with-supports.webp</image:loc>
      <image:title>Progressive Enhancement in CSS Using supports Feature Queries</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/deep-cloning-objects-in-javascript/</loc>
    <lastmod>2019-09-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/deep-cloning-objects-in-javascript.webp</image:loc>
      <image:title>Shallow vs Deep Cloning Objects in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/prefers-color-scheme-dark-mode-css/</loc>
    <lastmod>2019-08-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/prefers-color-scheme-dark-mode-css.webp</image:loc>
      <image:title>Supporting System Dark Mode with prefers-color-scheme</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/html5-details-and-summary-accordions/</loc>
    <lastmod>2019-08-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/html5-details-and-summary-accordions.webp</image:loc>
      <image:title>Zero JavaScript Accordions with HTML5 Details and Summary</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/javascript-promises-and-async-await/</loc>
    <lastmod>2019-07-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/javascript-promises-and-async-await.webp</image:loc>
      <image:title>Writing Clean Asynchronous Code with Async and Await</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-scroll-snap-carousels/</loc>
    <lastmod>2019-07-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-scroll-snap-carousels.webp</image:loc>
      <image:title>Building Smooth Carousels with Native CSS Scroll Snap</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/event-delegation-and-dom-performance/</loc>
    <lastmod>2019-06-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/event-delegation-and-dom-performance.webp</image:loc>
      <image:title>Event Delegation and DOM Event Bubbling in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/responsive-images-srcset-and-picture/</loc>
    <lastmod>2019-06-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/responsive-images-srcset-and-picture.webp</image:loc>
      <image:title>Responsive Images Done Right with Picture and Srcset</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/array-map-filter-reduce-javascript/</loc>
    <lastmod>2019-05-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/array-map-filter-reduce-javascript.webp</image:loc>
      <image:title>Mastering Array Map Filter and Reduce in JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/bem-naming-convention-scalable-css/</loc>
    <lastmod>2019-05-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/bem-naming-convention-scalable-css.webp</image:loc>
      <image:title>Clean CSS Architecture with BEM Naming Conventions</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/intersection-observer-lazy-loading/</loc>
    <lastmod>2019-04-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/intersection-observer-lazy-loading.webp</image:loc>
      <image:title>Lazy Loading Images with the Intersection Observer API</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/accessible-forms-without-extra-javascript/</loc>
    <lastmod>2019-04-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/accessible-forms-without-extra-javascript.webp</image:loc>
      <image:title>Building Accessible HTML Forms with Native Validation</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-custom-properties-theming/</loc>
    <lastmod>2019-03-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-custom-properties-theming.webp</image:loc>
      <image:title>Dynamic UI Theming with CSS Custom Properties</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/debounce-and-throttle-in-javascript/</loc>
    <lastmod>2019-03-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/debounce-and-throttle-in-javascript.webp</image:loc>
      <image:title>Implementing Debounce and Throttle in Vanilla JavaScript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/css-grid-vs-flexbox-layout-patterns/</loc>
    <lastmod>2019-02-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/css-grid-vs-flexbox-layout-patterns.webp</image:loc>
      <image:title>CSS Grid vs Flexbox Choosing the Right Layout System</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/semantic-html5-document-outline/</loc>
    <lastmod>2019-02-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/semantic-html5-document-outline.webp</image:loc>
      <image:title>Writing Semantic HTML5 for Accessible Document Structure</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/sieve-of-eratosthenes/</loc>
    <lastmod>2019-01-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/sieve-of-eratosthenes.webp</image:loc>
      <image:title>Solving Sieve Of Eratosthenes</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/two-sum/</loc>
    <lastmod>2019-01-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/two-sum.webp</image:loc>
      <image:title>Two sum algorithm in Javascript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/mean-median-mode/</loc>
    <lastmod>2019-01-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/mean-median-mode.webp</image:loc>
      <image:title>Mean Median Mode Algorithm</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/reverse-words/</loc>
    <lastmod>2019-01-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/reverse-word.webp</image:loc>
      <image:title>Reverse words algorithm in Javascript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/caesar-cipher/</loc>
    <lastmod>2018-12-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/caesar-cipher.webp</image:loc>
      <image:title>Caesar cipher encryption in Javascript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/palindromes/</loc>
    <lastmod>2018-12-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/palindromes.webp</image:loc>
      <image:title>Check for palindromes with Javascript</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/harmless-ransom-note/</loc>
    <lastmod>2018-12-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/harmless-note.webp</image:loc>
      <image:title>Implement Harmless Ransom Note</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://www.cleanmarkup.com/posts/fizzbuzz/</loc>
    <lastmod>2018-12-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://www.cleanmarkup.com/img/posts/fizzbuzz.webp</image:loc>
      <image:title>Solving Fizz Buzz Using Javascript</image:title>
    </image:image>
  </url>
</urlset>
