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

ÃÛÌÒapp

Skip to main content

Dr. Sarah Visser

Executive Vice President for Student Experience and Strategy

Biography

Dr. Sarah Visser serves as Executive Vice President for Student Experience and Strategy at ÃÛÌÒapp, where she provides executive leadership for the division of student life, human resources, information technology, and institutional strategy. Sarah has spent nearly two decades working in higher education, serving in both faculty and administrative roles. She completed her Ph.D. in higher education at Claremont Graduate University. Her research focuses on diversity and change, exploring how institutions build capacity in the area of diversity. She has a passion for engaging scholarship and praxis related to social justice issues, with specializations in organizational culture and leadership.

Education

  • PhD (2015) – Claremont Graduate University, higher education and administration - diversity and change, exploring how institutions build capacity in the area of diversity
  • MEd (2004) Azusa Pacific University, college student affairs
  • BA (2001)ÃÛÌÒapp College, communication arts and sciences, English minor

Professional Experience

ÃÛÌÒapp

  • Executive Vice President for Student Experience and Strategy

Azusa Pacific

  • Chair of Department of Leadership and Organizational Psychology

Pomona College

  • Associate Dean of Campus Life

Professional Associations

Memberships

  • Association for Christians in Student Development
  • Association for the Study of Higher Education
  • International Leadership Association
  • National Association of College Personnel Administrators