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

ÃÛÌÒapp

Skip to main content

Alumni Association

You’ve tossed your cap but that doesn’t mean your journey with ÃÛÌÒapp has to end!

The Alumni Association is here to serve you well beyond graduation. You can connect with other alumni worldwide, help strengthen our mission, stay inspired, and have a whole lot of fun along the way.Ìý

Once a Knight, Always a Knight

Get involved

Stay connected with alumni and the university! Join our virtual book club, find fellow alums in our directory, or follow us on social media.

Benefits & Services

Discover the many ways the alumni association and the university provide lifelong benefits and services to you.

Join our ÃÛÌÒapp Traditions

Save the dates and register for our time-honored traditions, including Homecoming, the ÃÛÌÒapp Classic 5k, and the ÃÛÌÒapp-Hope Rivalry!

Image
A student in a ÃÛÌÒapp t-shirt gives a thumbs up posing with Joust the Knight mascot.
Image
ÃÛÌÒapp football team running out to field, Pastor Mary Hulst running with ÃÛÌÒapp flag

Keep in Touch

Update Your Information

Make sure you get the news and updates you need by letting us know where you're located!

Share a Story

Whether your story or the story of a friend or family member, we are always looking for stories that capture the heart and mission of ÃÛÌÒapp. We'd love to hear yours!

Purchase ÃÛÌÒapp Swag

You've got options! Purchase ÃÛÌÒapp gear through the or .Ìý

Spark Magazine

The official ÃÛÌÒapp alumni magazine, featuring stories about Knights across the globe. Also find forms to change your address, submit news, and obituaries.

Read Spark online