var please = require('share');
console.log('thank you');

NEW !!!

Wednesday, 18 December, 2019 UTC

Five Interesting Ways to Use Array.reduce() (And One Boring Way)

Chris Ferdinandi turns the heat down low and lets the sauce reduce while we take a look at how to add spice to our source with a sprinkling of Array.reduce(). Just a little ingenuity with the humblest of functions. Of all the modern array methods, the ... more

Monday, 16 December, 2019 UTC

Microbrowsers Are Everywhere

Colin Bendell gets into the minutia of microbrowsers - the small previews of your site that are pervasive all around the web and through social media apps and search engines whenever an item of content on your site is referenced. You’ve seen it everywhere ... more

Monday, 16 December, 2019 UTC

A History of CSS Through Fifteen Years of 24 ways

Rachel Andrew guides us through a tour of the last fifteen years in CSS layout, as manifested in articles here on 24 ways. From the days when Internet Explorer 6 was de rigueur, right up to the modern age of evergreen browsers, the only thing you can ... more

Saturday, 14 December, 2019 UTC

Design Tokens and Component Based Design

Stuart Robson rolls up his sleeves and begins to piece together the jigsaw puzzle that is design tokens and component based design. Starting with the corners, and working around the edges, Stu helps us to piece together a full picture of a modern design ... more

Wednesday, 11 December, 2019 UTC

Gift Giving to the World (Wide Web)

Frances Berriman asks us to give the gift of consideration to those who are using the web on constricted devices such as low-end smart phones or feature phones. Christmas is a time of good will to all, and as Bugsy Malone reminds us, you give a little ... more

Monday, 9 December, 2019 UTC

It’s Time to Get Personal

Laura Kalbag discusses the gift of personal data we give to Big Tech when we share information on its platforms, and how reviving ye olde personal website can be one way to stay in control of the content we share and the data we leak. Christmas is a ... more

Sunday, 8 December, 2019 UTC

It All Starts with a Humble <textarea>

Andy Bell rings out a fresh call in support of the timeless concept of progressive enhancement. What does it mean to build a modern JavaScript-focussed web experience that still works well if part of the stack isn’t supported or fails? Andy shows us ... more

Friday, 6 December, 2019 UTC

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 ... more

Thursday, 5 December, 2019 UTC

Interactivity and Animation with Variable Fonts

Mandy Michael turns the corner on our variable font adventure and stumbles into a grotto of wonder and amazement. Not forgetting the need for a proper performance budget, Mandy shows how variable fonts can free your creativity from bygone technical constraints. ... more

Monday, 2 December, 2019 UTC

Twelve Days of Front End Testing

Amy Kapernick sings us through numerous ways of improving the robustness and reliability of our front end code with a comprehensive rundown of ideas, tools, and resources. The girls and boys won’t get any toys until all the tests are passing. Anyone ... more

Sunday, 1 December, 2019 UTC

Making a Better Custom Select Element

Julie Grundy kicks off this, our fifteenth year, by diving headlong into the snowy issue of customising form inputs. Nothing makes a more special gift at Christmas that something you’ve designed and customised yourself. But can it be done while staying ... more

Monday, 24 December, 2018 UTC

Dynamic Social Sharing Images

Drew McLellan draws this, our fourteenth season to a gentle close by getting a little Inside Snowball and gives an account of how we put the robots to work in generating custom dynamic social media sharing images for each of the articles here on the ... more

Sunday, 23 December, 2018 UTC

Designing Your Site Like It’s 1998

Andy Clarke tells a tale as old as time, a tale of tables, framesets, fixed widths and spacer GIFs (ask your parents). Harking back to the methods that were appropriate to used to build cutting-edge websites twenty years ago, not only can we see how ... more

Friday, 21 December, 2018 UTC

Jank-Free Image Loads

Eric Portis remembers that images on the web, just like presents under the tree, come in different shapes and sizes. There’s little more disappointing than unwrapping a large-looking gift to find that it’s mostly packaging. Avoid expectation-jank with ... more

Wednesday, 19 December, 2018 UTC

Fast Autocomplete Search for Your Website

Simon Willison searches for the true meaning of Christmas, but settles on making a search engine for our articles on 24 ways. In doing he so demonstrates how a little bit of JavaScript, some open source tools and a sprinkling of database magic can make ... more

Tuesday, 18 December, 2018 UTC

It’s Beginning to Look a Lot Like XSSmas

