, 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); })(); CPI Family & Friends Picnic: Sat, Jul 26 2025, 12 - 2pm | ÇÑ×ÓÊÓÆµ

ÇÑ×ÓÊÓÆµ

Skip to main content

Events Calendar

S M T W T F S
29
 
30
 
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30
 
31
 
1
 
2
 

CPI Family & Friends Picnic

  • Sat, Jul 26, 2025
  • 12:00 pm–2:00 pm

Seminary Student Center

The annual Calvin Prison Initiative (CPI) Family & Friends Picnic is scheduled for Saturday, July 26 at Calvin Theological Seminary. Please park in Parking Lot 11 and proceed to the Student Center entrance at Door A.

The CPI Family & Friends Picnic is an opportunity for loved ones of CPI students to come to Calvin's campus, learn more about the Calvin Prison Initiative, eat a free lunch, and meet some of the CPI staff and faculty. 

Here is a schedule for that day:

  • 12:00pm Arrive at Seminary
  • 12:15pm Lunch Buffet
  • 1:00pm Brief programming by CPI staff & faculty
  • 2:00pm Close

If you received an invitation, please RSVP by calling the CPI office at 616-526-7998 or emailing cpi@calvin.edu no later than July 3.

Please note attendance for this event is by invitation only.

Address

Seminary Student Center

42.928074114771, -85.58659665