Tech does not just watch: Take action against Russia’s war on Ukraine 🇺🇦, and take action against Israel’s occupation, destruction, and ethnic cleansing of Palestine (history) 🇵🇸 Hide

Frontend Dogma

“2025” News Archive

Definition, related topics, and tag feed

“2025” RSS feed (per email)

Entry (Sources) and Other Related TopicsDate#
Web Design / Dev Advent Calendars for 2025 (aar)2,878
link-lists, learning
Prevent a Page From Scrolling While a Dialog Is Open (geo/css)2,877
scrolling, css
Is Using Command Line AI an Option for Helping You Code? (jlw/the)2,876
ai, command-line, cursor, claude, anthropic, code-editors
How Good Engineers Write Bad Code at Big Companies (sea)2,875
quality, career, culture
CSS-in-JS: The Great Betrayal of Frontend Sanity (the)2,874
css-in-js, css, javascript, performance, developer-experience
One CSS Trick to Eliminate Scrollbar Layout Shifts (ami)2,873
css, scrolling, tips-and-tricks
Eleventy: How to Set Up Effective HTML Minification (in 24 Seconds) (j9t)2,872
how-tos, eleventy, html, html-minifier, minification, optimization
Becoming Unblockable (sea)2,871
career, prioritization, tooling, collaboration
Applying AI Where It Matters2,870
studies, research, ai
A New Navigation Paradigm2,869
ai, navigation, design
Updating CSS Border Radius When a Container Is Overflowing (rik)2,868
css, borders, overflow, scrolling
Migrating From GitHub to Codeberg (and/zig)2,867
migrating, github, codeberg
New to the Web Platform in November (rac/dev)2,866
release-notes, web-platform, browsers, firefox, mozilla, safari, apple
What Are Invokers? Interactivity Without JavaScript (tol/syn)2,865
videos, javascript, html, pop-overs
Why Use React? (ada)2,864
react, frameworks
WebGPU Is Now Supported in Major Browsers (dev)2,863
webgpu, browsers, support, web-platform
Brand New Layouts With CSS Subgrid (jos)2,862
layout, css, grids, examples
Web Browser Status Bars Are Nuts (lap)2,861
browsers, comparisons
Shuffling a CSS Grid Using Custom Properties (cod)2,860
css, grids, custom-properties
You’re Doing JavaScript Testing Wrong (cfe)2,859
javascript, testing
Testing Methods: Focus Visible (dec)2,858
accessibility, wcag, testing, focus, keyboard-navigation, link-lists
GitLab Discovers Widespread npm Supply Chain Attack (git)2,857
npm, dependencies, security, gitlab, github, aws, gcp, azure
The Future of AWS CodeCommit (aws)2,856
aws, tooling, git, outlooks
Why Does AI Devour So Much Water? (ger)2,855
ai, sustainability
On Inheriting and Sharing Property Values (dxn/css)2,854
css, cascade, techniques
Web Monetization Is Still Inching Along, but Still Too Difficult (chr/fro)2,853
monetization
You’re Not Building Netflix: Stop Coding Like You Are2,852
programming, architecture, prioritization
If You Think Your Commit Messages Are Bad, Just Wait…2,851
commit-messages
Testing Methods: Headings and Labels (dec)2,850
accessibility, wcag, testing, headings, labels, forms
Testing Methods: Multiple Ways (dec)2,849
accessibility, wcag, testing, navigation, sitemaps, link-lists
The Value of Selecting Selects by Value (aar)2,848
accessibility, wcag, forms
Critical Thinking During the Age of AI (add)2,847
ai, processes, career
WCAG 3 Update (kno)2,846
videos, accessibility, wcag, standards
Unifying Our Mobile and Desktop Domains (kri/wik)2,845
refactoring, mobile, desktop, performance, seo, user-experience, case-studies, link-lists
Testing Methods: Link Purpose (in Context) (dec)2,844
accessibility, wcag, testing, links, microcontent
Keyframes Tokens: Standardizing Animation Across Projects (ami/sma)2,843
css, animations, consistency
Should We Even Have “:closed”? (sun/css)2,842
css, selectors, disclosure-widgets
5 Engineering Skills to Prioritize in the AI-Driven Era (the)2,841
ai, writing, architecture, debugging, communication, career
Grid: How “grid-template-areas” Offer a Visual Solution for Your Code (sar/web)2,840
css, grids, layout
Responsive Letter Spacing (tyl/clo)2,839
responsive-design, typography, css
Anchoring to a Containing Block (kiz)2,838
css, anchor-positioning
Using esbuild in Eleventy (db)2,837
eleventy, esbuild
Why Web Design Must Finally Break Free From Its Graphic Design Roots (web)2,836
design, print, ai, career
Announcing Angular v21 (mar/ang)2,835
release-notes, angular
A Guided Tour of Copenhagen (fre/ske)2,834
guides, sketch
State of React 2025 (sac/dev)2,833
surveys, react
Good Enough Is a Strategy (tre)2,832
strategies, technical-debt, quality
Testing Methods: Page Titled (dec)2,831
accessibility, wcag, testing, html
Web Development: On the Size and Output of and the Growth Opportunities Within the Field (j9t)2,830
guest-posts, training, career, frontend-dogma
Do Not Put Your Site Behind Cloudflare if You Don’t Need To2,829
cloudflare
More CSS “random()” Learning Through Experiments (chr/fro)2,828
css, functions, randomness, experiments
Cloudflare Outage on November 18, 2025 (eas/clo)2,827
cloudflare
How to Prepare for the Future of Programming (jet)2,826
how-tos, programming, learning
Testing Methods: Animation From Interactions (dec)2,825
accessibility, wcag, testing, animations
The “Most Hated” CSS Feature: “asin()”, “acos()”, “atan()”, and “atan2()” (mon/css)2,824
css, functions, math
A11y 101: 2.4.7 Focus Visible (nat)2,823
introductions, accessibility, wcag, focus, keyboard-navigation
Firefox Is Adding Support for a Feature That Users Requested Since 20042,822
firefox, mozilla, browsers, keyboard-shortcuts
How to Successfully Migrate Your App With an AI Agent (bla/ope)2,821
how-tos, migrating, refactoring, ai
Tooltip Components Should Not Exist (tkd)2,820
tooltips, components
10 Git Tricks That Made Me a Way Better Developer2,819
git, command-line, tips-and-tricks
Ethical Defaults: Why Designers Must Stop Hiding Behind Settings (web)2,818
design, ethics
Automated npm Secret Rotation in GitHub Actions (mhe)2,817
npm, security, automation, github-actions
How to “Officially” Deprecate Methods With Node.js Utilities (ste)2,816
how-tos, deprecation, nodejs, developer-experience
What’s New in PHP 8.5 (bre)2,815
php
“Move Fast and Don’t Break Things”—What Four Startups Taught Me About Execution2,814
design, career, product-management, engineering-management
Monotype Font Licencing Shake-Down (ame)2,813
fonts, licensing
“Technical Debt Will Bite Us in the Ass”: How to Make Non-Technical Stakeholders Actually Care2,812
how-tos, technical-debt, communication, prioritization
A Complete Guide to the HTML Number Input (oll)2,811
guides, html, attributes, forms
A Suggestion for Your Community Terms and Policies (j9t)2,810
community, collaboration, policies
Animating CSS “width” or “height” No Longer Forces a Main Thread Animation (in Chrome, Under the Right Conditions) (bra)2,809
css, animations, chrome, google, browsers
Do Newer AI-Native IDEs Outperform Other AI Coding Assistants? (lau)2,808
ai, code-editors, efficiency, metrics, comparisons
Is Server-Side Rendering React’s Holy Grail? (low/the)2,807
react, server-side-rendering
The Hard Truth About Learning to Code (That No One Tells You)2,806
learning, career
The Last Couple Years in V8’s Garbage Collector (win)2,805
v8, javascript-engines, garbage-collection, memory, retrospectives, javascript
From Tokens to Touchpoints: Powering a Successful Rebrand With Your Design System (zer)2,804
design-systems, design-tokens, collaboration
What’s Coming in TypeScript 6/7 (dan+/typ)2,803
podcasts, interviews, typescript, ecmascript, outlooks
Testing Methods: Re-Authenticating (dec)2,802
accessibility, wcag, testing, authentication
Writing Is Probably the Worst Use Case of AI2,801
ai, writing
Older Tech in the Browser Stack (sma)2,800
xpath, css, techniques
Browserslist and Baseline (chr/fro)2,799
browsers, support, web-platform, browserslist
What’s New in the Design Tokens Spec: From Static to Living Design Data (res/zer)2,798
design-tokens, design-systems
Netflix’s Engineering Culture (ger)2,797
podcasts, interviews, netflix, culture, ai
Testing Methods: Interruptions (dec)2,796
accessibility, wcag, testing
CSS “:interest-invoker” and “:interest-target” Pseudo-Classes (tre)2,795
css, selectors, forms
Range Syntax for Style Queries (una)2,794
css, style-queries
“::details-content”: Style Expandable Content Without Wrapper Divs (tre)2,793
disclosure-widgets, css, html
Effectively Monitoring Web Performance (sma)2,792
performance, monitoring, tooling
Programming Principles for Self Taught Front-End Developers (kil/pic)2,791
programming, principles
Why Headings Are Important in HTML: Structure, Accessibility, and SEO2,790
html, headings, accessibility, seo
Guiding the Future of Ethical Design (uxd)2,789
design, ethics
Headings: Semantics, Fluidity, and Styling—Oh My! (geo/css)2,788
headings, html, css
“AI” Browsers: The Price of Admission Is Too High (bru/viv)2,787
ai, browsers
Using “chrome-devtools-mcp” With Polypane (pol)2,786
polypane, browsers, dev-tools, mcp, chrome, google, ai
“aria-labels” and Privacy: A Word of Caution (hom)2,785
accessibility, aria, privacy
Link vs. Button: Choosing the Right Element for the Right Job (tpg)2,784
html, links, buttons, accessibility, wcag, comparisons
Testing Methods: Pause, Stop, Hide (dec)2,783
accessibility, wcag, testing, multimedia, animations, link-lists
Crafting Generative CSS Worlds (cod)2,782
css, transforms
20 Best CSS Preprocessor Tools and Comparison for 2025: Complete Guide to Active Tools2,781
guides, css, tooling, preprocessors, comparisons, link-lists
My CSS Selector Strategy (mal)2,780
css, selectors, principles
10 Smart Performance Hacks for Faster Python Code (did/jet)2,779
python, performance, techniques
Perfectly Pointed Tooltips: To the Corners (css/fro)2,778
css, tooltips
Error Chaining in JavaScript: Cleaner Debugging With “Error.cause”2,777
javascript, errors, debugging
Rust vs. Python: Finding the Right Balance Between Speed and Simplicity (jet)2,776
rust, python, performance, simplicity, programming, comparisons
Why CSS Is So Hard for Generative AIs to Understand?2,775
css, ai
How to Rate-Limit Requests With nginx2,774
how-tos, nginx, servers
Testing Methods: Timing Adjustable (dec)2,773
accessibility, wcag, testing, time, link-lists
3 User-Friendly Technical Ways to Respond to Genocidistan (j9t)2,772
policies, traffic, censorship, community
Six Things I Bet You Didn’t Know You Could Do With Chrome’s DevTools2,771
chrome, dev-tools, google, browsers
Frontend News #17: Why Pseudo-Elements Don’t Work With “:is()”, the Advantages of OKLCH, and More (zor/css)2,770
videos, css, selectors, oklch
Testing Methods: Character Key Shortcuts (dec)2,769
accessibility, wcag, testing, keyboard-shortcuts
It Ain’t Easy to Move a Side Project Off Big Tech (thi)2,768
migrating, vercel, sveltekit
Material 3 Expressive: Building on the Failures of Flat Design (uxd)2,767
google, material-design, flat-design, design, link-lists
JavaScript Just Leveled Up: ES2025—You’ll Fall in Love With (jsd)2,766
javascript, ecmascript, standards
Monorepo vs. Multi-Repo vs. Git Submodule vs. Git Subtree: A Complete Guide for Developers2,765
guides, architecture, monorepos, git, version-control, comparisons
Smashing Animations: Magnificent SVGs With “<use>” and CSS Custom Properties (mal/sma)2,764
animations, transforms, svg, css, custom-properties
Staggered Animation With CSS “sibling-*” Functions (pre/fro)2,763
animations, css, functions
Sustainable Accessibility in Complex Organisations: Organisational Realities (ihe/tet)2,762
accessibility
Tailwind CSS Won the War… but We’re the Losers2,761
tailwind, css, html, web-platform
When to Use CSS “text-wrap: balance” vs. “text-wrap: pretty” (dxn/log)2,760
css, typography
When Everyone’s a Developer, How Do We Promote the Web Platform Over React? (ric)2,759
web-platform, react, ai, link-lists
Sustainable Accessibility in Complex Organisations: Strategic Foundations (ihe/tet)2,758
accessibility, leadership, dei, processes
Fix “width: 100%” Overflow Easily (zor/css)2,757
videos, css, overflow
Slots in Design Systems (nat)2,756
design-systems, figma
Combining Scroll-Driven Animations With “@ starting-style” (bra)2,755
css, scrolling, animations
Explaining the Accessible Benefits of Using Semantic HTML Elements (geo/css)2,754
html, semantics, accessibility
A (Kind of) Farewell to the Web (joh)2,753
web-platform, frameworks, ai, career
Advanced Beginner’s Guide to ClojureScript (rom)2,752
guides, javascript
TypeScript’s Rise in the AI Era: Insights From Lead Architect, Anders Hejlsberg (aar/git)2,751
typescript, ai
10 Tiny UI Fixes That Make a Big Difference (uxd)2,750
design, forms, spacing, alignment, consistency, hierarchy, usability, best-practices
100, 150, or 200? Debunking the Alt Text Character Limit2,749
alt-text, accessibility, images, link-lists
Is Figma in Its Accessibility Era? (uxd)2,748
figma, accessibility
Now Available: “On Web Development II”! (j9t)2,747
books, html, css, engineering-management, maintainability, quality
No Close Quote? (css)2,746
css
The Weird Parts of “position: sticky;” (ada/fro)2,745
css, positioning
The Web Animation Performance Tier List (cit)2,744
animations, performance, javascript, css, apis
Brutalism in the AI Era: Why Ugly Might Be the Only Honest Aesthetic Left (web)2,743
design
Six Key Components of UX Strategy (vit/sma)2,742
user-experience, strategies
Why 44% of Your Audience Might Not Understand You: An Interview With Jamila Savoy2,741
interviews, content, writing, accessibility
Introducing the OWASP Top 10:2025 (she+/owa)2,740
introductions, owasp, security, vulnerabilities
Why Separate Guest and Logged in States Create Accessibility Barriers2,739
accessibility
Learn React Server Components (jad)2,738
videos, tutorials, react, components
The Inner Workings of JavaScript Source Maps (man/pol)2,737
javascript, typescript, source-maps
How to Throttle Specific Requests in Chrome DevTools (deb)2,736
how-tos, dev-tools, browsers, chrome, google, throttling
How I Use AI to Build Frontend Apps: My Candid, Messy Process (bla)2,735
ai, processes, debugging, claude
Some Software Bloat Is OK2,734
quality, technical-debt, performance
Top 10 Essential Productivity Software for 20252,733
tooling, productivity, collaboration, communication
Why Big Tech Won’t Hire Flutter Developers (and Why You Should Care) (ala)2,732
career, flutter, economics
Using Composability Over Inheritance to Scale Design Systems (ase/zer)2,731
design-systems, components, scalability
Running Node.js in a Hugging Face Space (tom)2,730
nodejs, hugging-face
The “Most Hated” CSS Feature: “tan()” (mon/css)2,729
css, functions, math
Grayscale Testing: The Missing Step in Color Accessibility (pop)2,728
accessibility, testing, colors
Why We Migrated From Python to Node.js2,727
migrating, python, nodejs
WebKit Features for Safari 26.1 (jen/web)2,726
release-notes, webkit, safari, apple, browsers
“pathLength” Makes Makes SVG Path Animations Easier to Manage (ste)2,725
svg, images, animations
Why Most Developers Stay “Mid” Forever2,724
career
The Fundamentals Problem (chr)2,723
fundamentals, design, prioritization
You Need to Become a Full Stack Person (loc)2,722
ai, career
Dark Mode Is the New Comic Sans (and You Know It) (web)2,721
dark-mode, design, accessibility
What Is Detached State in Git and How Do You Recover From It?2,720
git, command-line
TL;DR: How Your Advantage Becomes Your Achilles Heel (ste)2,719
product-management, ai
Why I Don’t Test Different Designs at the Same Time (ada)2,718
design, testing
I’ve Reviewed 500 Java Projects—Everyone Makes This Same Dumb Mistake2,717
java, mistakes, strings
Top 100 Domains on Frontend Dogma (fro)2,716
frontend-dogma
Context Engineering for Non-Engineers (cwo)2,715
ai, prompting, claude
12 Essential Java Best Practices Every Developer Should Follow2,714
programming, java, best-practices, principles
It’s Almost 2026: Why Are We Still Arguing About CSS vs. Tailwind2,713
tailwind, css, comparisons
AI Broke Interviews2,712
ai, interviewing, hiring
Use Cases for Field Sizing (sha)2,711
forms, css, examples
Testing Methods: Keyboard (No Exception) (dec)2,710
accessibility, testing, keyboard-navigation
Node.js 24 Becomes LTS: What You Need to Know (nod)2,709
nodejs
Just Use a Button (cfe)2,708
html, buttons, semantics
Architectural Debt Is Not Just Technical Debt (may)2,707
architecture, technical-debt
The Hidden Cost of Projects: Why Latency Kills Value2,706
project-management, processes
Evergreen Web Design Is a Lie (but Maybe That’s Okay) (web)2,705
design, creativity
AI and Alt Text (ted+/web)2,704
videos, ai, alt-text, images, accessibility
Your URL Is Your State (ahm)2,703
urls, state-management
After the AWS Outage (uxd)2,702
aws, cloud-computing
New to the Web Platform in October (rac/dev)2,701
release-notes, web-platform, browsers, firefox, mozilla, chrome, google
How to Use CSS “line-clamp” to Trim Lines of Text (dxn/log)2,700
how-tos, css, typography
Developers Shouldn’t Learn Design—Designers Shouldn’t Code (phi)2,699
design, programming, processes, collaboration, project-management
Comparing Interviews at 8 Large Tech Companies (ger)2,698
interviewing, google, atlassian, comparisons
The Real Problem With AI Coding2,697
ai
Blogging Gets Serious in 2001 With Warblogs and Movable Type (ric)2,696
history, blogging, examples
Get Started With Manual Testing (pop)2,695
introductions, accessibility, testing
Sometimes the Best Accessibility Fix Is a Usability Fix2,694
accessibility, usability
Arnas Donauskas on AI-Powered Troubleshooting for Websites (nat)2,693
podcasts, interviews, ai, debugging, tooling
Flutter’s Silent UI Killers2,692
flutter
The Coming War of AI Browsers: Why the Web Will Never Be the Same Again (web)2,691
ai, browsers, open-web, personalization
Removing XSLT for a More Secure Browser (dro/dev)2,690
chromium, chrome, google, browsers, xsl, web-platform, security
Getting Creative With Small Screens (mal/css)2,689
design, responsive-design, mobile, css
Amazon’s Return to Office Mandates Backfire (jpr)2,688
aws, culture, economics
AI Frontend Generator Comparison: Claude Code vs. v0 vs. Cursor vs. Replit (hcr)2,687
ai, code-editors, claude, anthropic, vercel, cursor, tooling, comparisons
Google Kills Privacy Sandbox (pro)2,686
google, privacy, apis
Who Rules AI Search? What 3 Months of AI Visibility Data Tells Us (sem)2,685
search, ai, domains, metrics
Will npm’s New Security Steps Stop Attacks? (rev)2,684
security, npm, github, maintenance, foss
Parenthetical Asidenotes (mey)2,683
html, css
Springs and Bounces in Native CSS (jos)2,682
css, animations, transitions, effects, functions
HTTPS by Default (jde+)2,681
http, security, chrome, google, browsers
Agentic AI and Security (ksi/mfo)2,680
ai, architecture, security
Perfectly Pointed Tooltips: A Foundation (css/fro)2,679
tooltips, css, anchor-positioning
Start Implementing View Transitions on Your Websites Today (cyd/pic)2,678
css, view-transitions, javascript, apis
Octoverse: A New Developer Joins GitHub Every Second as AI Leads TypeScript to #1 (git)2,677
github, metrics, productivity, ai, foss, security, programming
I Built the Same App 10 Times: Evaluating Frameworks for Mobile Performance (che)2,676
frameworks, mobile, performance, comparisons, nextjs, tanstack, nuxt, angular, marko, solidjs, sveltekit, qwik, astro, htmx
Node.js v22 to v24 (aug+/nod)2,675
nodejs, migrating
ChatGPT Sez Build With Semantics First (ste)2,674
chatgpt, chatgpt-atlas, ai, openai, browsers, html, semantics, accessibility
Mastering “URLPattern” for Cross-Platform Routing (jsd)2,673
nodejs, routing
16 Charts That Explain the AI Boom2,672
ai, metrics, economics, openai, anthropic, facebook+meta, oracle, google, microsoft, aws
Alt Text or Image Description?2,671
accessibility, images, alt-text, comparisons, terminology
The JavaScript Feature You’ve Probably Never Used Allows Running Untrusted JavaScript Safely2,670
javascript
Express.js 6 and Beyond: Modernizing the Most Popular Node.js Framework (nod)2,669
nodejs, express, frameworks, modernization
JavaScript for Everyone: Iterators (wil/sma)2,668
javascript
A11y 101: 2.4.5 Multiple Ways (nat)2,667
introductions, accessibility, wcag
Inlining Critical CSS: Does It Make Your Website Faster? (deb)2,666
css, performance, lazy-loading
The State of Django 2025 (wsv/jet)2,665
surveys, metrics, django
What I Learned Porting Mastro From Deno to Node.js (mas)2,664
lessons, migrating, deno, nodejs
Your Accessibility Score Is Lying to You2,663
accessibility, metrics, testing
Why Do We Need Dithering?2,662
images, dithering
Don’t Forget These Tags to Make HTML Work Like You Expect (jim)2,661
html
“Good Engineering Management” Is a Fad (let)2,660
engineering-management, prioritization
Mistakes I See Engineers Making in Their Code Reviews (sea)2,659
code-reviews, processes, communication, mistakes
The Sky Is Falling, the Web Is Dead (ern/ted)2,658
web, history
What’s New in Next.js 16 (tre)2,657
nextjs
The Origin Story of JavaScript (ann/cas)2,656
videos, history, web, javascript, ecmascript, browsers, browser-wars, browser-engines, standards
Testing Methods: No Keyboard Trap (dec)2,655
accessibility, testing, wcag, keyboard-navigation
Scrum Mistakes: What Teams Get Wrong and How to Fix It2,654
scrum, agile, processes, releasing, mistakes
Introducing TanStack Start Middleware (ada/fro)2,653
introductions, tanstack
What’s an Interactive Element? (mat)2,652
html, focus, concepts
CSS Animations That Leverage the Parent–Child Relationship (pre/css)2,651
css, animations
The Layered Aesthetic: Depth, Complexity, and Chaos Done Right (web)2,650
design
Code Like a Surgeon (geo)2,649
ai
You Already Have a Git Server2,648
git, servers, command-line
High-Performance Syntax Highlighting With [the] CSS Highlights API2,647
css, apis, syntax-highlighting
Directives and the Platform Boundary (tan/tan)2,646
javascript, frameworks
How Designers Become Builders and the Future of Tooling2,645
videos, design, github
The Curse of the Custom Cursor (mal)2,644
cursors, design, accessibility
The Edge Cases That Break Hearts (and Products) (lau/nng)2,643
design, usability, accessibility, user-experience
Solved by Modern CSS: Section Layout (sha)2,642
css, layout, grids, typography, liquid-design
React and Remix Choose Different Futures2,641
react, remix, simplicity, complexity, comparisons
“Their History Is Just Erased”: Google Drops a Key Program for Boosting Women in Tech (cnn)2,640
google, community
React vs. Backbone in 20252,639
react, backbone, comparisons, frameworks
Meetings and Interruptions Are Still the Biggest Obstacles for Developers, Even With AI2,638
productivity, collaboration
Atlas Ableism (ste)2,637
chatgpt-atlas, openai, browsers, accessibility, compliance
Yes, Let’s Teach LLMs Accessibility, but Also Provide the Companies Using Them With Better Strategies (hdv)2,636
ai, accessibility, advocacy
Does Your Site Need a /ai Page?2,635
ai
NaN, the Not-a-Number Number That Isn’t NaN (wil/pic)2,634
javascript
Is It Time to Regulate React? (dbu)2,633
react
Preparing for Verso and Beyond: Future-Proofing Your Frontend for New Browser Engines (des)2,632
guest-posts, verso, servo, browsers, browser-engines
A Brief History of Domains (pet)2,631
web, history, domains, dns
Retrofitting a Design System Into an Existing Product2,630
design-systems, consistency
Your Tokens Have Become Infrastructure (mur)2,629
design-tokens, design-systems
Solved by CSS Scroll State Queries: Hide a Header When Scrolling Down, Show It Again When Scrolling Up (bra)2,628
css, scrolling
Challenging the Idea of “Optional HTML” (mar)2,627
guest-posts, html, minimalism
CSS Layout: Flexbox, Grid, Media Queries, and Container Queries (rau)2,626
css, layout, flexbox, grids, media-queries, container-queries, introductions
Importing vs. Fetching JSON (jaf)2,625
json, javascript, data-fetching, comparisons
4 Unconventional Ways to Cast in TypeScript (pol)2,624
typescript
The Hidden Costs of Bad Client Communication in Design Projects (and How to Fix Them)2,623
business-relations, communication, collaboration, design
Build Your Own Database (nan)2,622
guides, databases
The Charm of JavaScript: Boom Mics and Clown Shoes (wil+/iga)2,621
podcasts, interviews, javascript
OpenAI, ARIA, and SEO: Making the Web Worse (aar)2,620
chatgpt-atlas, openai, browsers, accessibility, aria, seo
An Introduction to JavaScript Expressions (wil/css)2,619
introductions, javascript
Error Handling—UX Design Patterns (uxd)2,618
user-experience, design, errors, forms
Links and Anchors: Ancient HTML and JS Magic in Your Browser (cod/wea)2,617
html, css, javascript, links
How to Fix Any Bug (dan)2,616
how-tos, ai, debugging, react
Fixing Temporal Input Styling in Safari (cfe)2,615
forms, time, safari, apple, browsers, css
CSS “@ starting-style” Debugging Is Available in Chrome DevTools (bra)2,614
css, transitions, debugging, dev-tools, chrome, google, browsers
Introducing ChatGPT Atlas2,613
introductions, chatgpt-atlas, browsers, openai
OpenAI Launches AI Web Browser ChatGPT Atlas—Here Is Everything We Know (eur)2,612
openai, browsers, chatgpt-atlas
My Work Is Human (doo)2,611
ai, design, career
Introducing ChatGPT Atlas (sim)2,610
introductions, chatgpt-atlas, openai, browsers
The Two Button Problem (chr/fro)2,609
buttons, usability, design
One Year With Next.js App Router—Why We’re Moving On2,608
nextjs, react, routing, components, tooling
W3C Web Content Accessibility Guidelines 2.2 Approved as ISO/IEC International Standard (w3c)2,607
accessibility, wcag, standards, w3c
How Senior Engineers Can Use AI for Real Impact2,606
ai, architecture, debugging, code-reviews, refactoring
Why Accessibility Breaks Between Design and Development (a11)2,605
accessibility, design, processes, collaboration, testing
My Highlights From the New Deno Deploy (phi/den)2,604
deno, deploying
Next.js 16 (fee+)2,603
release-notes, nextjs
Designers Often Do Invisible Work That Matters—Here’s How to Show It (uxd)2,602
design, user-experience, communication
How AI Works and How Users Think About It: Study Guide (nng)2,601
guides, ai, training, link-lists
Google Announces End of Many of Its [Privacy] Sandbox Technologies2,600
google, privacy
Rethinking Async Loops in JavaScript2,599
javascript, loops, asynchronicity
AI Doom Predictions Are Overhyped—Why Programmers Aren’t Going Anywhere2,598
videos, ai, programming, career
Now Is the Best Time to Break Into Tech (tre)2,597
career
What State ARIA In? (tpg)2,596
aria, html, accessibility
“URLPattern” Is Now Baseline Newly Available (dev)2,595
urls, apis, javascript, web-platform, browsers, support
Build a Reusable Flutter Design System2,594
design-systems, flutter
An Opinionated Guide to Using AI Right Now (emo)2,593
guides, ai, anthropic, google, openai
Refactoring a Form to a Signal Form (tim)2,592
refactoring, forms, angular, signals
Glassworm: First Self-Propagating Worm Using Invisible Code Hits OpenVSX Marketplace2,591
security, code-editors, vs-code, microsoft
Why “NaN !== NaN” in JavaScript (and the IEEE 754 Story Behind It)2,590
javascript, history, standards
The CSS Reset, Again (paw)2,589
css, resets
CSS Finally Gets Inline Conditional Logic With New “if()” Function (the)2,588
css, functions, conditionals
Implicit Labels Aren’t (cfe)2,587
html, forms, labels
Zero-Configuration Support for NestJS2,586
vercel, nestjs
50 Reasons to Build a Website (chr/fro)2,585
web
AI in UX: Achieve More With Less (boa/sma)2,584
user-experience, design, ai, processes
How to Write an Accessibility Statement in 2025, With Examples (chr)2,583
how-tos, accessibility, documentation, compliance, legal, examples
Is It Even Worth Learning to Code? (tre)2,582
programming, learning, ai
The Majority AI View (ani)2,581
ai, communication
AI Is Revolutionizing User Testing in 2025—and Honestly, It’s About Time (web)2,580
ai, usability, user-experience, testing
Headers, Headings, and Titles (tem)2,579
html, headings, comparisons, terminology
Thirsty AI Mega Projects Raise Alarm in Some of Europe’s Driest Regions (sam/cnb)2,578
ai, sustainability
How to Audit Web Accessibility With [the] WAVE Extension2,577
how-tos, accessibility, auditing, browser-extensions, webaim
Do Backlinks Still Matter in AI Search? Insights From 1,000 Domains (sem)2,576
ai, search, backlinks, links, metrics
Same-Document View Transitions Have Become Baseline Newly Available (bra/dev)2,575
css, view-transitions, browsers, support, web-platform
Improving the Trustworthiness of JavaScript on the Web (clo)2,574
javascript, web-apps, security
Node.js 2025: What’s New and What’s Next (ruy)2,573
slides, nodejs, outlooks
You’re a Real JavaScript Developer Only If…2,572
javascript, career
Making Context-Aware Components: How CSS “inherit()” Could Simplify Design Systems (stu)2,571
components, css, functions, custom-properties
Claude for Code: How to Use Claude to Streamline Product Design Process2,570
how-tos, claude, anthropic, ai, design, processes
The Hidden Cost of URL Design (ahm)2,569
urls, routing, seo, principles
How Are Engineering Leaders Approaching 2026 AI Tooling Budgets? (lau)2,568
tooling, ai, economics, engineering-management
Sequential “linear()” Animation With n Elements (css/css)2,567
css, functions, animations
Most Developers Can’t Answer These 11 Microservices Questions—Can You?2,566
microservices, architecture
Cisco: Most Companies Don’t Know What They’re Doing With AI (bra/the)2,565
ai
Obituary: Farewell to robots.txt (1994–2025) (hei)2,564
robotstxt, search, ai
I Am Sorry, but Everyone Is Getting Syntax Highlighting Wrong (nik)2,563
syntax-highlighting, information-design, plugins
Are U.S. Software Developers Worth the Premium?2,562
hiring, economics
Node.js v25.0.0 (Current) (raf/nod)2,561
release-notes, nodejs
Page Headings Don’t Belong in the Header (tem)2,560
html, headings, skip-links, accessibility
Release Notes for Safari Technology Preview 230 (jon/web)2,559
release-notes, safari, apple, browsers
Weston Ruter on Unlocking WordPress Performance (wes+)2,558
podcasts, interviews, wordpress, performance, link-lists
5 Things to Do to Avoid Prompt Treadmill When Crafting Design With AI2,557
design, ai, prompting, processes
Past Time for Passkeys (nor)2,556
videos, passkeys, passwords, authentication, security
The Present and Potential Future of Progressive Image Rendering (jaf)2,555
images, jpeg, png, webp, avif, jpeg-xl, pjpeg, comparisons, outlooks
What’s Up in ES2027? (por/nor)2,554
videos, ecmascript, javascript, outlooks
A Look Into Customizable HTML “select” Elements2,553
forms, html, css
For Your Convenience, This CSS Will Self-Destruct (sco)2,552
css, javascript, hiding
State of Developer Ecosystem Report 2025 (jet)2,551
surveys, metrics
Secure Coding in JavaScript2,550
javascript, frameworks, security
Writing an Emulator in JavaScript? (nik/nor)2,549
videos, javascript
W3C Logo Refresh: More Than a Cosmetic Change, a Small Step Towards Durable and Sustainable Success (set/w3c)2,548
w3c
From Hype to Reality: Lessons Learned From Building AI Systems at Scale2,547
lessons, scalability, ai
See What’s New in Firefox [144.0] (fir)2,546
release-notes, firefox, mozilla, browsers
Tips for Working With Emoji (chr)2,545
emoji, css, javascript, tips-and-tricks
The Future of Lodash (uli)2,544
libraries, javascript, outlooks
Common Misconceptions About Screen Readers (tet)2,543
screen-readers, accessibility
Lit Is Joining the OpenJS Foundation (lit)2,542
lit, openjs
The State of Node.js 2025 Explained by Its TSC Member (mco/git)2,541
videos, nodejs, npm
Masonry: Watching a CSS Feature Evolve (css)2,540
css, masonry, layout
Tables: Beyond Rows and Columns (tpg)2,539
accessibility, wcag, tables, html, semantics, jaws, nvda, screen-readers
Todd Libby on Deceptive Patterns (col+/sho)2,538
podcasts, interviews, accessibility, anti-patterns
Inattentional Blindness in Interfaces (nng)2,537
videos, usability, design
Anchor Positioning Updates for Fall 2025 (jam/odd)2,536
css, anchor-positioning
The Grayscale Problem (sma)2,535
design, colors
Find Where a Specific Object Was Allocated in JavaScript With DevTools2,534
objects, javascript, dev-tools, browsers
HTML “dialog”: Getting Accessibility and UX Right (jar)2,533
html, modals, scrolling, accessibility, user-experience
The Killer Feature of Web Components (dav)2,532
web-components, documentation
Modern CSS Round-Out Tabs (chr/fro)2,531
css, shapes, clipping
25 New and Rad Features of CSS (arg/cas)2,530
videos, css, transitions, animations, cascade, selectors, functions, colors, scrolling
Reading and Writing Files in Node.js—the Complete Modern Guide (loi)2,529
guides, nodejs, file-handling, examples
Testing Methods: Content on Hover or Focus (dec)2,528
accessibility, wcag, testing, focus
Compressed Fluid Typography (mat)2,527
typography, css, liquid-design
Implementing Dark Mode Toggle Without JavaScript2,526
dark-mode, toggles, css
AI Interfaces and the Role of Good Writing (uxd)2,525
ai, writing, link-lists
We Completely Missed “width/height: stretch” (dxn/css)2,524
css
Fluid Headings (don)2,523
headings, typography, css, responsive-design
Notes on Switching to Helix From Vim (b0r)2,522
vi+vim, code-editors, comparisons
Understanding Vector Space Visually—the Foundation of AI2,521
ai, math
Liquid Glass Is Cracked, and Usability Suffers in iOS 26 (nng)2,520
design, liquid-glass, usability, apple, mobile
Who Needs a Flying Car When You Have “display: grid” (rac)2,519
css, grids, layout
Top 11 CSS Tricks Every Web Developer Should Know2,518
css, custom-properties, layout, animations, selectors, positioning, dark-mode, resets, tips-and-tricks
Tailwind CSS in React and Next.js: A Complete Setup Guide2,517
guides, tailwind, react, nextjs
Vite: The Documentary (cul)2,516
videos, vite, history
HTML—the Most Difficult Programming Language in the World (j9t)2,515
programming, html, conformance, professionalism
The 12 Emotional Journeys of Color Psychology (uxd)2,514
colors, user-experience, research
Stop Inviting Overlay Employees and Bad Actors Into Accessibility Spaces2,513
accessibility, overlays, business-relations
The Worst Designer I’ve Ever Worked With Was Also the Most Productive (ren)2,512
design, productivity
Simplify (ada)2,511
css, simplicity
Beyond Signals, by Ryan Carniato (rya/jet)2,510
videos, signals, reactivity, solidjs, react
CSS Grid: A Helpful Mental Model and the Power of Grid Lines (sar/web)2,509
css, grids, layout
Why WordPress Themes Require Underlines on Links (joe)2,508
wordpress, theming, links, accessibility
RGESN Statements: The Clash of Words, the Weight of Measures2,507
sustainability, metrics, studies, research
My Conclusions After Using Signed Exchanges on My Website for 2 Years (paw)2,506
signed-exchanges, performance, security
CSS Counters in Action (ada/fro)2,505
css
Interop Feature Ranking (jaf/fir)2,504
websites, interoperability, firefox, mozilla, browsers
A Beginner-Friendly Guide to View Transitions in CSS (mdn)2,503
guides, css, view-transitions
You’re Wasting Years at the Same Company as a Developer2,502
career
What’s New in View Transitions (2025 Update) (bra/dev)2,501
css, view-transitions, support
How to Add Fast, Client-Side Search to Astro Static Sites (tra/evi)2,500
how-tos, astro, search, functionality
The Thing About “contrast-color” (geo/css)2,499
css, colors, contrast, functions
Vue Basics: State Management in Vue2,498
fundamentals, vuejs, state-management, tooling
What the 2025 DORA Report Means for Your AI Strategy (lau)2,497
dev-ops, metrics, ai, strategies, processes, engineering-management
The New “progress()” Function in CSS (ami)2,496
css, functions, examples
How to Animate WebGL Shaders With GSAP: Ripples, Reveals, and Dynamic Blur Effects (cod)2,495
how-tos, animations, webgl, gsap, effects
Is It Time to Kill the Sidebar? (web)2,494
design, navigation, minimalism
What Is MCP? Model Context Protocol Explained2,493
videos, concepts, mcp, ai
Numbers That Fall (Scroll-Driven Animations and Sibling Index) (chr/fro)2,492
css, html, animations, scrolling, effects
Inside a 16.67 Millisecond Frame2,491
javascript, rendering, reflow, painting, performance
A Pragmatic Guide to Modern CSS Colours (kev/pic)2,490
guides, css, colors, examples
When Case Studies Become Anti-UX (uxd)2,489
design, user-experience, anti-patterns
The “Don’t Ask, Don’t Tell” Era of DEI (ani)2,488
dei, community
Eyeing Accessibility Deadline, States Root Out Ancient Web Issues (col/sta)2,487
accessibility, design
Vibe Engineering (sim)2,486
vibe-coding, ai, terminology
Testing Methods: Text Spacing (dec)2,485
accessibility, testing, wcag, typography, readability
When to Use Modal vs. Dialog Components (a11)2,484
modals, html, aria, accessibility
Introducing the React Foundation (set+/rea)2,483
introductions, react
CSS :is() :where() the Magic Happens (mat)2,482
css, selectors, cascade
How to Test WCAG 1.4.10: Reflow (Level AA)—Easy Website Accessibility Test You Can Do2,481
videos, how-tos, testing, accessibility, wcag, reflow
When Design Drives Behavior (jas)2,480
design
Build Your Own /init Command Like Claude Code (kau)2,479
ai, prompting, claude
Lowriders and Websites (aaa)2,478
css, html, craft
Accessibility Testing Comparison: Automated Testing vs. Human Auditing vs. Usability Testing (int)2,477
accessibility, usability, testing, auditing, automation, comparisons
Lazy-Loading as a Security Measure2,476
security, lazy-loading, angular, react
How to Group Arrays in JavaScript Without “reduce()”2,475
how-tos, arrays, javascript
I’m a Middle-Aged Developer, and My Time to Shine Is Setting (dve)2,474
career
Rethinking Cookie Dialogs (nat)2,473
accessibility, disclosure-widgets, html, cookies, consent-management
Visu­al Regres­sion Test­ing for Exter­nal URLs With Playwright (mat)2,472
testing, regressions, playwright, functionality
How to Conduct User Testing With People With Disabilities (int)2,471
how-tos, accessibility, testing, processes
Smashing Animations: Building Adaptive SVGs With “<symbol>”, “<use>”, and CSS Media Queries (mal/sma)2,470
animations, svg, css, javascript
Migrating From Hugo to Astro (hui)2,469
migrating, hugo, astro
Cultural Proximity’s Influence on the User Experience (uxm)2,468
user-experience, culture
The Designer–Developer Handoff Is Still Broken—Why? (web)2,467
design, collaboration, culture, design-systems, ai
Essential Visually Hidden CSS Techniques for Web Accessibility (a11)2,466
accessibility, hiding, css, techniques
The Missing Bar, Why We Need X-Shaped People in a Digital World (uxd)2,465
career, collaboration, leadership
AI Coding Tools I Use to Ship Faster2,464
tooling, ai, productivity
Birth of Prettier (vje)2,463
prettier, history
11ty Hacks for Fun and Performance (sli)2,462
eleventy, optimization
European Tech Alternatives (mat)2,461
tooling, link-lists
Backend Concepts Every Experienced Developers Must Know2,460
concepts, network, concurrency, apis, databases, caching, scalability, security, observability, architecture
How I Influence Tech Company Politics as a Staff Software Engineer (sea)2,459
collaboration, processes, career
UTF-8, Explained Simply (nic)2,458
videos, encoding, unicode, standards
What’s Coming in ESLint v10.0.0 (nza/esl)2,457
eslint, outlooks
A Progressive Enhancement Challenge (chr/fro)2,456
progressive-enhancement, javascript, html, feature-detection, support
Shipping Node.js Packages in 2025 (joy)2,455
slides, nodejs, esm, commonjs, dependencies
The Words “Blah Blah Blah” Increase AI Accuracy (jim)2,454
ai, prompting, quality
OpenAI Is Just Another Boring, Desperate AI Startup (edz)2,453
openai, ai, economics
When Design Tokens Become Technical Debt (mur/zer)2,452
design-systems, design-tokens, technical-debt
9 Forms of Coupling in Software Architecture2,451
architecture, programming
Moving PHP Open Source Forward (jet)2,450
php, foss, jetbrains
A Few Fun Nesting Tips and Tricks (kev)2,449
css, nesting, tips-and-tricks, examples
From Hobby to Career: Sara Joy on CSS, Accessibility, and Making the Web More Whimsical (sar+)2,448
videos, interviews, css, accessibility
The Internet Is Better on Comet2,447
browsers, ai
Stop Ignoring the Browser: The Biggest Frontend Shift in a Decade (the)2,446
browsers, web-platform, frameworks, react, angular
What’s New in DevTools 139–141 (mat/dev)2,445
videos, chrome, google, browsers, dev-tools, release-notes
The History of Core Web Vitals (add)2,444
web-vitals, performance, user-experience, metrics, google, history
I Want to Intercept Boolean Coercion for Objects in JavaScript (zac)2,443
javascript, objects, types
80% of SDET / Automation Testers Get Rejected in the First 10 Minutes, Here’s Why2,442
testing, interviewing, career
How Does Meta Move Terabytes of Data per Second? (vut)2,441
facebook+meta, tooling, data-engineering
A Threat Model for Accessibility on the Web (sun)2,440
accessibility, css, standards
A Guide to Creating Accessible PDFs Using Free Tools (stv/pic)2,439
guides, accessibility, pdf, tooling, testing, jaws, nvda, voiceover, screen-readers
Google Puts Another Nail in the RAG Coffin With URL Context Grounding (tho)2,438
google, ai
3 Most Impactful Ways to Save Energy When Using AI (owe/pro)2,437
ai, prompting, sustainability
New to the Web Platform in September (rac/dev)2,436
release-notes, web-platform, browsers, safari, apple, firefox, mozilla, chrome, google
What’s New in Svelte: October 2025 (sve)2,435
release-notes, svelte, sveltekit
How to Optimize Viewport for Mobile for Faster Interactions (deb)2,434
how-tos, viewport, mobile, performance, optimization, html
Understanding the Removal of 4.1.1 Parsing in WCAG 2.2 (tpg)2,433
accessibility, wcag, conformance, html
HTML’s Best Kept Secret: The “<output>” Tag (den)2,432
html
Inset Shadows Directly on “img” Elements (ana/fro)2,431
images, svg, css, shadows
15 Recent Node.js Features That Replace Popular npm Packages (nod)2,430
nodejs, npm, dependencies, maintenance
What’s New in ViteLand: September 2025 Recap (man/voi)2,429
release-notes, rolldown, vite, vitest
June Liu and David Denedo on Making the Web Accessible: The Mission Behind WP Accessibility Day (nat+)2,428
podcasts, interviewing, awareness-days, wordpress, accessibility
Why Designers Abandoned Their Dreams of Changing the World (edw/fin)2,427
design, career
Designers Should Look to Demis Hassabis—Not Jony Ive2,426
design
The Death of the Double Click: How UX Finally Buried a Relic of the Desktop Era (web)2,425
desktop, interaction-design, user-experience
When’s the Right Time to Start Documenting Your Design System? (amy/zer)2,424
design-systems, documentation
SEO, SEM, and GEO: Understanding the Differences and Opportunities2,423
seo, sem, ai, keywords, marketing, concepts, comparisons
How Deno Protects Against npm Exploits (den)2,422
deno, npm, security
Testing Methods: Non-Text Contrast (dec)2,421
accessibility, testing, wcag, contrast, colors
You Can Now Make PS2 Games in JavaScript2,420
javascript
ADA Title II and PDFs: Fix, Archive, or Delete? (kar)2,419
accessibility, ada, compliance, pdf
I Completed an IT Degree… What’s Accessibility? (int)2,418
accessibility, career
Avoid These AI Coding Mistakes (ian)2,417
ai, mistakes
In the Economy of User Effort, Be a Bargain, Not a Scam (lea)2,416
usability, user-experience, product-management
7 Practical Animation Tips (emi)2,415
animations, buttons, tooltips, css, tips-and-tricks
Make Navigation Accessible With “aria-current” (a11)2,414
accessibility, navigation, aria, attributes
Accessible Form Validation With Examples and Code (pop)2,413
accessibility, validation, forms, examples
Website Accessibility Strategy (pop)2,412
accessibility, strategies, content, processes
Touring New CSS Features in Safari 26 (mon/css)2,411
css, safari, apple, browsers
AEO vs. SEO: Core Differences and How to Win Visibility in Both (sem)2,410
how-tos, seo, comparisons, content, search
Introducing Claude Agent in JetBrains IDEs (jet)2,409
introductions, jetbrains, code-editors, claude, anthropic, ai
Polypane 26: Accurate Device Emulation With Safe Area and Small Viewport Units (pol)2,408
release-notes, polypane, browsers
WCAG’s Longevity (yat)2,407
accessibility, wcag, standards
The “corner-shape” CSS Property Is Amazing (zor/css)2,406
videos, css, shapes
System Design Took Me From Missed Calls to ₹28 Base Package2,405
system-design, scalability, interviewing
Using TypeScript in Node.js (pav)2,404
nodejs, typescript
The Novelty and Acceptance of Conversational AI (uxd)2,403
ai, conversational-design, user-experience
How Much Do You Really Know About Media Queries? (dxn/fro)2,402
css, media-queries, examples
Strengthening npm Security: Important Changes to Authentication and Token Management (git)2,401
npm, security
Are Your Retail Landing Pages Killing Conversions? (tam/spe)2,400
landing-pages, user-conversion, performance, metrics
Why I Gave the World Wide Web Away for Free (tim/the)2,399
web, licensing, history
When I Say “Alphabetical Order,” I Mean “Alphabetical Order”2,398
sorting
The QA Checklist for Using AI to Generate Test Cases (and Why Tools Like AgentQ AI Make It Easier)2,397
quality, checklists, testing, ai
The AI Coding Trap (chr)2,396
ai, processes, outlooks
How I Estimate Projects as a Senior Developer for Better Results2,395
processes, project-management
Drunk CSS (ede)2,394
css, effects, theming
Let’s Play Accordion With the HTML “details” Element (ale)2,393
html, disclosure-widgets, accordions
Why Next.js Falls Short on Software Engineering2,392
nextjs, react, complexity
Why “typeof null === object”2,391
javascript, operators
ARIA and Real World Dangers (dec)2,390
accessibility, aria
JSON Is Not JSON Across Languages2,389
json
Design Attractors (don)2,388
design, design-systems, ai
7 Deadly AI Sins for UX Professionals (nng)2,387
ai, usability, user-experience
10 Years of AdonisJS—a Personal Reflection and What’s Next (vir/ado)2,386
frameworks, retrospectives, outlooks
CSS Wish: Inner Breakpoints (rau)2,385
css, wish-lists
Dear Designers: Stop Using System Fonts Like It’s 2005 (web)2,384
design, fonts, variable-fonts
Principles of Simplicity in Frontend Architecture2,383
simplicity, dependencies, principles
Design Dialects: Breaking the Rules, Not the System (ali)2,382
design, design-systems
Open Social (dan)2,381
foss, social-media, protocols
9 Python Features You’re Not Using (Yet)2,380
python
One Corner, Two Border Radii (kev)2,379
css, borders