, but this code // executes before the first paint, when

Âé¶¹Çø

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 | Âé¶¹Çø

Âé¶¹Çø

Skip to main content

Alumni Association

You’ve tossed your cap but that doesn’t mean your journey with Calvin 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.Ìý

Image
Group of Âé¶¹Çø alumni and prospective families, holding a maroon and gold flag

Connect

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

Image
Smiling graduates from the Class of 2024 at Âé¶¹Çø

Benefits & Services

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

Image
Collage of Spark magazine covers

Spark Magazine

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

Image
Individuals holding up balloons in front of a sign reading Knight's Night

Update Your Information

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

Image
Students posed for a picture in front of a Knights For Life banner

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 Âé¶¹Çø. We'd love to hear yours!

Image
Two girls smiling for a photo with Âé¶¹Çø clothing on

Purchase Calvin Swag

You've got options! Purchase Calvin gear through the or .Ìý