You can use whatever you like but this is what I used:
Yarn: Ístex Kambgarn
Materials: crochet hook 2,5 mm (US: 1 1/2 B or C / UK: 12), tapestry needle, buttons: 10 mm.
ch = chain
sc = US: single crochet / UK: double crochet
hds = US: half-double crochet / UK: half treble
sl st = slip stitch
Start with a adjustable ring (magic ring/loop). Leave the tail to be 10-15 cm (4-6 inches) long for sewing.
Ch 2 (counts as first hdc), 7 hds around the magic loop and the tail. (8 hds)
Pull the tail to snug up the middle, join with 1 sl st to first hdc.
2 sc in each hdc (ch 1 as first sc) , join with 1 sl st in first sc. (16 sc)
Put the tail from the magic ring through the button (pull to snug up the middle).
sl st in about 3rd sc. Push the button in.
Cut and leave the end to be 10-15 cm (4-6 inches) long for sewing.
Use the tapestry needle and sew across the loops to close the gap mostly.
Then your button should be ready to be sewed on whatever you like :)
Maybe it would be nicer to use thinner yarn and smaller needle and buttons... but I like these better than buttons that don't match the baby jacket :)