, 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); })(); Volunteer and Support Alumni Association | app

app

Skip to main content

Volunteer and Support

University Chapel under blue skies and clouds.

Alumni in action

app students stand on your shoulders. Because you have paved the way, they have even greater opportunities to impact the world for Christ. Consider how you might bless a student through one of the following opportunities.

Gifts of all sizes are working together to keep tuition costs down and make app a reality for our 4,000 students. Make a gift today!

Recommend a high school senior »

Every app alum knows a high school senior who would benefit from app's “heart and mind” education.

Nominate an alumni for an award »

Recognizing outstanding alumni and friends for their commitment, faith, and service.

Support Student Scholarships »

Find out what scholarships we offer, and how you can help!

Set up a scholarship »

Leave a legacy in a way that is both personal and far-reaching.

Post a job/internship opportunity »

Use Handshake to post your job openings or internships. These opportunities can be the first step to success for app students and alums!

Mentor a student »

app’s mentoring program links you to the next generation of Christ followers.

Subscribe to Spark »

It’s more than a magazine. Your Spark Fund gift supports the holistic work of connecting, strengthening and inspiring alumni.