, 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); })(); KnightGuard Campus Safety | app

app

Skip to main content

KnightGuard

Android feature graphic

Select the corresponding app store button to be directed to download the app:

NOTE: In order for KnightGuard services to work properly, you must allow the app to use Location Services “While the app is running” – you will be prompted to do this the first time you open the app.

KnightGuard, the safety app for app!

KnightGuard was designed to provide a safe experience for app students, faculty, staff and campus guests. This app is an incredible resource for anyone on campus!

The mobile app contains many safety features such as:

  • Virtual Safety Escort - share your location and destination with Campus Safety to have them watch over your walk home!
  • Virtual Friend Escort - share your location with a friend and have them monitor your progress and quickly alert Campus Safety on your behalf if there is an emergency!
  • Mobile Blue Light - trying to find a blue safety phone on campus? Look no further than your pocket! Call the Campus Safety emergency line while simultaneously sharing the exact location of your emergency with them in real time!
  • Crime Reporting - notice something unusual or wrong? Let Campus Safety know!
  • Emergency Response Plans - prepare yourself in case of emergencies by reviewing app’s plans for large disasters, threats or other emergency situations!
  • Support Resources - other resources to help you with any crisis you’re dealing with!