, 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); })(); Events Calendar | Âé¶¹Çø

Âé¶¹Çø

Skip to main content

Events Calendar

Feb 21–Feb 22, 2025

Siblings Weekend 2025

Calvin's annual Siblings Weekend—for siblings, cousins, young friends, and other future Knights!
Feb 21–Feb 28, 2025

uKnight Week

Join us for uKnight Week!
Feb 22, 2025

Rare Disease Symposium

8:00 am–5:00 pm
Prince Reception Area/Lobby
Feb 22, 2025

Admissions: Saturday Visit

8:30 am–12:00 pm
Spoelhof Student Center
We're excited to see you on a Saturday. There's always something going on!
Feb 22, 2025

Preserve | Nature Kids

9:00 am–10:30 am
Explore the outdoors with a K-5th Graders program
Feb 22, 2025

MIAA Swim & Dive Championships

10:00 am–12:30 pm
Venema Aquatic Center Pool
Feb 22, 2025

Acro & Tumbling at Buffalo State

11:00 am–1:30 pm
Buffalo, NY
Feb 22, 2025

Men's Tennis vs Illinois Tech

12:00 pm–2:00 pm
Strikwerda Tennis Courts
Feb 22, 2025

NSBE Leetcode Crushcourse

1:00 pm–4:00 pm
Science Building Classroom 101
Feb 22, 2025

Women's Lacrosse vs Bethel

1:00 pm–3:00 pm
Zuidema Soccer Field
Feb 22, 2025

SAO Movie: Moana II

2:00 pm–3:45 pm
Covenant Fine Arts Recital Hall
Feb 22, 2025

Women's Tennis vs Illinois Tech

3:00 pm–5:00 pm
Strikwerda Tennis Courts
Feb 22, 2025

Men's Basketball vs Trine

3:00 pm–5:00 pm
Van Noord Arena Main Gym
Feb 22, 2025

Men's Lacrosse at Lake Forest

3:00 pm–5:00 pm
Lake Forest, IL
Feb 22, 2025

Women's Basketball at Olivet

3:00 pm–5:00 pm
Olivet, MI
Feb 22, 2025

MIAA Swim & Dive Championships

5:00 pm–8:30 pm
Venema Aquatic Center Pool
Feb 22, 2025

D3 Hockey at Schoolcraft

7:30 pm–10:00 pm
Livonia, MI
Feb 22, 2025

Hulvey w/ nobigdyl.

8:00 pm–11:00 pm
Covenant Fine Arts Center Auditorium