No.210 · CTAs
Inline CTA
A call to action that lives inside a sentence: one phrase is the action, and on approach it lifts out of the line into a pill while the words around it make room.
The prompt
Written for the variant you picked above: Bone
Write the CTA as one large editorial sentence (Instrument Serif, clamp 2.2–4.4rem, balanced wrapping) with the action embedded in it as an italic phrase The phrase is a real link and nothing else on the section competes with it; a mono caption sits well below. At rest the phrase shows only a hairline underline: a pill-shaped background clipped with clip-path inset(calc(100% − 0.06em) 0.28em 0 0.28em round 999px). On hover or focus the clip opens to inset(0 round 999px) over 560ms on cubic-bezier(0.16,1,0.3,1), so the pill grows up out of the underline around the words. At the same time the link's horizontal padding animates 0.04em → 0.42em (with small margin changes) so the neighbouring words physically step aside instead of being covered, the text inverts to near-black, and a ↗ arrow grows in (width 0 → 0.5em) beside it. Focus adds a ring outside the pill. On touch the lifted state is shown by default. Selected variant — Bone: Bone (default accent #efe8dc) on #0c0b0a: "Have an idea that needs a careful hand? Let's *build it together* — properly.", caption "Hamza Al-Bulushi · replies within a day".
Notes
- Interaction
- Hover or focus the phrase and it lifts into a pill; the sentence reflows around it. It's a normal link.
- Motion
- 560ms expo-out clip-path, padding/margin and arrow width; 240ms colour inversion delayed 60ms so it lands after the pill covers the text.
- Accessibility
- A single real link inside a paragraph, so the sentence is read in order; decorative pill and arrow are aria-hidden; focus-visible shows the lifted state plus a ring. Reduced motion switches states instantly.
- Responsive
- Type scales with clamp() and wraps with text-wrap: balance; the phrase never breaks across lines.
- On touch
- On devices without hover the phrase is shown already lifted, so it reads as tappable.