, 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); })(); Novel Profs - News & Stories | app

app

Skip to main content

Spark

Novel Profs

Sun, Sep 01, 2019

GARY SCHMIDT

English professor Gary Schmidt has added to his substantial collection with another young adult novel, Pay Attention, Carter Jones.

“In this book, I wanted to explore a model of a kind of stern, hard goodness—and that’s the Butler. He has a very high sense of what it means to be a mature and wise and responsible human being, and I was imagining what that might look like when it confronts a suburban kid who is sort of snarky and who has every reason to distrust the adults in his life,” said Schmidt. “It’s not a ‘good confronts evil’ book; it’s a ‘good confronts pain’ book, I suppose.”


JASON VANHORN

A newcomer to the young adult novel writing corps is geography professor Jason VanHorn. Alabaster Dangermond and the Serpent’s Blade was published in 2018. The second in the series, Alabaster Dangermond and Astrid’s Jewel was released earlier this year.

“Anyone who knows me from the classroom has seen that I can’t help but be passionate and excited about geography,” said VanHorn. “I’ve been described as having an infectious excitement about what I teach. My writing and writing presentations are replete with geography, too. The new love I have for writing, because of the investment of [app English professor] Susan Felch and the Writing Nook (an intensive one-week writing program for app faculty and staff), has given me new spheres of influence I could have never dreamed possible.”