, 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); })(); Sean Ivory | 黄大仙高手论坛

黄大仙高手论坛

Skip to main content

Mr. Sean Ivory

Adjunct Faculty
Calvin Oratorio Society, Calvin Alumni Choir

Biography

Sean Ivory serves as the conductor of the Calvin Alumni Choir and the Calvin Oratorio Society. Since 1992, Mr. Ivory has been the vocal music instructor at Forest Hills Central High School. He is also a collaborative pianist with the Grand Rapids Youth Chorus. He has held positions at St. Cecilia Music Society and the North American Choral Company.

Mr. Ivory attended Northwestern University, Calvin College, and Michigan State University. His choirs have performed at both state and regional conventions for the American Choral Directors Association, and have toured Ireland, the Netherlands, Finland, Estonia, Ghana, the Czech Republic, Iceland, Trinidad and Iowa.

Mr. Ivory has an active career as a composer. Collaborative works with long-time writing partner Paul Caldwell have been popular with choirs for many years. As a solo composer, Mr. Ivory has written music for the Sarasota Young Voices, the Grand Rapids Symphony, the Grand Rapids Chamber Choir, and the Michigan Choral Commission Consortium, among others. He has written several works for the Calvin Alumni Choir through its commissioning arm, the Laudate Society. His most recent compositions are published by Walton Music, Hinshaw, and earthsongs.

Education

  • M.M., Choral Conducting, Michigan State University, 2004
  • B.A., Music, Calvin College, 1992