Wednesday, October 29, 2025

Getting Inventive With Small Screens


Over the previous few months, I’ve explored how we will get inventive utilizing well-supported CSS properties. Every article is meant to nudge internet design away from uniformity, towards designs which can be extra distinctive and memorable. One little bit of suggestions from Phillip Bagleg deserves a comply with up:

Andy’s guides are all very fascinating, however principally impractical in actual life. Little or no steering on how journal model design, works when thrown right into a responsive setting.

Truthful level effectively made, Phillip. So, let’s bust the parable that editorial-style internet design is impractical on small screens.

My temporary: Patty Meltt is an up-and-coming nation music sensation, and he or she wanted an internet site to launch her new album and tour. She wished it to be distinctive-looking and memorable, so she referred to as Stuff & Nonsense. Patty’s not actual, however the challenges of designing and growing websites like hers are.

The issue with countless columns

On cellular, folks can lose their sense of context and may’t simply inform the place a bit begins or ends. Good small-screen design might help orient them utilizing a wide range of strategies.

When display area is tight, most designers collapse their layouts right into a single lengthy column. That’s tremendous for readability, however it could possibly negatively impression the consumer expertise when hierarchy disappears; rhythm turns into monotonous, and content material scrolls endlessly till it blurs. Then, nothing stands out, and pages flip from being designed experiences into content material feeds.

Like {a magazine}, format delivers visible cues in a desktop setting, letting folks know the place they’re and suggesting the place to go subsequent. This rhythm and construction could be as a lot part of visible storytelling as color and typography.

However these cues steadily disappear on small screens. Since we will’t depend on complicated columns, how can we design visible cues that assist readers really feel oriented inside the content material move and keep engaged? One reply is to cease considering when it comes to one lengthy column of content material altogether. As an alternative, deal with every part as a definite composition, a designed second that guides readers via the story.

Designing moments as an alternative of columns

Even inside a slim column, you possibly can add selection and cut back monotony by considering of content material as a sequence of meaningfully designed moments, every with distinctive behaviours and kinds. We’d use various compositions and sizes, prepare parts utilizing totally different patterns, or use horizontal and vertical scrolling to create experiences and inform tales, even when area is proscribed. And luckily, we now have the instruments we have to do this at our disposal:

These moments would possibly transfer horizontally, breaking the monotony of vertical scrolling, giving a bit its personal rhythm, and holding associated content material collectively.

Make use of horizontal scrolling

My desktop design for Patty’s discography consists of her album covers organized in a modular grid. Layouts like these are simple to realize utilizing my modular grid generator.

Six album covers arranged in a three-by-two grid next to a column of text on the left. Four columns total.

However that association isn’t essentially going to work for small screens, the place a sensible answer is to remodel the modular grid right into a horizontal scrolling component. Scrolling horizontally is a well-known behaviour and a option to give grouped content material its personal stage, the way in which {a magazine} unfold would possibly.

I began by defining the modular grid’s mum or dad — on this case, the imaginatively named modular-wrap — as a container:

.modular-wrap {
  container-type: inline-size;
  width: 100%;
}

Then, I added grid kinds to create the modular format:

.modular {
  show: grid;
  hole: 1.5rem;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  overflow-x: seen;
  width: 100%;
}

It could be tempting to break down these grid modules on small screens right into a single column, however that might merely stack one album on prime of one other.

Album covers arranged in a single column.
Collapsing grid modules on small screens right into a single column

So as an alternative, I used a container question to rearrange the album covers horizontally and allow somebody to scroll throughout them:

@container (max-width: 30rem) {
  #example-1 .modular {
    show: grid;
    hole: 1.5rem;
    grid-auto-columns: minmax(70%, 1fr);
    grid-auto-flow: column;
    grid-template-columns: none;
    grid-template-rows: 1fr;
    overflow-x: auto;
    -webkit-overflow-scrolling: contact;
  }
}
A paragraph of text above a series of albums covers arranged in a single row, overflowing the screen for scrolling.
Album covers are organized horizontally slightly than vertically. See this instance in my lab.

