, 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); })(); French Film Festival- Ni Chaînes, ni maîtres / No Chains, No Masters : Wed, Oct 1 2025, 7 - 9:30pm | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Events Calendar

S M T W T F S
28
 
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
 

French Film Festival- Ni Chaînes, ni maîtres / No Chains, No Masters

  • Wed, Oct 01, 2025
  • 7:00 pm–9:30 pm
free

Bytwerk Video Theater DeVos Communication Center ÃÛÌÒapp

Image
Banner of the movie no chains, no masters
In 1759 colonial Mauritius, enslaved 16‑year‑old Mati flees to join rumored maroon hideouts, triggering a brutal manhunt led by the plantation owner and slave hunter Madame La Victoire. Her father Massamba escapes the plantation, journeying through the jungle to find her. Their survival quest becomes a profound break from colonial oppression.
THE WORLD LANGUAGES DEPARTMENT OF CALVIN UNIVERSITY PRESENTS THE 20TH ANNUAL FRENCH FILM FESTIVAL "La Liberté"
All films are subtitled in English, and will be shown in the Bytwerk Theater, DeVos Communication Building on the campus of ÃÛÌÒapp.
Sponsored by the Departments of World Languages, Communication, Historical Studies, and Sociology-Social Work, the ÃÛÌÒapp Honors Program, and the Alliance Française of Grand Rapids.
For more information call (616) 526-6354