Button: magnetic
A button that leans toward the pointer from a little way off, its label leaning further, and springs back when you leave. A press sends a ring of light out from the point touched. On a phone it leans to the finger and springs back on release. Needs the EtchPress Runtime; without it it is a plain button.
Live preview

Before you copy
This is a showpiece. It pastes into Etch like any other item and it is complete without anything else, but its motion comes from the EtchPress runtime: a small script that loads only on the pages that use a showpiece.
Etch for WordPress: download the EtchPress Runtime plugin from Downloads in your account, install it and activate it. Paste your licence key under Settings, EtchPress Runtime, and it updates from the Plugins screen like any other plugin.
Etch Studio: download the EtchPress runtime files from Downloads in your account, unzip them and drop them into your project's Asset Manager, then paste the item. Studio ships the files it needs with your site.
What you can build with it
The one call to action a page is built around. A contact or booking button in a hero. The button at the end of a case study. A playful sign-up button on a product page.
Props
label (text); href (url); tone (select: ink, brand, outline); size (select: medium, large); arrow (select: yes, no)
States shown
Rest; near (leans to the pointer, every time); press (gives, a ring spreads from the touch point); release (springs back); focus. Touch: leans to the finger, follows a drag, springs back. Reduced motion and no runtime: a plain button with a CSS press.
How to change it
Content and options are 5 props in the component's settings panel. Colour, type, spacing and radius follow your Automatic.css settings, so a change to the site's palette or scale changes this too. For anything else, edit the classes in the Style Manager, starting with .btn-magnetic, .btn-magnetic-row. Its behaviour is a small script that travels with the component; no plugin and nothing to install.
ACSS tokens used
accent and base-ultra-dark for the brand tone, heading-color and text-dark for the outline, text-l, h4, focus tokens. The ink tone is a literal pair that swaps in the dark scheme.
ACSS requirements
ACSS 4 defaults. Needs the EtchPress Runtime, 0.4.0 or later: the EtchPress Runtime plugin on WordPress, or the runtime's files dropped into the project's Asset Manager in Etch Studio. Without it you get the still version.
Version history
Version 1.0.3, October 11, 2026: The brand tone is your accent colour with your darkest text colour on it, the same pair as your site's own accent buttons, in both colour schemes. Version 1.0.2, October 10, 2026: The brand tone keeps its dark shade with white text in a dark colour scheme too (it turned pale, with faint text, on sites with ACSS's colour scheme support). Version 1.0.1, October 1, 2026: Etch Studio: the component names the runtime files it needs, so Studio ships them with the site. Needs the EtchPress Runtime 0.4.0 or later. Version 1.0.0, October 1, 2026: First release, with the EtchPress Runtime 0.2.1.
Tested with
Etch 1.6.7 and ACSS 4.0.1. Version 1.0.3.
Needs the EtchPress runtime
The plugin on WordPress, or the runtime's files in Etch Studio. Without it you get the still version.
Lifetime members
Members copy this straight into Etch, ready to paste.
Used an earlier version? How to update it
Get lifetime accessWant EtchPress for Bricks or the block editor?
Everything here is made for Etch. Pick the builder you use and leave your email: we write once, when EtchPress works there.