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 feed or on Mastodon.)

  1. The YAML Document from Hell—JavaScript Edition (toot or tweet) · · ,
  2. Announcing Interop 2023 (toot or tweet) · · ,
  3. Caching Data in SvelteKit (toot or tweet) · · ,
  4. Gatsby Is Joining Netlify (toot or tweet) · ·
  5. Interop 2023: Continuing to Improve the Web for Developers (toot or tweet) · · ,
  6. Interop 2023 (toot or tweet) · · ,
  7. Understanding App Directory Architecture in Next.js (toot or tweet) · · ,
  8. WordPress.com Introduces Browse Mode, Style Book, and Push to Global Styles Features (toot or tweet) · ·
  9. New to the Web Platform in January (toot or tweet) · · , ,
  10. CSS “color-mix()” (toot or tweet) · ·
  11. Easy SVG Customization and Animation: A Practical Guide (toot or tweet) · · , ,
  12. New WCAG 2.2 Features Rated (toot or tweet) · · , ,
  13. 10 GitHub Repositories You Should Know as a JavaScript Developer (toot or tweet) · · , , , ,
  14. Accessible Hamburger Buttons Without JavaScript (toot or tweet) · · , ,
  15. Creating a High-Contrast Design System with CSS Custom Properties (toot or tweet) · · , , ,
  16. Screen Readers Support for Text Level HTML Semantics (toot or tweet) · · , , ,
  17. Use the Dialog Element (Reasonably) (toot or tweet) · · ,
  18. Animating CSS Grid (How-To and Examples) (toot or tweet) · · ,
  19. Are We There Yet? WCAG 2.2 Is at the Candidate Recommendation Stage Again (toot or tweet) · · , ,
  20. Quick Tip: How to Manage Error Reporting in PHP (toot or tweet) · · , ,
  21. Release Notes for Safari Technology Preview 162 (toot or tweet) · · , ,
  22. “scrollend”, a New JavaScript Event (toot or tweet) · ·
  23. Copying Designs Doesn’t Work, and Here’s Why (toot or tweet) · · ,
  24. Things to Do and Not to Do During a Wave of Tech Layoffs (toot or tweet) · ·
  25. 3 Essential Design Trends, January 2023 (toot or tweet) · · ,
  26. Be a Digital Ally: Further Exploration of WCAG 2.2 (toot or tweet) · · , ,
  27. CSS Named Colors: Groups, Palettes, Facts, and Fun (toot or tweet) · · , ,
  28. International Domain Names: Where Does meßagefactory.ca Lead You? (toot or tweet) · · ,
  29. Level Up Your CSS Skills with the “:has()” Selector (toot or tweet) · · ,
  30. Making Sense of TypeScript Using Set Theory (toot or tweet) · ·
  31. Accessibility Tools and Resources for Designers (toot or tweet) · · , ,
  32. Comparing Level Access Automated Tools to Manual Accessibility Testing (toot or tweet) · · , , ,
  33. 15 Must-Have Cheatsheets for Developers (toot or tweet) · · ,
  34. Building Reliable Distributed Systems in Node.js (toot or tweet) · ·
  35. Cascading Components—a Way to Organize Figma Component Variants (toot or tweet) · · ,
  36. Designing a Robust Right-to-Left UI in Arabic, Hebrew, and Farsi (toot or tweet) · · ,
  37. More Real-World Uses for “:has()” (toot or tweet) · · ,
  38. The Key to Good Component Design Is Selfishness (toot or tweet) · · , ,
  39. Unordered Lists in Main Navigations (toot or tweet) · · , ,
  40. What Is a Core Update? (toot or tweet) · ·
  41. “::backdrop” Doesn’t Inherit from Anywhere (toot or tweet) · ·
  42. Comparing Manual and Free Automated WCAG Reviews (toot or tweet) · · , , ,
  43. Don’t Target 100% Coverage (toot or tweet) · ·
  44. Optimize Time to First Byte (toot or tweet) · · ,
  45. Three Attributes for Better Web Forms (toot or tweet) · · ,
  46. Two Ways to Safely Break a Long Word in HTML (toot or tweet) · ·
  47. Unlocking Security Updates for Transitive Dependencies with npm (toot or tweet) · · , , ,
  48. Deep Cloning Objects in JavaScript, the Modern Way (toot or tweet) · · ,
  49. Discovering the Capable Web (toot or tweet) · ·
  50. Front-End Is So Much More Than Building Designs (toot or tweet) · ·
  51. On-Scroll Typography Animations (toot or tweet) · · ,
  52. Solved with “:has()”: Vertical Spacing in Long-Form Text (toot or tweet) · · ,
  53. 6 Common SVG Fails (and How to Fix Them) (toot or tweet) · ·
  54. Blind News Audiences Are Being Left Behind in the data Visualisation Revolution: Here’s How We Fix That (toot or tweet) · · ,
  55. Can a Bridge Be Unethical? (toot or tweet) · · ,
  56. Promises, Thenables, and Lazy-Evaluation: What, Why, How (toot or tweet) · ·
  57. Quick Tip: How to Read a Local File with PHP (toot or tweet) · · ,
  58. The Storytelling Power of Simple Design Solutions (toot or tweet) · ·
  59. The Truth About CSS Selector Performance (toot or tweet) · · , ,
  60. Using “:is()” in Complex Selectors Selects More Than You Might Initially Think (toot or tweet) · · ,
  61. Why We Switched CDNs: How Google’s Core Web Vitals Led Us to Cloudflare Pages (toot or tweet) · · , ,
  62. A Better Way to Work with Number and Date Inputs in JavaScript (toot or tweet) · ·
  63. Greater Styling Control over Type with “initial-letter” (toot or tweet) · · ,
  64. Minimal Dark Mode Styling (toot or tweet) · · , ,
  65. Optimizing the Image Element LCP (toot or tweet) · · , ,
  66. Complete Guide to Make You a Regex Guru (toot or tweet) · · ,
  67. CSS Nesting Is Coming (toot or tweet) · · ,
  68. Interactive SVG Reference (toot or tweet) · ·
  69. Speeding Up the JavaScript Ecosystem—Module Resolution (toot or tweet) · · ,
  70. The Only Markdown Cheatsheet You Will Ever Need (toot or tweet) · · ,
  71. 5 Principles of Readable Code: KISS, YAGNI, DRY, BDU, Occam’s Razor (toot or tweet) · · ,
  72. Foundations: Visible Focus Styles (toot or tweet) · · ,
  73. Four Ways to Chop Up Arrays (with Vanilla JavaScript) (toot or tweet) · · ,
  74. Succeed as a Junior Developer (toot or tweet) · ·
  75. 2023 N|Solid Awards: The Top 10 Best Node.js Open Source Projects to Watch (toot or tweet) · · , , ,
  76. Cookie “Expires” and “Max-Age” Attributes Now Have Upper Limit (toot or tweet) · · , ,
  77. CSS Color Functions and Custom Properties (toot or tweet) · · , ,
  78. Fixing a Memory Leak in a Production Node.js App (toot or tweet) · · ,
  79. Is TypeScript Worth It? (toot or tweet) · · ,
  80. React, Vite, and TypeScript: Get Started in Under 2 Minutes (toot or tweet) · · , ,
  81. Sibling Scopes in CSS, Thanks to “:has()” (toot or tweet) · · ,
  82. Top Front-End Tools of 2022 (toot or tweet) · · ,
  83. 11 Excellent WordPress Themes for 2023 (toot or tweet) · · ,
  84. Closed Captions and Subtitles UX (toot or tweet) · · , ,
  85. “:has” Is an Unforgiving Selector (toot or tweet) · · ,
  86. How to Destructure Props in Vue (Composition API) (toot or tweet) · ·
  87. JavaScript, Community (toot or tweet) · · ,
  88. The Gotcha of Unhandled Promise Rejections (toot or tweet) · ·
  89. The State of JavaScript 2022 (toot or tweet) · · ,
  90. The YAML Document from Hell (toot or tweet) · · ,
  91. 2023 Design Trends from an Accessibility Perspective (toot or tweet) · · , ,
  92. CSS “:readonly” Is Not for Select Fields (toot or tweet) · · ,
  93. Data URLs and Pool in Your URL (toot or tweet) · ·
  94. D̶e̶s̶i̶g̶n̶ Token Clusters (toot or tweet) · ·
  95. Faking Min Width on a Table Column (toot or tweet) · · , , ,
  96. Our Top Core Web Vitals Recommendations for 2023 (toot or tweet) · · , ,
  97. Quick Tip: How to Filter Data with PHP (toot or tweet) · · ,
  98. Set Up a React App with TypeScript in 5 Minutes (toot or tweet) · · , ,
  99. Versioning Design Systems: Best Practices (toot or tweet) · · , ,
  100. Why Not “document.write()”? (toot or tweet) · · ,
  101. 7 Principles of Design Psychology Every UX Designer Should Know (toot or tweet) · · , ,
  102. 7 Purpose-Driven UX Tips for Your Next Web-Site Redesign (toot or tweet) · · , ,
  103. A Software Developer’s Guide to Writing (toot or tweet) · · ,
  104. Building a Design System: Lessons Learned (toot or tweet) · ·
  105. Clever Code Considered Harmful (toot or tweet) · · , ,
  106. Conditional CSS (toot or tweet) · ·
  107. Customizing HTML Form Validation (toot or tweet) · · , ,
  108. Good Design is Intentional (toot or tweet) · ·
  109. Implementing Microservice Architecture in Node.js (toot or tweet) · · , ,
  110. Node.js Retro 2022 (toot or tweet) · · ,
  111. Styling Buttons in WordPress Block Themes (toot or tweet) · · , ,
  112. 3D in CSS (toot or tweet) · ·
  113. Best Node.js Schedulers (toot or tweet) · · ,
  114. OK LCH, I’m Convinced (toot or tweet) · · ,
  115. Personas Are Living Documents: Design Them to Evolve (toot or tweet) · · ,
  116. Revolutionizing the Web with WebAssembly: A Comprehensive Guide (toot or tweet) · · ,
  117. Stock Photos of People with Disabilities (toot or tweet) · · , ,
  118. Using GitHub Copilot for Unit Testing (toot or tweet) · · , ,
  119. 2022 JavaScript Rising Stars (toot or tweet) · · , , ,
  120. A New Accessibility Strategy for the GOV.UK Design System (toot or tweet) · · , ,
  121. Design Systems in Practice (toot or tweet) · · ,
  122. Infinite Scrolling: When to Use It, When to Avoid It (toot or tweet) · · , ,
  123. Why Web Performance Still Matters in 2023 (toot or tweet) · ·
  124. A Guide to Getting Data Visualization Right (toot or tweet) · · ,
  125. Every Software Developer Should Write a Blog (toot or tweet) · · ,
  126. How to Build Great HTML Form Controls (toot or tweet) · · ,
  127. HTML with Superpowers: An Introduction to Web Components (toot or tweet) · · , , , ,
  128. Progressively-Enhanced Dark Mode (toot or tweet) · · ,
  129. Understanding Git Through Images (toot or tweet) · ·
  130. Using “!important” in Cascade Layers (toot or tweet) · · ,
  131. When Stakeholders Bypass the Product Owner (toot or tweet) · · , ,
  132. 5 Web Design Trends to Watch in 2023 (toot or tweet) · · ,
  133. Creating Tokens for Your Design System with ChatGPT Assistance (toot or tweet) · · , ,
  134. CSS “:has()” Feature Detection with “@ supports(selector(…))”: You Want “:has(+ *)”, Not “:has(*)” (toot or tweet) · · , ,
  135. How to Increase Your Chances of Getting Interviews and Job Offers in Tech (toot or tweet) · · ,
  136. JAWS, NVDA, and VoiceOver Braille Viewers (toot or tweet) · · , ,
  137. What Does It Look Like for the Web to Lose? (toot or tweet) · · ,
  138. Carry On Testing 2023 (toot or tweet) · · ,
  139. Cloning Arrays and Objects in Vanilla JavaScript (toot or tweet) · · , ,
  140. Conditional API Responses for JavaScript vs. HTML Forms (toot or tweet) · · , , , ,
  141. Quick Thoughts on Typeface and Font Accessibility (toot or tweet) · · , ,
  142. WAI-Adapt Explainer (toot or tweet) · ·
  143. 17 Compelling Reasons to Start Ditching TypeScript Now (toot or tweet) · ·
  144. 6 Predictions for Web Design in 2023 (toot or tweet) · · ,
  145. Measuring an Engineering Organization (toot or tweet) · · ,
  146. Microservices vs. Monolithic Architecture: A Practical Approach (toot or tweet) · · , , ,
  147. Priority Hints and Optimizing LCP (toot or tweet) · · , ,
  148. The State of Usability in 2023 (toot or tweet) · · , ,
  149. 2022 Year In Review (toot or tweet) · · ,
  150. A Beginner’s Guide to Link and Text Accessibility (toot or tweet) · · , ,
  151. The State of Mobile User Experience (toot or tweet) · · , ,
  152. Fluid Typography: Predicting a Problem with Your User’s Zoom-In (toot or tweet) · · ,
  153. Junior Designers, Please Don’t Give In (toot or tweet) · · ,
  154. Overlapping Interactive Areas (toot or tweet) · · ,
  155. Why Do We Need Authorization and Authentication? (toot or tweet) · · , ,
  156. An Ultimate Guide on Sizing, Spacing, Grids and Layout in Web and UI/UX Design (toot or tweet) · · , , , ,
  157. Git in 10 Mins (toot or tweet) · ·
  158. JavaScript Frameworks—Heading into 2023 (toot or tweet) · · ,
  159. Stashing Individual Files in Git (toot or tweet) · ·
  160. Styling a “pre” That Contains a “code” (toot or tweet) · · ,
  161. Understanding Design Tokens, from UX Tool to Production (toot or tweet) · · ,
  162. 7 Tips for Improving Your Productivity with Git (toot or tweet) · · , ,
  163. How to Write an Awesome Readme (toot or tweet) · ·
  164. Why Web Design Still Matters in 2023 (toot or tweet) · · ,
  165. A Guide to Command-Line Data Manipulation (toot or tweet) · · ,
  166. A CSS Challenge: Skewed Highlight (toot or tweet) · · ,
  167. Building Inclusive Products for Trans People (toot or tweet) · ·
  168. CSS Subgrid (toot or tweet) · · ,
  169. Invisible Ink Effect with SVG Filters and CSS (toot or tweet) · · , , ,
  170. The RUM Archive and Benford’s Law (toot or tweet) · ·
  171. What’s Wrong with Code in 2022? (toot or tweet) · · , ,
  172. 11 Tips That Make You a Better TypeScript Programmer (toot or tweet) · · ,
  173. A Problem with Link Relationships (toot or tweet) · · , ,
  174. Deploying CSS Logical Properties on Web Apps (toot or tweet) · · , ,
  175. Enforcing Better HTML Markup with Eleventy (toot or tweet) · · , , ,
  176. HTTP/3 Prioritization Demystified (toot or tweet) · · , ,
  177. User Stylesheets Are Still Pretty Great and Should Be More Widely Supported (toot or tweet) · · ,
  178. 2022 CSS Updates (toot or tweet) · ·
  179. Aligning Jakob Nielsen’s 10 Usability Heuristics with the WCAG 2.1 (toot or tweet) · · , , ,
  180. An Inclusive and Planet-Friendly Digital Style Guide (toot or tweet) · · , , , ,
  181. Obscure CSS: Restoring Visibility (toot or tweet) · · ,
  182. The 10 Cheapest Web Hosting Solutions in 2022 (toot or tweet) · · ,
  183. Top 10 Accessibility News of 2022 (toot or tweet) · · ,
  184. What Is the Difference Between Alternative Text, Long Description, and Caption? (toot or tweet) · ·
  185. 2022 Roundup of Web Research (toot or tweet) · · ,
  186. A Theory of Web Relativity (toot or tweet) · · , ,
  187. Accessibility Convincing (toot or tweet) · · , , ,
  188. Billions of Unnecessary Files in GitHub (toot or tweet) · · ,
  189. Building an Accessible Theme Picker with HTML, CSS, and JavaScript (toot or tweet) · · , , , ,
  190. CSS Color Spaces and Relative Color Syntax (toot or tweet) · · ,
  191. React’s New Killer Documentation Focused Only on Functional Components (toot or tweet) · · ,
  192. Signals: The Nitty-Gritty (toot or tweet) · · ,
  193. The Intended Consequence of Inaccessible Digital Ads (toot or tweet) · · , ,
  194. Things CSS Could Still Use Heading Into 2023 (toot or tweet) · · ,
  195. Bad Performance Is Bad Accessibility (toot or tweet) · · ,
  196. Common Nesting Issues in HTML (toot or tweet) · · ,
  197. Foundations: Target Sizes (toot or tweet) · · ,
  198. Pointer Events (toot or tweet) · · ,
  199. The Top 10 Security Vulnerabilities for Web Applications (toot or tweet) · · ,
  200. Useful Accessibility and Usability Examples to Help Improve Your Designs (toot or tweet) · · ,
  201. Why We Hang Onto WordPress Nostalgia (toot or tweet) · ·
  202. Beating Latency on Scalemates.com (toot or tweet) · · ,
  203. Concepts Behind Modern Frameworks (toot or tweet) · · ,
  204. CSS Style Queries (toot or tweet) · ·
  205. Do You Know “color-scheme”? (toot or tweet) · · ,
  206. Frontend Dogma + UITest.com = ❤️ (toot or tweet) · ·
  207. If You Are Afraid of AI, You May Not Be the Best UX Designer Out There (toot or tweet) · · , , ,
  208. Interop 2022: End of Year Update (toot or tweet) · · , , ,
  209. Prevent Focused Elements from Being Obscured by Sticky Headers (toot or tweet) · · , ,
  210. Taking the Stress out of Design System Management (toot or tweet) · · ,
  211. The Performance Inequality Gap, 2023 (toot or tweet) · ·
  212. The Science of User Experience (toot or tweet) · · ,
  213. How to Learn in Public (toot or tweet) · · ,
  214. HTML Dialog (toot or tweet) · ·
  215. Lockfile Trick: Package an npm Project with Nix in 20 Lines (toot or tweet) · · ,
  216. Mini-Guide to Add an Image (toot or tweet) · · ,
  217. Cascade Layers (toot or tweet) · · ,
  218. Modern HTML as a Foundation for Progressive Enhancement (toot or tweet) · · ,
  219. Using Inline JavaScript Modules to Prevent CSS Blockage (toot or tweet) · · , ,
  220. 5 HTML Elements, and a Partridge in a Despair Tree (toot or tweet) · · , ,
  221. Apple, Google, and Mozilla Are Teaming Up to Make a Next-Gen Browser Benchmark (toot or tweet) · · , , ,
  222. CSS Infinite 3D Sliders (toot or tweet) · · , ,
  223. How to Find and Fix the Top 3 Accessibility Issues (toot or tweet) · · , ,
  224. 4 Ways CSS “:has()” Can Make Your HTML Forms Even Better (toot or tweet) · · , , ,
  225. Accessibility Starts with an Organisation’s Culture (toot or tweet) · · ,
  226. An HTML-First Mental Model (toot or tweet) · · , ,
  227. CI/CD Tutorial for Developers (toot or tweet) · ·
  228. CSS “image()” (toot or tweet) · ·
  229. ECMAScript Proposal: Iterator Helpers (toot or tweet) · · , ,
  230. Get That Marquee AeStHeTiC (toot or tweet) · · , ,
  231. Help Choose the Syntax for CSS Nesting (toot or tweet) · · ,
  232. Leaked a Secret? Check Your GitHub Alerts… for Free (toot or tweet) · · ,
  233. Logical Border Radius (toot or tweet) · · ,
  234. Select the Right Tool for the Job (toot or tweet) · ·
  235. So, You’d Like to Animate the “display” Property (toot or tweet) · · ,
  236. A “:nth-child(An+B [of S]?)” Polyfill Thanks to CSS “:has()” (toot or tweet) · · ,
  237. Apple Considering Dropping Requirement for iPhone Web Browsers to Use WebKit (toot or tweet) · · , ,
  238. Everything You Need to Know About Concurrent React (with a Little Bit of Suspense) (toot or tweet) · · ,
  239. Get off the Main Thread with an Inline Web Worker: An Example (toot or tweet) · · , ,
  240. IDN Is Crazy (toot or tweet) · · ,
  241. Sophisticated Web Scraping with Bright Data (toot or tweet) · · , ,
  242. Table Like It’s 2023 (toot or tweet) · · ,
  243. The Most Popular CSS-in-JS Libraries in 2022 (toot or tweet) · · , , ,
  244. View Transitions API (toot or tweet) · · ,
  245. A Few Times Container Size Queries Would Have Helped Me Out (toot or tweet) · · ,
  246. Design Deserves More Respect (toot or tweet) · ·
  247. Federal Web Accessibility Focus Has Private Sector on Notice (toot or tweet) · · ,
  248. New Viewport Units (toot or tweet) · · , ,
  249. One Day We’ll Have a Fully Customisable Select (toot or tweet) · · ,
  250. State of A11Y (toot or tweet) · · ,