v1.11.0
Plugin-owned form layout with themeable surface via CSS variables
Refactor the membership form CSS so the plugin owns layout and the site owns the brand. Previously every theme styled
/
// differently, leaving the form looking inconsistent (centered labels, narrow inputs, small-caps section headings, stacked buttons, etc.) on Bricks + Astra.
What changed in the CSS:
-
New scoped reset on .cmm-mf that forces text-align: left, kills text-transform / font-variant / letter-spacing on h2/h3, and resets inputs/textareas/selects/buttons to consistent display + width + padding + font + line-height. !important is used on the layout axis because page-builder themes will otherwise win specificity battles.
-
Brand surface is exposed as CSS custom properties on .cmm-mf: --cmm-mf-accent, --cmm-mf-accent-hover, --cmm-mf-text, --cmm-mf-label, --cmm-mf-muted, --cmm-mf-required, --cmm-mf-bg, --cmm-mf-bg-soft, --cmm-mf-border, --cmm-mf-border-soft, --cmm-mf-radius, --cmm-mf-radius-input, --cmm-mf-gap, --cmm-mf-font. Admins re-skin by overriding these instead of fighting layout.
-
Consistent vertical rhythm: every field, every row, every checkbox uses the same --cmm-mf-gap (default 14px) for margin-bottom, so the form is evenly spaced top to bottom.
-
Equal-width columns: .cmm-mf-row uses 1fr 1fr so paired fields balance. The City/State/Postal row uses 1fr 90px 130px (City flexes, State is the exact width of a 2-char code, Postal Code fits ZIP+4).
-
Status card, account feedback, username feedback, and password meter all collapse to zero height when empty, so reserved space doesn't pad out the form.
What changed elsewhere:
-
Settings -> Membership Form gains a Custom CSS textarea. Admins can paste rules that override the form's appearance without forking the plugin. Saved with wp_strip_all_tags so a stray <script> can't get served to visitors.
-
CMM_Membership_Form::enqueue_assets() pushes the custom CSS through wp_add_inline_style so it rides the existing stylesheet handle and loads after the plugin CSS, winning the cascade.
Bump version to 1.11.0.
Merged from #31 by @sfxdotcom.