age

Advanced baggage handling system introduced in Tiruchi airport




age

576: Blocks, Components, Linting Images, Engines, and “Web Integrity”

We're talking how we stay online - or not - on vacation, is create-guten-block the future for us WP developers? Can we get a state of the web component address from the President of web components? Have we seen the last new browser engine? And deciding whether to add features or remove them from your app.




age

583: Language Models, AI, and Digital Gardens with Maggie Appleton

Maggie Appleton talks with us about her work at Elicit, working with large and small language models, how humans vet the responses from AI, the discussion around the Soggoth meme in AI, using Discord as UI, what to do if your boss wants AI in your app, and why does she call her blog a digital garden?




age

584: Community, Partnerships, Images, and Astro with Fred K. Schott

Fred K. Schott stops by to talk about building community, open source and sponsorship, building on partnerships in the dev community, WordPress + Astro, view transitions, using Discord for support, and leaking secret Astro Studio details.




age

641: Passkey Usage, Writing Code with a Bot, and What’s Up With Java?

We've got a few leftovers from Halloween to process, what's been happening with Passkeys in late 2024, have you tried to write HTML faster than a bot can suggest it to you, CSS anchor positioning and popover polyfills, scroll driven animation thoughts, CSS nesting, and what's the reason for Java?




age

The management of sludge

There is a need for building bye-laws to insist on a range of on-plot sanitation as mandatory, depending on the location and the groundwater table.




age

Carbon credits to boost incomes of Jharkhand village farmers 

The Birsa Harit Gram project serves as a potential model for agro-forestry, which is gaining ground because the buyers of carbon credits prefer — pay a premium — for credits based on Nature Based Solution, as opposed to offsetting projects like renewable energy or projects like carbon capture.




age

Flat organisation believers: Can you imagine a world without managers?

What does a manager do that we keep hiring new ones or keep promoting more of them? Which managerial layer is the most important?




age

New venture Zerofifty from ad veterans wants to simplify the agency model

ZeroFifty Mediaworks, set up by three ad veterans, wants to bring in Bandra vibes into the agency model




age

Brand expertise and heritage bubbling in a moka pot

Lessons from European brands that have won consumers’ mindspace for long years




age

Campaign to discourage open burning from Nov 6, 588 teams to be deployed: Delhi Minister Rai

Mr. Rai said 588 teams from different civic agencies, including the Municipal Corporation of Delhi (MCD), will be deployed to report open burning incidents across the national capital




age

Delhi HC seeks CBI’s response on plea to preserve CCTV footage in coaching centre deaths




age

Body found in Okhla barrage in Delhi




age

‘No religion encourages an activity that creates pollution: SC on firecrackers

The Supreme Court wondered why the Delhi Government delayed imposition of the ban on firecrackers till October 14, when the order of ban was issued




age

In love with operations management

The author brings aesthetics into a field obsessed with quantification




age

The legend of Charles Page Perin

This engineer from New York helped set up Tata Steel. Find a collection of little known tales in ‘Tata Stories’




age

The unusual cabbage mutation that could boost crop yield | Explained

Some 44 years ago, people found a cabbage plant with a natural mutation that destroyed the plant’s ability to make pollen.




age

 Kuruvai coverage rose by 40% above normal in last five years

The normal coverage is about 3.24 lakh acres for the delta. However, going by the average for the last five years, the figure comes to 4.57 lakh acres — a nearly 40% rise.




age

Volkswagen India enters compact sedan segment




age

Maintenance work at Mettur barrage to hit Vellore water supply on November 12-13




age

Carnatic vocalists pay homage to Muthuswamy Dikshithar




age

Tailors stage protest demanding welfare assistance




age

Teenager arrested for damaging Ambedkar’s statue at Vengalam




age

Long range signature of liquid's inertia in nanoscale drainage flows

Soft Matter, 2024, Advance Article
DOI: 10.1039/D4SM01006J, Paper
Nathan Bigan, Mathieu Lizée, Marc Pascual, Antoine Niguès, Lydéric Bocquet, Alessandro Siria
In confinement, liquid flows are governed by a complex interplay of molecular, viscous and elastic forces.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




