Frontend Dogma

News and Tools for Frontend Development

Articles and books, tips and tricks, craft and beauty from the world of frontend development. (Stay up-to-date on all topics by RSS feed or on Mastodon.)

  1. What If You Had Real Control over Light Mode / Dark Mode on a Per-Site Basis? · · ,
  2. 10 Things Software Developers Should Learn About Learning · · ,
  3. Monitoring BFCache Blocking Reasons · · , , ,
  4. Zombie Estimation · · ,
  5. Release Notes for Safari Technology Preview 192 · · , , ,
  6. Notes on Git’s Error Messages · · ,
  7. Optimizing WebKit and Safari for Speedometer 3.0 · · , , , , ,
  8. Happy CSS Naked Day 2024 · · , ,
  9. Layered Toggles: Optional CSS Mixins · · ,
  10. The ADA Now Has Regulations for Accessibility of Web Content and Mobile Apps · · , , ,
  11. Recapping ng-conf 2024 · ·
  12. Figma Prototypes vs. HTML Prototypes · · , , , , ,
  13. Sending Email Using Node.js · · ,
  14. React Server Components in a Nutshell · · ,
  15. Inclusive Digital Experiences: Redesign Strategies for Addressing Diverse Abilities and Accessibility Challenges · · , , ,
  16. Node.js Debugging in Chrome DevTools · · , , , , , ,
  17. User Experience in the Era of AI: Enhancing Human-Machine Interactions · · ,
  18. Misinformation and Disinformation Online: What Design Can Do to Remedy This Problem · · ,
  19. Testing HTML With Modern CSS · · , , ,
  20. Demystifying the Shadow DOM · · ,
  21. [zx] 8.0.0 · · ,
  22. Creativity in Software Engineering · · , ,
  23. DevTools Tips and Tricks · · , ,
  24. The V8 Sandbox · · ,
  25. AI and the Future of Web Accessibility Guidelines · · , , , , ,
  26. A Complete Guide to CSS Logical Properties, With Cheat Sheet · · , , ,
  27. Building a Digital Fortress: How to Strengthen DNS Against DDoS Attacks? · · ,
  28. Using JSON Web Tokens With Node.js · · , , ,
  29. Wednesday, April 3, 2024 Security Releases · · , ,
  30. “aspect-ratio” Gotcha · · ,
  31. Svelte Parses HTML All Wrong · · , ,
  32. In-Page Links: 3 Usability Tips · · , , ,
  33. An Advanced Way to Use CSS Variables · · ,
  34. WebAssembly at Google · · , ,
  35. WordPress 6.5 “Regina” · · ,
  36. Learn JavaScript · · ,
  37. A Complete Guide for Content Creators to Start Making Accessible Content · · , ,
  38. Bun 1.1 · · ,
  39. Why I Care Deeply About Web Accessibility and You Should Too · · ,
  40. Latest WebAIM’s Million—Some Thoughts · ·
  41. The DevOps Basics · · ,
  42. Kobold Letters · · , ,
  43. The Easy Way to Access the Last JavaScript Array Element · · ,
  44. The WebAIM Million: The 2024 Report on the Accessibility of the Top 1,000,000 Home Pages · · , , ,
  45. What Negative Effects Does a Bad Website Design Have on My Business? · · ,
  46. Front-End Development’s Identity Crisis · ·
  47. Release Notes for Safari Technology Preview 191 · · , , ,
  48. Improving the Developer Experience of Enterprise Design Systems · · , ,
  49. History of JS Interop in Dart · · , , ,
  50. The Complete Guide to Captioned Videos · · , , ,
  51. New to the Web Platform in March · · , , , , , , , ,
  52. CSS Color-Scheme-Dependent Colors With “light-dark()” · · , , ,
  53. Iterator Helpers · · , ,
  54. Meet Angular’s New “output()” API · · ,
  55. In-App Browsers Are Still a Privacy, Security, and Choice Problem · · , , ,
  56. Flickering Glowing Text Effect With CSS · · ,
  57. How to Take Control of Flexbox · · , ,
  58. CSS Anchor Positioning · ·
  59. How to Use jQuery’s “ajax()” Function for Asynchronous HTTP Requests · · , ,
  60. Quick Tip: How to Align Column Rows With CSS Subgrid · · , , ,
  61. What You Need to Know About Modern CSS (Spring 2024 Edition) · · ,
  62. Node v20.12.0 (LTS) · · ,
  63. Convention over Creativity? The Ups and Downs of UX Design · · ,
  64. Exploring the Power of ARIA Live Attribute in Web Accessibility · · ,
  65. Be Flexible About What People Need (and Don’t Assume) · ·
  66. Animating Clip Paths on Scroll With “@ property” in CSS · · , ,
  67. Setting and Persisting Color Scheme Preferences With CSS and a “Touch” of JavaScript · · , , ,
  68. Error Messages 101 · · , , ,
  69. 7 Simple Rules for Better Data Visualization · ·
  70. How to Consolidate Multiple Design Systems · · ,
  71. Spicing Up Text With “text-emphasis” in CSS · · , ,
  72. Diving into the Node.js Website Redesign · · ,
  73. JavaScript Visualized: Promise Execution · · ,
  74. Incredible JavaScript Animation Libraries · · , , ,
  75. No One Actually Wants Accessibility · ·
  76. Radix Themes 3.0 · · ,
  77. ARIA “role="application"” and Mobile Screen Readers · · , , , , ,
  78. Accessible Forms With Pseudo Classes · · , , ,
  79. CSS Values and Units Module Level 3 · · ,
  80. The “Current Branch” in Git · ·
  81. Node.js TSC Confirms: No Intention to Remove npm from Distribution · · ,
  82. CAPTCHA Excludes Disabled Web Users · · ,
  83. 12 Figma Tips to Work More Efficiently · · , ,
  84. Quick Tip: How to Add Gradient Effects and Patterns to Text · · , , , ,
  85. Don’t Get Scammed by Fake Performance Experts and Apps · · ,
  86. Going Beyond Pixels and (r)ems in CSS—Absolute Length Units · · ,
  87. The Cost of Interrupted Work: More Speed and Stress · · , ,
  88. Optimizing JavaScript for Fun and for Profit · · ,
  89. Node.js: The Documentary · · , ,
  90. On Popover Accessibility: What the Browser Does and Doesn’t Do · · , ,
  91. How to Test 3.3.8 Accessible Authentication (Minimum) · · , , ,
  92. On the Gift of OKR for Company Culture · · ,
  93. Building a Micro htmx SSR Framework · · , ,
  94. This Pattern Will Wreck Your React App’s TS Performance · · , , ,
  95. Welcome to Future of Web Accessibility Based on Predictors · · , ,
  96. [Bulma] 1.0.0 · · ,
  97. “__dirname” Is Back in Node.js With ES Modules · · , ,
  98. Aesthetic Layouts: 2 Column Magazine With “shape-outside” · · , ,
  99. How to Create a Website and a PDF from the Same Codebase · · , ,
  100. How to Plan Your First Successful Website · · ,
  101. Psychology and UX: Decoding the Science Behind User Clicks · · , ,
  102. Folder Structures in React Projects · · ,
  103. The Box Model and Box Sizing · · ,
  104. Progressive Disclosure Defaults · · , ,
  105. Build a Full-Stack App With Node.js and htmx · · , ,
  106. Chill Scroll Snapping: Article Headers · · ,
  107. Using Relative Colors · · ,
  108. Empowering the User Experience Through Microinteractions: 7 Best Practices · · , ,
  109. Accessibility Foundations · · , ,
  110. Build a Node App With TypeScript · · , , ,
  111. Comparing ECMAScript Modules and CommonJS · · , ,
  112. The Power of Textual Content in UX Design · · ,
  113. A Designer’s Role Is Not “at the Table” · · ,
  114. I’m So Old: Web Edition · · ,
  115. “require(esm)” in Node.js · · , ,
  116. How to Kill the Cascade · · , , ,
  117. A Comparison of JavaScript CRDTs · · , ,
  118. How Web-Site Design and Social Media Work Together · · , ,
  119. Oh Sh*t, My App Is Successful and I Didn’t Think About Accessibility · ·
  120. 2024 Cheat Sheet Collection · · ,
  121. Time to Ditch Analytics? Tracking Scripts and Web Sustainability · · , , , ,
  122. Why UI Designers Should Understand Flexbox and CSS Grid · · , ,
  123. Copy Objects Ways in JavaScript · · ,
  124. Migrating Away from Jest and Achieving over 90% Reduction in Running Time · · , , , ,
  125. How Web Bloat Impacts Users With Slow Devices · · , , ,
  126. Homepage Design: 5 Fundamental Principles · · ,
  127. Skeuomorphism · · ,
  128. Quick Tip: Creating a Date Picker in React · · , ,
  129. How (In)Efficient Are Engineering Organizations? · · , ,
  130. Make Your Functions More Reusable With Generics · · , ,
  131. Performance Tooling in 2024 and Beyond · · , , , ,
  132. There Is No EU Cookie Banner Law · · , ,
  133. What Is Safe Alignment in CSS? · · , ,
  134. Arguments for Opening Links in a New Tab or Window · · ,
  135. The Golden Age of Accessibility · ·
  136. When “Semantic Tokens” Are No Longer Semantic · · ,
  137. 25 Unnoticeable Features of JavaScript · ·
  138. Ruby Is Complicated · ·
  139. You Want “border-color: transparent”, Not “border: none” · · ,
  140. The Problem With AI · ·
  141. WCAG 2.2 Detective Skills · · , ,
  142. Another JS Registry—Seriously?! · · , , ,
  143. What’s Next for a Global Design System · ·
  144. The Problem With Data-Attributes for Text Effects · · , , ,
  145. A Beginner’s Guide to Node.js Worker Threads · · , ,
  146. Refactoring My Ugliest Code With Signal View Queries · · , ,
  147. My New Favorite CSS Trick: “will-change” · · , , ,
  148. 5 Exciting New JavaScript Features in 2024 · ·
  149. A Letter to My Younger Self, as an Accessibility Advocate · · ,
  150. Building Websites and Building Websites Well · · , ,
  151. Interaction to Next Paint Is Officially a Core Web Vital · · ,
  152. The “10× Engineer”: 50 Years Ago and Now · · , , ,
  153. Thoughts on Embedding Alternative Text Metadata into Images · · , ,
  154. Marking the Web’s 35th Birthday: An Open Letter · · ,
  155. The Essential Guide to Microcopy and Becoming a More Literate Designer · · , , , ,
  156. Runtime Compatibility · · , , , , , ,
  157. Spread vs. Rest Operators in JavaScript · · , ,
  158. A Gentle Introduction to Generics in Typescript · · ,
  159. Alt Text for CSS Generated Content · · , ,
  160. Announcing Speedometer 3.0: A Shared Browser Benchmark for Web Application Responsiveness · · , ,
  161. Distinguishing Between ARIA and Native HTML Attributes · · , , ,
  162. JSON Canvas · · , , ,
  163. Express.js With TypeScript—Setup, Examples, Testing · · , , , ,
  164. What Is INP and Why You Should Care · · , ,
  165. Have You Optimized for INP? · · , ,
  166. Comparing JavaScript Frameworks: Templates · · , , ,
  167. Streaming HTML · · , ,
  168. CSS Button Styles You Might Not Know · · , ,
  169. Things I Learned While Building My JS Library · · , ,
  170. Access by a Thousand Curb Cuts · ·
  171. Jakob Has Jumped the Shark · · ,
  172. Creating Color Palettes With the CSS “color-mix()” Function · · , , ,
  173. How “HEAD” Works in Git · ·
  174. Modern CSS Tooltips and Speech Bubbles II · · ,
  175. Navigating the Future of Frontend · · , ,
  176. Add Superpowers to Your CSS Variables With Style Queries · · , ,
  177. Asking Users for Their Pronouns: A Guide for UX Designers · · , ,
  178. Some Little Ways I’m Using CSS “:has()” in the Real World · · , ,
  179. The Quiet, Pervasive Devaluation of Frontend · · , , , ,
  180. AVIF Is the Future of Web Images · · , , ,
  181. How to Test 2.5.8 Target Size (Minimum) · · , ,
  182. Managing Static Files in Django: A Comprehensive Guide · · , ,
  183. 5 Ways Productivity Culture Kills Business Agility · · , , ,
  184. Announcing TypeScript 5.4 · · ,
  185. Internationalization With Remix · · ,
  186. Release Notes for Safari Technology Preview 190 · · , , ,
  187. Simplify Your CSS Using “:is()” and “:where()” Pseudo-Classes · · , ,
  188. The End of My Gatsby Journey · · , ,
  189. The Ultimate Guide to Choosing the Best React Website Builder · · , , , ,
  190. WebAssembly JSPI Is Going to Origin Trial · ·
  191. Exploring the Creative Power of CSS Filters and Blending · · , ,
  192. Sometimes, a Button Just Wants to Look Like a Button · · , ,
  193. Taming the Shadow DOM: Injecting Global Styles With Adopted Stylesheets · · , ,
  194. How to Ensure Your Designs Work If You Can’t Access Sample Data · · , , , ,
  195. How to Use WebSockets in Node.js to Create Real-Time Apps · · , ,
  196. WebKit Features in Safari 17.4 · · , , , ,
  197. Best Practices for Inclusive Design · · , , ,
  198. Achieving Design Collegiality While Maintaining Psychological Safety · · ,
  199. Designing for Mobile Accessibility: Enhancing the User Experience on Small Screens · · , , ,
  200. JSR: Second Look · ·
  201. Modern Git Commands and Features You Should Be Using · · ,
  202. JavaScript Runs the World—Maybe Even Literally · · , ,
  203. WCAG? More Like, W-What?! · · , ,
  204. The 88×31 Archive · · , ,
  205. Accessibility Darkness · · ,
  206. Accessibility Has Not Failed—It Has Not Even Started for Real · · ,
  207. Bugs I’ve Filed on Browsers · · , , , ,
  208. VPS Showdown—March 2024—DigitalOcean vs. Linode vs. Vultr · · , , ,
  209. We Need to Talk About Jakob · ·
  210. CSS for Printing to Paper · · ,
  211. How npm Install Scripts Can Be Weaponized: A Real-World Example of a Harmful npm Package · · , , ,
  212. Tools That Make Me Productive as a Software Engineer · · , ,
  213. Emerging UX Patterns in Generative AI Experiences · · , ,
  214. The Faster Lambda Runtime—Node.js or LLRT? We Benchmarked · · , , , , ,
  215. Go Ahead and Block AI Web Crawlers · · , ,
  216. Planning a Design System Generation · · ,
  217. A Love Letter to the Underrepresented in Tech · ·
  218. “AI” and Accessible Front-End Components: Is the Nuance Generatable? · · , ,
  219. Apple Backs off Killing Web Apps, but the Fight Continues · · ,
  220. Apple Says iOS 17.4 Won’t Remove Home Screen Web Apps in the EU After All · · , , ,
  221. Eloquent JavaScript · · , ,
  222. Introducing JSR—the JavaScript Registry · · , , ,
  223. Modern CSS Tooltips and Speech Bubbles · · ,
  224. Retrofitting Fluid Typography · · ,
  225. TIL—“submit()” versus “requestSubmit()” · · ,
  226. Web Tech Trends to Watch in 2024 and Beyond · · , , , , ,
  227. Design System Generations · · ,
  228. Accessibility Has Failed: Try Generative UI = Individualized UX · · , , ,
  229. Choosing the Right Node.js Package Manager in 2024: A Comparative Guide · · , , ,
  230. Diving into CSS Interactivity · · ,
  231. New to the Web Platform in February · · , , , , , , , ,
  232. Techniques to Break Words · · , , ,
  233. The Wax and the Wane of the Web · · ,
  234. Understanding Cookies and Sessions in React · · , ,
  235. What Is Inclusive Design, and How Does It Relate to Accessibility? · · , ,
  236. What You Need to Know About Software Requirements · · ,
  237. Why Does “is-number” Package Have 59M Weekly Downloads? · · ,
  238. An HTML Switch Control · · , ,
  239. Apple vs. PWAs—Go Act Now and Help Avoid This Disaster… · · , ,
  240. Creativity Lies in the Paradoxes · · ,
  241. Enhanced Internationalization (I18N) in Next.js 14 · · ,
  242. Going Beyond Pixels and (r)ems in CSS—Container Query Length Units · · , ,
  243. Making Math Accessible · · ,
  244. So, What Exactly Did Apple Break in the EU? · · , , , , ,
  245. Test Quality vs. Bashing Tailwind CSS · · , ,
  246. Top 8 Recent V8 in Node Updates · · ,
  247. Ultimate Guide to Visual Testing With Playwright · · , , ,
  248. How to Create a Sidebar Navigation With Astro, Tailwind CSS, and Alpine.js · · , , , ,
  249. A Fun Line of Code · · , ,
  250. A Simple Mistake That Can Screw Up Your Light/Dark Theme (and How to Fix It) · · , ,