1. The Problem with In-Browser Layout Verification
When building high-fidelity ecommerce storefronts and web dashboards, small layout misalignments—a 4px padding discrepancy on a CTA button or an off-center flex container—ruin visual hierarchy and compromise conversion UX.
Inspecting elements with browser devtools (`Inspect Element`) highlights boxes one at a time, but does not provide persistent alignment guide overlays across multiple DOM nodes. Extension tools often conflict with container scrolling or require invasive browser permissions. I engineered `ruler-js` to solve this natively within the page.
2. Architecture and Features
The library consists of modular ES modules (`src/core.js`, `src/ruler.js`, `src/guides.js`, `src/measure.js`) bundled into both Vanilla JS (`window.Ruler`) and jQuery plugin builds:
- Ruler Chrome: Top horizontal and left vertical pixel rulers with sub-tick labels, mouse tracking crosshairs, and live coordinate callouts.
- Drag-and-Drop Guides: Click and drag from ruler edges to drop alignment guide lines anywhere on the layout, with keyboard delete (`Esc` / `Backspace`) support.
- Distance Measuring Tool: Click two elements or coordinates to instantly display bounding box dimensions and gap measurements in `px`, `in`, or `cm`.
- Zero Dependencies: Sub-5KB minified footprint, built with native DOM manipulation and clean pointer event handling.
3. Quick Usage Example
import { create, clear } from 'ruler-js';
// Draw rulers, drag guides, and measurement overlay inside container
const cleanup = create(document.body, {
unit: 'px',
showCrosshair: true,
showMousePos: true,
tickColor: '#5c5c7d'
});
// Clean up overlay when done
// cleanup();
4. Open Source Repository
Check out ruler-js on GitHub: github.com/Modracx/ruler-js.