The church stands within a stone-walled churchyard boundary dating from the 1200s, and evidence beneath the sacristy floor suggests an earlier wooden church once stood on the site before the present building. The long, wide nave was raised in the later 1200s, with the chancel built to match its height and breadth so closely that the two form an almost seamless space beneath a shared roof. Because the nave was unusually broad, it was constructed with two aisles of vaulting rather than one, a solution that gives the interior its distinctive hall-like character.
The sacristy and porch were added during the 1300s and 1400s, and towards the end of the 1400s brick vaults replaced an earlier wooden vault, a change made partly for fire safety. Around 1500 part of the vaulting collapsed and had to be rebuilt, and the original west doorway was blocked at this time.
The walls carry two layers of medieval wall paintings, a rare survival that makes this one of the most extensively decorated medieval interiors in Uppland. The earlier layer, predating the brick vaults, shows large figures thought to be prophets or apostles, and has been linked stylistically to painting found in Strängnäs Cathedral from the early 1460s. The later scheme, from the 1490s, depicts the life of Christ alongside Old Testament scenes, saints' legends and visions associated with Saint Bridget. These later paintings show the clear influence of the workshop of Albertus Pictor, though they are not thought to be his own work. In the porch, some painted figures depict the devil, in one scene handing out ointment to witches bound for the mythical gathering at Blåkulla.
Among the furnishings, the font is carved from Gotland limestone and is roughly contemporary with the church, likely dating from the second half of the 1200s, its surface patterned to resemble Gothic window tracery. A triumphal crucifix from the 1200s hangs on the north wall near the sacristy entrance, and an altar cabinet from the early 1400s stands by the south wall, alongside several well-preserved wooden sculptures of similar date. The pulpit was made in 1707 by Joakim Lutkenschwanger, working in the decorative style associated with Burchard Precht.
Outside, the churchyard wall retains three lychgates of rendered brick, their ornamentation suggesting a fifteenth-century date, including the main northern entrance. A detached bell tower northwest of the church was built in 1739 and re-clad in its present timber boarding during rebuilding in 1909; its two bells are dated 1705 and 1759.