, 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 Security Authorities (CSAs) - Campus Safety | Âé¶¹Çø

Âé¶¹Çø

Skip to main content

Campus Security Authorities (CSAs)

Who are CSAs?

The Clery Act designates the following individuals as Campus Security Authorities (CSA):

Members of an institution's campus police or campus security department.

  • Any individuals who are responsible for campus security but who do not constitute a campus police department or a campus security department.
  • Any individual or organization specified in an institution's statement of campus security policy as an individual to which students and employees should report criminal offenses.
  • An official of an institution who has significant responsibility for student and campus activities, including but not limited to, student housing, student discipline and campus judicial proceedings.Ìý
  • An official is defined as any person who has the authority and duty to take action or respond to a particular issue on behalf of the institution.

What are the obligations of a CSA?

If you are a Âé¶¹Çø CSA and are made aware of an alleged Clery Act crime, you must report that information to the Âé¶¹Çø Campus Safety Department.Ìý If you are unsure whether the incident is reportable under the Clery Act, please contact the Campus Safety Department as soon as possible and report it.

Calvin Campus Safety: (616) 526-5452 (non-emergency) (616) 526-3333 (emergency)

CSAs are NOT responsible for investigating or reporting incidents that they overhear students talking about in a hallway conversation; that a classmate or student mentions during an in-class discussion; that a victim mentions during a speech, workshop, or any other form of group presentation; or that the CSA otherwise learns about in an indirect manner.