age

Nature of barriers determines first passage times in heterogeneous media

Soft Matter, 2024, 20,8353-8362
DOI: 10.1039/D4SM00908H, Paper
Moumita Dasgupta, Sougata Guha, Leon Armbruster, Dibyendu Das, Mithun K. Mitra
The nature of barriers control the first passage times in heterogenous media. For entropic barriers, the first passage times increases monotonically with increasing number of barriers, while for energetic barriers, passage times show a non-monotonic behaviour with increasing barriers.
The content of this RSS Feed (c) The Royal Society of Chemistry




age

Liquid crystalline collagen assemblies as substrates for directed alignment of human Schwann cells

Soft Matter, 2024, Advance Article
DOI: 10.1039/D4SM00534A, Paper
Open Access
  This article is licensed under a Creative Commons Attribution 3.0 Unported Licence.
Homa Ghaiedi, Luis Carlos Pinzon Herrera, Saja Alshafeay, Leonard Harris, Jorge Almodovar, Karthik Nayani
Collagen is a key component of the extracellular matrix (ECM) and well-oriented domains of collagen are important for mimicking the local cell environment in vitro. Here, we demonstrate macroscopic alignment on collagen in 2-D substrates and 3-D hydrogels.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




age

The influence of active agent motility on SIRS epidemiological dynamics

Soft Matter, 2024, Advance Article
DOI: 10.1039/D4SM00864B, Paper
Open Access
R. Kailasham, Aditya S. Khair
Motility induced phase separation of active disks with SIRS epidemiological dynamics.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




age

Flexible Captioned Slanted Images

Eric Meyer gift wraps the most awkwardly shaped of boxes using nothing but CSS, HTML and a little curl of ribbon. No matter how well you plan and how much paper you have at your disposal, sometimes you just need to slant the gift to the side.


We have a lot of new layout tools at our disposal these days—flexbox is finally stable and interoperable, and Grid very much the same, with both technologies having well over 90% support coverage. In that light, we might think there’s no place for old tricks like negative margins, but I recently discovered otherwise.

Over at An Event Apart, we’ve been updating some of our landing pages, and our designer thought it would be interesting to have slanted images of speakers at the tops of pages. The end result looks like this.

The interesting part is the images. I wanted to set up a structure like the following, so that it will be easy to change speakers from time to time while preserving accessible content structures:

<div id="page-top">
  <ul class="monoliths">
    <li>
      <a href="https://aneventapart.com/speakers/rachel-andrew"> 
        <img src="/img/rachel-andrew.jpg" alt=""> 
        <div> 
          <strong>Rachel Andrew</strong> CSS Grid 
        </div> 
      </a>
    </li>
    <li>
      <a href="https://aneventapart.com/speakers/derek-featherstone"> 
        <img src="/img/derek-featherstone.jpg" alt=""> 
        <div> 
          <strong>Derek Featherstone</strong> Accessibility 
        </div> 
      </a>
    </li>
    <li>
      …
    </li>
    <li>
      …
    </li>
  </ul>
</div>

The id value for the div is straightforward enough, and I called the ul element monoliths because it reminded me of the memorial monoliths at the entrance to EPCOT in Florida. I’m also taking advantage of the now-ubiquitous ability to wrap multiple elements, including block elements, in a hyperlink. That way I can shove the image and text structures in there, and make the entire image and text below it one link.

Structure is easy, though. Can we make that layout fully responsive? I wondered. Yes we can. Here’s the target layout, stripped of the navbar and promo copy.

So let’s start from the beginning. The div gets some color and text styling, and the monoliths list is set to flex. The images are in a single line, after all, and I want them to be flexible for responsive reasons, so flexbox is 100% the right tool for this particular job.

#page-top { 
  background: #000; 
  color: #FFF; 
  line-height: 1; 
} 
#page-top .monoliths { 
  display: flex; 
  padding-bottom: 1em; 
  overflow: hidden; 
}

I also figured, let’s give the images a simple basis for sizing, and set up the hyperlink while we’re at it.