Anna Debenham picks up the reins to continue our journey of understanding in the dark forest of web security. With so many packages the reindeer are struggling to pull the sleigh against the weight of all those dependancies. The question is, which packages ... more

Tuesday, 18 December, 2018 UTC

Develop Your Naturalist Superpowers with Observable Notebooks and iNaturalist

Natalie Downe gathers the forest creatures in from the cold and shows them how some clever combining of an inquisitive mind and a JavaScript API can produce some amazing results. We’re going to level up your knowledge of what animals you might see in ... more

Thursday, 13 December, 2018 UTC

Inclusive Considerations When Restyling Form Controls

Scott O’Hara hogs the remote while he looks into the ever-present issue of custom form controls. We might brute-force an element to take on the styling we’re looking for, but will that interaction still make sense for all users? Let’s give the batteries ... more

Wednesday, 12 December, 2018 UTC

The (Switch)-Case for State Machines in User Interfaces

David Khourshid pops the cookies in the oven, and while they bake, introduces the concept of state machines and how they can help in the design of user interfaces. Pour yourself a glass of mulled wine to mull it over with, but careful not to drink too ... more

Tuesday, 11 December, 2018 UTC

Turn Jekyll up to Eleventy

Paul Lloyd assembles a heavenly host of cherubs to sing the virtues of the Eleventy static site generator. By looking at how it compares to the familiar Ruby-based Jekyll (which we have espoused the virtues of here before), he may have you humming its ... more

Wednesday, 5 December, 2018 UTC

Creating My First Chrome Extension

Jennifer Wong takes the good stuff down from the shelf and pours out a generous measure of know-how on the subject of creating extensions for Google Chrome. Pull up a chair and get ready to find out how the HTML, CSS and JavaScript skills you already ... more

Tuesday, 4 December, 2018 UTC

Web Content Accessibility Guidelines 2.1—for People Who Haven’t Read the Update

Alan Dalton reaches for the glistening box of accessibility guidelines under the tree and unwraps them, taking his time to explain each carefully as he does so. Born unto you is a new guideline, and its name shall be called WCAG. Brought to you by The ... more

Tuesday, 4 December, 2018 UTC

Mistletoe Offline

Jeremy Keith reminds us that 4G is king. The carollers sing. One tunnel has passed, a new one’s beginning. Dreams of wi-fi on the go. Fingers numb, smart phones aglow. It’s Christmas time, mistletoe offline. Children streaming their gameplay online. ... more

Sunday, 2 December, 2018 UTC

The Art of Mathematics: A Mandala Maker Tutorial

Hagar Shilo breaks out the Christmas decorations with a tutorial to show how a little knowledge of JavaScript can lead to impressive results. Forget about the doilies and fake snow on the windows, all we need to create geometric patterns is a web browser ... more

Saturday, 1 December, 2018 UTC

Securing Your Site like It’s 1999

Katie Fenn opens the door on our 2018 season by transporting us back to the turn of the century when new lessons were being learned about web security. Those who don’t learn from the past are condemned to repeat it, so fasten up your winter coat and ... more

Sunday, 24 December, 2017 UTC

All That Glisters

Drew McLellan wraps up our 2017 series with a gentle reminder that in a rapidly moving industry, the best technology for the job isn’t always the newest. And while Christmas tradition tells us we should follow the bright star, sometimes the answer lies ... more

Thursday, 21 December, 2017 UTC

Knowing the Future - Tips for a Happy Launch Day

Phil Hawksworth dashes through the snow towards his launch deadline with some tips for easing the path to production. Going live can be a scary thing, but that shouldn’t be down to technical concerns.Nail your deployment early, don’t leave it to the ... more

Monday, 18 December, 2017 UTC

Feeding the Audio Graph

Ben Foxall dives deep into the Web Audio API to serve up such well known Christmas hits as I’m Dreaming Of A White Noise Generator, and All I Want For Christmas Is 440Hz. Get ready to dance around your browser this season, because it certainly won’t ... more

Friday, 15 December, 2017 UTC

Accessibility Through Semantic HTML

Laura Kalbag takes us back to basics to make sure we consider accessibility when structuring our HTML. The Christmas tree needs to be standing firm before we drape it in lights and tinsel, and until you lot start doing it, we’re not going to stop preaching ... more

Wednesday, 13 December, 2017 UTC

Getting Hardboiled with CSS Custom Properties

Andy Clarke lifts the lid on Custom Properties, and adds a little spice with an elegant method for providing fallbacks for those with older browsers. Remember, at Christmas we all need to look out for our elders, be they friends, family or even just ... more