Now, Patty’s album covers are organized horizontally slightly than vertically, which varieties a cohesive element whereas stopping folks from shedding their place inside the total move of content material.

Push parts off-canvas

Final time, I defined the right way to use shape-outside and create the phantasm of textual content flowing round either side of a picture. You’ll usually see this impact in magazines, however infrequently on-line.

Patty Meltt staring straight into the camera in between two columns of text.
The phantasm of textual content flowing round either side of a picture

Desktop shows have loads of area out there, however what about smaller ones? Effectively, I may take away shape-outside altogether, but when I did, I’d additionally lose a lot of this design’s persona and its impact on visible storytelling. As an alternative, I can retain shape-outside and place it inside a horizontally scrolling element the place a few of its content material is off-canvas and outdoors the viewport.

My content material is cut up between two divisions: the primary with half the picture floating proper, and the second with the opposite half floating left. The 2 photos be a part of to create the phantasm of a single picture on the centre of the design:

I knew this implementation would require a container question as a result of I wanted a mum or dad component whose width determines when the format ought to swap from static to scrolling. So, I added a part exterior that content material in order that I may reference its width for figuring out when its contents ought to change:

part {
  container-type: inline-size;
  overflow-x: auto;
  place: relative;
  width: 100%;
}

My approach entails spreading content material throughout two equal-width divisions, and these grid column properties will apply to each display dimension:

.content material {
  show: grid;
  hole: 0;
  grid-template-columns: 1fr 1fr;
  width: 100%;
}

Then, when the part’s width is under 48rem, I altered the width of my two columns:

@container (max-width: 48rem) {
  .content material {
    grid-template-columns: 85vw 85vw;
  }
}

Setting the width of every column to 85% — a little bit underneath viewport width — makes among the right-hand column’s content material seen, which hints that there’s extra to see and encourages somebody to scroll throughout to take a look at it.

Showing the left and right halves of a layout that supports horizontal scrolling.
A number of the right-hand column’s content material is seen. See this instance in my lab.

The identical precept works at a bigger scale, too. As an alternative of constructing small changes, we will flip a whole part right into a miniature journal unfold that scrolls like a narrative in print.

Construct scrollable mini-spreads

When designing for a responsive setting, there’s no purpose to lose the expressiveness of a magazine-inspired format. As an alternative of flattening all the pieces into one lengthy column, sections can behave like self-contained mini journal spreads.

A desktop layout showing a column of text in between two columns of differently-sized and shaped images.
Sections can behave like self-contained mini journal spreads.

My remaining shape-outside instance flowed textual content between two photomontages. Components of these photos escaped their containers, creating depth and a format with a distinctly editorial really feel. My content material contained the 2 photos and several other paragraphs:

Two photos float both left or proper, every with shape-outside utilized so textual content flows between them:

.content material img:nth-of-type(1) {
  float: left;
  width: 45%;
  shape-outside: url("https://css-tricks.com/getting-creative-with-small-screens/left.webp");
}

.spread-wrap .content material img:nth-of-type(2) {
  float: proper;
  width: 35%;
  shape-outside: url("https://css-tricks.com/getting-creative-with-small-screens/proper.webp");
}

That behaves fantastically at giant display sizes, however on smaller ones it feels cramped. To protect the design’s essence, I used a container question to remodel its format into one thing totally different altogether.

First, I wanted one other mum or dad component whose width would decide when the format ought to change. So, I added a part exterior in order that I may reference its width and gave it a little bit padding and a border to assist differentiate it from close by content material:

part {
  border: 1px strong var(--border-stroke-color);
  box-sizing: border-box;
  container-type: inline-size;
  overflow-x: auto;
  padding: 1.5rem;
  width: 100%;
}

When the part’s width is under 48rem, I launched a horizontal Flexbox format:

