Frontend Dogma

News and Views in Frontend Development (2)

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. CSS “:has” (tweet) · · ,
  2. Case: Accessibility in Software Development (tweet) · · , ,
  3. A Guide to Hover and Pointer Media Queries (tweet) · · , ,
  4. 7 Learning Habits for Developers: Reach Skill Goals in Less Time (tweet) · ·
  5. Why Every Programmer Must Blog (tweet) · · ,
  6. The Art of CSS Art (tweet) · · ,
  7. You’re Unselectable (tweet) · · ,
  8. You ≠ User (tweet) · · , ,
  9. Remix Routes Demystified (tweet) · · ,
  10. Quick Survey: Help Improve the Simulation Options of Browser Developer Tools (tweet) · · , , ,
  11. How to Use Props in React (tweet) · · ,
  12. 14 Linting Rules to Help You Write Asynchronous Code in JavaScript (tweet) · · ,
  13. Variable Fonts in Real Life: How to Use and Love Them (tweet) · · ,
  14. Designing “Above the Fold”? Try the Reciprocity Principle (tweet) · · ,
  15. Those HTML Attributes You Never Use (tweet) · ·
  16. There Are No Bad Questions in Accessibility (tweet) · · ,
  17. The Web Is for Everyone: Our Vision for the Evolution of the Web (tweet) · · , , , , , ,
  18. The 5 Riders of Accessible Media (tweet) · · ,
  19. Spotlight: What Happens When a Project Team Shifts Accessibility Left? (tweet) · ·
  20. Resetting Inherited CSS with “Revert” (tweet) · · ,
  21. When to Use a Function Expression vs. Function Declaration (tweet) · · ,
  22. Optimising Core Web Vitals on SPAs (tweet) · · , , ,
  23. Dynamically Generated Content and Accessibility: 3 Quick Tips (tweet) · · ,
  24. Deep Dive into the CSS “:where()” Function (tweet) · · ,
  25. ADA Web Site Compliance Still Not a Thing (tweet) · · ,
  26. Write HTML, the HTML Way (Not the XHTML Way) (tweet) · · ,
  27. Windows High Contrast Mode, Forced Colors Mode, and CSS Custom Properties (tweet) · · , , ,
  28. Usability Testing: Driving the Best User Experience for Business Success (tweet) · · , ,
  29. Should “Cancel” Be a Button or a Link? (tweet) · · ,
  30. Improving Your User Experience to Reduce Bounce Rates (tweet) · · , , ,
  31. HTML Semantics (tweet) · · ,
  32. Do’s and Don’ts of Mobile UX Design (tweet) · · , , ,
  33. Design Systems Aren’t Cheap (tweet) · · , ,
  34. Design System—Principles of Success (tweet) · · ,
  35. Design Mistakes That Hurt Your Web Site’s Conversion Rates (tweet) · · , ,
  36. Conquering JavaScript Hydration (tweet) · · ,
  37. 4 Xs That Aren’t UX (tweet) · ·
  38. UX Strategy: Definition and Components (tweet) · · ,
  39. Authorization in a Microservices World (tweet) · · ,
  40. Why Is Dark Mode So Captivating? (tweet) · ·
  41. The Impact That High Quality Mark-Up Can Have on Accessibility, Performance, and Discoverability (tweet) · · , , , ,
  42. Optimizing SVG Patterns to Their Smallest Size (tweet) · · ,
  43. Migrating Our Monorepo to Yarn 2 (tweet) · · , ,
  44. Identifying Fonts: The Complete Guide (tweet) · · , ,
  45. How to Make a Drag-and-Drop File Uploader with Vue.js 3 (tweet) · · ,
  46. How Do I Resolve Merge Conflicts? (tweet) · · ,
  47. Guidance on Web Accessibility and the ADA (tweet) · ·
  48. Google Calendar Webhooks with Node.js (tweet) · · , ,
  49. 4 Accessibility Mistakes Plaguing Most Government Websites (tweet) · ·
  50. The Future of the Web and Accessibility (tweet) · · , , ,
  51. What Makes You a Professional Web Developer (tweet) · · , ,
  52. What Every Good README Should Contain (tweet) · ·
  53. How to Prep Your SEO Strategy for a New Website (tweet) · · ,
  54. How to Empathize with Your Users (tweet) · · , , ,
  55. Building a Loading Bar Component (tweet) · · , , ,
  56. Accessibility, Assistive Technology, and JavaScript (tweet) · · , ,
  57. A Quick Guide to Closures (tweet) · · ,
  58. A Designer’s Guide to Documenting Accessibility and User Interactions (tweet) · · , , ,
  59. The Weirdly Obscure Art of Streamed HTML (tweet) · · ,
  60. React Best Practices and Patterns to Reduce Code (tweet) · · , , ,
  61. Prevent Technical Debt with These 3 Strategies (tweet) · ·
  62. Making the World’s Fastest Website, and Other Mistakes (tweet) · ·
  63. Implementing JavaScript Delay for Cookie Consent Banner (tweet) · · , ,
  64. How to Automatically Size a Textarea Based on Its [Text] Using Vanilla JavaScript (tweet) · · ,
  65. Don’t Believe the Type! (tweet) · · , , , ,
  66. When or If (tweet) · · ,
  67. Update Node Dependencies Automatically, Selectively, or Incrementally (tweet) · · , , ,
  68. Tao of Node—Design, Architecture, and Best Practices (tweet) · · , ,
  69. It Needs to Map Back to a Role (tweet) · · , , ,
  70. In Defense of Sass (tweet) · · , ,
  71. Explaining Micro Frontends As Simply As Possible (tweet) · ·
  72. Aligning Content in Different Wrappers (tweet) · · ,
  73. Giving New Meanings to the Color Functions in CSS (tweet) · · ,
  74. 20 Productivity Tips from Developers to Developers (tweet) · · ,
  75. The Future of Web Accessibility: WCAG 3.0 (tweet) · · , ,
  76. Where TypeScript Excels (tweet) · · ,
  77. Horizontal Scrolling Nav (tweet) · · ,
  78. 42 Tips for Getting Good at DevOps and Life (tweet) · · , , ,
  79. Arrow Functions in JavaScript: How to Use Fat and Concise Syntax (tweet) · ·
  80. You Don’t Always Need a CMS (tweet) · · , ,
  81. WebGPU—All of the Cores, None of the Canvas (tweet) · · ,
  82. Ten Years of Page Bloat: What Have We Learned? (tweet) · · , ,
  83. Don’t Alienate Your User: A Primer for Internationalisation and Localisation (tweet) · · , ,
  84. Digging into CSS Media Queries (tweet) · · , ,
  85. Carousels: No One Likes You (tweet) · · , , ,
  86. An Introduction to User Journey Maps (tweet) · · , ,
  87. Accumulation of Tech Debt (tweet) · · ,
  88. A Look at the Dialog Element’s Super Powers (tweet) · · ,
  89. Using HTTPS in Your Development Environment (tweet) · · , ,
  90. Session Timeouts (tweet) · · ,
  91. Performance Signals for Customizing Website UX (tweet) · · , ,
  92. Optimizing a Web Site for Google’s New UX Criteria (tweet) · · , , ,
  93. Moderated Versus Unmoderated Usability Testing (tweet) · · , ,
  94. JavaScript Naming Conflicts: How Existing Code Can Force Proposed Features to Be Renamed (tweet) · · , ,
  95. Designing the User Experience of a Rating System (tweet) · · , ,
  96. An Introduction to AWS CloudFront Functions (tweet) · · ,
  97. A New Speed Milestone for Chrome (tweet) · · ,
  98. 7 Ways to Achieve a Faster Core Web Vitals Score (tweet) · · ,
  99. 10 Amazing Games to Learn CSS (tweet) · · ,
  100. Alternatives to Pagination on Product-Listing Pages (tweet) · · ,
  101. Why I Avoid “async”/“await” (tweet) · ·
  102. The Basics—Generics in PHP (tweet) · · ,
  103. Creating Native Web Components (tweet) · · , ,
  104. The Importance of Screen Reader Software for Web Navigation (tweet) · · , , ,
  105. The Best Design System Is No System (tweet) · · ,
  106. Remix vs. Next.js (tweet) · · , ,
  107. It’s Always Been You, Canvas2D (tweet) · · , ,
  108. Interop 2022: Browsers Working Together to Improve the Web for Developers (tweet) · · , ,
  109. How to Prevent SQL Injection Attacks in Node.js (tweet) · · , , ,
  110. How to Design Better APIs (tweet) · ·
  111. Dive into Node.js Streams (tweet) · ·
  112. Building Web Layouts for Dual-Screen and Foldable Devices (tweet) · · , ,
  113. Accessibility and Limited Fine Motor Skills (tweet) · ·
  114. Taming CSS Variables with Web Inspector (tweet) · · , , ,
  115. Progressive Enhancement, the New Hotness (tweet) · · ,
  116. How to Use Higher-Order Functions in JavaScript (tweet) · ·
  117. How to Make a “Raise the Curtains” Effect in CSS (tweet) · · ,
  118. How Many Hyperlinks Are Too Many for Accessibility? (tweet) · · , ,
  119. How Do Primitive Values Get Their Properties? (tweet) · ·
  120. What’s Really Going On Inside Your node_modules Folder? (tweet) · · , ,
  121. Simple Color System for Complex Digital Interfaces (tweet) · · , , ,
  122. New CSS Features in 2022 (tweet) · ·
  123. Web Component Pseudo-Classes and Pseudo-Elements Are Easier Than You Think (tweet) · · , ,
  124. (Not So) Short Note on Being Owned (tweet) · · , ,
  125. How to Build a File Upload Service with Vanilla JavaScript (tweet) · ·
  126. Foundations: Headings (tweet) · · , ,
  127. Accessibility Checklist: Five Things Usually Left Out (tweet) · · ,
  128. A Recipe for a Good Design System (tweet) · · ,
  129. 5 Things You Don’t Need JavaScript For (tweet) · ·
  130. Solid.js Feels Like What I Always Wanted React to Be (tweet) · · ,
  131. Should Frontend Devs Care About Performance? (tweet) · · ,
  132. Importing ES6 Modules over HTTP/HTTPS in Node.js (tweet) · · , , ,
  133. Higher-Order Components in React Hooks Era (tweet) · · ,
  134. CSS “content” Property (tweet) · ·
  135. Top 2021 CSS Frameworks Report: The CSS File Sizes (tweet) · · , , ,
  136. When to Avoid the “text-decoration” Shorthand Property (tweet) · ·
  137. Screaming Architecture—Evolution of a React Folder Structure (tweet) · · ,
  138. Overlay Position and Recommendations (tweet) · ·
  139. How I Structure My React Projects (tweet) · · ,
  140. 4 Simple Ways to Improve Web Accessibility (tweet) · ·
  141. Understanding Dependencies Inside Your package.json (tweet) · · , , ,
  142. Accessibility and Inclusivity in Practice (tweet) · · , ,
  143. Moving from Next to Remix (tweet) · · , , ,
  144. HTML Comments Work in JavaScript Too (tweet) · · ,
  145. How to Make MPAs That Are as Fast as SPAs (tweet) · · ,
  146. How to Fix Your Security Vulnerabilities with npm Override (tweet) · · , ,
  147. Container Queries, the Next Step Towards a Truly Modular CSS (tweet) · · , ,
  148. Can You Get Pwned with CSS? (tweet) · · ,
  149. A Complete Guide to CSV Files in Node.js (tweet) · · , ,
  150. 5 Accessibility Quick Wins You Can Implement Today (tweet) · ·
  151. What Is Responsible JavaScript? (tweet) · · , ,
  152. Turning the Tables on Accessibility (tweet) · ·
  153. The Case for Adding Validation State to Your Design Tokens (tweet) · · ,
  154. Support for Marking Radio Buttons Required, Invalid (tweet) · · ,
  155. SPAs Were a Mistake (tweet) · · ,
  156. Reliably Send an HTTP Request as a User Leaves a Page (tweet) · ·
  157. Inclusive Design vs. Accessible Design: Understanding the Differences (tweet) · · , , ,
  158. How to Prioritize Your Components (tweet) · · ,
  159. Design Systems in Figma: How to Be More Productive (tweet) · · , ,
  160. Component Tokens and Themes Example (to Learn Figma Tokens) (tweet) · · , , , ,
  161. Comparing Gatsby and Next.js for Website Development (tweet) · · , , ,
  162. 15 Useful Placeholder Tools for Designers and Developers (tweet) · · , , ,
  163. Writing Logic in CSS (tweet) · ·
  164. Let’s Get Inclusive: Designing Products for Everyone (tweet) · · ,
  165. Design System: How to Successfully Collaborate? (tweet) · · ,
  166. CSS Quick Tip: Animating in a Newly Added Element (tweet) · · ,
  167. A Complete Guide to CSS Cascade Layers (tweet) · · , ,
  168. Minimizing Google Fonts by Only Loading It for Certain Characters (tweet) · · , , ,
  169. Column Headers and Browser Support (tweet) · · , ,
  170. You Can “throw()” Anything in JavaScript—and Other “async”/“await” Considerations (tweet) · ·
  171. There Is No Character Limit for “Alt Text” (tweet) · · ,
  172. Using “mask” as “clip-path” (tweet) · · ,
  173. Structuring Documentation in Multi-Brand Design Systems (tweet) · · ,
  174. Core Web Vitals: What Next? (tweet) · · , ,
  175. Comparing Node JavaScript to JavaScript in the Browser (tweet) · · , , ,
  176. What Makes Writing More Readable? (tweet) · · ,
  177. Web Developers and Cognitive Biases (tweet) · · , ,
  178. How to Create a Search Page for a Static Website with Vanilla JS (tweet) · · ,
  179. Flexbox Dynamic Line Separator (tweet) · ·
  180. What is the Difference Between WCAG Compliance Level A, AA, and AAA? (tweet) · · , ,
  181. Track Down the JavaScript Code Responsible for Polluting the Global Scope (tweet) · ·
  182. The State of JavaScript 2021 (tweet) · · ,
  183. The Harsh Reality for JavaScript Developers: If You Don’t Study the Fundamentals You Will Be Just Another “Coder” (tweet) · · , ,
  184. An Auto-Filling CSS Grid with Max Columns of a Minimum Size (tweet) · · ,
  185. 7 Lessons I’ve Learned in the Last Year as a Software Engineer (tweet) · · ,
  186. Version 100 in Chrome and Firefox (tweet) · · ,
  187. The Basics of package.json (tweet) · · , , ,
  188. Foundations: Colour and Meaning (tweet) · · ,
  189. Colors That Make Sense (tweet) · · , ,
  190. 10 Mental Models Developers Can Use to Get Unstuck (tweet) · ·
  191. WCAG 2.2 Update (tweet) · · ,
  192. 7 Killer One-Liners in JavaScript (tweet) · ·
  193. The Entire Cascade (as a Funnel) (tweet) · · , ,
  194. Functions and the Future of Design Systems (tweet) · · ,
  195. Why Radio Buttons Are Called Radio Buttons in UIs? (tweet) · · , ,
  196. Using the Language Attribute to Make Your Website Accessible (tweet) · · , ,
  197. Multi-Value CSS Properties with Optional Custom Property Values (tweet) · · ,
  198. Hello, CSS Cascade Layers (tweet) · · ,
  199. Moving from JavaScript to TypeScript (tweet) · · ,
  200. How to Keep Your Repo Package Dependencies Up to Date Automatically (tweet) · · ,