El borde necesita tres cosas para verse: un ancho (border-{n}), un estilo (sólido por defecto) y opcionalmente un color. Sin ancho, el color no se nota.
Ancho de borde
border (1px) es el default cuando solo escribes 'border'. border-{n} usa la misma escala numérica que margin/padding pero en píxeles, no en rem.
→border a secas ya te da border-width: 1px + border-style: solid (gracias a Preflight, que define border-style: solid por defecto en todos los elementos).
Borde por lado
border-t, border-r, border-b, border-l aplican solo a un lado. Muy común para separar filas de una tabla o items de una lista sin encerrar cada uno en una caja.
Fila 1
Fila 2
Fila 3 (sin borde)
<div class="border-b-2 border-amber-500">
Solo borde inferior
</div>
→Combínalo con divide-y en el padre para poner el mismo borde entre todos los hijos automáticamente, sin repetir la clase en cada uno.
Estilo de borde
border-solid, border-dashed, border-dotted, border-double cambian el trazo. Solid es el default.