eau

Why you love music : from Mozart to Metallica : the emotional power of beautiful sounds / John Powell

Powell, John, 1955- author




eau

Clays and health: properties and therapeutic uses / Michel Rautureau, Celso de Sousa Figueiredo Gomes, Nicole Liewig, Mehrnaz Katouzian-Safadi

Online Resource




eau

Geographical information systems theory, applications and management: second International Conference, GISTAM 2016, Rome, Italy, April 26-27, 2016, Revised selected papers / Cédric Grueau, Robert Laurini, Jorge Gustavo Rocha (eds.)

Online Resource




eau

Graphisch-statistischer Atlas der Schweiz / herausgegeben vom Statistischen Bureau des eidg. Departements des Innern = Atlas graphique et statistique de la Suisse / publié par le Bureau de statistique du Département fédéral de l'i

Hayden Library - G1896.E24 G46 1897a




eau

Geographical information systems theory, applications and management: 4th international conference, GISTAM 2018, Funchal, Madeira, Portugal, March 17-19, 2018: revised selected papers / Lemonia Ragia, Cédric Grueau, Robert Laurini (eds.)

Online Resource




eau

Chair de la terre, œil de l'eau

Online Resource




eau

Luc Beauregard: biographie: le pari de la verite / Jacqueline Cardinal et Laurent Lapierre

Online Resource




eau

Beautiful hills of Brooklyn [videorecording] / produced by Joanna Merlin and Jared Goldman ; presented by the Michael Chekhov Association




eau

Media/society : technology, industries, content, and users / David Croteau (Virginia Commonwealth University), William Hoynes (Vassar College)

Croteau, David, author




eau

Les chefs-d'oeuvre pour guitare: Guitar masterpieces / Fernando Sor ; révisés par = revised by Michel Beauchamp

STACK SCORE Mu pts So69 guimu c




eau

Recueil de morceaux d'orgue: 1863: à l'usage spéciale des élèves de l'Institution impériale des jeunes aveugles de Paris / edited by Harvey H. Miller

STACK SCORE M2.R299 v.71




eau

Vers de nouveaux modes de formation professionnelle?: rôle des acteurs et des collaborations / sous la direction de Diane-Gabrielle Tremblay et Pierre Doray

Online Resource




eau

D'une culture de retraite vers un nouveau management des âges et des temps sociaux / sous la direction de Diane-Gabrielle Tremblay

Online Resource




eau

Fellow travellers: Communist trade unionism and industrial relations on the French railways, 1914-1939 / Thomas Beaumont

Online Resource




eau

Feminist Institutionalism and Gendered Bureaucracies: Forestry Governance in Nepal / by Radha Wagle, Soma Pillay, Wendy Wright

Online Resource




eau

Feminist institutionalism and gendered bureaucracies: forestry governance in Nepal / Radha Wagle, Soma Pillay, Wendy Wright

Online Resource




eau

Re-engaging with sustainability in the Anthropocene era: an institutional approach / Andrew J. Hoffman, P. Devereaux Jennings

Dewey Library - HD58.7.H64 2018




eau

Weather Warnings for Queensland - land areas. Issued by the Australian Bureau of Meteorology




eau

Relational and algebraic methods in computer science: 18th International Conference, RAMiCS 2020, Palaiseau, France, April 8-11, 2020, proceedings / Uli Fahrenberg, Peter Jipsen, Michael Winter (eds.)

Online Resource




eau

Jakarta EE recipes: a problem-solution approach / Josh Juneau

Online Resource




eau

How to apply HR financial strategies (collection) [electronic resource] / Bashker D. Biswas, Wayne F. Cascio, John Boudreau

Biswas, Bashker, 1944- author




eau

Why Art and Beauty Matter During a Pandemic

These theologians and artists found beauty in suffering.




eau

The evolution of beauty: how Darwin's forgotten theory of mate choice shapes the animal world-- and us / Richard O. Prum

Hayden Library - QL761.P744 2017




eau

Organizational Neuroethics: Reflections on the Contributions of Neuroscience to Management Theories and Business Practices / Joé T. Martineau, Eric Racine, editors

