, but this code // executes before the first paint, when

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Composer of alma mater dies - News & Stories | 鶹

Skip to main content

Calvin News

Composer of alma mater dies

Fri, Aug 17, 2012
Myrna Anderson

Dale Grotenhuis, a 1953 Calvin grad and longtime professor of music at Dordt College, first composed the music for the “Calvin College Alma Mater” as a march for the college’s band. When in 1951, in honor of Calvin’s Diamond Jubilee, the college offered a $100 prize for a school song, Grotenhuis adapted his march as a four-part hymn—with Celia Bruinooge supplying the words. The duo’s collaboration earned the prize.

“Hearing it played still makes me feel for a moment like I’m back in college,” Grotenhuis said in a 1995 Spark article about the history of the song.

Dale Grotenhuis earned a bachelor’s degree in music from Calvin and a master’s degree in music from Michigan State University. (He completed all of the coursework for a doctorate in music from Ohio State University.) For 35 years, Grotenhuis taught music at Dordt College in Sioux Center, Iowa, and he is credited with creating hundreds of compositions. He also served on the committee to develop the 1987 gray Psalter Hymnal.

Grotenhuis retired from his position as professor of music and director of choral music at Dordt in 1994. He died on August 17, 2012.

“Dale’s life was about giving God glory through music, and during his life he enriched many through his arrangements and compositions,” said Calvin alumni director Mike Van Denend. “To Calvin, he gave us the unique gift of a song that communicates the mission of the college in the context of lifelong service to Christ. The alma mater is a simple and beautiful song that contains a complex and inspiring spiritual message. I am grateful for this gift and for Dale’s cheerful and consistent witness.”

Dale Grotenhuis is survived by his wife, Eleanor ’53 and his sons, Bob, Phil and Tom. Another son, Jack, also a composer, died in 1983.