#page-top .monoliths li { 
  width: 25%; 
} 
#page-top .monoliths a { 
  color: inherit; 
  text-decoration: inherit; 
  display: block; 
  padding: 1px; 
}

So now the list items are 25% wide—I can say that because I know there will be four of them—and the links pick up the foreground color from their parent element. They’re also set to generate a block box.

At this point, I could concentrate on the images. They need to be as wide as their parent element, but no wider, and also match height. While I was at it, I figured I’d create a little bit of space above and below the captioning text, and make the strong elements containing speakers’ names generate a block box.

#page-top .monoliths img { 
  display: block; 
  height: 33rem; 
  width: 100%; 
} 
#page-top .monoliths div { 
  padding: 0.5em 0; 
} 
#page-top .monoliths strong { 
  display: block; 
  font-weight: 900; 
}

It looks like the speakers were all cast into the Phantom Zone or something, so that needs to be fixed. I can’t physically crop the images to be the “correct” size, because there is no correct size: this needs to work across all screen widths. So rather than try to swap carefully-sized images in and out at various breakpoints, or complicate the structure with a wrapper element set to suppress overflow of resized images, I turned to object-fit.

#page-top .monoliths img { 
  display: block; 
  height: 33rem; 
  width: 100%; 
  object-fit: cover; 
  object-position: 50% 20%; 
}

If you’ve never used object-fit, it’s a bit like background-size. You can use it to resize image content within the image’s element box without creating distortions. Here, I set the fit sizing to cover, which means all of the img element’s element box will be covered by image content. In this case, it’s like zooming in on the image content. I also set a zooming origin with object-position, figuring that 50% across and 20% down would be in the vicinity of a speaker’s face, given the way pictures of people are usually taken.

This is fairly presentable as-is—a little basic, perhaps, but it would be fine to layer the navbar and promo copy back over it with Grid or whatever, and call it a day. But it’s too square and boxy. We must go further!

To make that happen, I’m going to take out the third and fourth images temporarily, so we can see more clearly how the next part works. That will leave us with Rachel and Derek.

The idea here is to clip the images to be slanted, and then pull them close to each other so they have just a little space between them. The first part is managed with clip-path, but we don’t want to pull the images together unless their shapes are being clipped. So we set up a feature query.

@supports (clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0)) { 
  #page-top .monoliths li { 
    width: 37.5%; 
  } 
}

I decided to test for both the un-prefixed and WebKit-prefixed versions of clip-path because Safari still requires the prefix, and I couldn’t think of a good reason to penalize Safari’s users for the slowness of its standards advancement. Then I made the images wider, taking them from 25% to 37.5%, which makes them half again as wide.

Thanks to object fitting, the images don’t distort when I change their parent’s width; they just get wider and scale up the contents to fit. And now, it is time for clipping!

@supports (clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0)) { 
  #page-top .monoliths li { 
    width: 37.5%; 
    -webkit-clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); 
    clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); 
  } 
}

Each coordinate pair in the polygon() is like the position pairs in background-position or object-position: the horizontal distance first, followed by the vertical distance. So the first point in the polygon is 25% 0, which is 25% of the way across the element box, and no distance down, so right at the top edge. 100% 0 is the top right corner. 75% 100% is on the bottom edge, three-quarters of the way across the element, and 0 100% is the bottom left corner. That creates a polygon that’s a strip three-quarters the full width of the element box, and runs from bottom left to top right.

Now we just have to pull them together, and this is where old tricks come back into play: all we need is a negative right margin to bring them closer together.

#page-top .monoliths li { 
  width: 37.5%; 
  margin-right: -7.5%; 
  -webkit-clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); 
  clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); 
}

The separation between them is a little wider than we were originally aiming for, but let’s see what happens when we add the other two images back in and let flexbox do its resizing magic.

Notice how the slants actually change shape as the screen gets narrower or wider. This is because they’re still three-quarters the width of the image element’s box, but the width of that box is changing as the screen width changes. That means at narrow widths, the slant is much steeper, whereas at wide widths, the slant is more shallow. But since the clipping path’s coordinates were all set with percentage distances, they all stay parallel to each other while being completely responsive to changes in screen size. An absolute measure like pixels would have failed.

