Photo Coordinate Overlay
Measurement lines and camera metadata appear over an architectural or portfolio photograph.
Measurement lines and camera metadata appear over an architectural or portfolio photograph.
Live Demo
Hover over the element or use Tab to focus.
Source Code
Copy the HTML, CSS or JavaScript you need for your project.
<a class="tbx-1150" href="#project" aria-label="View architectural project details"><span class="tbx-1150__canvas" aria-hidden="true"></span><span class="tbx-1150__grid" aria-hidden="true"></span><span class="tbx-1150__info"><small>FRAME 01 / ARCHITECTURE</small><strong>URBAN FORM</strong></span><span class="tbx-1150__coords" aria-hidden="true">X 24.6 / Y 07.2</span></a>
.tbx-1150{position:relative;display:block;width:min(296px,100%);height:186px;background:#d6d0c5;border-radius:5px;overflow:hidden;color:#fff;text-decoration:none;font-family:system-ui,sans-serif;isolation:isolate}
.tbx-1150__canvas{position:absolute;inset:0;background:linear-gradient(100deg,transparent 43%,#b69e85 44% 52%,transparent 53%),linear-gradient(90deg,transparent 28%,#756c62 28% 30%,transparent 30% 68%,#756c62 68% 70%,transparent 70%),linear-gradient(180deg,#d1d6d6 0 38%,#a8aaa8 38% 42%,#baa994 42% 100%)}
.tbx-1150__canvas:before{content:"";position:absolute;inset:34% 7% 14%;background:linear-gradient(105deg,#5d6f70 0 38%,#c1baa7 38% 55%,#778c8a 55%);clip-path:polygon(0 100%,0 19%,63% 0,100% 18%,100% 100%)}
.tbx-1150__grid{position:absolute;inset:17px;border:1px solid #ffffffba;background:linear-gradient(90deg,transparent calc(50% - .5px),#ffffff99 50%,transparent calc(50% + .5px)),linear-gradient(0deg,transparent calc(50% - .5px),#ffffff99 50%,transparent calc(50% + .5px));opacity:0;transform:scale(1.1);transition:opacity .42s,transform .5s}
.tbx-1150__info{position:absolute;left:0;right:0;bottom:0;padding:19px 14px 12px;background:linear-gradient(transparent,#132c35c9);display:grid;gap:4px}.tbx-1150 small{font-size:9px;letter-spacing:.12em}.tbx-1150 strong{font-size:18px;letter-spacing:.08em}
.tbx-1150__coords{position:absolute;top:20px;right:21px;font-size:9px;letter-spacing:.1em;font-weight:800;opacity:0;transform:translateY(-8px);transition:opacity .4s,transform .4s}
.tbx-1150:is(:hover,:focus-visible) .tbx-1150__grid{opacity:1;transform:scale(1)}.tbx-1150:is(:hover,:focus-visible) .tbx-1150__coords{opacity:1;transform:translateY(0)}
.tbx-1150:focus-visible{outline:3px solid #d8ad75;outline-offset:4px}
@media (prefers-reduced-motion: reduce) { .tbx-1150, .tbx-1150 *, .tbx-1150::before, .tbx-1150::after, .tbx-1150 *::before, .tbx-1150 *::after { animation-duration:.01ms !important;transition-duration:.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 architecture sections and portfolio galleries.
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.