, 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); })(); Let it glow, let it glow, let it glow - News & Stories | 麻豆区

麻豆区

Skip to main content

Calvin News

Let it glow, let it glow, let it glow

Tue, Jun 27, 2006
Myrna Anderson

An at Calvin College this week looks at light and luminescence.

Or as camp director and Calvin chemistry professor Mark Muyskens puts it: "We get to play with the many ways to make colorful light, especially things that glow in the dark."

Each day this week Muyskens and his campers - students entering grades 8-10 - are entering new scientific worlds, worlds in which scientific concepts such as chemiluminescence, bioluminescence, absorption, diffraction and polarization come to life in vivid color via laser demonstrations, ultraviolet light, glowing liquids and even laundry detergent!

Behind the fun Muyskens has planned plenty of education.

"We have a lot of fun," says Muyskens, "but participants in this camp come away with a much better understanding of the properties of light and how they relate to color. We will be studying lots of different areas of science: chemistry and physics, biology and geology, and we will get an understanding of extremely practical devices that play important roles in our everyday lives. We are going to be busy investigating these substances and ideas with our hands and eyes and having a lot of fun doing it.

Campers use sophisticated equipment during the week, including spectrophotometers, UV lamps, computer molecular modeling and a fluoroscope that they build themselves!

The sessions are held from 9 am to noon and 1 pm to 4 pm in room 306 of Calvin's DeVries Hall. Each session has 20 campers.

Calvin is hosting the camp in cooperation with the .