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

app

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); })(); Karen E. Saupe | app

app

Skip to main content

Dr. Karen E. Saupe

Professor Emerita

Biography

Recent Activity:

Professor Saupe directed the college’s Rhetoric Center and regularly conducted research on writing in collaboration with the student staff. Their most recent presentation, “Cultivating Passion for Writing,” appears in East Central Writing Centers Association Conference Proceedings, Spring 2009.  She serves on the editorial board of , the Consortium for the Teaching of the Middle Ages. Saupe also hosts Inner Compass, an interview program produced at app and aired on several public television stations across the country. Saupe currently instructs the January Series honors colloquium. 

Favorite Books/Interesting Recent Reads

  • Out of Africa by Isaak Dinesen
  • I Want to Buy a Vowel by John Welter
  • 󲹳ܳ’s Canterbury Tales

Hobbies

  • Music (especially stringed instruments of all kinds)
  • Outdoor activities

Additional Information

  • Watch some of Professor Saupe’s interviews
  • Professor Saupe regularly helps lead Taizé worship at app's chapel services.

Education

Professor Saupe earned a B.A. in English from Wittenberg University in 1981. She earned an M.A. in English from Wright State University while teaching high school English in Springfield, Ohio. She returned to school full-time to earn an Ph.D. in medieval English literature from the University of Rochester. She joined the app College faculty in 1994.

Academic Interests

  • old and middle English literature and language
  • Chaucer (taught every other year in English 337)
  • Langland
  • Christianity in medieval England
  • Renaissance literature
  • Shakespeare
  • lyric poetry
  • writing pedagogy