Button: fill
An ACSS button that inverts on hover: a layer in the label's colour rises from the bottom edge and the label takes the face's colour. On the outline style the fill takes the border colour and the label turns light.
Live preview

What you can build with it
A call to action whose hover feels like pressing in. An outline button that fills with the brand colour on hover. A form submit button with a stronger hover than a colour fade.
Props
label (text); href (url); style (select: primary, outline); size (select: default, large)
States shown
Rest, hover, focus, active. Reduced motion: the fill appears without the rise.
How to change it
Content and options are 4 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 .button-row, .motion-btn, .motion-btn-fill.
ACSS tokens used
ACSS button tokens (–btn-*), –primary, –on-primary, –white, –black, –transition.
ACSS requirements
ACSS 4 defaults with its button classes. Nothing to install.
Version history
Version 1.1.0, September 30, 2026: The button now inverts: the rising layer is the label's colour and the label takes the face's, inside the border. Version 1.0.1, September 29, 2026: The outline style's label on hover reads the framework's own text token, in both colour schemes. Version 1.0.0, September 28, 2026: First release.
Tested with
Etch 1.6.7 and ACSS 4.0.1. Version 1.1.0.
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.