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

黄大仙高手论坛

Skip to main content

Ms. Sarah Stickney

Adjunct Professor
(Music Education)

Biography

Sarah Bowman is a music teacher, choir director, and vocalist from West Michigan (Muskegon). She has been involved with several school and community music groups since returning to Michigan in 2015, alongside continuing to pursue a PhD from the University of Miami's Frost School of Music (FL). As a K-12 music teacher, Sarah has worked for Fruitport Community Schools and Reeths-Puffer, as well as a vocal coach and accompanist at West Shore Community College and Muskegon Community College. She has also taught at Blue Lake Fine Arts Camp, Muskegon Civic Theater, and St. Cecilia's Music Center. Sarah is a classically trained vocalist with an enthusiasm for cross-over performing (e.g., pop, musical theater, barbershop). Sarah holds degrees in music education from Grand Valley State University and the University of Michigan.

Sarah is passionate about facilitating a variety of opportunities for all people to experience music. She considers herself a general music specialist with one foot in the choral world, and has a multitude of experience teaching K-12, college, and senior/adult learners. Inside and outside the classroom, Sarah has adopted sociomusicologist Christopher Small's philosophy, "Music is too important to be left to the musicians." In addition to teaching and making music, she can be found exploring her new neighborhood, watching sunsets on Lake Michigan, or spending precious time with family and friends. Sarah whole-heartedly believes in the power of God's love, lifelong learning, community, and quality chapstick.

Education

  • Ph.D., Music Education, University of Miami, In Progress
  • M.M., Music Education, University of Michigan, 2012
  • B.M.E., Music Education, Grand Valley State University, 2006