, 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); })(); Promoting food dialogue - News & Stories | »Æ´óÏɸßÊÖÂÛ̳

»Æ´óÏɸßÊÖÂÛ̳

Skip to main content

Spark

Promoting food dialogue

Tue, Mar 15, 2016

Thank you for the piece on Philosophy Comes to Dinner. As I work on food systems as a researcher in the Local Foods Program at Purdue Extension, I am glad to have had my start and introduction to the moral and ethical implications to our food choices as a student at Calvin. From pursuing ethical coffee choices and increasing vegetarian options to connecting with local farm suppliers, I was glad to be a part of an important food dialogue at Calvin. I am also grateful for Matt Halteman’s leadership at Calvin and in Grand Rapids as a whole for promoting ethical eating conversations.

Josh Ankerberg ’07, Lafayette, Ind.


As Christians, we talk a lot about ethics and integrity. We often discuss over dinner. But our dinner itself isn’t always part of the discussion. I think it should be. I’m not a vegan (yet), but I want to talk about it, and I want to learn. This is an important issue, and I have a feeling it will become increasingly so. Thanks for fostering more discussion about the ethics of food.

Anna Fongers Gretz ’08, Kalamazoo, Mich.


The discussions I had with Calvin faculty (including Dr. Halteman and Dr. Van Dyke) about the ethics of eating continue to significantly influence my life, even a decade later. When I teach courses on moral philosophy, I almost always include a unit on the ethics of eating animals; I look forward to using Philosophy Comes to Dinner: Arguments About the Ethics of Eating in that unit. It’s wonderful to see the Spark highlighting an often overlooked topic that’s important to many members of the Calvin community.

Amelia Hicks ’06, Manhattan. Kan.