Frontend Dogma

News and Tools for Frontend Developers (18)

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

  1. Quick Tip: How to Check if a Variable Is Set in PHP (via) · · , ,
  2. Mozilla, Like Google, Is Looking Ahead to the End of Apple’s WebKit Rule (by/via) · · , , , , ,
  3. Modularizing React Applications With Established UI Patterns (by/via) · · , ,
  4. How to Write Semantic CSS (by) · · , , ,
  5. How to Build Accessible Main Navigation? (by/via) · · , ,
  6. How to Add an Event Handler in React (by) · · , , ,
  7. Focus Appearance Thoughts (by) · · , ,
  8. Advanced Figma Prototyping Tips and Tricks (by/via) · · , ,
  9. A “color-contrast()” Strategy for Complimentary Translucent Backgrounds (by) · · , , , ,
  10. Qodana Code Quality Platform—Overview (by/via) · · , , , , ,
  11. The “margin-trim” Property (by) · ·
  12. The Different Names for Values in CSS (by) · ·
  13. The Difference Between Iteration and Prototyping (by) · · , ,
  14. Testing Vue Components the Right Way (by) · · , ,
  15. Supporting CSS Multi Direction Languages in 2023 (by/via) · · , ,
  16. Should Inclusive Design Be a UX Concern? (by/via) · · , ,
  17. Non-Text Content Contrast Also Matters (by) · · , ,
  18. My Favourite 3 Lines of CSS (by) · ·
  19. Mozilla’s Abandoned Servo Web Engine Is Making a Comeback in 2023 (by/via) · · , , ,
  20. Interop 2023 CMS Checkin (by) · · , , , , ,
  21. How to Favicon in 2023: Six Files That Fit Most Needs (by/via) · · , ,
  22. How to Build a Magazine Layout With CSS Grid Areas (by/via) · · , ,
  23. Frontend Frameworks for Web-App Development (via) · · ,
  24. Building a Dev Blog With the Pelican Static Site Generator (by) · · ,
  25. A Historical Reference of React Criticism (by) · · ,
  26. Speeding Up the JavaScript Ecosystem—ESLint (by) · · , , ,
  27. React Anti-Patterns and Best Practices—Dos and Don’ts (by) · · , ,
  28. How to Pick a Font (That Doesn’t Suck) (by) · · , , ,
  29. Discovery in Agile (by/via) · · ,
  30. The Market for Lemons (by) · · , ,
  31. Rotating Gallery With CSS Scroll-Driven Animations (by) · · , , , ,
  32. Typography Manual (by) · · ,
  33. Multi-Threaded React App Using useWorker (by) · · , , ,
  34. How to Make a Zoom Effect Using CSS (by/via) · · , ,
  35. Foundation: The Best Framework for Building Responsive Sites (via) · ·
  36. Advice for Engineers, From a Manager (by) · · , , ,
  37. What Is Bootstrap: A Beginner’s Guide (by/via) · · ,
  38. WCAG 2.2 Update: It’s Time to Say Goodbye to the Parsing Criterion (by) · · , ,
  39. The YAML Document From Hell—JavaScript Edition (by) · · ,
  40. How to Get the Last Matching Item in an Array With Vanilla JavaScript (by) · · , ,
  41. How to Build a Static Website (by/via) · · ,
  42. High Definition CSS Color Guide (by/via) · · , ,
  43. WordPress.com Introduces Browse Mode, Style Book, and Push to Global Styles Features (by/via) · ·
  44. Why Is Making a Dark Mode Greyscale So Hard to Get Right? (by) · · , , ,
  45. Understanding App Directory Architecture in Next.js (by/via) · · ,
  46. The Guide to Responsive Design in 2023 and Beyond (by) · · ,
  47. The Gotcha With Animating Custom Properties (by/via) · · , , ,
  48. Screen Reader Quick Guide (by) · · , , ,
  49. Quick Tip: How to Manage Timezones in PHP (via) · · , , ,
  50. Pushing Interop Forward in 2023 (by+/via) · · ,
  51. Modular Web Design: Flexibility, Examples, and Alternatives · ·
  52. Microsoft Edge and Interop 2023 (via) · · , , , ,
  53. Learn Images (by/via) · · , , , , , , ,
  54. Interop 2023 (via) · · ,
  55. Interop 2023: Continuing to Improve the Web for Developers (by+/via) · · ,
  56. Igalia and Interop 2023 (via) · · ,
  57. How the CSS “box-sizing” Property Works (by) · · ,
  58. Hex Colors Aren’t Great at Anything Except Being Popular (by) · · ,
  59. Gatsby Is Joining Netlify (by/via) · · ,
  60. Don’t Use Return Types, Unless… (by) · · ,
  61. Design for AI: What Should People Who Design AI Know? (by/via) · · ,
  62. Cancel Duplicate Fetch Requests in JavaScript Enhanced Forms (by) · · ,
  63. Caching Data in SvelteKit (by/via) · · ,
  64. Announcing Interop 2023 (via) · · ,
  65. 3 Notion Templates to Better Manage Your Design System (by) · · , ,
  66. Understanding Color and Accessibility (by) · · ,
  67. Typographic Hierarchy in Print, Web, and App Design (by) · · ,
  68. The Ultimate Guide to JavaScript Error Handling (by/via) · · , ,
  69. Speed for Who? (by) · · , , ,
  70. Should You Start a Web Development YouTube Channel in 2023? (by/via) · · ,
  71. Setting Expectations for Asking ChatGPT Web Accessibility Questions (by) · · ,
  72. New to the Web Platform in January (by/via) · · , , , , , , , ,
  73. Invoking React Components From Your Ember Apps (by) · · , ,
  74. External Links: In or Out (by/via) · · , , ,
  75. 6 Approaches for Data Fetching in React (by) · · ,
  76. Using Local Storage in JavaScript and React (by) · · , ,
  77. Easy SVG Customization and Animation: A Practical Guide (by/via) · · , , ,
  78. CSS “color-mix()” (by/via) · ·
  79. 19 Must-Visit Sites for Product Design Inspiration (by/via) · · ,
  80. Léonie Watson on Accessibility (by+/via) · · , ,
  81. You’ve Got Options for Removing Event Listeners (by) · · ,
  82. New WCAG 2.2 Features Rated (by) · · , ,
  83. An Introduction to MIME Types (by/via) · · ,
  84. The Pros and Cons of Responsive Web Design in 2023 (via) · ·
  85. Is It a Bad Idea to Use “target="_blank"” for Links in an Email? (via) · · , ,
  86. HTML Input Types (by) · · ,
  87. Git Commit Patterns (by) · · ,
  88. Accessible Hamburger Buttons Without JavaScript · · , ,
  89. 10 GitHub Repositories You Should Know as a JavaScript Developer (by) · · , , , ,
  90. Your Web Performance Is Too Reactive; It’s Time to Do More Than Put Out Fires (by/via) · ·
  91. Use the Dialog Element (Reasonably) (by) · · , ,
  92. Screen Readers Support for Text Level HTML Semantics (by/via) · · , , , , ,
  93. Login Form UI Design Guide (by/via) · · , ,
  94. Flow Control in JavaScript: Callbacks, Promises, “async/await” (by+/via) · · , ,
  95. Creating a High-Contrast Design System With CSS Custom Properties (by/via) · · , , , ,
  96. Container Queries and Typography (by) · · , ,
  97. The Modern Way of Serving Images (by) · · , ,
  98. “scrollend”, a New JavaScript Event (by/via) · · ,
  99. Release Notes for Safari Technology Preview 162 (by/via) · · , , ,
  100. Quick Tip: How to Manage Error Reporting in PHP (via) · · , , ,
  101. Musing Upon an “[alt]” Text Badge on Images (by) · · , ,
  102. CSS Layers for CSS Resets (by/via) · · ,
  103. Are We There Yet? WCAG 2.2 Is at the Candidate Recommendation Stage Again (by/via) · · , ,
  104. Animating CSS Grid (How-To and Examples) (by/via) · · , ,
  105. A “nth-child” CSS Trick (by) · · , ,
  106. 10 Web Development Trends in 2023 (by) · · , , , , , , ,
  107. Things to Do and Not to Do During a Wave of Tech Layoffs (by) · ·
  108. Locking “body” Scroll for Modals on iOS (by) · · , ,
  109. Introduction to Gulp.js: Beginner’s Guide (via) · · , ,
  110. CSS Wishlist 2023 (by) · · ,
  111. Copying Designs Doesn’t Work, and Here’s Why (by/via) · · ,
  112. A Simple Custom (by) · · , , ,
  113. Visual Design Rules You Can Safely Follow Every Time (by) · ·
  114. Ship Small, Ship Fast (by) · ·
  115. Making Sense of TypeScript Using Set Theory (by) · ·
  116. Level Up Your CSS Skills With the “:has()” Selector (by/via) · · ,
  117. International Domain Names: Where Does meßagefactory.ca Lead You? (by) · · ,
  118. If You Need a Link, Don’t Use a Button (by) · · , , , ,
  119. CSS Named Colors: Groups, Palettes, Facts, and Fun (by) · · , ,
  120. CSS Art Tutorial: Create a Cute Cartoon Creature (by) · · , ,
  121. Creating a Community That Values Accessibility (via) · · ,
  122. Be a Digital Ally: Further Exploration of WCAG 2.2 (via) · · , ,
  123. 3 Essential Design Trends, January 2023 (by/via) · · ,
  124. Replace Create React App Recommendation With Vite (by/via) · · , ,
  125. Improve Your HTML Semantic With Pico CSS (by) · · ,
  126. How to Review a Web Site (via) · · , , ,
  127. Accessibility Tools and Resources for Designers (by/via) · · , ,
  128. Web Scraping—A Complete Guide (by) · · ,
  129. Web Accessibility Global Usage Survey · · ,
  130. How to Use Pico CSS and Next.js? (by) · · , ,
  131. Comparing Level Access Automated Tools to Manual Accessibility Testing (by) · · , , ,
  132. What Is a Core Update? (by/via) · ·
  133. Unordered Lists in Main Navigations (by) · · , ,
  134. The Key to Good Component Design Is Selfishness (by/via) · · , ,
  135. So You Want to Make a New JS Framework (by) · · ,
  136. More Real-World Uses for “:has()” (via) · · ,
  137. Designing a Robust Right-to-Left UI in Arabic, Hebrew, and Farsi (via) · · ,
  138. Cascading Components—a Way to Organize Figma Component Variants · · ,
  139. Building Reliable Distributed Systems in Node.js (via) · ·
  140. 15 Must-Have Cheatsheets for Developers (by) · · ,
  141. Unlocking Security Updates for Transitive Dependencies With npm (by/via) · · , , ,
  142. Two Ways to Safely Break a Long Word in HTML (by) · ·
  143. Three Attributes for Better Web Forms (by) · · ,
  144. Optimize Time to First Byte (by/via) · · ,
  145. Don’t Target 100% Coverage (by) · · ,
  146. Comparing Manual and Free Automated WCAG Reviews (by) · · , , ,
  147. “::backdrop” Doesn’t Inherit From Anywhere (by) · ·
  148. Solved With “:has()”: Vertical Spacing in Long-Form Text (via) · · ,
  149. On-Scroll Typography Animations (by/via) · · ,
  150. Front-End Is So Much More Than Building Designs (by) · ·
  151. Discovering the Capable Web (by/via) · ·
  152. Deep Cloning Objects in JavaScript, the Modern Way (by/via) · · ,
  153. CSS Tip: Style Your Radio Buttons and Checkboxes for Printing (by) · · , , ,
  154. Accessible Writing Is Just Good Writing (via) · · ,
  155. Why We Switched CDNs: How Google’s Core Web Vitals Led Us to Cloudflare Pages · · , , ,
  156. Using “:is()” in Complex Selectors Selects More Than You Might Initially Think (by/via) · · ,
  157. The Truth About CSS Selector Performance (by/via) · · , ,
  158. The Storytelling Power of Simple Design Solutions (by/via) · ·
  159. Scalable CSS (by) · · ,
  160. Quick Tip: How to Read a Local File With PHP (via) · · , , ,
  161. Promises, Thenables, and Lazy-Evaluation: What, Why, How (by) · · ,
  162. Can a Bridge Be Unethical? (via) · · ,
  163. Blind News Audiences Are Being Left Behind in the data Visualisation Revolution: Here’s How We Fix That (by/via) · · ,
  164. 6 Common SVG Fails (and How to Fix Them) (by/via) · · ,
  165. Optimizing the Image Element LCP (via) · · , ,
  166. Minimal Dark Mode Styling (by) · · , ,
  167. Greater Styling Control Over Type With “initial-letter” (by) · · ,
  168. A Better Way to Work With Number and Date Inputs in JavaScript (by/via) · ·
  169. User Style Sheets (via) · · , ,
  170. The Only Markdown Cheatsheet You Will Ever Need (by) · · ,
  171. Speeding Up the JavaScript Ecosystem—Module Resolution (by) · · , ,
  172. Interactive SVG Reference (by) · · ,
  173. CSS Nesting Is Coming (by) · · ,
  174. Complete Guide to Make You a Regex Guru (by) · · ,
  175. Advanced Usage Patterns for Taking Page Element Screenshots With Playwright (by) · · , ,
  176. 5 Principles of Readable Code: KISS, YAGNI, DRY, BDU, Occam’s Razor · · ,
  177. Succeed as a Junior Developer (by) · ·
  178. Four Ways to Chop Up Arrays (with Vanilla JavaScript) (by) · · ,
  179. Foundations: Visible Focus Styles (by/via) · · , ,
  180. Generics: The Most Intimidating TypeScript Feature (by) · · , ,
  181. What Can We Really Do About Spam? (via) · · , ,
  182. Top Front-End Tools of 2022 (by/via) · · ,
  183. Sibling Scopes in CSS, Thanks to “:has()” (by/via) · · ,
  184. React, Vite, and TypeScript: Get Started in Under 2 Minutes (by/via) · · , ,
  185. Manual Accessibility Testing (via) · · ,
  186. Is TypeScript Worth It? · · ,
  187. Fixing a Memory Leak in a Production Node.js App (by) · · ,
  188. CSS Color Functions and Custom Properties (by) · · , , ,
  189. Cookie “Expires” and “Max-Age” Attributes Now Have Upper Limit (by/via) · · , ,
  190. 2023 N|Solid Awards: The Top 10 Best Node.js Open Source Projects to Watch (by/via) · · , , ,
  191. 11 Excellent WordPress Themes for 2023 (via) · · , ,
  192. The YAML Document From Hell (by) · · ,
  193. The State of JavaScript 2022 (by/via) · · ,
  194. The Main Areas of WAI-ARIA (by) · · ,
  195. The Gotcha of Unhandled Promise Rejections (by) · · ,
  196. JavaScript, Community (by) · · ,
  197. How to Destructure Props in Vue (Composition API) (by) · · , ,
  198. “:has” Is an Unforgiving Selector (by/via) · · ,
  199. Closed Captions and Subtitles UX (by/via) · · , ,
  200. Why Not “document.write()”? (by) · · ,
  201. Versioning Design Systems: Best Practices · · , ,
  202. Set Up a React App With TypeScript in 5 Minutes (by) · · , ,
  203. Quick Tip: How to Filter Data With PHP (via) · · , ,
  204. Our Top Core Web Vitals Recommendations for 2023 (by+/via) · · , ,
  205. Faking Min Width on a Table Column (via) · · , , ,
  206. D̶e̶s̶i̶g̶n̶ Token Clusters (by/via) · ·
  207. Data URLs and Pool in Your URL (by) · · ,
  208. Data-Driven Design Systems in Practice (by) · ·
  209. CSS “:readonly” Is Not for Select Fields (by) · · ,
  210. CSS “:empty” Isn’t Applicable on Form Fields (by) · · , ,
  211. 2023 Design Trends From an Accessibility Perspective (via) · · , ,
  212. Styling Buttons in WordPress Block Themes (by/via) · · , , ,
  213. Node.js Retro 2022 (by/via) · · ,
  214. Implementing Microservice Architecture in Node.js (by) · · , ,
  215. Good Design Is Intentional (by) · ·
  216. Customizing HTML Form Validation (by) · · , ,
  217. Conditional CSS (by) · ·
  218. Clever Code Considered Harmful (by) · · , ,
  219. Building a Design System: Lessons Learned (by/via) · · ,
  220. A Software Developer’s Guide to Writing (by) · · ,
  221. 7 Purpose-Driven UX Tips for Your Next Web-Site Redesign (via) · · , ,
  222. 7 Principles of Design Psychology Every UX Designer Should Know (by/via) · · , ,
  223. Personas Are Living Documents: Design Them to Evolve (by/via) · · ,
  224. OK LCH, I’m Convinced (by) · · ,
  225. Intro to SolidJS: How to Create Fast, Reactive Web Apps (by) · · , ,
  226. Best Node.js Schedulers · · ,
  227. 3D in CSS (by) · ·
  228. Using GitHub Copilot for Unit Testing (by) · · , ,
  229. Stock Photos of People With Disabilities (by/via) · · , ,
  230. Revolutionizing the Web With WebAssembly: A Comprehensive Guide (by) · · ,
  231. Why Web Performance Still Matters in 2023 (by/via) · ·
  232. When to Use Flexbox and When to Use CSS Grid (by/via) · · ,
  233. Infinite Scrolling: When to Use It, When to Avoid It (by/via) · · , ,
  234. Design Systems in Practice (by) · · ,
  235. A New Accessibility Strategy for the GOV.UK Design System (by+/via) · · , ,
  236. 2022 JavaScript Rising Stars (by) · · , , ,
  237. When Stakeholders Bypass the Product Owner (by/via) · · , ,
  238. Using “!important” in Cascade Layers (by) · · ,
  239. Understanding Git Through Images · ·
  240. Progressively-Enhanced Dark Mode (by) · · ,
  241. Microfeatures I’d Like to See in More Languages (by) · ·
  242. HTML With Superpowers: An Introduction to Web Components (by) · · , , , , ,
  243. How to Build Great HTML Form Controls (by/via) · · , ,
  244. Every Software Developer Should Write a Blog (by) · · , ,
  245. A Guide to Getting Data Visualization Right (by/via) · · ,
  246. What Does It Look Like for the Web to Lose? (by) · · ,
  247. JAWS, NVDA, and VoiceOver Braille Viewers (by) · · , , , , , , ,
  248. How to Increase Your Chances of Getting Interviews and Job Offers in Tech (by) · · , ,
  249. CSS “:has()” Feature Detection With “@ supports(selector(…))”: You Want “:has(+ *)”, Not “:has(*)” (by/via) · · , , ,
  250. Creating Tokens for Your Design System With ChatGPT Assistance (by/via) · · , ,