Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Why Non-Native Content Designers Improve Global UX

      July 18, 2025

      DevOps won’t scale without platform engineering and here’s why your teams are still stuck

      July 18, 2025

      This week in AI dev tools: Slack’s enterprise search, Claude Code’s analytics dashboard, and more (July 18, 2025)

      July 18, 2025

      Report: 71% of tech leaders won’t hire devs without AI skills

      July 17, 2025

      Could OpenAI’s rumored browser be a Chrome-killer? Here’s what I’m expecting

      July 18, 2025

      My favorite lens and screen-cleaning kit keeps my tech spotless, and it only costs $8

      July 18, 2025

      AI’s biggest impact on your workforce is still to come – 3 ways to avoid getting left behind

      July 18, 2025

      Remedy offers update on ‘FBC: Firebreak,’ details coming improvements — “We’ve seen many players come into the game and leave within the first hour.”

      July 18, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      The details of TC39’s last meeting

      July 18, 2025
      Recent

      The details of TC39’s last meeting

      July 18, 2025

      Online Examination System using PHP and MySQL

      July 18, 2025

      A tricky, educational quiz: it’s about time..

      July 18, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      CAD Sketcher – constraint-based geometry sketcher

      July 18, 2025
      Recent

      CAD Sketcher – constraint-based geometry sketcher

      July 18, 2025

      7 Best Free and Open Source Linux FTP Servers

      July 18, 2025

      Best Free and Open Source Alternatives to Autodesk FBX Review

      July 18, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»News & Updates»Getting Creative With Versal Letters

    Getting Creative With Versal Letters

    July 18, 2025

    A while back, our man Geoff Graham treated us to a refresher on the CSS initial-letter property, but how can you style drop and initial caps to reflect a brand’s visual identity and help to tell its stories?

    Here’s how I do it in CSS by combining ::first-letter and initial-letter with other unexpected properties, including border-image, and clip-path.

    Showing three screenshots of Patty Meltt's website, including a homepage a videos page, and a discography, all side-by-side.
    Patty Meltt is an up-and-coming country music sensation.

    My brief: Patty Meltt is an up-and-coming country music sensation, and she needed a website to launch her new album. She wanted it to be distinctive-looking and memorable, so she called Stuff & Nonsense. Patty’s not real, but the challenges of designing and developing sites like hers are.

    First, a drop cap recap. Chris Coyier wrote about drop caps several years ago. They are a decorative letter at the beginning of a paragraph, often spanning several lines of text. It’s a typographic flourish found in illuminated manuscripts and traditional book design, where it adds visual interest and helps guide a reader’s eye to where they should begin.

    Study manuscripts from the Middle Ages onwards, and you’ll find hand-decorated illuminated capitals. The artists who made these initial letters were fabulously called “illuminators.” These medieval versals went beyond showing someone where to start reading; historiated letters also illustrated the stories, which was especially useful since most people in the Middle Ages couldn’t read.

    The first letter is a P that is four lines tall, bold, and colored light gray.
    A basic drop cap

    On the web, drop caps can improve readability and reflect a brand’s visual identity.

    A brief refresher on properties and values

    In CSS, drop caps are created using the ::first-letter pseudo-element in combination with initial-letter. As you might expect, ::first-letter targets the very first letter of a block of text, enabling you to style it independently from the rest of a paragraph. The first number sets how many lines tall the letter appears, and the second controls its baseline alignment — that is, which line of text the bottom of the cap sits on.

    p::first-letter {
      -webkit-initial-letter: 3 3;
      initial-letter: 3 3;
    }

    Because browser support still varies, it’s common to include both the unprefixed and -webkit- prefixed properties for maximum compatibility. And speaking of browser support, it’s also sensible to wrap the initial-letter property inside an @supports CSS at-rule so we can check for browser support and provide a fallback, if needed:

    @supports (initial-letter:2) or (-webkit-initial-letter:2) {
      p::first-letter {
        -webkit-initial-letter: 3 3;
        initial-letter: 3 3;
      }
    }

    The initial-letter property automatically calculates the font size to match the number of lines a drop cap spans. On its own, this can make for quite a first impression. However, drop caps really start to come to life when you combine initial-letter with other CSS properties.

    Tip: Interactive examples from this article are available in my lab.

    Shadows

    The first example is a single shadow and the second uses two shadows to create a 3D effect.
    Text shadows applied to first letters (live demo)

    When I want to lift a drop cap off the page, I can add a single text-shadow. Shadows can be colourful and don’t have to be black. I created a full live demo you can check out.

    p::first-letter {
      /* ... *//
      text-shadow: 6px 6px 0 #e6d5b3;
    }

    But why use just one shadow when two hard-edged shadows will turn a cap into a classic graphic typographic element?

    p::first-letter {
      /* ... */
      text-shadow: 
        -6px -6px 0 #7d6975, 
        6px 6px 0 #e6d5b3;
    }
    Examples showing unstyled, single text shadow, and two text shadows (live demo)

    Strokes

    A text shadow applied to a first letter (live demo)

    The text-stroke property — shorthand for text-stroke-width and text-stroke-color — adds an outline to the centre of the text shape. It’s a Baseline feature and is now widely available. I can make the cap text transparent or colour it to match the page background.

    p::first-letter {
      /* ... */
      text-stroke: 5px #e6d5b3;
    }

    Backgrounds

    Solid and gradient backgrounds applied to first letters (live demo)

    Adding a background is a simple way to start making a cap more decorative. I could start by adding a solid background-color.

    p::first-letter {
      /* ... */
      background-color: #97838f;
    }

    To add a lighting effect, I could apply a conical, linear, or radial gradient background image (here’s a demo):

    p::first-letter {
      /* ... */
      background-color: #e6d5b3;
      background-image: linear-gradient(135deg,#c8b9c2 0%, #7d6975 50%);
    }

    And even an image URL to use a bitmap or vector image as a background (and here’s that demo):

    p::first-letter {
      /* ... */
      background-color: #e6d5b3;
      background-image: url(...);
      background-size: cover;
    }
    Background images and a background clipped to text

    Things become even more interesting by clipping a bitmap, gradient, or vector background image to the text while setting its colour to transparent. Now, the image will only appear inside the text space (demo).

    p::first-letter {
      /* ... */
      background-clip: text;
      color: transparent;
    }

    Borders

    Two examples of borders applied to first letters, one square and one rounded

    You might think borders are boring, but there’s plenty you can do to make them look interesting. I could start by applying a solid border to surround the cap box (demo).

    p::first-letter {
      /* ... */
      border: 5px solid #e6d5b3;
    }

    Then, I could apply border-radius to slightly round all its corners (demo).

    p::first-letter {
      /* ... */
      border-radius: 1rem;
    }

    Or, I might round individual corners for a more interesting look (demo):

    p::first-letter {
      /* ... */
      border-top-left-radius: 3rem;
      border-bottom-right-radius: 3rem;
    }
    A border radius applied to the first letter, where the top-left and bottom-right edges are rounded (live demo)

    And then there’s the border-image property, a powerful, yet often overlooked CSS tool. By slicing, repeating, and outsetting images, you can create intricate borders and decorative drop caps with minimal code.

    Initial letter with a thick gradient border.
    A CSS border image applied to a first letter (live demo)

    You can insert a bitmap or vector format image, or drop a CSS gradient into the border space:

    p::first-letter {
      /* ... */
      border-style: solid;
      border-width: 10px;
      border-image: conic-gradient(...) 1;
    }

    Clipping

    The first example is an arrow-shaped background pointing toward the right. The second example is a background cut out like a sunburst.
    Clipping first letters

    The clip-path property lets you define a custom shape that controls which parts of an element are visible and which are hidden. Instead of always showing a rectangular box, you can use clip-path to crop elements into circles, polygons, or even complex shapes defined with SVG paths. It’s an effective way to create visual effects like this right-facing arrow. Clipping the drop cap into an arrow shape isn’t just decorative — it reinforces direction and hierarchy, literally pointing readers to where the story begins. Here’s a demo of the following example.

    p::first-letter {
      /* ... */
      padding-inline: 1rem 2rem;
      background-color: #e6d5b3;
      clip-path: polygon(...);
    }

    Or a glossy sticker shape cap, made by combining clip-path with a gradient background image and a text shadow (demo).

    Transforms

    Two examples of transforming first letters, one rotated (demo) and one scaled (demo)

    You can transform a drop cap independently from the rest of a paragraph by rotating, scaling, skewing, or translating it to make it feel more dynamic:

    p::first-letter {
      /* ... */
      margin-inline-end: 2.5em;
      transform: skew(20deg, 0deg);
    }
    Two examples of skewed first letters, angling each one so that they are slanted backward towards the left.

    And with a little trial and error to arrive at the correct values, you could even flow the remaining paragraph text around the cap using the shape-outside property (demo):

    p::first-letter {
      /* ... */
      display: block;
      float: left;
      shape-outside: polygon(0 0, 0 200px, 250px 600px);
      shape-margin: 50px;
      transform: skew(20deg, 0deg) translateX(-60px);
    }

    Drop caps don’t just help guide a reader’s eye to where they should begin; they also set the tone for what follows. A well-designed drop cap adds visual interest at the start of a block of text, drawing attention in a way that feels intentional and designed. Because it’s often the first element the reader sees, caps can carry a lot of visual weight, making them powerful tools for expressing a brand’s identity.

    Designing for Patty Meltt

    Patty Meltt wanted a website packed with design details. Every element added to a design is an opportunity to be expressive, and that includes her drop caps.

    Her biography page is presentable, but we felt a focus on where someone should start reading was lacking.

    Patty Meltt’s biography without a drop cap

    From the selection of designs I showed her, she felt the sticker-style cap best suited her brand.

    Showing all letters of the alphabet styled in the artist’s preferred way, with a circular background shaped like a sun with sharp angles.

    To implement it, first, I added a cursive typeface which matches her branding and contrasts with the rest of her typographic design:

    p::first-letter {
      font-family: "Lobster Two", sans-serif;
      font-weight: 700;
    }

    I changed the cap colour to match the page background and added a semi-transparent text shadow:

    p::first-letter {
      /* ... */
      color: #140F0A;
      text-shadow: 6px 6px 0 rgba(163,148, 117, .8);
    }

    Next, I clipped the cap box to a visible area shaped like a sticker:

    p::first-letter {
      /* ... */
      clip-path: polygon(...);
    }

    …before applying two background images — a noise-filled SVG and a radial gradient — that I blended using a background-blend-mode:

    p::first-letter {
      /* ... */
      background-image: url(img/cap-noise.svg), 
      radial-gradient(circle, #e6d5b3 0%, #cdaa65 100%);
      background-blend-mode: soft-light, normal;
    }
    Patty Meltt’s biography with a stylsh new drop cap (demo)

    The result is a drop cap that’s as stylish as cut-off jeans and a pair of gator-skinned boots.

    Conclusion

    Styling drop caps isn’t just about decoration — it’s about setting a tone, drawing readers in, and using every detail to express a brand’s voice. CSS has the tools to go beyond the default: gradients, textures, borders, and even complex shapes all help transform first letters into statements. So don’t waste the opportunities that drop caps give you. Make ’em sing.


    Getting Creative With Versal Letters originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

    Source: Read More 

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleUbuntu 25.10 Shrinks its Raspberry Pi Install Footprint
    Next Article Fancy Bear Hackers Attacking Governments, Military Entities With New Sophisticated Tools

    Related Posts

    News & Updates

    Could OpenAI’s rumored browser be a Chrome-killer? Here’s what I’m expecting

    July 18, 2025
    News & Updates

    My favorite lens and screen-cleaning kit keeps my tech spotless, and it only costs $8

    July 18, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    JavaScript API Calls – Guide

    Development

    Do these 4 things before betting on AI in your business – and why

    News & Updates

    AI That Teaches Itself: Tsinghua University’s ‘Absolute Zero’ Trains LLMs With Zero External Data

    Machine Learning

    The latest Edge Dev 136 makes extensions easier to reach

    Operating Systems

    Highlights

    Securitybedrijf meldt mogelijk misbruik van nieuw CitrixBleed-lek

    June 27, 2025

    Securitybedrijf meldt mogelijk misbruik van nieuw CitrixBleed-lek

    Een nieuwe kwetsbaarheid in NetScaler ADC en NetScaler Gateway, die de naam CitrixBleed 2 heeft gekregen, wordt mogelijk actief misbruik bij aanvallen, zo stelt securitybedrijf ReliaQuest. NetScaler z …
    Read more

    Published Date:
    Jun 27, 2025 (4 hours, 1 minute ago)

    Vulnerabilities has been mentioned in this article.

    CVE-2025-6543

    CVE-2025-5777

    Distribution Release: Ubuntu 25.04

    April 17, 2025

    CVE-2025-4105 – Splitit WordPress Authorized Data Modification Vulnerability

    May 21, 2025

    CVE-2025-47685 – Moloni Contribuinte Checkout CSRF Stored XSS

    May 7, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.