Online Resource




eau

A taste for the beautiful: the evolution of attraction / Michael J. Ryan

Hayden Library - QL761.R93 2018




eau

The Detroit project / Dominique Morisseau

Hayden Library - PR6113.O7487 D48 2018




eau

Pipeline: a play / Dominique Morisseau

Hayden Library - PR6113.O7487 P57 2018




eau

The Beautiful, Novel, and Strange: Aesthetics and Heterodoxy / Ronald Paulson

Online Resource




eau

Où cache biodiversité ville se en la ? [electronic resource] : 90 clés pour comprendre la nature en ville / Philippe Clergeau, Nathalie Machon

Clergeau, Philippe, author




eau

Increasing transparency in animal research to sway public opinion, and a reaching a plateau in human mortality

Public opinion on the morality of animal research is on the downswing in the United States. But some researchers think letting the public know more about how animals are used in experiments might turn things around. Online News Editor David Grimm joins Sarah Crespi to talk about these efforts. Sarah also talks Ken Wachter of the University of California, Berkeley about his group’s careful analysis of data from all living Italians born 105 or more years before the study. It turns out the risk of dying does not continue to accelerate with age, but actually plateaus around the age of 105. What does this mean for attempts to increase human lifespan? In this month’s book segment, Jen Golbeck talks with Simon Winchester about his book The Perfectionists: How Precision Engineers Created the Modern World. Read more book reviews at our books blog, Books et al. This week’s episode was edited by Podigy. Listen to previous podcasts. [Image: Chris Jones/Flickr; Music: Jeffrey Cook]




eau

Measuring earthquake damage with cellphone sensors and determining the height of the ancient Tibetan Plateau

In the wake of a devastating earthquake, assessing the extent of damage to infrastructure is time consuming—now, a cheap sensor system based on the accelerometers in cellphones could expedite this process. Host Sarah Crespi talks with Contributing Correspondent Lizzie Wade about how these sensor systems work and how they might assist communities after an earthquake. In another Earth-shaking study, scientists have downgraded the height of the ancient Tibetan Plateau. Most reconstructions estimate that the “rooftop of the world” reached its current height of 4500 meters about 40 million years ago, but a new study suggests it was a mere 3000 meters high during this period. Host Meagan Cantwell speaks with Svetlana Botsyun, a postdoctoral researcher at Tübingen University in Germany, about her team’s new approach to studying paleoelevation, and how a shorter Tibetan Plateau would have impacted the surrounding area’s climate. This week’s episode was edited by Podigy. Download the transcript (PDF) Listen to previous podcasts. About the Science Podcast [Image: Martin Luff/Flickr; Music: Jeffrey Cook]




eau

The Significance Test Controversy Revisited [electronic resource] : The Fiducial Bayesian Alternative / by Bruno Lecoutre, Jacques Poitevineau

Berlin, Heidelberg : Springer Berlin Heidelberg : Imprint: Springer, 2014




eau

09/21:11 EST Bush Walkers Weather Alert for Western and Central Plateau forecast districts




eau

Seismic loads: guide to the seismic provisions of ASCE 7-16 / Finley A. Charney, Ph.D., P.E., Thomas F. Heausler, P.E., S.E., Justin D. Marshall, Ph.D., P.E

Online Resource




eau

Weather Warnings for Western Australia - land areas. Issued by the Australian Bureau of Meteorology




eau

Sustainable management of phytoplasma diseases in crops grown in the tropical belt: biology and detection / Chrystel Y. Olivier, Tim J. Dumonceaux, Edel Pérez-López, editors

Online Resource




eau

Beautiful Scrolling Experiences – Without Libraries

Michelle Barker appears as one of a heavenly host, coming forth with scroll in hand to pronounce an end to janky scrolljacking! Unto us a new specification is born, in the city of TimBL, and its name shall be called Scroll Snap.


Sponsor: Order any Standard paperback(s) and get a surprise gift card in the box for YOU. While supplies last, from your pals at A Book Apart!


One area where the web has traditionally lagged behind native platforms is the perceived “slickness” of the app experience. In part, this perception comes from the way the UI responds to user interactions – including the act of scrolling through content.

Faced with the limitations of the web platform, developers frequently reach for JavaScript libraries and frameworks to alter the experience of scrolling a web page – sometimes called “scroll-jacking” – not always a good thing if implemented without due consideration of the user experience. More libraries can also lead to page bloat, and drag down a site’s performance. But with the relatively new CSS Scroll Snap specification, we have the ability to control the scrolling behaviour of a web page (to a degree) using web standards – without resorting to heavy libraries. Let’s take a look at how.

Scroll Snap

A user can control the scroll position of a web page in a number of ways, such as using a mouse, touch gesture or arrow keys. In contrast to a linear scrolling experience, where the rate of scroll reflects the rate of the controller, the Scroll Snap specification enables a web page to snap to specific points as the user scrolls. For this, we need a fixed-height element to act as the scroll container, and the direct children of that element will determine the snap points. To demonstrate this, here is some example HTML, which consists of a <div> containing four <section> elements:

<div class="scroll-container">
  <section>
    <h2>Section 1</h2>
  </section>
  <section>
    <h2>Section 2</h2>
  </section>
  <section>
    <h2>Section 3</h2>
  </section>
  <section>
    <h2>Section 4</h2>
  </section>
</div>

Scroll snapping requires the presence of two main CSS properties: scroll-snap-type and scroll-snap-align. scroll-snap-type applies to the scroll container element, and takes two keyword values. It tells the browser:

  • The direction to snap
  • Whether snapping is mandatory

scroll-snap-align is applied to the child elements – in this case our <section>s.

We also need to set a fixed height on the scroll container, and set the relevant overflow property to scroll.

.scroll-container {
  height: 100vh;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
}

section {
  height: 100vh;
  scroll-snap-align: center;
}

In the above example, I’m setting the direction in the scroll-snap-type property to y to specify vertical snapping. The second value specifies that snapping is mandatory. This means that when the user stops scrolling their scroll position will always snap to the nearest snap point. The alternative value is proximity, which determines that the user’s scroll position will be snapped only if they stop scrolling in the proximity of a snap point. (It’s down to the browser to determine what it considers to be the proximity threshold.)

If you have content of indeterminate length, which might feasibly be larger than the height of the scroll container (in this case 100vh), then using a value of mandatory can cause some content to be hidden above or below the visible area, so is not recommended. But if you know that your content will always fit within the viewport, then mandatory can produce a more consistent user experience.

See the Pen Simple scroll-snap example by Michelle Barker (@michellebarker) on CodePen.

In this example I’m setting both the scroll container and each of the sections to a height of 100vh, which affects the scroll experience of the entire web page. But scroll snapping can also be implemented on smaller components too. Setting scroll snapping on the x-axis (or inline axis) can produce something like a carousel effect.

In this demo, you can scroll horizontally scroll through the sections:

See the Pen Carousel-style scroll-snap example by Michelle Barker (@michellebarker) on CodePen.

The Intersection Observer API

By implementing the CSS above, our web page already has a more native-like feel to it. To improve upon this further we could add some scroll-based transitions and animations. We’ll need to employ a bit of Javascript for this, using the Intersection Observer API. This allows us to create an observer that watches for elements intersecting with the viewport, triggering a callback function when this occurs. It is more efficient than libraries that rely on continuously listening for scroll events.

We can create an observer that watches for each of our scroll sections coming in and out of view:

const sections = [...document.querySelectorAll('section')]

const options = {
  rootMargin: '0px',
  threshold: 0.25
}

const callback = (entries) => {
  entries.forEach((entry) => {
    if (entry.intersectionRatio >= 0.25) {
      target.classList.add("is-visible");
    } else {
      target.classList.remove("is-visible");
    }
  })
}

const observer = new IntersectionObserver(callback, options)

sections.forEach((section, index) => {
  observer.observe(section)
})

In this example, a callback function is triggered whenever one of our sections intersects the container by 25% (using the threshold option). The callback adds a class of is-visible to the section if it is at least 25% in view when the intersection occurs (which will take effect when the element is coming into view), and removes it otherwise (when the element is moving out of view). Then we can add some CSS to transition in the content for each of those sections:

section .content {
  opacity: 0:
}

section.is-visible .content {
  opacity: 1;
  transition: opacity 1000ms:
}

This demo shows it in action:

See the Pen Scrolling with Intersection Observer by Michelle Barker (@michellebarker) on CodePen.

You could, of course, implement some much more fancy transition and animation effects in CSS or JS!

As an aside, it’s worth pointing out that, in practice, we shouldn’t be setting opacity: 0 as the default without considering the experience if JavaScript fails to load. In this case, the user would see no content at all! There are different ways to handle this: We could add a .no-js class to the body (which we remove on load with JS), and set default styles on it, or we could set the initial style (before transition) with JS instead of CSS.

Position: sticky

There’s one more CSS property that I think has the potential to aid the scroll experience, and that’s the position property. Unlike position: fixed, which locks the position of an element relative to the nearest relative ancestor and doesn’t change, position: sticky is more like a temporary lock. An element with a position value of sticky will become fixed only until it reaches the threshold of its parent, at which point it resumes relative positioning.

By “sticking” some elements within scroll sections we can give the impression of them being tied to the action of scrolling between sections. It’s pretty cool that we can instruct an element to respond to it’s position within a container with CSS alone!

Browser support and fallbacks

The scroll-snap-type and scroll-snap-align properties are fairly well-supported. The former requires a prefix for Edge and IE, and older versions of Safari do not support axis values. In newer versions of Safari it works quite well. Intersection Observer similarly has a good level of support, with the exception of IE.

By wrapping our scroll-related code in a feature query we can provide a regular scrolling experience as a fallback for users of older browsers, where accessing the content is most important. Browsers that do not support scroll-snap-type with an axis value would simply scroll as normal.

@supports (scroll-snap-type: y mandatory) {
  .scroll-container {
    height: 100vh;
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
  }

  section {
    height: 100vh;
    scroll-snap-align: center;
  }
}

The above code would exclude MS Edge and IE, as they don’t support axis values. If you wanted to support them you could do so using a vendor prefix, and using @supports (scroll-snap-type: mandatory) instead.

Putting it all together

This demo combines all three of the effects discussed in this article.

Summary

Spending time on scroll-based styling might seem silly or frivolous to some. But I believe it’s an important part of positioning the web as a viable alternative to native applications, keeping it open and accessible. While these new CSS features don’t offer all of the control we might expect with a fully featured JS library, they have a major advantage: simplicity and reliability. By utilising web standards where possible, we can have the best of both worlds: Slick and eye-catching sites that satisfy clients’ expectations, with the added benefit of better performance for users.


About the author

Michelle is a Lead Front End Developer at Bristol web agency Atomic Smash, author of front-end blog CSS { In Real Life }, and a Mozilla Tech Speaker. She has written articles for CSS Tricks, Smashing Magazine, and Web Designer Magazine, to name a few. She enjoys experimenting with new CSS features and helping others learn about them.

More articles by Michelle




eau

Contractual politics and the institutionalization of bureaucratic influence / Glenn R. Parker and Suzanne L. Parker

Dewey Library - JK468.C7 P37 2018




eau

The national question and electoral politics in Quebec and Scotland / Éric Bélanger, Richard Nadeau, Ailsa Henderson, Eve Hepburn

Dewey Library - JC311.B45 2018




eau

Wind and solar based energy systems for communities / edited by Rupp Carriveau and David S-K. Ting




eau

Global environment outlook : GEO-6 : healthy planet, healthy people / edited by Paul Elkins, Joyeeta Gupta, Pierre Boileau




eau

146 JSJ React with Christopher Chedeau and Jordan Walke

The panelists talk to Christopher Chedeau and Jordan Walke about React.js Conf and React Native.




eau

JSJ 397: Design Systems with Kaelig Deloumeau-Prigent

Kaelig Deloumeau-Prigent is a self taught web developer from west France. He has worked for BBC, The Guardian, and The Financial Times in the UK. He has also worked in the US for SalesForce and currently works for Shopify on their Polaris design system. Shopify has multiple design systems, and Polaris is open source. Today the panel is talking about design systems and developer tooling around design systems. 

To begin, Kaelig explains what a design system is. A design system is all of the cultural practices around design and shipping a product. It includes things like the words, colors, spacing grid system, and typography, plus guidance on how to achieve that in code. The panelists discuss what has made design systems so popular. Design systems have been around for a while, but became popular due to the shift to components, which has been accelerated by the popularity of React. The term design system is also misused by a lot of people, for it is much more than having a Sketch file. 

Next, they talk about whether design systems fall under the jurisdiction of a frontend developer or web designers. Kaelig has found that a successful design system involves a little bit of everyone and shouldn’t be isolated to one team. They talk about what the developer workflow looks like in a design system. It begins with thinking of a few common rules, a language, and putting it into code. As you scale, design systems can become quite large and it’s impossible for one person to know everything. You either give into the chaos, or you start a devops practice where people start to think about how we build, release, and the path from designer’s brain to production.

The panelists then talk about how to introduce a design system into a company where there are cultural conflicts. Kaelig shares his experience working with SalesForce and introducing a design system there. They discuss what aspects of a design system that would make people want to use it over what the team is currently doing. Usually teams are thankful for the design system. It’s important to build a system that’s complete, flexible, and extensible so that you can adapt it to your team. A good design system incorporates ‘subatomic’ parts like the grid system, color palette, and typography, referred to as design tokens. Design systems enable people to take just the bits of the design system that are interesting to them and build the components that are missing more easily. 

The conversation turns to the installation and upgrade process of a design system. Upgrading is left up to the customer to do on their own time in most cases, unless it’s one of the big customers. They talk about the role of components in upgrading a design system. Kaelig talks about the possibility of Shopify transitioning to web components. Kaelig shares some of his favorite tools for making a design system and how to get started making one. A lot of design teams start by taking a ton of screen shots and looking at all the inconsistencies.Giving them that visibility is a good thing because it helps get everyone get on the same page. The panelists talk about the role of upper management in developing components and how to prioritize feature development. Kaelig talks about what drives the decision to take a feature out. The two main reasons a feature would be removed is because the company wants to change the way things are done and there’s a different need that has arisen. The show concludes by discussing the possibility of a design system getting bloated over time. Kaelig says that Design systems takes some of the burden off your team, help prevent things from getting bloated, allow you to ship less code.

 

Panelists

  • Chris Ferdinandi

  • Aimee Knight

  • Steve Emmerich

With special guest: Kaelig Deloumeau-Prigent

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Steve Emmerich:

Aimee Knight:

Chris Ferdinandi:

Kaelig Deloumeau-Prigent:




eau

MJS 136: Kaelig Deloumeau-Prigent

This My JavaScript Story episode is a discussion with Kaelig Deloumeau-Prigent. Kaelig works on the Polaris design system from Shopify. We walk through his journey into programming, HTML, and CSS. We wander through is career until he was building design systems at Shopify.

Host: Charles Max Wood

Joined By Special Guest: Kaelig Deloumeau-Pregent

Sponsors

  • Sentry use the code “devchat” for 2 months free on Sentry small plan

  • CacheFly

___________________________________________________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

___________________________________________________________________________________________

Links

Picks

Kaelig Deloumeau-Prigent:

Charles Max Wood:




eau

Zarathustra and the ethical ideal [electronic resource] : timely meditations on philosophy / Robert H. Cousineau

Cousineau, Robert Henri




eau

Marine biodiversity, climatic variability and global change / Gregory Beaugrand

Beaugrand, Grégory




eau

Improving Water Information Programme : progress report : advances in water information made by the Bureau of Meteorology in 2014 / Bureau of Meteorology

Australia. Bureau of Meteorology




eau

Coral reefs : tourism, conservation and management / edited by Bruce Prideaux and Anja Pabel