@container (max-width: 48rem) {
  .content material {
    align-items: middle;
    show: flex;
    flex-wrap: nowrap;
    hole: 1.5rem;
    scroll-snap-type: x obligatory;
    -webkit-overflow-scrolling: contact;
  }
}

And since this format is dependent upon a container question, I used container question models (cqi) for the width of my versatile columns:

.content material > * {
  flex: 0 0 85cqi;
  min-width: 85cqi;
  scroll-snap-align: begin;
}
Showing a three-column layout split between three screenshots to demonstrate horizontally scrolling through the layout.
On small screens, the format flows from picture to paragraphs to picture. See this instance in my lab.

Now, on small screens, the format flows from picture to paragraphs to picture, with every component snapping into place as somebody swipes sideways. This method rearranges parts and, in doing so, slows somebody’s studying pace by making every swipe an intentional motion.

To forestall my photos from distorting when flexed, I utilized auto-height mixed with object-fit:

.content material img {
  show: block;
  flex-shrink: 0;
  float: none;
  top: auto;
  max-width: 100%;
  object-fit: comprise;
}

Earlier than calling on the Flexbox order property to position the second picture on the finish of my small display sequence:

.content material img:nth-of-type(2) {
  order: 100;
}

Mini-spreads like this add motion and rhythm, however orientation affords one other option to shift perspective with out scrolling. A easy rotation can change into a cue for a completely new composition.

Make orientation-responsive layouts

When somebody rotates their cellphone, that shift in orientation can change into a cue for a brand new format. As an alternative of stretching a single-column design wider, we will recompose it totally, making a panorama orientation really feel like a contemporary new unfold.

A desktop layout showing a picture of Patty Meltt sitting and playing an acoustic guitar as text flows around the shape of the image on the right.
Turning a cellphone sideways is a chance to recompose a format.

Turning a cellphone sideways is a chance to recompose a format, not simply reflow it. When Patty’s followers rotate their telephones to panorama, I don’t need the identical stacked format to easily stretch wider. As an alternative, I need to use that extra width to offer a distinct expertise. This may very well be as simple as including further columns to a composition in a media question that’s utilized when the gadget’s orientation is detected in panorama:

@media (orientation: panorama) {
  .content material {
    show: grid;
    grid-template-columns: 1fr 1fr;
  }
}

For the long-form content material on Patty Meltt’s biography web page, textual content flows round a polygon clip-path positioned over a big fake background picture. This picture is inline, floated, and has its width set to 100%:

.content material > img {
  float: left;
  width: 100%;
  max-width: 100%;
}

Then, I added shape-outside utilizing the polygon coordinates and added a shape-margin:

.content material > img {
  shape-outside: polygon(...);
  shape-margin: 1.5rem;
}

I solely need the textual content to move across the polygon and for the picture to seem within the background when a tool is held in panorama, so I wrapped that rule in a question which detects the display orientation:

@media (orientation: panorama) {
  .content material > img {
    float: left;
    width: 100%;
    max-width: 100%;
    shape-outside: polygon(...);
    shape-margin: 1.5rem;
  }
}
Image of Patty Meltt sitting and playing an acoustic guitar above a column of text.
See this instance in my lab.

These properties gained’t apply when the viewport is in portrait mode.

Design tales that adapt, not layouts that collapse

Small screens don’t make design harder; they make it extra deliberate, requiring designers to contemplate the right way to protect a design’s persona when area is proscribed.

Phillip was proper to ask how editorial-style design can work in a responsive setting. It does, however not by shrinking a print format. It really works once we suppose otherwise about how content material flexes, shifts, and scrolls, and when a design responds not simply to a tool, however to how somebody holds it.

The purpose isn’t to imitate miniature magazines on cellular, however to seize their vitality, rhythm, and sense of discovery that print does so effectively. Design is storytelling, and simply because there’s much less area to inform one, it shouldn’t imply it ought to make any much less impression.

Related Articles

Latest Articles