, 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); })(); Contact Us Campus Safety | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Contact Us

Contact Information

Staff

Office location:

Campus Safety is located in the Mail & Printing Services Building #200.Ìý
To find us, please turn north into our parking lot from Knollcrest Circle Drive and park to your left. We are on the second floor on the east side of the building. Please use the side door; the stairs to our office are immediately in front of you.

Email:Ìý safety@calvin.edu
Emergencies:ÌýÌý(616) 526-3333
24 hour dispatch:ÌýÌý(616) 526-6452
Safety escorts:ÌýÌý(616) 526-6452
Front desk:ÌýÌý(616) 526-6451 (Hours: 8AM - 5:00PM M-F (4:30PM, Summer))
Ìý

Map

Ìý

Staff

william corner

William Corner

Director of Campus Safety
526-6751
tyson moore

Tyson Moore

Assistant Director
simon bennett

Simon Bennett

Physical Security Specialist
616-526-7835
mary dekker

Mary Dekker

Campus Safety Officer
nate ewen

Nate Ewen

Campus Safety Officer
Image not found

Jeffrey Hawke

Campus Safety Officer
james potter

James Potter

Campus Safety Officer
Cheryl Roels

Cheryl Roels

Administrative Assistant
Lee thomet

Lee Thomet

Campus Safety Officer
Michael Tripp

Michael Tripp

Campus Safety Officer