, 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); })(); John Sampson | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

John Sampson

Assistant Professor

Biography

Dr. John Sampson is Assistant Professor of Religion at ÃÛÌÒapp, where he teaches in the areas of systematic and historical theology and researches the cross-cultural transmission of Christianity and Christian theology, especially in twentieth-century China. He has published in the Journal of Interreligious Studies, Studies in World Christianity, and the Toronto Journal of Theology.

Originally from Toronto, Ontario, he previously served as Coordinator of Graduate Programs at the Graduate Centre for Theological Studies, Toronto School of Theology.

Education

  • Wilfrid Laurier University, honors BA
  • Wheaton College Graduate School, MA
  • St. Michael¡¯s College, University of Toronto, PhD (2022)
    • Yale Divinity School, Stowe Research Fellow (2019)
    • Postdoctoral Workshop Fellow, Ricci Institute, Boston College (2022)

Academic Interests

  • Systematic theology
  • Chinese Christianity & theology
  • T.C. Chao Úw×Ïå·
  • World Christianity
  • Contextual theologies

Professional Associations

  • American Academy of Religion
  • Yale-Edinburgh Group on World Christianity and the History of Mission