The church is built of grey stone, rendered white, and consists of a nave with a south transept known as the 'new church', a north sacristy and a straight-ended chancel. There is no tower; the bells hang in a separate wooden bell-frame nearby.
The earliest building was smaller, with its chancel occupying what is now the crossing. It originally had no inner ceiling, the roof timbers being visible from below and the underside of the ridge beam carved with decoration, a construction type unusual for Östergötland. Tradition associates the church's origins with the 1170s and the episcopate of Bishop Kol, though the surviving Romanesque wall paintings—hidden above the later vaults and reached only by a stair from the organ loft—are thought by some scholars to belong stylistically to the early thirteenth century, closer in style to Gotland's glass painting of that period. The paintings show ranks of figures against a dark blue background, with Christ as judge flanked by Mary and John, and an accompanying Latin inscription drawn from scripture; the exact biblical reference and meaning of the combined imagery have been debated. During the later Middle Ages the church was enlarged with a new chancel, the south transept and sacristy, and the whole interior was vaulted in the fifteenth century, a change linked to a surviving indulgence letter of 1459.
After the Reformation the church received new pews, a pulpit and altar. Until well into the nineteenth century the high altar still displayed a medieval carved shrine depicting the coronation of the Virgin; other side altars had already disappeared in the sixteenth century. Around that time the chancel is thought to have been raised and adapted as a burial chapel for the royal councillor Johan Axelsson Bielke and his wife Margareta Posse, parents of Queen Gunilla, consort of John III, with later burials added for other local families of note.
Among the church's furnishings, a small bell, a chandelier, candlesticks, a chasuble, a chest and painted heraldic window glass were donated in the seventeenth century by Salomon von der Osten genannt Sacken, a colonel and local landowner. Extensive nineteenth-century changes—enlarged windows, removal of the medieval altar shrine, a new organ and gallery—altered much of the medieval interior; many older fittings were later deposited in a regional museum before some were returned and restored in the twentieth century, though an older pulpit was lost in a warehouse fire in Linköping.
A cautious restoration took place in 1938, and the Romanesque paintings have since been conserved on more than one occasion. During renovation work in the 1980s, a painted runic inscription of uncertain and undeciphered meaning was discovered on the north wall of the nave, apparently unique among Östergötland's churches; a small opening was later made in the wall panelling so that visitors could see it.