Skip to content

Restore upstream sass structure: entries import partials again#506

Open
ockham wants to merge 6 commits into
trunkfrom
fix/unflatten-sass-entries
Open

Restore upstream sass structure: entries import partials again#506
ockham wants to merge 6 commits into
trunkfrom
fix/unflatten-sass-entries

Conversation

@ockham

@ockham ockham commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Description

SCF's four main sass entry files (acf-input.scss, acf-global.scss, acf-field-group.scss, acf-dark.scss) had been flattened into compiled CSS with no imports, orphaning the _*.scss partials. The partials kept receiving upstream syncs (e.g. the 6.8.1 backport, #428) while the flattened entries were edited separately (e.g. #500), so the two sources silently diverged — and several upstream style updates that the partials already contained never actually shipped.

This restores upstream's structure so future CSS ports are plain patches against the partials. Three commits, meant to be reviewed separately:

  1. Restore upstream sass structure — entries and partials synced verbatim from upstream ACF 6.8.5 (trunk's current parity level), including the previously missing _ai-admin.scss. Upstream has used the @use module system for these files since before 6.8.5; we now match it exactly.
  2. Strip commercial upsell CSS — SCF ships no licensing/upgrade UI, so upstream's commercial blocks are removed from the synced partials, each marked with an // SCF: comment for future ports: the pro-upgrade module, #acf-license-information panel, .acf-pro-inactive-license row states, WP Engine toolbar branding, and license page icons. Matches what SCF's shipped CSS already excluded.
  3. Preserve #499 UI: Align URL Field Globe Icon Inside the URL Input Box. #500 — the URL globe-icon centering re-applied to _fields.scss. Upstream adopts the identical change in ACF 6.8.6, so this deviation disappears at the next sync.

Shipped CSS changes

The built output is intentionally not byte-identical to trunk — the restructure fixes staleness bugs where shipped CSS had missed upstream updates (deltas vs trunk: acf-dark 0 lines, acf-input 34, acf-field-group 238, acf-global 670, all enumerated below):

  • Schema/GEO select2 dropdowns (schema-type/property/output-format-select-results) are now styled — they shipped completely unstyled despite the GEO feature being ported
  • Google Map toolbar buttons get their intended styling (missing since upstream 6.8.1)
  • Copyable field-key hover/copied affordances in list tables
  • ai_description field-group option gets the same width constraint as its siblings
  • Block-editor sidebar field notices use upstream's corrected margins
  • Field-object message settings and acf_post_type_supports selectors modernized to upstream's current form
  • Removed dead CSS for the old "Upgrade to Pro" gradient button (.acf-admin-toolbar-upgrade-btn) — no markup references it
  • The #acf-admin-tools h1 hide rule keeps upstream's :not(...) exception clause (functionally identical in SCF, which never renders those classes)

Verified: built CSS contains zero license-information / pro-inactive-license / wp-engine / upgrade-btn selectors.

Notes

  • The pro/ sass entries are untouched: upstream's PRO repo ships no sass sources, so there is nothing to align them to.
  • Two pre-existing sass deprecation warnings (darken() in upstream's own _global.scss) are left as-is to keep the partial verbatim.
  • This conflicts with Backport: ACF 6.8.6 changes #504's CSS commit; if this merges first, that commit can be replaced by a plain git apply of upstream's 6.8.6 _fields.scss patch — exactly the workflow this PR enables.

🤖 Generated with Claude Code

ockham and others added 3 commits July 16, 2026 18:11
SCF's four main sass entry files (acf-input, acf-global, acf-field-group,
acf-dark) had been flattened into compiled CSS with no imports, orphaning
the _*.scss partials. The partials kept receiving upstream syncs (e.g.
the 6.8.1 backport) while the flattened entries were edited separately,
so the two sources diverged and several upstream style updates never
shipped (schema-picker dropdowns, google-map toolbar buttons, copyable
field keys, ai_description option styling, and more).

Sync all entries and partials verbatim from upstream ACF 6.8.5 (trunk's
current parity level), adding the previously missing _ai-admin.scss.
Upstream has used the @use module system for these files since before
6.8.5, so future upstream CSS changes can now be ported as plain patches
to the partials.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SCF ships no licensing or upgrade UI, so remove upstream's commercial
blocks from the freshly synced partials, each marked with an "SCF:"
comment for future ports:

- acf-global.scss: drop the pro-upgrade module (entirely upsell UI)
- _updates.scss: license information panel (#acf-license-information)
- _list-table.scss: inactive-license row states (.acf-pro-inactive-license)
- _admin-toolbar.scss: upgrade nav, WP Engine logo and upsell pills
- _icons.scss: license page heading icon and selector references

This matches what SCF's shipped CSS already (correctly) excluded.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Re-apply #500 (vertically center the URL field globe icon), which the
flattened acf-input.scss carried but the stale partial lacked. Upstream
adopted the identical change in ACF 6.8.6, so this deviation disappears
with the next sync.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props bernhard-reiter.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Comment thread assets/src/sass/_field-picker.scss Outdated
ockham and others added 2 commits July 16, 2026 22:47
Follow-up to the upsell strip: remove ACF PRO styling that no SCF markup
or script can ever render, each marked with an "SCF:" comment:

- _field-picker.scss: .field-type-requires-pro chip (references
  pro-chip*.svg images that do not exist in SCF) and the
  .field-type-upgrade-to-unlock button; .acf-btn-pro dropped from a
  selector group
- _btn.scss: .acf-btn-pro gradient variant (the browse-fields-modal JS
  branch that would show it is permanently disabled in SCF)
- _global.scss, _acf-headerbar.scss, _field-group.scss: .acf-pro-label /
  .acf-pro-label-field-type badges
- _list-table.scss: .acf-options-pages-preview-upgrade-button and
  .acf-ui-options-page-pro-features-actions
- _admin-toolbar.scss: .acf-requires-pro pill and the PRO logo variant
  (.acf-logo.pro)

The only remaining "pro" references in built CSS are the inert
:not(.acf-field-group-pro-features-title...) exception clauses kept for
parity with upstream selectors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Nothing imports it since acf-global.scss stopped using the module: it is
492 lines of commercial upsell UI (header upgrade button, pro-features
metabox) contributing zero bytes to the built CSS. The comment in
acf-global.scss now notes the file is intentionally absent so future
ACF syncs don't reintroduce it by accident.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ockham

ockham commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

Two follow-up commits pushed after review of the remaining "pro" selectors in the built output:

  • 341e882 strips PRO-tier CSS the first upsell pass missed, none of which any SCF markup or script can render: the .field-type-requires-pro chip (its pro-chip*.svg images don't even exist in SCF), .field-type-upgrade-to-unlock / .acf-btn-pro (the JS branch showing them is permanently disabled), .acf-pro-label(-field-type), .acf-options-pages-preview-upgrade-button, .acf-ui-options-page-pro-features-actions, .acf-requires-pro, and the .acf-logo.pro variant. #acf-upgrade-notice stays — despite the name it's the database-upgrade notice.
  • 44a4860 deletes the now-orphaned _pro-upgrade.scss (492 lines, zero bytes in built CSS); the acf-global.scss comment marks the module as intentionally absent so future syncs don't reintroduce it.

The only "pro" references left in built CSS are the inert :not(.acf-field-group-pro-features-title…) exception clauses kept for selector parity with ACF.

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant