Instagram now tells everyone when you’re active, here’s how to hide it


Another day, another feature nobody asked for. Facebook subsidiary Instagram has now enabled activity status in direct messages: this means that practically all of your friends will now be able to see when the last time you were actively using the app was. The feature rolled out as part of the latest updates for Android and iOS – so at least you know everyone is getting the same deal. In case you were wondering how this looks, Instagram now displays a line indicating the last time a user was active on its platform directly underneath their username. The activity status…

This story continues at The Next Web

Or just read more coverage about: Instagram

iPhones are fragile — and so are their owners


As it has become clear just how luxurious life within the Apple ecosystem tends to be, so too has it become clear why Apple power users — often dubbed “sheep” — tend to behave in the ways that they do. They are the definition of people who pay premiums at every turn — with their time; with their money — they are the type of people who wake up at hours they shouldn’t, wait in lines others don’t, and pay amounts others can’t. As I noted in The Luxury Network, there is good reason for this; life within the Apple’s ecosystem is…

This story continues at The Next Web

What you need to know about cryptocurrency in 2018


In 2013, then-Federal Reserve Chair Ben Bernanke wrote a letter to Congress in which he said, “Virtual currencies may hold long-term promise, particularly if the innovations promote a faster, more secure and more efficient payment system.” 2017 gave rise to an entire ecosystem of companies doing exactly that, and the result has been exponential growth in the sector. The world of cryptocurrency is moving into 2018 with more energy than ever, especially now that such expert predictions have started to manifest. The excitement around Bitcoin’s price escalation and futures trading has generated significant interest amongst new users; people who knew…

This story continues at The Next Web

CSS Scroll Snap: What Is It? Do We Need It?

It can be difficult for web developers to guarantee a well-controlled scrolling experience, but luckily a CSS module entitled “Scroll Snap” promises to help. It will enforce where a scroll position ends after a scrolling operation has completed. 

Amongst other things, this module contains features to control facets such as panning, combined with “snap positions”, and produces a particular alignment of content within a scrolling container. 

The W3C recently released Scroll Snap as a Candidate Recommendation that includes well-thought out implementations and examples along with updated syntax. Let’s dive in.

Scroll Snapping Terminology

To fully understand the power of scroll snapping and how it works, we need to understand its terminology. Doing so will also help avoid confusion when these new terms are used throughout this tutorial.

Scroll Snapping Terminology

Scroll snap takes place within a “snapport” or “scrollport”; however, both mean the same, and can also be referenced as a “scroll container”. This is the region where your scroll snapping behavior resides as indicated in the diagram above (outer dashed border). The intentions are to help enforce the scroll positions that a scroll container’s scrollport will end at after a scrolling operation has completed.

Each item of this “snapport” is referred to as a “snap area”, and is the object(s) you’ll be targeting. Each snap area contains a “snap position” also defined by the “snap position” of the scroll container and represented by the red dotted line in the diagram above.

With the terminology out of the way let’s review some examples and explore how this functionality works in real life. If you’d like to read more about other types of use cases you can start with this W3C example using a photo gallery as its demonstration case, and here as well.  There’s also an interesting update from the Modules August 2017 CR specification which states some intriguing behavior that :target should possess.

Scroll Snap Demos

At the time of this writing it’s best to view the following demos with Safari 11 as other browsers (while noted to support) don’t actually have full support with the new syntax, in spite of data from caniuse and personal testing.

The example below showcases only the very minimal properties required to initiate the CSS Scroll Snap behavior and doesn’t include any polyfills as I was unable to find a working polyfill that functioned with the most recently published syntax. It’s also good to note that any scroll container will require another familiar CSS property defined known as overflow.

The demo above takes advantage of the y-axis as the snap position however, you could do it just as easily in the x-axis. If you don’t have Safari 11 on your system here’s a screen recording showing the live demo functionality provided above.

The panels snap neatly. Notice as I scroll there is a point where the scroll momentum takes over and advances to the next box. Pretty snappy huh?

Here’s a second demo showcasing the y-axis to display imagery in a gallery-esque fashion.

As the user scrolls horizontally, the momentum lands dead center of the scrollport and snap area region regardless of the image size.

Scroll Snap Properties and Syntax

Now it’s time to review and explain the actual properties with regards to their syntax and accepted values.

The current Scroll Snap specification contains only four properties and each one plays an important role. Those four properties are…

  • scroll-snap-type
  • scroll-snap-align
  • scroll-padding
  • scroll-margin

Let’s take a closer look and explain what each one does, where it is defined, and what kinds of values are accepted.

scroll-snap-type

This property specifies whether a scroll container is in fact a “scroll snap container” or “snapport”, how strictly it snaps, and which axes are used. If no strictness value is specified, the proximity value is passed as the default. This property also accepts another value that assists in defining the “snap axis”. This would allow you to pass in two values of your choosing (i.e. scroll-snap-type: y mandatory). In this case, we’re stating the snap-type only occurs in the y-axis and is mandatory.

Scroll Snap Axis: x, y, block, inline, or both

  • x: The scroll container snaps to snap positions in its horizontal axis only.
  • y: The scroll container snaps to snap positions in its vertical axis only.
  • block: The scroll container snaps to snap positions in its block axis only.
  • inline: The scroll container snaps to snap positions in its inline axis only.
  • both: The scroll container snaps to snap positions in both of its axes independently (potentially snapping to different elements in each axis).

Scroll Snap Strictness: none, proximity, and mandatory

  • none: If specified on a scroll container, the scroll container must not snap.
  • proximity: If specified on a scroll container, the scroll container is required to be snapped to a snap position when there are no active scrolling operations. If a reachable snap position exists then the scroll container must snap at the termination of a scroll (if none exist then no snapping occurs).
  • mandatory: If specified on a scroll container, the scroll container may snap to a snap position at the termination of a scroll.

