Frontend Dogma

News and Tools for Frontend Development (12)

(Stay up-to-date on all topics by RSS feed or on Mastodon.)

  1. The Double-Edged Sword of Design Systems (via) · · ,
  2. Don’t Meddle With User Input (by) · · ,
  3. 10 Incident Management Best Practices (via) · · , ,
  4. Sass-Like Nesting in Native CSS (by) · · , , ,
  5. Mastering CSS Blend Modes (by) · · ,
  6. The Optimization Sinkhole (by) · · ,
  7. How Screen-Reader Users Type on and Control Mobile Devices (by/via) · · , , , , ,
  8. The Problem With Nested Fieldsets and How to Avoid Them (by) · · , , ,
  9. Why Does “👩🏾‍🌾” Have a Length of 7 in JavaScript? (by) · · ,
  10. Plain Old JavaScript and the DOM (by) · · ,
  11. WordPress Turns 20 (by/via) · ·
  12. When to Use Plain Text or Images Instead of MathML (via) · · , ,
  13. Understanding the Importance of Encoding (by) · ·
  14. We Need to Talk About How We Talk About Accessibility (by+/via) · · , ,
  15. Designing a Better Design Handoff File in Figma (by/via) · · , ,
  16. Supper Club × Bramus Van Damme on CSS (by+/via) · · , ,
  17. How to Draw Any Regular Shape With Just One JavaScript Function (by/via) · · , ,
  18. A Practical Overview on Architecture Decision Records (ADR) (by) · · , ,
  19. Brief Note on Popovers With Dialogs (by) · · , , , ,
  20. “display: contents” Considered Harmful (by) · · ,
  21. Levelling Up Accessibility Skills in Your Organisation (by+/via) · · ,
  22. Two Things That Are Not Great About OKLCH (by) · · ,
  23. Seven Lessons From 7 Years Designing Systems (by) · · ,
  24. Deploying AVIF for More Responsive Websites (by/via) · · , ,
  25. The Yellow Fade Technique With Modern CSS Using “@ starting-style” (by/via) · · ,
  26. Responsive CSS Layout Grids Without Media Queries (by/via) · · , ,
  27. Querying Parsed HTML in BigQuery (by) · ·
  28. Register Custom Properties in CSS, Get and Update Them With JavaScript (by) · · ,
  29. 11 HTML Best Practices for Login and Sign-Up Forms (by/via) · · , ,
  30. A Complete Guide to Using IndexedDB (via) · · , ,
  31. Reading a Voluntary Product Accessibility Template (VPAT) or Accessibility Conformance Report (ACR) (by/via) · · , ,
  32. Single Line Comments in CSS (by) · · ,
  33. Graph Slider (by) · ·
  34. Two Simple Layouts That Work Better With Grid (by) · · , ,
  35. You Don’t Need a Modal Window (by) · · ,
  36. I Created 100+ Unique CSS Patterns (by) · · , ,
  37. Addressing Timeout Modals: Navigating the Nuances for Inclusive Web Design (by/via) · · , ,
  38. File Upload Security and Malware Protection (by) · · , ,
  39. Future of CSS: Popover API (by) · · , ,
  40. Introducing the “popover” API (by/via) · · , ,
  41. Visual-Design Principles and UX Design Best Practices (via) · · , , ,
  42. Why We’re Bad at CSS (by) · ·
  43. Stop Rewriting Your CSS! Use “:not()” Instead (by/via) · · , , ,
  44. Be Careful Using “Menu” (by) · · , , ,
  45. Building a Modern Design System in Layers (by) · ·
  46. Working With URLs With Vanilla JavaScript (by) · · ,
  47. 10 Ways to Boost Your Landing Page Conversion Rates (via) · · , ,
  48. Beyond Design Systems for Interfaces: A Mega System of Design Systems · ·
  49. A Web Component Intro With Example · · , ,
  50. Building Offline-First Web Applications With Service Workers and IndexedDB (by) · · , , , , ,
  51. Server-Sent Events With Node.js (via) · · ,
  52. A Beginners Guide to Digital Accessibility (by) · · ,
  53. A New Approach to Measuring Developer Productivity (by) · · ,
  54. Website Issues: On the Relevance of Audience Size and Impact (by) · · ,
  55. Using “linear()” for Better Animation (by) · · , ,
  56. Creating a Shine Effect on a Card With Tailwind CSS (by) · · ,
  57. How to Build Lean Efficient Websites in 2023 (by) · · , , ,
  58. Accessible Numbers (by) · · ,
  59. Are We There Yet? WCAG 2.2 Is at the Candidate Recommendation [Stage] v3 (by/via) · · , ,
  60. Write Better Code by Following These JavaScript Best Practices (by) · · ,
  61. How to Create a Custom Range Slider Using CSS (by/via) · · , ,
  62. Getting Started With View Transitions on Multi-Page Apps (by) · · , ,
  63. What Devs Can Do on Global Accessibility Awareness Day (by) · · ,
  64. A History of Metaphors for the Internet (by/via) · · , ,
  65. Thinking on Ways to Solve Color Palettes (by/via) · · , , ,
  66. ESLint Guide: How to Use It With Confidence (by/via) · · , , , ,
  67. 6 Tips for Improving Language Switchers on Ecommerce Sites (via) · · , , , ,
  68. Release Notes for Safari Technology Preview 170 (by/via) · · , , ,
  69. Conditional CSS With “:has” and “:nth-last-child” (by) · · ,
  70. I Just Did a Test to Apply as a Front End Developer—and Things Aren’t Going Well (by) · · ,
  71. GitHub Copilot and ChatGPT Alternatives (by) · · , ,
  72. Why Is Web Accessibility Important? (by/via) · · ,
  73. State of Node.js Performance 2023 (by) · ·
  74. Getting an Item an Array With a Negative Index With Modern JavaScript (by) · · ,
  75. Vertical Rhythm Using CSS “lh” and “rlh” Units (by) · · ,
  76. Design Patterns Are a Better Way to Collaborate on Your Design System (by/via) · · , ,
  77. Why Your Design Language System Needs a Product Manager (via) · · ,
  78. Fieldsets, Legends, and Screen Readers Again (by/via) · · , , , , ,
  79. Semantics and the “popover” Attribute: What to Use When? (by) · · , , ,
  80. It’ll Soon Be (Too) Easy to Develop a Website in A Day (via) · · , , ,
  81. CSS Art: Drawing a Coffee Stain (by) · · ,
  82. Let’s Share Our Salaries, Title, Location, XP · · ,
  83. Get Full Type Support With Plain JavaScript (via) · ·
  84. Solving Media Object Float Issues With CSS Block Formatting Contexts (by/via) · ·
  85. How to Handle Production Support When Using Scrum (by/via) · · , , ,
  86. Using HTML Landmark Roles to Improve Accessibility (by/via) · · ,
  87. HTML Landmark Roles Screen Reader Demo (by/via) · · , , , , ,
  88. 10 Books to Improve Coding Skill in 2023 (by) · · , ,
  89. ES2023 Features (by) · ·
  90. Screen Readers Don’t Announce When the User Reaches the “maxlength” Character Limit (by/via) · · , , , , ,
  91. Error Message Guidelines (by+/via) · · , , ,
  92. The Problem With Disabled Buttons and What to Do Instead (by) · · , ,
  93. 7 Secret TypeScript Tricks Pros Use (by) · · ,
  94. Building a Frontend Framework—Reactivity and Composability With Zero Dependencies (by) · · , ,
  95. Building a Greener Web (by/via) · · , ,
  96. What Is “Fake Door” Testing in UX? (via) · · ,
  97. Keeping Up With an Ever Changing Web (by/via) · · ,
  98. Add Opacity to an Existing Color (by) · · ,
  99. Respect Your Children (by/via) · · , ,
  100. The JavaScript Ecosystem Is Delightfully Weird (by/via) · ·
  101. What’s New in CSS and UI: I/O 2023 Edition (by+/via) · · ,
  102. Regular Expressions in JavaScript (by/via) · · ,
  103. Introduction to Screen‐Readers: JAWS Edition (by) · · , , , ,
  104. Introduction to Screen‐Readers: NVDA Edition (by) · · , , , ,
  105. Introduction to Screen‐Readers: VoiceOver macOS Edition (by) · · , , , , ,
  106. Best Practices for All Developers (by) · ·
  107. An Introduction to the Bun JavaScript Runtime (by/via) · · , ,
  108. Crafting a Modern Spotlight Effect With React and CSS (by) · · , ,
  109. ES2023 Introduces New Array Copying Methods to JavaScript (by/via) · · , , ,
  110. Developer Tools That Shouldn’t Be Secrets (by/via) · · , ,
  111. The 9 Most Effective Core Web Vitals Opportunities of 2023 (by/via) · · , ,
  112. What’s New in Web (by/via) · · , , ,
  113. What’s New in Web Animations (by/via) · · ,
  114. Advancing Interaction to Next Paint (by+/via) · · ,
  115. Introducing INP to Core Web Vitals (via) · · , ,
  116. Is Data Transfer the Best Proxy for Website Carbon Emissions? (by) · · ,
  117. The Difference Between Agile and UX Is Not About Quantity vs. Quality (by/via) · · , , ,
  118. How to Optimize Web Responsiveness With Interaction to Next Paint (by+/via) · · , , ,
  119. Why an Engineering Manager Should Not Review Code (by/via) · · ,
  120. Introducing Baseline (by/via) · · , , ,
  121. Introducing Baseline: A Unified View of Stable Web Features (by/via) · · , , ,
  122. Baseline Features You Can Use Today (by/via) · · , , ,
  123. Slow Design (via) · · ,
  124. An Introduction to Container Queries in CSS (by/via) · · , ,
  125. Client-Side Rendering of HTML and Interactivity (by/via) · · , ,
  126. How Large DOM Sizes Affect Interactivity, and What You Can Do About It (by/via) · · , , ,
  127. Rearrange/Animate CSS Grid Layouts With the View Transition API (by/via) · · , , ,
  128. Find Slow Interactions in the Field (by/via) · · , ,
  129. Diagnose Slow Interactions in the Lab (by/via) · · ,
  130. Optimize Input Delay (by/via) · · , ,
  131. The Ongoing Defence of Frontend as a Full-Time Job (by) · ·
  132. Script Evaluation and Long Tasks (by/via) · · , ,
  133. Design Systems [Are] a Mindset Not a Library (by/via) · ·
  134. How to Handle Emojis in Node.js (by) · · , , ,
  135. See What’s New in Firefox [113.0] (via) · · , , ,
  136. A Complete Guide to Usability Testing (by/via) · · , ,
  137. Pay Attention to Web Performance Metrics to Improve the UX (by/via) · · , , , ,
  138. ShatGPT (by) · · ,
  139. Proportional Design Systems With Proportio.app (by/via) · ·
  140. Speed Trap (by/via) · · , ,
  141. Dithering (by) · · ,
  142. A Comprehensive Guide to Using Langchain.js and Google Cloud Functions for AI Applications (by/via) · · , , , ,
  143. Improving Web-Site Conversion Rates Through Better UX Design (via) · · , , ,
  144. The Problem With Sticky Menus and What to Do Instead (by) · · , ,
  145. How Far Back in Time Can I Take My Website’s Design · · , , , ,
  146. How to Configure Path Aliases in Frontend Projects in the Native Way · · , ,
  147. The Image Sorting Experiment (by/via) · · , , ,
  148. Scaling Node.js Web Apps With Docker (by) · · , , ,
  149. Should the Confirmation Button Come First or Last? (via) · · ,
  150. Cron Job: A Comprehensive Guide for Beginners (via) · · ,
  151. Complete Guide on Playwright Visual Regression Testing (by/via) · · , , , ,
  152. CSS Logical Properties: A Good Use Case (by) · · , ,
  153. I’m Done With React (by) · · ,
  154. Speed Up or Slow Down a Video (by/via) · · , ,
  155. Scroll-Driven Animations (by) · · , ,
  156. HTTP/1 vs. HTTP/2 vs. HTTP/3 (via) · · , ,
  157. How “:not()” Chains Multiple Selectors (by/via) · · ,
  158. htmx Is the Future (by) · · ,
  159. An Introduction to the “:has()” Selector in CSS (by/via) · · , ,
  160. 5 Best Practices to Sustainably Improve Core Web Vitals (by/via) · · , ,
  161. React Testing Library and Accessibility (by) · · , , , ,
  162. GitHub Actions: All Actions Will Run on Node 16 Instead of Node 12 (via) · · , ,
  163. Code Coverage vs. Test Coverage (via) · · , , ,
  164. Using Go for Front End Development (by/via) · ·
  165. How Do You Declare Namespace in JavaScript? · · ,
  166. Angular v16 Is Here (by/via) · · ,
  167. Don’t Use Custom CSS Scrollbars (by) · · ,
  168. Digital Accessibility Is a Bigger Education Issue Than We Think—Here’s What We Can Do About It (by/via) · · ,
  169. Where Would You Take the W3C? (by) · · ,
  170. The Intersectionality of Web Performance (by) · · , ,
  171. Make Your Website Load Fast by Optimizing Request Priorities (via) · · , ,
  172. Security Implications of HTTP Response Headers (via) · · ,
  173. How to Write More Efficient JavaScript Conditions (via) · · , ,
  174. How to Make a CSS-Only Hamburger Menu (by) · · , ,
  175. Detecting If an Event Was Triggered by a User or by JavaScript (by/via) · · ,
  176. The Latest Innovations in Drupal (by) · ·
  177. 7 Practical CSS Typography Tips and Tricks (by/via) · · , , ,
  178. Release Notes for Safari Technology Preview 169 (by/via) · · , , ,
  179. An Update on the Lock Icon (by+/via) · · , ,
  180. Do Logical Properties Make CSS Easier to Learn? (by) · · , ,
  181. SupportsCSS (by) · · , , ,
  182. 3 Engineering Mistakes That Kill Startups (by) · · ,
  183. Short Note: Why Isn’t “role=presentation”/“none” Allowed on Focusable Elements? (by) · · , , ,
  184. developers.events: Maintaining a GitHub repository—What Have I Learned in 7 Years? (by) · · , ,
  185. Why “font-size” Must Never Be in Pixels (by) · · , , ,
  186. Creating an Animated Gradient Border With CSS (by) · · , , ,
  187. A Radical Proposal: Put UX Research in Charge (by/via) · · , , ,
  188. CSS Naked Day and the Missing Wikipedia Page (by) · · , ,
  189. A/B Testing: A Primer · · , , ,
  190. A Complete Guide to Performance Budgets (by/via) · · , , ,
  191. The Simple Trick to Transition From Height “0” to “auto” With CSS (by) · · , , ,
  192. CDNs: Speed Up Performance by Reducing Latency (by) · · ,
  193. Testing Feature Support for Modern CSS (by) · · , ,
  194. “:root” Isn’t Global (by) · ·
  195. CSS Wishlist 2023 (by) · · ,
  196. Practical Guide to Not Blocking the Event Loop · · , , ,
  197. What’s New in Svelte: May 2023 (by/via) · · , ,
  198. Beyond Content Creation: How Open Source Contributions Can Help You Get Noticed (by/via) · · , ,
  199. Configuring ESLint, Prettier, and TypeScript Together (by) · · , , , , , ,
  200. Tailwind CSS vs. UnoCSS (by) · · , , , ,
  201. This Blog Is Hosted on My Android Phone (by) · · ,
  202. Two Underused Arguments for Writing Documentation (by) · · , ,
  203. 30th Anniversary of Licensing the Web for General Use and at No Cost (by/via) · · , , , ,
  204. My Favorite Free Courses to Learn JavaScript in Depth (by) · · , , ,
  205. Dark Mode in 3 Lines of CSS and Other Adventures (by) · · ,
  206. The Popover API Is Exciting, Sort Of (by) · · ,
  207. Animating the Impossible (by/via) · · , ,
  208. Rebuilding a Featured News Section With Modern CSS: Vox News (by) · · , , ,
  209. JS Private Class Fields Considered Harmful (by) · ·
  210. New to the Web Platform in April (by/via) · · , , , , , ,
  211. A Beginner’s Introduction to the Most Common Data Types in Programming (via) · · , ,
  212. Everything You Need to Know About Webpack’s Bundle Analyzer (by) · · , ,
  213. Write Better CSS by Borrowing Ideas From JavaScript Functions (by/via) · · , , ,
  214. Accessible Target Sizes Cheatsheet (by/via) · · ,
  215. Writing Unit Tests in Node.js Using Jest (by+/via) · · , ,
  216. Typography for Everyone (by/via) · · , ,
  217. What Is the Value of a Design System? (by/via) · ·
  218. The Most Underrated Section of Design Portfolios (by/via) · · ,
  219. How to Deep Merge Arrays and Objects With JavaScript (by) · · , , ,
  220. How to Manage Design Tokens (by) · · , ,
  221. Modern CSS Layout Is Awesome! (by/via) · · , ,
  222. Progress Over Perfection: The Better Way for Communication and Accessibility Advocacy (by) · · , , ,
  223. The Interactive Guide to Rendering in React (by/via) · · , ,
  224. The Most Important Thing Productivity Tools Are Missing About AI (by/via) · · , ,
  225. Discovering the Power of JavaScript Proxy After All This Time (by) · ·
  226. Crafting the Next.js Website (by+) · ·
  227. Reducing the Cost of String Serialization in Node.js Core (by) · · ,
  228. Comparing the Best Node.js Version Managers: nvm, Volta, and asdf (by/via) · · , ,
  229. The Best Way to Get nvm Working in CI/CD Systems · · ,
  230. Adding Motion to the Next Decade of Atomic Design (via) · · ,
  231. Transition To and From “display: none” With Upcoming CSS Capabilities (by) · · , ,
  232. The “const” Deception (by) · ·
  233. The Potentially Dangerous Non-Accessibility of Cookie Notices (by/via) · · , , , ,
  234. Goodbye “create-react-app”: A New Approach (by) · ·
  235. Figma, I Love You but You’re Bringing Me Down (by/via) · ·
  236. Organizing a Web Design System for Scalability in Figma (via) · · , ,
  237. Avoiding Dark Patterns in Web Design (by/via) · · ,
  238. CSS Blend Modes (by) · · ,
  239. Frontend Web Performance Checklist (by) · · ,
  240. npm vs. Yarn vs. pnpm (by) · · , , ,
  241. Design Debt: The Hidden Cost of Neglecting UX Investment, and How to Measure and Manage It (by/via) · · , , ,
  242. Scoped CSS Is Back (by) · · ,
  243. Exploring the Potential of Web Workers for Multithreading on the Web (by/via) · · , , ,
  244. “details”/“summary” Inconsistencies (by) · · , , ,
  245. The Effects of Technical Debt on Morale (by) · · ,
  246. Considering Content Warnings in HTML (by) · · , ,
  247. Meeting WCAG Level AAA (by/via) · · , , ,
  248. Transitioning to Height Auto (Two Ways) (by) · ·
  249. “The Secret List of Websites” (by) · · , ,
  250. Dark Mode Toggle and “prefers-color-scheme” (by) · · ,