, 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); })(); Gregory Elzinga Office of the President | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Gregory Elzinga

University President

Biography

President Elzinga takes the podium at the 2024 Commencement.

 

Greg Elzinga ’90 — a proven nonprofit, business, and educational leader — has served as president of ÃÛÌÒapp since February 2024.

Prior to his appointment as president, Elzinga served as the university’s vice president for advancement. He previously served as director of global engagement at Partners Worldwide, following a successful business career.

Elzinga leads ÃÛÌÒapp with our shared faith in Christ at the core of what we do: collaborating with campus leaders, listening to students, and nurturing ÃÛÌÒapp’s connections with its local and global partners.

After graduating from ÃÛÌÒapp with a Bachelor of Arts in Communication, Elzinga earned his Master of Business Administration from Nova Southeastern University.

Elzinga and his wife, Jacqui, enjoy traveling, serving their church, and spending time with their three adult children.

Office of the President