<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Tina Mrak — Articles</title><description>Articles on CSS, development, and life by Tina Mrak.</description><link>https://tinamrak.com/</link><language>en</language><item><title>CSS scroll-driven animations: animate on scroll without JavaScript</title><link>https://tinamrak.com/blog/css-scroll-driven-animations/</link><guid isPermaLink="true">https://tinamrak.com/blog/css-scroll-driven-animations/</guid><description>Use CSS scroll-driven animations for reading progress bars, reveal effects, and horizontal scroll indicators, with three interactive demos and accessible fallbacks.</description><pubDate>Sat, 07 Nov 2026 00:00:00 GMT</pubDate><category>CSS</category></item><item><title>CSS @starting-style: animate elements when they appear</title><link>https://tinamrak.com/blog/css-starting-style/</link><guid isPermaLink="true">https://tinamrak.com/blog/css-starting-style/</guid><description>Use CSS @starting-style to animate newly added elements, panels, and native popovers, with interactive demos of entry styles and discrete transitions.</description><pubDate>Tue, 27 Oct 2026 00:00:00 GMT</pubDate><category>CSS</category></item><item><title>CSS anchor positioning: position popovers without JavaScript</title><link>https://tinamrak.com/blog/css-anchor-positioning/</link><guid isPermaLink="true">https://tinamrak.com/blog/css-anchor-positioning/</guid><description>CSS anchor positioning lets tooltips, dropdowns, and popovers position and size themselves relative to their triggers without JavaScript calculations.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate><category>CSS</category></item><item><title>Tailwind CSS adds more complexity than it removes</title><link>https://tinamrak.com/blog/tailwind-css-adds-more-complexity-than-it-removes/</link><guid isPermaLink="true">https://tinamrak.com/blog/tailwind-css-adds-more-complexity-than-it-removes/</guid><description>My take on Tailwind CSS: why it doesn&apos;t actually make styling simpler, where the complexity moves to, and when the tradeoff is worth it.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>CSS</category><category>Tailwind</category></item><item><title>CSS field-sizing: the tiny property that replaces textarea resize JavaScript</title><link>https://tinamrak.com/blog/css-field-sizing/</link><guid isPermaLink="true">https://tinamrak.com/blog/css-field-sizing/</guid><description>CSS field-sizing lets form fields auto-grow with their content, replacing textarea resize JavaScript. How to use it safely with min and max constraints.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate><category>CSS</category></item><item><title>Drupal would be more adoptable if the first step felt simpler</title><link>https://tinamrak.com/blog/drupal-would-be-more-adoptable-if-the-first-step-felt-simpler/</link><guid isPermaLink="true">https://tinamrak.com/blog/drupal-would-be-more-adoptable-if-the-first-step-felt-simpler/</guid><description>Drupal is powerful but its first step feels intimidating. Why a simple download-and-install path would help adoption without abandoning the Composer workflow.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>Drupal</category><category>UX</category></item><item><title>PrestaShop faceted search creating thousands of URLs, Plesk blocking Bunny CDN IPs, and Google deindexing pages</title><link>https://tinamrak.com/blog/prestashop-faceted-search-creating-thousands-of-urls-plesk-blocking-bunny-cdn-ips-and-google-deindexing-pages/</link><guid isPermaLink="true">https://tinamrak.com/blog/prestashop-faceted-search-creating-thousands-of-urls-plesk-blocking-bunny-cdn-ips-and-google-deindexing-pages/</guid><description>How PrestaShop faceted search created 500,000+ crawlable URLs, got Bunny CDN IPs blocked by Plesk, and triggered Google deindexing. Plus the full layered fix.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate><category>SEO</category><category>PrestaShop</category></item><item><title>The 5-minute rule that defeats procrastination</title><link>https://tinamrak.com/blog/the-5-minute-rule-that-defeats-procrastination/</link><guid isPermaLink="true">https://tinamrak.com/blog/the-5-minute-rule-that-defeats-procrastination/</guid><description>Procrastination is usually hesitation, not laziness. The 5-minute rule lowers the resistance to starting so you build momentum and stop putting things off.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>Life</category><category>Productivity</category></item><item><title>Why motivation is keeping you stuck</title><link>https://tinamrak.com/blog/why-motivation-is-keeping-you-stuck/</link><guid isPermaLink="true">https://tinamrak.com/blog/why-motivation-is-keeping-you-stuck/</guid><description>Waiting to feel motivated keeps you stuck. Why motivation is unreliable, and how a simple system of small, repeatable actions creates real consistency.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><category>Life</category><category>Productivity</category></item><item><title>WARNING: xcodeproj is not installed or is not configured properly (solved)</title><link>https://tinamrak.com/blog/warning-xcodeproj-is-not-installed-or-is-not-configured-properly-solved/</link><guid isPermaLink="true">https://tinamrak.com/blog/warning-xcodeproj-is-not-installed-or-is-not-configured-properly-solved/</guid><description>Fix the NativeScript &apos;WARNING: xcodeproj is not installed or is not configured properly&apos; error on macOS with a single gem install command.</description><pubDate>Sat, 14 Dec 2024 00:00:00 GMT</pubDate><category>iOS</category><category>NativeScript</category><category>Xcode</category></item><item><title>How to apply Drupal patches with Composer</title><link>https://tinamrak.com/blog/how-to-apply-drupal-patches-with-composer/</link><guid isPermaLink="true">https://tinamrak.com/blog/how-to-apply-drupal-patches-with-composer/</guid><description>A quick guide to applying Drupal core and module patches with Composer using the cweagans/composer-patches package, and a simple composer.json setup.</description><pubDate>Tue, 27 Apr 2021 00:00:00 GMT</pubDate><category>Drupal</category><category>Composer</category></item><item><title>Fathom Analytics for Drupal 8 (and 9)</title><link>https://tinamrak.com/blog/fathom-analytics-for-drupal/</link><guid isPermaLink="true">https://tinamrak.com/blog/fathom-analytics-for-drupal/</guid><description>Add privacy-focused Fathom Analytics to your Drupal site with a custom module: set your Site ID, use a custom domain, and exclude paths or roles.</description><pubDate>Mon, 18 May 2020 00:00:00 GMT</pubDate><category>Drupal</category><category>Analytics</category><category>Privacy</category></item><item><title>Could not delete default.services.yml error (solved)</title><link>https://tinamrak.com/blog/could-not-delete-default-services-yml-solved/</link><guid isPermaLink="true">https://tinamrak.com/blog/could-not-delete-default-services-yml-solved/</guid><description>Fix the Composer &apos;Could not delete default.services.yml&apos; error in Drupal by granting write permissions to a folder. Command included.</description><pubDate>Fri, 15 May 2020 00:00:00 GMT</pubDate><category>Drupal</category><category>Composer</category></item><item><title>Responsive images in Drupal 8</title><link>https://tinamrak.com/blog/responsive-images-in-drupal-8/</link><guid isPermaLink="true">https://tinamrak.com/blog/responsive-images-in-drupal-8/</guid><description>Serve different image sizes per device in Drupal 8 using the core Breakpoint and Responsive Image modules with the HTML5 picture element. Step-by-step guide.</description><pubDate>Fri, 13 Dec 2019 00:00:00 GMT</pubDate><category>Drupal</category></item></channel></rss>