Skip to content

Dado shelf

joints.dado_shelf

A shelf housed in a dado in the side, shelf_height below its top end.

Dado shelf, assembled

Dado shelf, exploded

Parameters

Parameter Default
side_height 400
shelf_length 300
depth 200
shelf_height 150
stock 20 mm board, oak

Change them in a design file (see Change an example):

from woodwright.examples import joints

design = joints.dado_shelf(side_height=500)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Shelf

shelf

Side

side

Cut list

side   400 x 200 x 20 mm  oak
       - dado 20 mm, 6.5 deep, in bottom_face
shelf  306.5 x 200 x 20 mm  oak

Code

From woodwright/examples/joints.py, which imports the names it uses (see From an example to your own design):

def dado_shelf(
    side_height: float = 400,
    shelf_length: float = 300,
    depth: float = 200,
    shelf_height: float = 150,
    stock: Stock = OAK,
) -> Assembly:
    """A shelf housed in a dado in the side, `shelf_height` below its top end."""
    asm = Assembly("dado_shelf", root_location=CASE_SIDE)
    side = asm.add(Board("side", stock, length=side_height, width=depth))
    shelf = asm.add(Board("shelf", stock, length=shelf_length, width=depth))
    asm.join(
        DadoJoint(
            dado=side.bottom_face, end=shelf.left_end, position=offset(shelf_height, side.right_end)
        )
    )
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.