TipsBlocks Web Technique Library

PRACTICAL WEB TIP

← Back to library

Project Stage Menu

A project-stage menu reveals a short phase description and forward direction on hover.

Live Demo

Hover over the element or use Tab to focus.

Source Code

Copy the HTML, CSS or JavaScript you need for your project.

HTML
<div class="tbx-1261"><nav class="nav" aria-label="Production stages"><button type="button" class="entry"><span class="no">01</span><span class="name">Discover</span><span class="aux">Listen & research</span><span class="arrow">↗</span></button><button type="button" class="entry"><span class="no">02</span><span class="name">Design</span><span class="aux">Ideas to interface</span><span class="arrow">↗</span></button><button type="button" class="entry"><span class="no">03</span><span class="name">Build</span><span class="aux">Code & launch</span><span class="arrow">↗</span></button></nav></div>
CSS
.tbx-1261{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;max-width:100%;min-height:218px;overflow:visible;padding:24px 18px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#243e43}
.tbx-1261 *,.tbx-1261 *::before,.tbx-1261 *::after{box-sizing:border-box}
.tbx-1261{background:#22272b;color:#f9f5ed}
.tbx-1261 .nav{width:min(310px,100%);border-top:1px solid #637170}
.tbx-1261 .entry{width:100%;color:inherit;display:flex;align-items:center;gap:8px;min-height:52px;border:0;border-bottom:1px solid #637170;background:transparent;text-align:left;padding:6px 4px;cursor:pointer;font-family:inherit}
.tbx-1261 .no{font-size:10px;color:#9eb8ad;flex:0 0 28px}
.tbx-1261 .name{font-size:20px;min-width:104px;font-family:Georgia,serif;transition:transform .3s}
.tbx-1261 .aux{font-size:9px;color:#a2d3b8;flex:1;overflow:hidden;max-width:0;white-space:nowrap;opacity:0;transform:translateX(-7px);transition:max-width .4s,opacity .3s,transform .4s}
.tbx-1261 .arrow{margin-left:auto;font-size:18px;color:#d4bfa7;transition:transform .35s}
.tbx-1261 .entry:is(:hover,:focus-visible) .aux{max-width:130px;opacity:1;transform:none}
.tbx-1261 .entry:is(:hover,:focus-visible) .name{transform:translateX(4px)}
.tbx-1261 .entry:is(:hover,:focus-visible) .arrow{transform:translate(2px,-3px)}
@media (prefers-reduced-motion: reduce) {.tbx-1261 *, .tbx-1261 *::before, .tbx-1261 *::after { transition-duration:0.01ms !important; animation-duration:0.01ms !important; scroll-behavior:auto !important; } }

How to Use

Insert the HTML and add the CSS to your stylesheet. Adjust colors and sizes and avoid class conflicts.

Use Case

Useful for portfolio galleries and navigation menus.

Technical Notes

Keep controls usable on touch devices. Test keyboard focus and reduced-motion preferences.

Mobile:Ensure the interactive content remains accessible without hover on touch devices.

Browser:Uses modern CSS. Check behavior in the browsers you support.

Reduced Motion:Check that prefers-reduced-motion is respected.