<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Code Crispies Blog</title>
    <link>https://codecrispi.es/blog/</link>
    <description>Hands-on web-development tutorials from the Code Crispies team.</description>
    <language>en</language>
    <lastBuildDate>Sun, 10 May 2026 02:22:16 GMT</lastBuildDate>
    <atom:link href="https://codecrispi.es/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>CSS Anchor Positioning — Tooltips Without JavaScript Math</title>
      <link>https://codecrispi.es/blog/anchor-positioning-tooltips/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/anchor-positioning-tooltips/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>anchor() and position-anchor pin elements to triggers. Build tooltips, dropdowns, popovers that stay glued to their target — pure CSS, zero scroll-listeners.</description>
    </item>
    <item>
      <title>@layer — Finally Control CSS Specificity Without `!important`</title>
      <link>https://codecrispi.es/blog/cascade-layers-control-specificity/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/cascade-layers-control-specificity/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>Cascade layers let you decide which rules win, regardless of selector specificity. The end of utility-class arms races and `!important` graveyards.</description>
    </item>
    <item>
      <title>:where() and :is() — Cleaner Selectors With Predictable Specificity</title>
      <link>https://codecrispi.es/blog/cascade-layers-vs-where/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/cascade-layers-vs-where/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>Two pseudo-classes that change how you write selectors. :is() groups them; :where() groups them AND sets specificity to zero. Both kill repetition and end specificity wars.</description>
    </item>
    <item>
      <title>color-mix() — CSS Now Does What You Used Sass For</title>
      <link>https://codecrispi.es/blog/color-mix-killing-sass/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/color-mix-killing-sass/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>Lighten, darken, tint, mix theme colors — pure CSS, no preprocessor. color-mix() and relative color syntax killed half my Sass usage.</description>
    </item>
    <item>
      <title>Container Queries — Dein erstes @container Layout in 5 Minuten</title>
      <link>https://codecrispi.es/blog/container-queries-erstes-layout/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/container-queries-erstes-layout/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>Media Queries reagieren auf den Viewport. Container Queries reagieren auf den Container. Der Unterschied ändert wie du responsive Komponenten baust.</description>
    </item>
    <item>
      <title>CSS clamp() richtig verwendet — Fluid Typography ohne Media Queries</title>
      <link>https://codecrispi.es/blog/css-clamp-richtig-verwendet/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/css-clamp-richtig-verwendet/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>clamp(min, preferred, max) ersetzt einen Stapel Media Queries durch eine Zeile. So wendet man es ohne Stolperfallen an.</description>
    </item>
    <item>
      <title>CSS Subgrid — Spreadsheet-Aligned Layouts Without Tables</title>
      <link>https://codecrispi.es/blog/css-subgrid-tables-without-tables/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/css-subgrid-tables-without-tables/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>subgrid lets nested grids inherit their parent's tracks. Card grids that line up, forms that align, lists with consistent column widths — all without restructuring your markup.</description>
    </item>
    <item>
      <title>The :has() Selector — CSS's Missing Superpower</title>
      <link>https://codecrispi.es/blog/has-selector-css-superpower/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/has-selector-css-superpower/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>Style a parent based on its children, sibling based on a peer state, form based on whether any field is invalid. :has() ends a decade of JavaScript workarounds.</description>
    </item>
    <item>
      <title>Native Accordions, Properly Styled — Vanilla CSS and Tailwind</title>
      <link>https://codecrispi.es/blog/native-accordion-styled/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/native-accordion-styled/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>The HTML &lt;details&gt; element gives you accordions for free. Here's how to style it cleanly in both vanilla CSS and Tailwind, with no JavaScript.</description>
    </item>
    <item>
      <title>Native HTML Popovers — Menus, Tooltips, and Cards Without a Library</title>
      <link>https://codecrispi.es/blog/native-popover-html-menus/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/native-popover-html-menus/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>The popover attribute gives you accessible, dismissible overlays with three lines of HTML. Replace your tooltip library.</description>
    </item>
    <item>
      <title>Scroll-Driven Animations — Keyframes Triggered by Scroll, No JS</title>
      <link>https://codecrispi.es/blog/scroll-driven-animations-css/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/scroll-driven-animations-css/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>animation-timeline lets CSS animations advance based on scroll position. Reading-progress bars, parallax, scrubbed reveals — all without IntersectionObserver.</description>
    </item>
    <item>
      <title>text-wrap: balance and pretty — Typography Polish in Two Lines</title>
      <link>https://codecrispi.es/blog/text-wrap-balance-pretty/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/text-wrap-balance-pretty/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>Stop having two-word orphans on your headings and dangling single words in paragraphs. text-wrap: balance and pretty fix it without breakpoints.</description>
    </item>
    <item>
      <title>View Transitions API — SPA-Feel Without an SPA</title>
      <link>https://codecrispi.es/blog/view-transitions-mpa-feel/</link>
      <guid isPermaLink="true">https://codecrispi.es/blog/view-transitions-mpa-feel/</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>Cross-document view transitions let plain server-rendered pages animate between each other like a single-page app. Two CSS lines, no router.</description>
    </item>
  </channel>
</rss>
