This hanging fish holds three toilet paper rolls inside an open mesh body. The head is dense teal single crochet with big white-and-black eyes and puffy tan lips. The cream diamond mesh lets the rolls show through. Teal fins and a split tail with cream edging finish the fish shape.
The palette is teal, cream, tan, white and black. The style is playful but practical. The fish hangs from a robe or towel hook, and you pull the paper from the lowest roll through the bottom opening.
This pattern uses US crochet terms. The finished holder is about 21 in (53.3 cm) long without the hanging loop, 5 in (12.7 cm) wide when filled, and 11 in (27.9 cm) across the fins.
The head and mesh body are one continuous piece. You work the head top-down as a teal cone, switch to cream for the mesh tube, and finish with a solid rim. Then you make the fins, tail lobes, eyes and mouth separately and sew them on.
Finished Size and Construction
- Finished size: 21 in (53.3 cm) long plus a 2 in (5.1 cm) loop; 5 in (12.7 cm) wide filled; 11 in (27.9 cm) across the fins
- Skill level: Intermediate
- Terminology: US
- Yarn weight: Worsted / medium (#4) cotton
- Hook: 4.5 mm (US 7)
- Number of pieces: 8 (head-and-body, 2 fins, 2 tail lobes, 2 eyes, 1 mouth)
- Layout: One vertical tube with parts sewn on; no grid
- Piece sizes: head 5.3 in (13.5 cm) long; body 11.25 in (28.6 cm) long; fin 4 x 2.5 in (10.2 x 6.4 cm); tail lobe 6 x 2.75 in (15.2 x 7.0 cm)
- Size before border: fin 3.5 x 2 in (8.9 x 5.1 cm); tail lobe 5.5 x 2.25 in (14.0 x 5.7 cm)
- Border depth: 0.25 in (0.6 cm) on each edge
Materials
Use a smooth 100% cotton or cotton blend. Cotton holds its shape under the weight of the rolls and copes with bathroom humidity. Avoid splitty or fuzzy yarn, because the mesh needs crisp chains.
- Teal: 85 g, about 160 m (head, loop, fins, tail lobes)
- Cream: 90 g, about 170 m (mesh body, rim, all edging)
- Tan: 8 g, about 15 m (mouth)
- White: 5 g, about 10 m (eyes)
- Black: 3 g, about 6 m (eye centers)
Tools:
- 4.5 mm (US 7) crochet hook
- Stitch markers
- Tapestry needle
- Scissors
- A pinch of fiberfill for the mouth
- Pins and a blocking mat or towel
All quantities include a margin of about 15%.
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- hdc – half double crochet
- dc – double crochet
- inc – 2 sc in the same stitch
- sc2tog – single crochet 2 together
- BLO – back loop only
- MR – magic ring
- sp – space
- st(s) – stitch(es)
- rev sc – reverse single crochet
Special stitch – rev sc (crab stitch): If you’re right-handed, work from left to right. Insert the hook into the next stitch to the right, yarn over, pull up a loop, then yarn over and pull through both loops. This makes a beaded edge.
Gauge and Checkpoints
- Sc gauge: 16 sc and 18 rounds = 4 in (10.2 cm).
- Mesh gauge: 4 mesh rounds = 3 in (7.6 cm), measured relaxed.
Make one tail lobe first as your test piece, because it uses every stitch height in the pattern. Before the border, it should measure 5.5 x 2.25 in (14.0 x 5.7 cm).
Checkpoints:
- Head after Rnd 15: 60 sts and 15 in (38.1 cm) around.
- Head after Rnd 24: 5.3 in (13.5 cm) from tip to edge.
- Mesh after Rnd 5: 4 mesh rounds measure 3 in (7.6 cm).
- Body after Rnd 17: 11.25 in (28.6 cm) from the first cream round.
- Tail lobe with border: 6 x 2.75 in (15.2 x 7.0 cm).
If your piece is too big, go down to a 4.0 mm (US G-6) hook. If it’s too small, go up to a 5.0 mm (US H-8) hook. If only the mesh is off, change hooks for the mesh section alone.

Head (Teal)
Work in continuous spiral rounds. Mark the first stitch of each round.
- Rnd 1: 6 sc in MR. (6)
- Rnd 2: (sc, inc) 3 times. (9)
- Rnd 3: sc in each st. (9)
- Rnd 4: (2 sc, inc) 3 times. (12)
- Rnd 5: sc in each st. (12)
- Rnd 6: (sc, inc) 6 times. (18)
- Rnd 7: sc in each st. (18)
- Rnd 8: (2 sc, inc) 6 times. (24)
- Rnd 9: sc in each st. (24)
- Rnd 10: (3 sc, inc) 6 times. (30)
- Rnd 11: (4 sc, inc) 6 times. (36)
- Rnd 12: (5 sc, inc) 6 times. (42)
- Rnd 13: (6 sc, inc) 6 times. (48)
- Rnd 14: (7 sc, inc) 6 times. (54)
- Rnd 15: (8 sc, inc) 6 times. (60)
- Rnds 16–24: sc in each st. (60 each round)
The slow increases at the start form the pointed tip. The faster increases from Rnd 10 round out the cheeks. Sl st in the next st and fasten off.
Hanging loop: Join teal at the tip of the head. Ch 16 and sl st in the same spot. Work 22 sc over the chain loop, then sl st to the tip. Fasten off, and weave the end through several rounds of the head so the loop is firmly anchored.
Mesh Body (Cream)
Hold the head with the tip pointing up and the right side facing out. You’ll work the body from the open edge of the head.
- Rnd 1 (conversion): Join cream in any st. Ch 1, sc in each st around, and sl st to the first sc. 60 sts worked 1 per existing st + 0 added = 60.
- Rnd 2: Ch 1, sc in the first st, ch 5, skip 3 sts, sc in the next st; repeat from * 13 more times (14 times in all). Ch 2, skip the last 3 sts, and dc in the first sc. (15 loops)
The joining dc counts as the last loop. It also leaves your hook at the center of that loop, ready for the next round.
- Rnds 3–14: Ch 1, sc around the post of the joining dc, ch 5, sc in the next ch-5 sp; repeat from * 13 more times (14 times in all). Ch 2, dc in the first sc. (15 loops)
- Rnd 15: Work as Rnd 3, but end with ch 5 and a sl st in the first sc. (15 full loops)
- Rnd 16 (conversion): Sl st into the first ch-5 sp. Ch 1, work 3 sc in each ch-5 sp around, and join. 15 sps x 3 sc = 45.
- Rnd 17: Ch 1, sc in each st around, and join. (45)
Fasten off. The 14 mesh rounds (Rnds 2–15) at 0.75 in (1.9 cm) each give 10.5 in (26.7 cm). Rnd 1 adds 0.25 in (0.6 cm) and the rim adds 0.5 in (1.3 cm), so the body is 11.25 in (28.6 cm) long.
The relaxed rim opening is about 3.6 in (9.1 cm) across, which is smaller than a standard roll of about 4.5 in (11.4 cm). It stretches enough to let in a slightly squeezed roll, then closes back up to hold the lowest roll in place.
Side Fins (Make 2, Teal)
Each fin is worked around both sides of a foundation chain, which makes a leaf with a point at each end.
Ch 12.
- Rnd 1: Sc in the 2nd ch from the hook, hdc in the next 2 ch, dc in the next 4, hdc in the next 2, and sc in the next ch (10 sts). Work (sc, ch 2, sc) in the last ch. Then work along the underside of the chain: sc, hdc in the next 2, dc in the next 4, hdc in the next 2, sc in the next (10 sts). Work (sc, ch 2, sc) in the skipped first ch, and sl st to the first sc. (24 sts + 2 ch-2 tips)
- Rnd 2 (BLO): Ch 1. Sc in the next st, hdc in the next 2, 2 dc in each of the next 4, hdc in the next 2, and sc in the next 2. Work (sc, ch 2, sc) in the tip sp. Sc in the next 2, hdc in the next 2, 2 dc in each of the next 4, hdc in the next 2, and sc in the next 2. Work (sc, ch 2, sc) in the tip sp, sc in the last st, and join. (36 sts + 2 ch-2 tips)
Each side between the tips uses 12 sts and makes 16, so the total is 16 x 2 + 2 x 2 = 36. The back-loop round leaves a raised ridge around the center of the fin. Fasten off. The fin measures 3.5 x 2 in (8.9 x 5.1 cm).
Tail Lobes (Make 2, Teal)
Ch 20.
- Rnd 1: Sc in the 2nd ch from the hook, hdc in the next 3, dc in the next 10, hdc in the next 3, and sc in the next (18 sts). Work (sc, ch 2, sc) in the last ch. Along the underside, repeat the same 18 sts. Work (sc, ch 2, sc) in the skipped first ch, and sl st to the first sc. (40 sts + 2 ch-2 tips)
- Rnd 2 (BLO): Ch 1. Sc in the next 2, hdc in the next 3, (dc in the next st, 2 dc in the next st) 4 times, hdc in the next 3, and sc in the next 3. Work (sc, ch 2, sc) in the tip sp. Sc in the next 3, hdc in the next 3, (dc, 2 dc) 4 times, hdc in the next 3, and sc in the next 3. Work (sc, ch 2, sc) in the tip sp, sc in the last st, and join. (52 sts + 2 ch-2 tips)
Each side between the tips uses 20 sts and makes 24, so the total is 24 x 2 + 2 x 2 = 52. Fasten off. The lobe measures 5.5 x 2.25 in (14.0 x 5.7 cm).
Eyes (Make 2)
- Rnd 1 (black): 6 sc in MR. (6)
- Rnd 2 (black): inc in each st, changing to white in the last st. (12)
- Rnd 3 (white): (sc, inc) 6 times. (18)
- Rnd 4 (white): loose sl st in each st. (18)
Fasten off, leaving a 12 in (30.5 cm) tail for sewing. Each eye is 1.5 in (3.8 cm) across.
Mouth (Tan)
Ch 7.
- Rnd 1: Sc in the 2nd ch from the hook, sc in the next 4, and 3 sc in the last ch. Along the underside, sc in the next 4 and 2 sc in the first ch. (14)
- Rnd 2: Inc, sc in the next 4, inc 3 times, sc in the next 4, inc 2 times. (20)
- Rnd 3 (BLO): sc in each st. (20) This turns the edge up into a lip.
- Rnd 4: (3 sc, sc2tog) 4 times. (16)
Fasten off, leaving a long tail. Add a pinch of fiberfill. With teal yarn, embroider one long straight stitch across the center for the slit. The mouth measures 2 x 1.25 in (5.1 x 3.2 cm).
Border (Cream Edging on Fins and Tail Lobes)
Border gauge: The 2 border rounds add 0.25 in (0.6 cm) to every edge, which is 0.5 in (1.3 cm) to the total length and to the total width.
Fins:
- Rnd 3: Join cream. Ch 1, sc in each of the 36 sts (18 per side), and work (sc, ch 2, sc) in each tip sp. 36 worked 1 per st + 4 added = 40 sts + 2 ch-2 tips.
- Rnd 4: Rev sc in each of the 40 sts, and work 2 rev sc in each tip sp. 40 + 4 = 44.
Tail lobes:
- Rnd 3: Join cream. Ch 1, sc in each of the 52 sts (26 per side), and work (sc, ch 2, sc) in each tip sp. 52 worked 1 per st + 4 added = 56 sts + 2 ch-2 tips.
- Rnd 4: Rev sc in each of the 56 sts, and work 2 rev sc in each tip sp. 56 + 4 = 60.
Why the math works: The long sides get exactly 1 stitch per stitch, so they stay flat. All the added stitches go at the 2 tips, where the edge turns sharply. Fins finish at 3.5 + 0.5 = 4 in (10.2 cm) long by 2 + 0.5 = 2.5 in (6.4 cm) wide. Tail lobes finish at 5.5 + 0.5 = 6 in (15.2 cm) long by 2.25 + 0.5 = 2.75 in (7.0 cm) wide.
Assembly
- Eyes: Pin them between Rnds 13 and 19 of the head, with their centers 3 in (7.6 cm) apart. Sew around the outer edges.
- Mouth: Center it below the eyes over Rnds 19–23. Sew around the base so the lip stands out.
- Fins: Place one fin on each side of the body, with its base tip over mesh Rnds 1–3 and the fin angled outward and down. Sew the base securely over 1 in (2.5 cm).
- Tail lobes: Overlap one tip of each lobe 1.5 in (3.8 cm) onto the outside of the rim, one on the left and one on the right, angled into a V. Sew through the rim only, so the opening stays clear.
Final Blocking
- Pin the fins and tail lobes flat to their finished sizes.
- Mist them until damp and let them dry completely.
- Load 3 rolls into the body, and smooth the head into a cone by hand.
- Mist the mesh lightly and let it dry while hanging, so the diamonds settle evenly.
- Shape the lips with your fingers. Don’t press them flat.
Final Quality-Control Checklist
- The head has 60 sts and is 5.3 in (13.5 cm) long.
- Every mesh round has 15 even loops, with no twisting.
- The body is 11.25 in (28.6 cm) long, and the rim has 45 sts.
- The fins are 4 x 2.5 in (10.2 x 6.4 cm), and the tail lobes are 6 x 2.75 in (15.2 x 7.0 cm).
- The eyes are level, and the mouth is centered.
- The loop holds 3 rolls securely.
- All ends are woven into solid stitches.
Troubleshooting
- The head is flat, not pointed: Rnds 3, 5, 7 and 9 must have no increases.
- The mesh spirals: End every round with ch 2 and a dc into the first sc.
- Rolls fall out: Redo Rnd 17 with a hook one size smaller.
- Rolls won’t go in: Squeeze each roll into an oval, or redo Rnds 16–17 with a 5.0 mm (US H-8) hook.
- Fins cup or ruffle: Recount Rnd 2. Cupping means too few stitches; ruffling means too many.
- The beaded edge pulls tight: Work the rev sc more loosely.
Care
Hand wash in cool water, roll the holder in a towel to remove water, and dry it flat. Reshape the head while it’s damp, and don’t tumble dry.

Final Notes
The measurements build on each other. At 16 sc to 4 in (10.2 cm), the 60-stitch head is 15 in (38.1 cm) around. That edge becomes 15 mesh loops, and 14 mesh rounds at 0.75 in (1.9 cm) each, plus the rims, make an 11.25 in (28.6 cm) body. The tail lobes hang about 4.5 in (11.4 cm) below the rim. Measure at each checkpoint, and your fish will finish close to 21 in (53.3 cm).
Happy crocheting!