But how did the images get closer together just by adding in two more? Because the list items’ basic sizing added up to more than 100%, and they’re all set to flex-shrink: 1. No, you didn’t miss a line in the CSS: 1 is the default value for flex-shrink. Flex items will shrink by default, which after all is what we should expect from a flexible element. If you want to know how much they shrunk, and why, here’s what Firefox’s flex inspector reports.

When there were only two list items, there was space enough for both to be at their base size, with no shrinkage. Once we went to four list items, there wasn’t enough space, so they all shrank down. At that point, having a negative right margin of -7.5% was just right to pull them together to act as a unit.

So, now they’re all nicely nestled together, and fully responsive! The captions need a little work, though. Notice how they’re clipped off a bit on the left edge, and can be very much clipped off on the right side at narrower screen widths? This happens because the li elements are being clipped, and that clipping applies to all their contents, images and text alike. And we can’t use overflow to alter this: clipped is clipped, not overflowed.

Fortunately, all we really need to do is push the text over a small amount. Inside the feature query, I added:

#page-top .monoliths div { 
  padding-left: 2%;
  padding-right: 26%; 
}

This shifts the text just a bit rightward, enough to clear the clip path. On the right side, I padded the div boxes so their contents wouldn’t fall outside the clipped area and appear to slide under the next caption. We could also use margins here, but I didn’t for reasons I’ll make clear at the end.

At the last minute, I decided to make the text at least appear to follow the slants of the images. For that, I just needed to shift the first line over a bit, which I did with a bit more padding.

#page-top .monoliths strong { 
  padding-left: 1%; 
}

That’s all to the good, but you may have noticed the captions still overlap at really narrow screen widths. There are a lot of options here, from stacking the images atop one another to reverting to normal flow, but I decided to just hide the captions if things got too narrow. It reduces clutter without sacrificing too much in the way of content, and by leaving them still technically visible, they seem to remain accessible.

@media (max-width: 35rem) { 
  #page-top .monoliths div { 
    opacity: 0.01 
  } 
}

And that, as they say, is that! Fully responsive slanted images with text, in an accessible markup structure. I dig it.

I did fiddle around with the separations a bit, and found that a nice thin separator occurred around margin-right: -8%, whereas beefier ones could be found above -7%. And if you crank the negative margin value to something beyond -8%, you’ll make the images overlap entirely, no visible separation—which can be a useful effect in its own right.

I promised to say why I used padding for the caption text div rather than margins. Here’s why.

#page-top .monoliths div { 
  padding-left: 3%; 
  padding-right: 26%; 
  border-top: 2px solid transparent; 
  background: linear-gradient(100deg,hsl(292deg,50%,50%) 50%, transparent 85%); 
  background-clip: padding-box; 
}

It required a wee bit more padding on the left to look decent, and an alteration to the background clipping box in order to keep the purple from filling the transparent border area, but the end result is pretty nifty, if I do say so myself. Alternatively, we could drop the background gradient on the captions and put one in the background, with a result like this.

I have no doubt this technique could be extended, made more powerful, and generally improved upon. I really wished for subgrid support in Chrome, so that I could put everything on a grid without having to tear the markup structure apart, and there are doubtless even more interesting clipping paths and layout patterns to try out.

I hope these few ideas spark some much better ideas in you, and that you’ll share them with us!


About the author

Eric A. Meyer (@meyerweb) has been a burger flipper, a college webmaster, an early blogger, one of the original CSS Samurai, a member of the CSS Working Group, a consultant and trainer, and a Standards Evangelist for Netscape. Among other things, Eric co-wrote Design For Real Life with Sara Wachter-Boettcher for A Book Apart and CSS: The Definitive Guide with Estelle Weyl for O’Reilly, created the first official W3C test suite, assisted in the creation of microformats, and co-founded An Event Apart with Jeffrey Zeldman. Eric lives with his family in Cleveland, Ohio, which is a much nicer city than you’ve probably heard. He enjoys a good meal whenever he can and considers almost every form of music to be worthwhile.

