Blog
Articles about web development, design, performance, and related topics. Subscribe via RSS to keep up with new articles, or browse by topic.
- Can content-visibility Make Long Pages Render Faster?
CSS content-visibility can defer rendering work on long pages. See where auto helps, why placeholder sizes matter, and what to check before keeping it.
- How I Check My RSS Subscriber Count
My RSS subscriber count comes from reader-reported totals stored in Cloudflare D1. Here is how I check the estimate and understand what it leaves out.
- Let Components React to CSS Variables With Style Queries
CSS style queries let components react to custom properties on their ancestors. Compare theme and density examples with var(), classes, and support limits.
- Sticky and Snapped Elements With CSS Scroll-State Queries
CSS scroll-state queries can style stuck headers and snapped cards, or hint at more scrollable content. See the container setup and fallback choices.
- CSS border-shape Can Draw Boxes clip-path Cannot
CSS border-shape lets borders and shadows follow a custom outline. Compare it with clip-path, try complete examples, and keep a usable rounded fallback.
- CSS corner-shape Goes Beyond Rounded Corners
CSS corner-shape adds bevels, scoops, and squircles to ordinary boxes. See how it works with border-radius, normal borders, and a rounded-card fallback.
- CSS Calculations With sibling-index() and sibling-count()
Use CSS sibling-index() and sibling-count() for staggered animations and position-based calculations, with working examples and browser support checks.
- Using HTML Attribute Values Inside CSS With attr()
CSS attr() reads HTML attributes for generated labels and typed calculations. Use working examples, check support, and handle missing or invalid values.
- Smarter Responsive Calculations With CSS round()
CSS round() snaps responsive values to useful steps. See rounding strategies, spacing scales, and a column calculation, with browser support checks.
- What the Browser Already Does Without a Framework
Before adding a frontend framework, check what HTML, CSS, forms, responsive images, preferences, and browser navigation already provide.
- Why I Keep Fonts, CSS, and JavaScript With My Site
Self-hosting CSS, JavaScript, and fonts keeps critical dependencies versioned, predictable, and close to the page that needs them.
- Does a Small Website Actually Need a Cookie Banner?
Start by inventorying storage, analytics, advertising, and embeds; a site with no optional tracking may have nothing to ask consent for.
- How I Organize My Hugo Site
A predictable Hugo structure for content, page resources, layouts, assets, static files, and configuration.
- When to Use Hugo Shortcodes or Render Hooks
Use render hooks to change normal Markdown output and shortcodes for custom content with meaning Markdown cannot express.
- WebP vs AVIF vs JPEG for Websites in 2026
Choose an image format by measured size and visual quality instead of assuming the newest option always wins.
- Choosing Between srcset and picture
Choose srcset when the image stays the same and picture when the crop, composition, or format needs to change.
- Finding Hidden Content With hidden="until-found"
Let Find in Page and fragment navigation reveal collapsed content with hidden=until-found, while keeping a usable fallback.
- Better Line Breaks With CSS balance and pretty
Use text-wrap balance for short headings and text-wrap pretty selectively for longer copy without hard-coded line breaks.
- Why 100vh Doesn’t Always Fit a Mobile Screen
Why 100vh can exceed the visible mobile screen. Choose svh, lvh, or dvh, let content grow, and put older Safari workarounds in their historical context.
- Keeping a Website Usable When JavaScript Fails
Build content, navigation, and forms on working HTML so one failed script removes an enhancement instead of the whole page.