Frontend Dogma

News and Views in Frontend Development (4)

Articles and books, tips and tricks, craft and beauty from the world of frontend development. Explore all topics. Stay informed per feed and on Twitter.

  1. Auto Dark Theme (tweet) · · , ,
  2. 5 Common Misconceptions About WAI-ARIA and Accessibility (tweet) · · , ,
  3. Web Performance, Core Web Vitals, and Vanity Metrics (tweet) · · , ,
  4. Preference Queries (tweet) · ·
  5. 5 HTML Concepts You Didn’t Know (tweet) · · ,
  6. This Is WCAG 2.1 (tweet) · · , ,
  7. There’s Never Been a Better Time to Build Websites (tweet) · · , , ,
  8. Why Motion on Websites and Digital Content Is a Problem (tweet) · ·
  9. Web Platform Design Principles (tweet) · ·
  10. Sustaining Maintaining (tweet) · · ,
  11. Inaccessibility of CAPTCHA (tweet) · · ,
  12. Hands On with the New Responsiveness Metrics (tweet) · · , ,
  13. Deep-Copying in JavaScript Using “structuredClone” (tweet) · ·
  14. Consistent, Fluidly Scaling Type, and Spacing (tweet) · · ,
  15. The State of CSS 2021 (tweet) · · ,
  16. Shifting the Mindset About Accessible Content (tweet) · · ,
  17. Explain Like I’m Five: Web Performance Optimization (tweet) · · ,
  18. CSS Custom Properties (tweet) · · ,
  19. CSS Can Help Improve Your HTML⁉ Buttons and Links (tweet) · · , ,
  20. 100 Tips on Software Developer Productivity (tweet) · · , ,
  21. Visual Regression Testing for Design Systems with Figma Branches (tweet) · · , ,
  22. The Ideal Line Length and Line Height in Web Design (tweet) · · ,
  23. Read Your Website (tweet) · · ,
  24. Practical Ethics for the Modern Web Designer (tweet) · · , ,
  25. Performance Implications of JavaScript Errors (tweet) · · , ,
  26. Details/Summary (tweet) · · ,
  27. WCAG 2.2: What We Know Till Now (tweet) · · ,
  28. WCAG 2 Is What We Have (tweet) · · ,
  29. Intersection Observer (tweet) · · ,
  30. Embrace the Platform (tweet) · · , , ,
  31. Defer Non-Critical Resources (tweet) · · ,
  32. WCAG 3 Is Not Ready Yet (tweet) · · ,
  33. Standardizing Focus Styles with CSS Custom Properties (tweet) · · , ,
  34. The Last Design You’ll Ever Make (tweet) · · ,
  35. Responsive Iframes with the CSS “aspect-ratio” Property (tweet) · · ,
  36. Caching: Understanding the Scope (tweet) · · ,
  37. Breaking Out of the Box (tweet) · · ,
  38. Writing Better CSS (tweet) · · , ,
  39. Node.js Memory Limits—What You Should Know (tweet) · · ,
  40. Content Separation (tweet) · ·
  41. 5 Reasons You Should Adopt a Micro Frontend Architecture (tweet) · ·
  42. 1993: Mosaic Launches and the Web Is Set Free (tweet) · · ,
  43. Where Do You Put Spacing on Design System Components? (tweet) · · , , ,
  44. Test Your Product on a Crappy Laptop (tweet) · · , ,
  45. Optimizing State Management in React Applications (tweet) · · ,
  46. Google Fonts Knowledge (tweet) · · , ,
  47. Explainer for W3C Accessibility Guidelines (WCAG) 3.0 (tweet) · · ,
  48. Defensive CSS (tweet) · ·
  49. A Beginner’s Guide to Vue Router (tweet) · · ,
  50. Why You Should Check in Your Node Dependencies (tweet) · · ,
  51. Reduce Your Website’s Environmental Impact with a Carbon Budget (tweet) · · ,
  52. HTTP Compression (tweet) · · , ,
  53. Designing Better Links for Websites and Emails: A Guideline (tweet) · · ,
  54. The Love of Curvilinear Design (tweet) · ·
  55. How Many People with Disabilities Use Our Site? (tweet) · ·
  56. Have Core Web Vitals Made the Web Faster? (tweet) · · ,
  57. CSS Fingerprinting (tweet) · · , , ,
  58. Plugging Memory Leaks in Your App (tweet) · · ,
  59. Why Every Developer Should Start Blogging (tweet) · · ,
  60. Revisiting the Anatomy of a Design System (tweet) · · ,
  61. Request for a General Theory of Web Performance (tweet) · · ,
  62. JSON Modules in JavaScript (tweet) · · , ,
  63. Ain’t No Party Like a Third Party (tweet) · · ,
  64. Markup (tweet) · · ,
  65. Best Practices for Node.js Development (tweet) · · , ,
  66. Why Color Contrast Is Not as Black and White as It Seems (tweet) · · , ,
  67. Understanding Accessibility (tweet) · · , ,
  68. The Fundamentals of CSS Layout (tweet) · · , ,
  69. Security (tweet) · · ,
  70. Page Weight (tweet) · · ,
  71. JavaScript (tweet) · · ,
  72. HTTP (tweet) · · , ,
  73. CSS (tweet) · · ,
  74. Accessibility (tweet) · · ,
  75. The Surprising Behavior of “Important CSS Custom Properties” (tweet) · · , ,
  76. CSS Layout from the Inside Out (tweet) · · , ,
  77. Making Accessibility More Accessible (tweet) · ·
  78. Understanding WCAG 2.1 Level AAA (tweet) · · ,
  79. Select Elements with “pointer-events: none” by Holding Shift (tweet) · ·
  80. On Yak Shaving and “<md-block>”, a New HTML Element for Markdown (tweet) · · , , ,
  81. Introduction to Svelte Actions (tweet) · ·
  82. How to Maintain a Large Next.js Application (tweet) · · ,
  83. Programmers Should Stop Celebrating Incompetence (tweet) · · ,
  84. Make Your Website Stand Out with a Custom Scrollbar (tweet) · ·
  85. How to Trim Strings in JavaScript (tweet) · ·
  86. What Kind of Developer Do I Want to Be? (tweet) · · ,
  87. Three Phases of Life for Design Systems (tweet) · · ,
  88. Get Started with Validation in Node.js (tweet) · · ,
  89. Creating Generative Patterns with the CSS Paint API (tweet) · · ,
  90. 7 Ways to Improve Node.js Performance at Scale (tweet) · · ,
  91. The 6 Ways of Writing HTML (and Their Combinations) (tweet) · ·
  92. Modern CSS in a Nutshell (tweet) · ·
  93. Functional Programming in PHP: Higher-Order Functions (tweet) · ·
  94. Control Layout in a Multi-Directional Website (tweet) · · , ,
  95. Adding a Dyslexia-Friendly Mode to a Website (tweet) · · ,
  96. Responsive Layouts, Fewer Media Queries (tweet) · · ,
  97. How JavaScript Engines Achieve Great Performance (tweet) · · , ,
  98. Blog Page Accessibility Deep Dive (tweet) · · ,
  99. Designing Sustainable Websites (tweet) · · ,
  100. Dear HTML Element (tweet) · ·
  101. Tales of the Autistic Developer—Order and Chaos (tweet) · · ,
  102. Parallax Powered by CSS Custom Properties (tweet) · · ,
  103. How to Make Blob Menu Using HTML, CSS and JavaScript (tweet) · · , ,
  104. Communicating Accessibility as Needs to Be Met and Not Rules to Be Followed (tweet) · · ,
  105. 20 Years of bram.us (tweet) · · , ,
  106. Various Ways to Include Comments on Your Static Site (tweet) · · ,
  107. PHP Date and Time Recipes (tweet) · ·
  108. Let’s Not Send Developers to the Accessibility Tree Tool (tweet) · · , ,
  109. Dynamic Color Manipulation with CSS Relative Colors (tweet) · · ,
  110. 1992: The Web vs. Gopher, and the First External Browsers (tweet) · ·
  111. WCAG 3.0: What You Need to Know About the Future of Accessibility Standards (tweet) · · , ,
  112. Three Principles to Better Present Your UI Designs (tweet) · · ,
  113. Performance (tweet) · · , ,
  114. How to Create Reusable Components with the Vue 3 Composition API (tweet) · · ,
  115. A Guide to Modern CSS Colors with RGB, HSL, HWL, LAB, and LCH (tweet) · · , ,
  116. We Need to Talk About Accessibility—Again, and Again, and Then Some More (tweet) · · ,
  117. Using Position Sticky with CSS Grid (tweet) · · ,
  118. Generate a Pull Request of Static Content with a Simple HTML Form (tweet) · · ,
  119. A Clever Sticky Footer Technique (tweet) · · ,
  120. 4 Ways to Document Your Design System with Storybook (tweet) · · , ,
  121. Your CSS Is an Interface (tweet) · · , ,
  122. Why IndexedDB is Slow and What to Use Instead (tweet) · · , ,
  123. Some Notes on Using esbuild (tweet) · ·
  124. How to Fetch Data in Svelte (tweet) · ·
  125. GitHub’s Commitment to npm Ecosystem Security (tweet) · · , ,
  126. Access to Tech, Tech to Live (tweet) · · , ,
  127. 5 Popular Frontend Development Tools in 2021 (tweet) · ·
  128. Why Your Website Should Not Use Dithered Images (tweet) · · , , ,
  129. Using Web Workers to Boost Third-Party Script Performance (tweet) · · , ,
  130. Useful React Hooks That You Can Use in Your Projects (tweet) · · ,
  131. Other Looks at the Conditional Border Radius Trick (tweet) · · , ,
  132. How to Debounce and Throttle Callbacks in Vue (tweet) · · ,
  133. Design Systems, Structured Content, and Headless Publishing (tweet) · · , , ,
  134. Chrome DevTools: Copy CSS Styles as JavaScript-Compatible Properties (tweet) · · , , ,
  135. View-Source (tweet) · · , ,
  136. It’s Not About Your Favorite Color—Moving from Brand Strategy to Visual Identity (tweet) · · , ,
  137. Easy Dark Mode (and Multiple Color Themes) in React (tweet) · · , ,
  138. Everything You Ever Wanted to Know About the Accessibility Tree (tweet) · · ,
  139. Browsing with Screen Magnification (tweet) · · ,
  140. A Beginner’s Guide to Routing in Next.js, with Examples (tweet) · · , ,
  141. Localizing Your Next.js App (tweet) · · , ,
  142. How Designers Can Prevent User Errors (tweet) · · , ,
  143. Detecting Specific Text Input with HTML and CSS (tweet) · · ,
  144. Be Usable, Not Consistent, Not Uniform (tweet) · · ,
  145. Why You Should Prioritise Quality Over Speed in Design Systems (tweet) · ·
  146. Designing a Reorderable List Component (tweet) · · , , ,
  147. Debugging HTML: Accessibility (tweet) · · , ,
  148. PHP 8.1 in 8 Code Blocks (tweet) · ·
  149. In Defence of Dialog (tweet) · ·
  150. Deep Dive into Node.js Architecture (tweet) · · ,
  151. Chrome DevTools: Record and Playback Your User Journeys (tweet) · · , , ,
  152. The Key to Developer Happiness and How to Prevent Coding from Becoming Just Another Job (tweet) · · ,
  153. RenderingNG: The Next-Generation Rendering Architecture for Chrome (tweet) · · , , ,
  154. How to Implement Memoization in React to Improve Performance (tweet) · · , ,
  155. Everything You Have to Know About Core Web Vitals (tweet) · · ,
  156. Understanding the Differences Between WCAG 2.1 and WCAG 2.2 (tweet) · · , ,
  157. Designing Error Messages and a Logging Strategy in Node.js (tweet) · · , , ,
  158. Design Is Not Art, and UX Is Not Design (tweet) · · , ,
  159. Building Real-Life Components: Facebook Messenger’s Chat Bubble (tweet) · · , ,
  160. Browser Wars (tweet) · · ,
  161. A Deep Dive into Serverless UI with TypeScript (tweet) · · ,
  162. What Does a Good Design System Feel Like? (tweet) · · ,
  163. What Are Accessible Fonts? (tweet) · · ,
  164. The State of the Web (tweet) · · ,
  165. Rebase vs. Merge: Integrating Changes in Git (tweet) · · ,
  166. Name, Labels, ARIA, What to Do? (tweet) · · , ,
  167. HTML Concepts: Common Idioms (tweet) · · ,
  168. The Guideline Gap (tweet) · · , , , ,
  169. So, You Want to Build an “@mention” Autocomplete Feature? (tweet) · · ,
  170. Developer Tools Secrets That Shouldn’t Be Secrets (tweet) · · , ,
  171. An Introduction to PostCSS (tweet) · · ,
  172. Accessible Toggles (tweet) · · , ,
  173. A Comprehensive Guide to Error Handling in Node.js (tweet) · · , , ,
  174. The Golden Ratio and User-Interface Design (tweet) · ·
  175. HTMLoween—HTML, JS, and CSS to Make Your Blood Boil (tweet) · · , ,
  176. CSS-ing Candy Ghost Buttons (tweet) · ·
  177. You Probably Don’t Need Media Queries Anymore (tweet) · · ,
  178. Chrome DevTools: Visualise Your JavaScript Bundles (tweet) · · , ,
  179. Using CSS Variables for Reduced Motion on a Global Scale (tweet) · · ,
  180. Indecisive Skip Links and Their Targets—the Renaissance of the “<hr>” Element (tweet) · · ,
  181. Make Your Design System Accessible—Color (tweet) · · , ,
  182. UX Design Isn’t Killing Creativity, Money Is (tweet) · · ,
  183. Best Practices on Embedding Third-Party Web Widgets (tweet) · · , ,
  184. A Step by Step TypeScript Tutorial for Beginners (tweet) · ·
  185. The Problem with “Click Here” and “Learn More” Links (tweet) · · ,
  186. So, You Want an Accessibility Score? (tweet) · · ,
  187. Photoshop’s Journey to the Web (tweet) · · ,
  188. Media Queries Level 4: Media Query Range Contexts (tweet) · · ,
  189. In-Page Filtered Search with Vanilla JavaScript (tweet) · ·
  190. Design Systems at Replit: Better Tokens (tweet) · · ,
  191. Why Outdated jQuery Is Still the Dominant JavaScript Library (tweet) · · , ,
  192. Why Accessibility Overlays on Your Website Can Make Things Worse (tweet) · · ,
  193. Web Performance Metrics Cheatsheet (tweet) · · ,
  194. The Process of Building a CSS Framework (tweet) · · , ,
  195. If HTML and ARIA Don’t Allow It, It’s Probably a Bad Idea (tweet) · · , ,
  196. Building an Effective Image Component (tweet) · · , ,
  197. A Deep Dive into “object-fit” and “background-size” in CSS (tweet) · ·
  198. Switch Role Support (tweet) · · , ,
  199. Micro-Frontends: The Next Gen Way to Build Web Apps (tweet) · · , , ,
  200. Finding Common Patterns Across Frameworks (tweet) · · ,