$ ls ./resources

Free tools & code, no strings.

Everything below is free, or has a real free tier — the same list I actually use to build sites like this one. No affiliate links, no paywalled “secret” resources. If it's useful to you, that's the whole point.

find ./resources -name

$ cat ./snippets/*

Three things I copy into every project.

reset.css
/* A sane, minimal reset — box-sizing, margins, and media defaults. */
*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; }

html { -webkit-text-size-adjust: 100%; }

body { line-height: 1.5; -webkit-font-smoothing: antialiased; }

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

input, button, textarea, select { font: inherit; }

p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

#root, #__next { isolation: isolate; }
type-scale.css
/* Fluid type scale — one clamp() per step, no media queries. */
:root {
  --step--1: clamp(0.80rem, 0.77rem + 0.15vw, 0.89rem);
  --step-0:  clamp(1.00rem, 0.96rem + 0.20vw, 1.13rem);
  --step-1:  clamp(1.25rem, 1.19rem + 0.32vw, 1.42rem);
  --step-2:  clamp(1.56rem, 1.47rem + 0.47vw, 1.80rem);
  --step-3:  clamp(1.95rem, 1.82rem + 0.68vw, 2.28rem);
  --step-4:  clamp(2.44rem, 2.25rem + 0.96vw, 2.88rem);
}

h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-2); }
p  { font-size: var(--step-0); }
small { font-size: var(--step--1); }
scroll-reveal.js
// Fade sections in as they scroll into view — one shared observer,
// not one per element. Add class="reveal" to anything you want this on.
const io = new IntersectionObserver(
  (entries) => {
    for (const entry of entries) {
      if (entry.isIntersecting) {
        entry.target.classList.add("is-visible");
        io.unobserve(entry.target);
      }
    }
  },
  { threshold: 0.1, rootMargin: "0px 0px -10% 0px" }
);

document.querySelectorAll(".reveal").forEach((el) => io.observe(el));

/* pair with:
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s, transform .6s; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}
*/