, 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); })(); Debra Rienstra | °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

°ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

Skip to main content

Dr. Debra Rienstra

Professor

Biography

Professor Rienstra began her higher education at Calvin University (then Calvin College) before transferring to the University of Michigan, where she received her bachelor of arts in English literature in 1987 with Highest Honors and Highest Distinction. She completed her graduate studies at Rutgers University, receiving an MA in English literature in 1991 and a PhD in literatures in English in 1995. She joined the Calvin University English department in 1996.

Recent Activities

Professor Rienstra’s most recent book is  (Fortress, 2022). Previous books include Worship Words: Discipling Language for Faithful Worship, a collaboration with Rev. Dr. Ron Rienstra released by Baker Academic in 2009. Her 2005 book,  (Jossey-Bass), won an Award of Merit from Christianity Today in the apologetics category, and Great With Child (Tarcher-Putnam, 2002) was named a Best Book of 2002 by Publisher's Weekly.

Professor Rienstra was the 2008 Calvin faculty lecturer at the at Calvin College with a talk titled "Words Wear Out: How Writers Help Us Renew Religious Language."

Additional Information

  • Professor Rienstra writes fortnightly for . Her essays are archived .
  • She also writes the , a fortnightly newsletter about faith and climate change.
  • For more information on her writing and her speaking schedule, .
  • The Green Lectionary Podcast,
  • No Small Endeavor Podcast,
  • Scholarly article:
  • °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ January Series in July 2023, .

Education

MA, PhD (Rutgers, 1991, 1995)

Academic Interests

  • Early modern British literature
  • Literary nonfiction 
  • Nature writing and ecotheology 
  • Shakespeare
  • Early modern British poetry and religious lyric

 

Publications