, 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); })(); Books: Eat ’em up! | ϲʿ¼

ϲʿ¼

Skip to main content

Spark

Books: Eat ’em up!

Thu, Jul 01, 2010

The Hekman Library sponsored the firstever Books in the Baking Edible Book Festival—held on April 1 at the Calvin Campus Store—and those who attended were expected to snack on the entries.

Books in the Baking was open to the Calvin community and the wider public. All of the edible books entered in the contest were made of food items—which allowed for considerable creativity. “It’s so open to interpretation,” said Lois Dye, curriculum coordinator at the library and event organizer. At previous edible book festivals held elsewhere, she’s seen The Maltese Falcon done with malted milk balls. She’s seen tortillas woven together with licorice. “It’s just been all kinds of things,” she said.

“It can be a pun on a title, refer to a scene or a character, look like a book, or just have something to do with books,” read the brochure for the event.

Dye was inspired to create the event by the International Edible Book Festival held each year on April 1.

bodyimage1