, 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); })(); app Community Symphony Concert | app

app

Skip to main content

Events Calendar

app Community Symphony Concert

S M T W T F S
27
 
28
 
29
 
30
 
31
 
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
 

app Community Symphony Concert

  • Sat, Nov 02, 2024
  • 2:00 pm–3:30 pm
FREE

Covenant Fine Arts Center Auditorium

Image
Untitled design

Join the app Community Symphony in its 30th anniversary celebratory season! Enjoy works by Glinka, Tchaikovsky, Price, and CCS’s own Sarah Helder and Katherine Hand playing the beautiful Bach double violin concerto. The concert is on Saturday, Nov. 2 at 2:00 pm in the app Fine Art Center Auditorium, and free to attend. More details can be found at .

 

Repertoire:

  • Overture to Ruslan and Ludmilla by Mikhail Glinka
  • Ethiopia's Shadow in America by Florence Price
  • Double Violin Concerto in d minor BWV 1043 by J. S. Bach
  • Soloists Sarah Griffioen and Katherine Jonker
  • Symphony No. 2 in C Minor Op. 17 (“Little Russian”) by Peter Ilyich Tchaikovsky

 

The app Community Symphony exists to nurture a lifelong love of music in the West Michigan community. CCS concerts are general admission and free to attend. There will be an opportunity to make a tax-deductible donation to support the symphony. Your patronage is greatly appreciated by the musicians and all who enjoy the music.