scroll-snap-align

The scroll-snap-align property specifies a scroll container’s snap position as an alignment of its snap area (as the alignment subject) within its snap container’s snapport (as the alignment container). The two values specify the snapping alignment in the inline axis and block axis, respectively. If only one value is specified, the second value defaults to the same value. Values accepted are none, center, start and end

In short, this property is defined for the subsequent children of the scroll container and accepts two values. The first value represents the x-axis while the seconds represents the y-axis; for example…scroll-snap-align: start center.

  • none: This box does not define a snap position in the specified axis.
  • start: Start alignment of this box’s scroll snap area within the scroll container’s snapport is a snap position in the specified axis.
  • end: End alignment of this box’s scroll snap area within the scroll container’s snapport is a snap position in the specified axis.
  • center: Center alignment of this box’s scroll snap area within the scroll container’s snapport is a snap position in the specified axis.

scroll-padding

The scroll-padding values act as offsets, when declared, for a scroll container and reduce the scrollable region that is considered “viewable.” This has no effect on layout, scroll origin, initial position, and if an element is considered actually visible. There are two forms, much like the standard padding property in CSS, however there is also a longhand version such as scroll-padding-top, and scroll-padding-bottom, for example.

scroll-margin

These values represent outsets when declared for a scroll container defining the scroll snap area used for snapping items to the snapport. It works and acts the same as the margin property including the shorthand and longhand variations such as scroll-margin-top, and scroll-margin-bottom.

Parting Thoughts

Due to recent updates published to the current editor’s draft you will find a lack of support across the board and no polyfill as I mentioned. There’s also a chance that the property scroll-snap-stop is at-risk, and could be dropped during the CR period. I also discovered during my research and experimentation that min-height doesn’t work when defined on the scroll snapping container at this time. There could be other properties that have the same results, and if you find these please leave them in the comments below. 

So, that is CSS Scroll snapping from a high overview. Is it worth it? Would you find it useful? Or should it be placed in the dark corners of the universe never to be found again? Leave your comments below and, as always, happy coding!

Resources

Facebook’s News Feed changes are probably going to be great for fake news


Following a recent decision by its CEO, Mark Zuckerberg, Facebook opted to give priority to posts from friends instead of public pages in the users’ News Feeds. The bombshell drove Facebook stock price down by five percent. This new turn for the social media company is even more significant that it seems, putting both media and community managers in a tricky situation. Having had to play with the Facebook “black box” for many years — the black box allegory is used for platforms where the governing principles are not visible, nor comprehensible, to the user — they are now facing…

This story continues at The Next Web

Or just read more coverage about: Facebook

Dutch Twitter is overflowing with videos of things getting blown away by the storm


The Netherlands has declared code orange – with some parts rising the emergency to code red – as the country is currently getting blown away by winds as strong as 120 killometers per hour. Indeed, the situation is so terrifying people have taken to Twitter to share footage under the hashtag #Storm. Scrolling through the feed, there are numerous videos showing people literally getting dragged to the ground by the excessive wind. Indeed, the hashtag #westerstorm is currently trending across the country. The severity of the situation is quite apparent in the footage. What is more concerning is that the storm…

This story continues at The Next Web

Or just read more coverage about: Twitter

A cruel Facebook Messenger bug only lets users type a few words at a time


A handful of Facebook Messenger users have reported experiencing an annoying bug that prevents them from writing messages that are longer than two words. The glitch sees Messenger completely lock up when the user attempts to write a comparatively longer message. The glitch is believed to primarily effect users on iOS, and has proven fiendishly difficult to resolve. Restarting the app, for example, does nothing. Speaking to TechCrunch, Facebook has confirmed it’s aware of the issue, and is looking into it. For those whose preferred medium of communication is anything other than haiku, it’s a bit of a bummer. Predictably,…

This story continues at The Next Web

Or just read more coverage about: Facebook

Google’s Gboard might soon do our texting for us


Google’s Gboard keyboard for iOS and Android packs a bunch of useful features, but it’s not flexible enough to get me to switch from SwiftKey. However, it looks like the company is working on adding a ‘Smart Reply’ feature to the keyboard, and if it happens, it’ll probably do the trick and convert me. Smart Reply is already available in certain Google apps, like Inbox, Gmail, and Allo. Now, 9to5Google has spotted code that details the inclusion of this feature in an upcoming version of Gboard for Android, which leads us to believe that, based on the contents of your…

This story continues at The Next Web

Or just read more coverage about: Google

Nintendo extends Switch gameplay with its new Labo cardboard kits


Nintendo’s Switch console is getting a cute, quirky, and seemingly ingenious upgrade that will appeal to kids and the young at heart with the launch of its new Labo initiative. The idea is to use DIY cardboard kits to craft accessories for the Switch’s Joy-Con controllers and enable new modes of play, and new games as well. Here, take a look: The kits bundle game cartridges, cardboard sheets, string, and plastic connectors; you’ll need to follow instructions to build different accessories – called Toy-Cons – to house the controllers. You can craft a small piano, a fishing pole, or a…

This story continues at The Next Web

Or just read more coverage about: Nintendo

South Korea is considering closing local cryptocurrency exchanges (again)


Reuters reports that policymakers in South Korea’s parliament said that they’re considering shutting down domestic cryptocurrency exchanges, following the steep plunge in value of major virtual currencies over the past couple of days. The news comes just days after we heard just the opposite. After South Korean law enforcement agencies raided the offices of local cryptocurrency exchanges to investigate alleged tax evasion last week, various government bodies including the official residence of the President announced that trading wouldn’t be banned in the country the next day. Today, South Korea’s chief of the Financial Services Commission said: (The government) is considering…

This story continues at The Next Web