, 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); })(); Campus Safety | Â鶹Çø

Â鶹Çø

Skip to main content

Campus Safety

Campus Safety

We strive for a safe and well-ordered campus, effective communications, relevant education and respectful service of the highest integrity.

Requests for Access: Card Access Requests and Key Requests should be emailed to safety@calvin.edu. Please provide specific information with request (ie: all areas where access is needed, specific room numbers)

Quick links to resources

About Campus Safety

The Campus Safety Department is responsible for policy enforcement, security, and emergency response on the campus. The Department is staffed 24 hours a day/7 days a week and strives to work collaboratively with campus community towards a safe campus environment.

The Campus Safety Department consists of a director, assistant director, physical security specialist, office manager, patrol supervisors, patrol officers, part-time dispatcher, student security officers, and student dispatchers.

The patrol supervisors and patrol officers are armed employees who are the primary responders for all on campus occurrences, including any criminal incidents. They also enforce all university rules and regulations contained within the student, staff, and faculty handbooks. The patrol supervisors and patrol officers oversee the student security officers and their functions for the department. Student security officers are unarmed student employees who conduct building checks to ensure the security of campus buildings after they are closed. They check on the validity of persons in closed buildings and observe buildings for signs of intrusion and mechanical failures.

In case of an emergency, contact Campus Safety:

On campus, call:
x3-3333

24-hour dispatch:
616-526-6452

Text*:
33333@calvin.edu

*NOTE: Due to texting limitations, Campus Safety may not be able to respond to your specific message. It is vital that you send enough information to initiate a response. In an emergency it is always best to speak directly to Campus Safety.