Harbor Stack Hanging Toilet Paper Holder Crochet Pattern

The Harbor Stack is a tall, slim hanging organizer that holds three spare toilet rolls. A long teal back panel narrows at the top into a tab that wraps around a wooden ring. Three open box pockets are stitched down the front. Each one has a cream rim and a cream ridge around the base.

The main fabric is Tunisian simple stitch in deep teal. It gives a dense woven texture with neat vertical columns, and it is firm enough to hold its shape when the pockets are full. Cream single crochet frames the panel and finishes each pocket. All terms are US crochet terms.

The finished panel is 7 in (17.8 cm) wide and 27.3 in (69.3 cm) tall to the top of the shoulders. The holder hangs about 30 in (76.2 cm) from the bottom edge to the top of the ring. Each pocket is 5 in (12.7 cm) wide, 4.5 in (11.4 cm) deep and 3.4 in (8.6 cm) tall.

You work the back panel flat in one piece, from the bottom edge up to the tab. Each pocket is two flat pieces: a wall strip that wraps the front and both sides, and a rectangular base. A cream single crochet round joins the base to the wall. Then you sew the pockets to the panel, add the panel border, and fold the tab over the ring.

Finished Size and Construction

  • Finished size: 7 in x 27.3 in (17.8 cm x 69.3 cm) panel; about 30 in (76.2 cm) overall including the ring
  • Skill level: Intermediate (you need basic Tunisian crochet)
  • Terminology: US
  • Yarn weight: Worsted (#4)
  • Hooks: 6.0 mm (J-10) Tunisian hook with cable; 5.0 mm (H-8) standard hook
  • Number of pieces: 7 (1 back panel, 3 pocket walls, 3 pocket bases)
  • Layout: 3 pockets stacked in one vertical column, 8 in (20.3 cm) apart, measured base to base
  • Piece sizes: panel 6 in x 29.1 in (15.2 cm x 73.9 cm) before the border; wall 14 in x 2.9 in (35.6 cm x 7.4 cm); base 5 in x 4.6 in (12.7 cm x 11.7 cm)
  • Panel size before border: 6 in (15.2 cm) wide; 26.3 in (66.8 cm) to the top of the shoulders
  • Border depth: 0.5 in (1.3 cm), 2 rounds of single crochet

Materials

Choose a smooth worsted yarn with good stitch definition. Cotton or a cotton-acrylic blend works well because it holds its structure in a humid bathroom. Avoid fuzzy or very stretchy yarn, which blurs the Tunisian columns and lets the pockets sag.

  • Teal (main color): 250 g, about 450 m
  • Cream (contrast color): 100 g, about 180 m

These quantities include a margin of about 20 percent for your swatch and small differences in gauge.

Tools:

  • 6.0 mm (J-10) Tunisian hook with a cable, long enough to hold 56 loops
  • 5.0 mm (H-8) standard crochet hook
  • 1 wooden ring, 3 in (7.6 cm) inner diameter
  • Tapestry needle
  • 8 locking stitch markers
  • Rust-proof pins and a blocking mat
  • Measuring tape

Abbreviations (US Terms)

  • ch – chain
  • sc – single crochet
  • sl st – slip stitch
  • st(s) – stitch(es)
  • yo – yarn over
  • FwP – forward pass
  • RetP – return pass
  • tss – Tunisian simple stitch
  • tss2tog – Tunisian simple stitch 2 together

Tss: Insert the hook from right to left under the next front vertical bar, yo, pull up a loop and keep it on the hook.

RetP: Yo, pull through 1 loop. *Yo, pull through 2 loops; repeat from * until 1 loop remains. This loop is the first st of the next row.

Last stitch: On every FwP, work the final st under the last vertical bar and the strand behind it. This gives a firm edge.

Tss2tog: Insert the hook under the next 2 front vertical bars together, yo, pull up 1 loop. This decreases 1 st.

Bind-off: *Insert the hook as for tss, yo, pull through the bar and the loop on the hook; repeat across. Each bind-off st sits on top of one st.

Gauge and Checkpoints

Tunisian gauge: 16 sts and 14 rows = 4 in (10.2 cm) in tss with the 6.0 mm hook. That is 4 sts and 3.5 rows per inch.

Border gauge: 16 sc and 16 rows = 4 in (10.2 cm) with the 5.0 mm hook. That is 4 sc and 4 rows per inch.

Make one pocket base first as your test piece. It should measure 5 in x 4.6 in (12.7 cm x 11.7 cm). If it does, keep it as one of your three bases.

Checkpoints:

  • Panel after Row 1: 6 in (15.2 cm) wide
  • Panel after Row 28: 8 in (20.3 cm) tall
  • Panel after Row 84: 24 in (61.0 cm) tall
  • Panel after Row 92: 26.3 in (66.8 cm) tall
  • Panel after Row 102: 29.1 in (73.9 cm) tall
  • Wall: 14 in x 2.9 in (35.6 cm x 7.4 cm)

If your piece is too big, change to a hook 0.5 mm smaller. If it is too small, go up 0.5 mm. Tunisian fabric curls before blocking, so flatten it gently when you measure, without stretching it.

Teal and cream striped crocheted storage organizer with three white toilet paper rolls in pockets on whitewashed bathroom wall.

Back Panel

With teal and the Tunisian hook, ch 24.

Row 1: FwP: Pull up a loop in the 2nd ch from the hook and in each ch across. (24 loops) RetP. (24 sts)

Rows 2–84: FwP: Skip the first vertical bar (the loop on the hook is the first st), tss in each bar across, work the last st. RetP. (24 sts)

The panel now measures 24 in (61.0 cm). Place a marker at each side edge of Rows 4, 32 and 60 to mark where the pocket bases go.

Shoulder shaping

Each shoulder row loses 1 st at each end. For a row that starts with N sts: loop on hook, tss2tog, tss in the next (N – 6) bars, tss2tog, last st, RetP. This leaves N – 2 sts.

Row 85: Loop on hook, tss2tog, tss in next 18 bars, tss2tog, last st. RetP. (22 sts)

Row 86: Work as Row 85 with tss in next 16 bars. (20 sts)

Row 87: Work as Row 85 with tss in next 14 bars. (18 sts)

Row 88: Work as Row 85 with tss in next 12 bars. (16 sts)

Row 89: Work as Row 85 with tss in next 10 bars. (14 sts)

Row 90: Work as Row 85 with tss in next 8 bars. (12 sts)

Row 91: Work as Row 85 with tss in next 6 bars. (10 sts)

Row 92: Work as Row 85 with tss in next 4 bars. (8 sts)

Tab

Rows 93–102: Work even in tss. (8 sts)

Bind off all 8 sts. Fasten off and leave a 24 in (61.0 cm) tail for sewing the tab.

Pocket Wall (make 3)

The wall is one strip that becomes the left side, front and right side of the box. Its stitches run across the strip, so the tss columns stand upright on the finished pocket.

With teal and the Tunisian hook, ch 56.

Row 1: FwP: Pull up a loop in the 2nd ch from the hook and in each ch across. (56 loops) RetP. (56 sts)

Rows 2–10: Work even in tss. (56 sts)

Bind off all 56 sts. Fasten off.

Place markers on the foundation edge after st 18 and after st 38. This divides the wall into a side of 18 sts, a front of 20 sts and a side of 18 sts. Those sections measure 4.5 in, 5 in and 4.5 in (11.4 cm, 12.7 cm and 11.4 cm).

Pocket Base (make 3)

With teal and the Tunisian hook, ch 20.

Row 1: FwP: Pull up a loop in the 2nd ch from the hook and in each ch across. (20 loops) RetP. (20 sts)

Rows 2–16: Work even in tss. (20 sts)

Bind off all 20 sts. Fasten off. The base measures 5 in x 4.6 in (12.7 cm x 11.7 cm).

Pocket Assembly

Base joining round: Fold the wall at the markers into a three-sided box. Put the base inside the bottom of the wall, wrong sides together, with the bind-off edge of the base along the front section. The foundation edge of the base is the open back.

With cream and the 5.0 mm hook, join with sc through both layers at the back corner of one side. Work each sc through one wall st and the matching base edge.

  • Side: 18 sc. There are 18 wall sts but only 16 base row-ends, so work 2 sc into the row-ends of base Rows 6 and 11. That gives 16 + 2 = 18 sc.
  • Front: 20 sc, 1 through each wall st and each base bind-off st.
  • Second side: 18 sc, worked like the first side.
  • Back edge: 20 sc in the base foundation edge only.

Sl st to the first sc. (76 sc) These sc sit on the outside of the box and form the cream ridge around the base.

Top trim: Stand the box upright. Join cream with sc in the first bind-off st at one back end of the wall.

Row 1: Sc in each bind-off st across. (56 sc)

Row 2: Ch 1, turn, sc in each sc across. (56 sc)

Fasten off. The trim adds 0.5 in (1.3 cm), so the pocket is 3.4 in (8.6 cm) tall. Weave in all ends.

Make All Pieces

Teal: 1 back panel, 3 pocket walls, 3 pocket bases.

Cream: 3 base joining rounds, 3 top trims, and the 2-round panel border.

Layout on the front of the panel, top to bottom:

            ( ring )
            [ tab  ]     Rows 93–102
          / shoulders \  Rows 85–92
         |  clear      |  Rows 73–84
         |  POCKET 3   |  Rows 60–72
         |  clear      |  Rows 45–59
         |  POCKET 2   |  Rows 32–44
         |  clear      |  Rows 17–31
         |  POCKET 1   |  Rows 4–16
         |  clear      |  Rows 1–3

Each pocket covers panel columns 3 to 22. That leaves 2 teal columns showing on each side.

Joining

Use a teal tail and whip stitch, and sew from the front of the panel.

Base to panel: Line up the 20 sc on the back edge of the pocket with columns 3 to 22 of the marked row (Row 4, 32 or 60). Sew 1 sc to 1 panel st. Both counts are 20, so the base sits flat without gathers.

Walls to panel: Sew each back edge of the wall straight up the panel. The wall and the panel have the same Tunisian row gauge, so match 1 wall row-end to 1 panel row. For Pocket 1, wall Rows 1–10 go to panel Rows 5–14, and the 2 trim rows go to Rows 15–16. Pockets 2 and 3 work the same way, starting one row above their base row.

Tension: Pull each stitch until the edges meet, but stop before the panel puckers. The seam should look flat from the front and must not shorten the panel.

Checkpoint: With all three pockets sewn on, the panel should still measure 6 in (15.2 cm) wide and 26.3 in (66.8 cm) to the shoulders. The pocket bases should sit 8 in (20.3 cm) apart.

Border

The border uses the border gauge of 4 sc per inch. Work it with cream and the 5.0 mm hook around the whole panel, including the shoulders and tab. The pockets stay out of the way because they sit inside columns 3 to 22.

Round 1: Join at the bottom right corner.

  • Bottom edge: 3 sc in the first foundation st, sc in each of the next 22 sts, 3 sc in the last st. (28 sc)
  • Side, Rows 2–84: 1 sc in each row-end, but 2 sc in the row-ends of Rows 7, 14, 21 and every 7th row up to 84. That is 83 + 12 = 95 sc.
  • Shoulder, Rows 85–92: 3 sc in every 2 row-ends. (12 sc)
  • Tab side, Rows 93–102: 1 sc in each row-end, but 2 sc in the row-end of Row 98. That is 10 + 1 = 11 sc.
  • Top of tab: 3 sc in the first bind-off st, sc in the next 6 sts, 3 sc in the last st. (12 sc)
  • Second tab side, shoulder and side: 11 sc, 12 sc and 95 sc, worked the same way.

Sl st to the first sc. (28 + 12 + 2 x (95 + 12 + 11) = 276 sc)

Round 2: Ch 1, sc in each sc, with 3 sc in the center sc of each of the 4 corner groups. Sl st to the first sc. (276 + 8 = 284 sc)

Fasten off.

Why the math works: Tss has 4 sts per inch, the same as the border sc, so the top and bottom edges take 1 sc per st. There are 3.5 rows per inch, so the straight sides need 8 sc for every 7 rows. That is exactly 1 extra sc every 7th row. The diagonal shoulder edge is longer than its row count suggests, so it gets 3 sc per 2 row-ends. Two rounds at 4 rows per inch add 0.5 in (1.3 cm) to every edge, which makes the panel 6 + 0.5 + 0.5 = 7 in (17.8 cm) wide.

Attach the ring: Pass the tab through the ring from front to back. Fold it down behind the shoulders and sew the top of the tab to the back of the panel, so the fold sits just above the shoulders.

Final Blocking

  1. Spray the whole holder lightly with water until it is damp.
  2. Lay the panel face up on the blocking mat.
  3. Pin it to 7 in x 27.3 in (17.8 cm x 69.3 cm) to the top of the shoulders.
  4. Pin the shoulders into straight, even diagonals.
  5. Fill each pocket with a toilet roll wrapped in plastic, or with a rolled towel, so the boxes dry square.
  6. Pinch the pocket corners into sharp folds.
  7. Let everything dry completely, for at least 24 hours.
  8. Remove the pins and check the measurements again.

Final Quality-Control Checklist

  • The panel is 7 in (17.8 cm) wide along its whole length.
  • Both shoulders slope evenly.
  • The border lies flat, without ruffles or pulling.
  • Each pocket is 5 in (12.7 cm) wide and 3.4 in (8.6 cm) tall.
  • The pocket bases are 8 in (20.3 cm) apart and level.
  • The cream ridge runs all the way around each base.
  • No wall seam opens up when you push a roll in.
  • The tab is sewn on securely and the ring hangs straight.
  • All ends are woven in on the back.

Troubleshooting

The fabric curls a lot. Tss naturally curls. Check that your hook is large enough for your yarn, then block the piece. The border also helps hold the edges flat.

The panel slants. You skipped or added an edge st. Count 24 sts on every RetP.

The shoulders are uneven. Recount each decrease row. Every row must lose exactly 2 sts.

A pocket sags forward. Tighten the wall seam and make sure all 12 row-ends on each side are sewn down.

The base join puckers. Check that you worked the 2 extra sc on each side. The front must join 20 sts to 20 sts, with no extras.

The border ruffles. Move the extra sc to every 8th row-end, or use a smaller hook for the border.

The tab won’t fit through the ring. Use a ring with a larger inner diameter, or skip Round 2 along the tab.

Care

Hand wash in cool water and lay flat to dry, reshaping the pockets while they are damp. Do not tumble dry, because heat can shrink cotton and distort the shoulders.

Teal and cream crocheted toilet paper holder with three rolls mounted on a bathroom wall next to a beige towel.

Final Notes

Everything depends on one chain of measurements. A gauge of 4 sts per inch makes the 24-st panel 6 in (15.2 cm) wide. A gauge of 3.5 rows per inch brings Row 84 to 24 in (61.0 cm) and Row 92 to 26.3 in (66.8 cm). The 2-round border adds 0.5 in (1.3 cm) on every edge, for a final panel of 7 in x 27.3 in (17.8 cm x 69.3 cm).

The pockets use the same gauge. The 20 front sts match the 20-st base, so each box is 5 in (12.7 cm) wide. The 18 side sts and the 16-row sides of the base both come to about 4.5 in (11.4 cm), and the 2 extra sc in the join make up the difference in counts. If you check each checkpoint as you go, the pockets, panel and border will fit together.

Happy crocheting!

Leave a Comment