More articles by Eric




age

Sahodaran’s 2023 calendar highlights India’s textile heritage

It was the effort of four photographers, 14 models, and three stylists, and was shot at four locations



  • Life &amp; Style

age

On a world stage: Inside the Nita Mukesh Ambani Cultural Centre in Mumbai

A massive, multi-disciplinary cultural space is now open in Mumbai, with a global outlook and a vision to foster and promote Indian arts




age

Editorial. Incentives for vehicle scrappage need to be better

The 2021 scheme spoke of a 5 per cent discount by OEMs which has now been cut sharply, with caveats that it would be applicable only on select models, and for one or two years




age

Editorial. Advantage consumer

Quick commerce is hardly anti-competitive




age

Indian Bank posts 36% rise in Q2 net at ₹2,707 crore on the back of reduced slippages

For the first half of the fiscal, the bank’s net profit exceeded ₹5,000 crore, totalling ₹5,110 crore, up from ₹3,697 crore



  • Money &amp; Banking

age

Bank unions push back against government ‘micromanagement’ in employee performance reviews

More than 1 lakh bank employees likely to be affected by DFS instruction to banks, says AIBEA General Secretary Venkatachalam



  • Money &amp; Banking

age

SBI appoints Debasish Mishra as Chief General Manager of its New Delhi Circle

Debasish Mishra has experience across Credit, Operations, Forex, IT, HR, and MSME sectors, both in India and overseas



  • Money &amp; Banking

age

For new players, existing expense of management regulations are a challenge: Zuno General Insurance CEO

Zuno General Insurance continued to grow faster than the industry in the second quarter of this fiscal, says Shanai Ghosh, MD & CEO of the company



  • Money &amp; Banking

age

Ashes of Doom / directed by: Grant Munro, Don Arioli ; produced by: Robert Verrall, Wolf Koenig ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2008




age

The Circle / directed by: Mort Ransen ; produced by: John Kemeny ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2020




age

Monkey on the Back / directed by: Julian Biggs ; produced by: Grant McLean ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2016




age

Eye Witness No. 74 / directed by: Jack Long, William Davidson ; produced by: Jack Olsen, Nicholas Balla ; production agency: National Film Board of Canada (Ottawa)

Montreal : National Film Board of Canada, 2024




age

Beyond Kicks / directed by: Gary Toole ; produced by: Michael McKennirey, George Pearson ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2021




age

Still Longshots / directed by: David Finch, Maureen Marovitch ; produced by: Dan Emery, David Finch, Germaine Ying Gee Wong, Sally Bochner, Ravida Din ; production agencies: Picture This Productions (Montreal), National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2018




age

Bevel Up - Drugs, Users and Outreach Nursing / directed by: Nettie Wild ; produced by: Fiona Gold, Juanita Maginley, Betsy Carson, Nettie Wild, Svend-Erik Eriksen, Rina Fraticelli ; production agencies: National Film Board of Canada (Montreal), British Co

Montreal : National Film Board of Canada, 2016




age

The Moccasin Game / directed by: Frank Corcoran ; produced by: Dennis Sawyer ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2019




age

Turnaround : A Story of Recovery / directed by: Moira Simpson ; produced by: Jennifer Torrance, Moira Simpson, John Taylor, Kathleen Shannon ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2017




age

The Agony of Jimmy Quinlan / directed by: George Mihalka, George Williams ; produced by: Robert Duncan, Janice Brown, Andy Thomson, Peter Katadotis ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2008




age

An Easy Pill to Swallow / directed by: Robert Lang ; produced by: Tom Daly, Arthur Hammond ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2013




age

Poundmaker's Lodge : A Healing Place / directed by: Alanis Obomsawin ; produced by: Andy Thomson, Alanis Obomsawin, Marrin Canell, Robert Verrall ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2013




age

If Only ... / directed by: Marc Aubry ; produced by: Robert Forget ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2021




age

My Little Underground / directed by: Élise Simard ; produced by: David Verrall, Roddy McManus, Michael Fukushima ; production agency: National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2012