A layered approach to building a persistent theme and mode toggle for websites. The pattern separates 'mode' (light/dark) from 'theme' (accent color) using separate data attributes, then implements three progressive enhancement layers: semantic HTML with radio inputs, a tiny blocking inline script to prevent flash of wrong theme on load, and a deferred script for interactivity and OS preference tracking. Key decisions covered include using localStorage over cookies or IndexedDB, storing user intent ('system') rather than resolved values, avoiding mixing data-mode CSS selectors with prefers-color-scheme media queries, and accessibility requirements for keyboard and screen reader users. The author also shares that they ultimately removed this feature from their own site, concluding that system preference alone is often sufficient.
Nguồn: https://www.alwaystwisted.com/articles/modes-and-themes-that-stick-building-a-persistent-toggle-solution.html. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
ProMe là ứng dụng hỗ trợ (companion app) cho trò chơi nhập vai solo The Protector's Memories, được xây dựng bằng Next.js dưới dạng PWA với tính năng offline nhờ Serwist và lưu trữ cục bộ (local-first) đồng bộ lên Netlify DB (Neon). Ứng dụng tích hợp nhiều công nghệ như bản đồ lục giác CSS, hệ thống nhật ký Markdown nâng cao, âm thanh cross-fading bằng Howler.js, cùng cơ chế đồng bộ hai chiều giữa local và cloud kèm xử lý xung đột.
Lập trình viên cần đọc bài này để khám phá cách xây dựng một ứng dụng PWA toàn diện với Next.js, từ thiết kế giao diện độc đáo đến giải quyết vấn đề đồng bộ hóa dữ liệu và xung đột trong hệ thống local-first, giúp hiểu rõ cách tối ưu hóa hiệu suất và trải nghiệm người dùng trong ứng dụng game.
Kỹ thuật CSS tạo thanh trượt dạng sóng (wiggly/wavy) với tooltip nhún nhảy, kế thừa từ phiên bản trước, tập trung vào hiệu ứng thị giác và animation.
Lập trình viên nên đọc bài này để khám phá cách tạo hiệu ứng thắt lưng nhảy nhót và tooltip lăn lóc trên thanh điều khiển range bằng CSS, giúp nâng cao trải nghiệm người dùng với thiết kế tương tác sinh động và hiện đại.
Bài viết hướng dẫn tạo hiệu ứng mặt nạ (mask) gradient xuyên tâm hoạt ảnh trên văn bản bằng CSS, sử dụng thuộc tính mask kết hợp repeating-radial-gradient, điều chỉnh tâm gradient quanh một chữ cái cụ thể, và tận dụng @property (CSS Houdini) để làm thuộc tính tùy chỉnh có thể hoạt ảnh. Ngoài ra, bài viết cũng đề cập đến sự tương thích trình duyệt không đồng nhất trên Firefox và Safari, cùng các mẹo điều chỉnh độ dày và khoảng cách sọc thông qua thuộc tính CSS tùy chỉnh.
Lập trình viên nên đọc bài này để khám phá cách tạo hiệu ứng ánh sáng động từ gradient bán kính trên văn bản bằng CSS, giúp nâng cao tính tương tác và thẩm mỹ cho giao diện web mà không cần JavaScript.
Grid Lanes là tính năng CSS mới tương tự CSS Grid thông thường, hỗ trợ nâng cấp dần bằng cách lặp thuộc tính display. Tuy nhiên, nó có thể phá vỡ thứ tự focus bàn phím và không truy cập được nếu thiếu hỗ trợ Reading Flow. Cách đề xuất là dùng @supports để kích hoạt Grid Lanes chỉ khi cả grid-lanes và reading-flow đều hỗ trợ, tránh lỗi trên Safari. Phương án dự phòng flow-tolerance: infinite có thể giúp nhưng vẫn cần kiểm tra thủ công thứ tự focus.
Lập trình viên nên đọc bài này để hiểu cách sử dụng Grid Lanes một cách an toàn và hiệu quả, tránh rủi ro về tính khả dụng (accessibility) và sự tương thích với các trình duyệt hiện đại như Safari, mà không cần phải phụ thuộc vào tính năng chưa hoàn thiện này.
Phiên bản Astro 7.0 tập trung tối ưu hiệu suất với tốc độ build nhanh hơn 15–61%, nhờ compiler Rust mới thay thế Go cũ, pipeline Markdown/MDX bằng Sätteri (Rust), Vite 8 + Rolldown (nhanh gấp 10–30 lần Rollup), cùng cơ chế rendering hàng đợi ổn định. Tính năng Routing nâng cấp với src/fetch.ts, hỗ trợ middleware Hono, cache CDN từ Netlify/Vercel/Cloudflare, và cải tiến AI agent với chế độ dev nền, phát hiện tự động cùng logging JSON có cấu trúc.
Lập trình viên phát triển web nên đọc bài này vì Astro 7.0 mang đến những cải tiến công nghệ như Rust-based compiler và Vite 8 + Rolldown, giúp tối ưu hóa hiệu suất build và giao diện người dùng, đồng thời mở rộng khả năng quản lý lưu trữ và xử lý AI, giúp xây dựng ứng dụng web nhanh hơn và hiệu quả hơn.
ARIA Authoring Practices Guide (APG) không phải hướng dẫn tối ưu cho website mà chỉ minh …

Thư viện Prop For That của Adam Argyle cung cấp các CSS custom properties động, cho phép truy cập vào những thuộc tính CSS thông thường không thể truy xuất như vị trí con trỏ, tốc độ cuộn, trạng thái form hay thời gian hiện tại. Nhà phát triển chỉ cần thêm thuộc tính data vào HTML, sau đó sử dụng trực tiếp các biến CSS này trong stylesheet mà không cần viết JavaScript.
Lập trình viên nên đọc bài này để khám phá cách Prop For That giúp tối ưu hóa giao diện người dùng bằng cách kết nối trực tiếp CSS với dữ liệu động từ HTML mà không cần JavaScript, mở rộng khả năng tùy biến UI một cách đơn giản và hiệu quả.

CSS pseudo-classes ngày càng tương đồng với JavaScript event listeners, giúp xử lý trạng thái UI mà không cần viết JS. Bài viết so sánh các pseudo-classes phổ biến (:hover, :focus, :valid...) với sự kiện JavaScript tương ứng, đồng thời giới thiệu spec event-trigger mới (chưa được hỗ trợ) cho phép CSS lắng nghe sự kiện trực tiếp để kích hoạt animation.
Những kiến thức về sự tương đồng giữa các trạng thái CSS và sự kiện JavaScript giúp lập trình viên tối ưu hóa mã, giảm bớt sự phụ thuộc vào JavaScript và khám phá các tính năng tương lai của CSS để làm UI đẹp hơn, nhanh hơn và hiệu suất cao hơn.