Blog
News, tutorials, and updates from the Hammer team.
Cascade Layers: End the Specificity Wars
CSS @layer gives every rule a declared priority independent of selector specificity. Import third-party CSS into a low layer and stop reaching for !important.
TutorialCSS :has(): UI Logic Without JavaScript
CSS :has() is a relational pseudo-class that reads DOM state directly — form highlights, tab indicators, card variants — replacing common patterns that used to require class-toggling JavaScript.
TutorialContainer Queries: Components That Know Their Size
Media queries ask how wide the viewport is. Container queries ask how wide the container is. That difference is what makes truly reusable components possible.
TutorialNative Form Validation That Actually Works
The browser ships a complete constraint validation API. Custom error messages, per-field validity states, and clean submission semantics — no library required.
TutorialPopover API: Zero-JS Tooltips and Menus
Popovers are native now. Light-dismiss, top-layer placement, and ESC close built in — no JavaScript, no Popper.js, just two HTML attributes.
TutorialNative Modals with <dialog>
The browser ships a fully accessible modal element. Stop rebuilding it from divs.
TutorialIntroducing Content Mode
Content Mode transforms Hammer into a fully-featured content-driven static site generator. Define collections, write in Markdown, and generate pages automatically.
FeatureWhy Static Sites Still Win in 2026
Frameworks come and go, but static sites remain the fastest, most secure, and most reliable way to put content on the web. Here's why.
GeneralUsing Hammer CLI in Your CI/CD Pipeline
Hammer's headless CLI lets you run builds in any CI/CD environment — GitHub Actions, GitLab CI, or your own automation scripts. Here's how to set it up.
TutorialNo posts in this category yet.