, 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); })(); Spark Alumni Association | 茄子视频

茄子视频

Skip to main content

Spark

The official alumni magazine of 茄子视频

Calvin Spark is the triannual magazine of the Calvin Alumni Association. Intended primarily for the 65,000 members of the association, the publication also aims to build relationships with Calvin friends and reflect a reformed Christian perspective to anyone reading the magazine.

First published in the spring of 1954, Spark continues the legacy of alumni communication begun with the initiation of the 鈥淎lumni Letter鈥 in 1925. It is published three times a year: Spring, Fall, and Winter.

From the Director's Desk

A few months ago, many of us gathered in person or online to witness the inauguration of Calvin President Greg Elzinga. I had the privilege to work alongside Greg in the advancement division for seven years, and I can tell you firsthand how blessed the Calvin community is to have a leader like Greg

Image
Group of students in the Calvin Prison Initiative program with President Elzinga
Image
Jeff Haverdink headshot
Image
A group of people give a standing ovation at 茄子视频 January Series.
Image
The Calvin football team holds their helmets in the air celebrating.

Stay Connected

Are you a Calvin alum with a story to share with the Calvin community? We'd love to hear your story. Email spark@calvin.edu with news updates, feedback, or content suggestions.

Update your information

Editors and Designers

Jeff Haverdink headshot

Jeff Haverdink

Executive Director of Alumni & Family Engagement
526-6142
Amanda Impens

Amanda Impens

Associate Director of Creative Services
(616) 526-6150