[wp-trac] [WordPress Trac] #38426: Twenty Seventeen: Improve user and developer experience with the customizer integration

WordPress Trac noreply at wordpress.org
Sun Oct 23 04:24:32 UTC 2016

#38426: Twenty Seventeen: Improve user and developer experience with the customizer
 Reporter:  celloexpressions                     |       Owner:
     Type:  defect (bug)                         |      Status:  new
 Priority:  normal                               |   Milestone:  4.7
Component:  Bundled Theme                        |     Version:  trunk
 Severity:  normal                               |  Resolution:
 Keywords:  has-patch dev-feedback needs-        |     Focuses:  ui
  testing ui-feedback ux-feedback                |

Comment (by celloexpressions):

 Thanks for going through each change with comments! See my responses

 Replying to [comment:8 davidakennedy]:
 > Replying to [comment:1 celloexpressions]:
 > > - Remove the generic "Theme Options" panel. Per the official
 documentation (within a `strong`), themes should avoid adding panels.
 There is no need to group multiple sections into a context here, because:
 > > - Condense front page panel controls into a single section. Per the
 documentation, sections should generally contain multiple controls. The
 purpose of sections is to group multiple, related controls together. These
 controls all serve the same purpose, so they should be shown within a
 single section. This also makes it clearer within the controls pane how
 the different sections relate to each other.
 > > - Place the "Front Page Sections" section directly after the static
 front page section, since they're related.
 > This part seems problematic –  the change in location of the layout
 control and front page sections. It's what I've meant by not waiting to
 make huge UI changes. I agree with you that the sections themselves should
 not be separate panels – especially since the Customizer documentation
 advises against it.
 > However, moving everything to the top level creates problems in my mind.
 > 1. The options have a potential to become muddled if more Core options
 are added in the future.
 > 2. A user has no way of knowing they're specific to the theme. I don't
 think Twenty Eleven is a good example here because, if I remember
 correctly, its Customizer options were added after the fact and tried to
 mimic its options page. Grouping the options under Theme Options makes
 sense and bundling the sections with page layout, combined with the active
 callbacks should make sure only the relevant options show.

 I understand these points and they are issues, but they're actually much
 broader than this theme. The first thing to note is that in most cases
 this change will still leave only one top-level element added by the theme
 (and in many views there will be no top-level elements). I'd also propose
 not applying the layout option to the front page since it's a bit
 confusing in addition to the custom sections, which would mean there's
 only ever one at a time.

 In terms of separating theme-specific options from theme-agnostic options,
 the customizer traditionally intermixes these. Custom logo, header,
 background, and often color options are all theme-specific but not nested
 in anything indicating that they're theme-specific. All of the past core
 user testing for the customizer tends to be done with themes following the
 de-facto standard - sections labeled by their purpose (colors, layout,
 featured content, etc.). Because all of the core options follow this
 approach, grouping by purpose as opposed to source, the default theme
 should do the same.

 There is potential to re-think how it works in core, potentially even
 moving to a strategy where ''everything'' is grouped into panels, and all
 theme options need to be in the same place (including things that use
 `add_theme_support`). It's worth going back through the history here -
 #27406, #27591, #28979, #29172 (for order), #29173, #29197, #31336. Panels
 were originally a subclass of the section object, but later became
 distinct object (all in 4.0). I'll note as part of that that sections and
 panels had completely different "opening" actions at the time panels were
 introduced, and because the objects are entirely separate objects, there
 is potential to revisit distinct UIs for these when the customizer UI is
 reimagined in the future. The previous UI reinforced the notion that
 panels are distinct contexts whereas sections are UI containers for
 organizing controls; the current UI causes that to become more confused.
 As it is, custom sections and panels can use different UIs anyway, with
 the themes panel and sections being a good example in core. Bottom line,
 the current best practice and core behavior is to use sections describing
 their contents specifically; Twenty Seventeen should respond accordingly,
 but know that core will likely restruture things in the future.

 As a brief aside to that point, there's a pretty good chance that the
 entire thing that we currently know as the "customizer" will be completely
 re-imagined in terms of UI and UX as a front-end-native live-preview
 framework that facilitates managing a majority of a site (including
 content), in the next year or so. It would likely continue to use the
 customize API and inherit all of the theme and plugin integrations there,
 but it's especially important that themes avoid making decisions related
 to the specific way the different core customize UI objects are displayed
 since they're subject to significantly change over time.

 > > - Integrate with the ability to create pages from a dropdown-pages
 control in #38164.
 > This makes sense to do only if that ticket gets in. Otherwise, let's
 Fortunately, this is a one-line change with no impact if the core change
 doesn't happen. However, I'm pretty confident the core change is ready to

 > > - Remove the fancy borders styling for front page sections in the
 preview. This prevents users from previewing an accurate representation of
 the design within the customizer, and seems like something that's intended
 to be on the frontend as a design element. Visual edit icons should
 provide a nice alternative.
 > > - Adjust the styling for placeholders for panels that aren't active.
 Show the placeholders when the front page section is expanded. This shows
 the placeholder title (which feels more native to the theme design) and an
 edit icon when appropriate, but hides the placeholders when not explicitly
 working on the front page sections. This also allows us to simplify the
 CSS and improve readability there.
 > I don't mind iterating on the design of the placeholders. However, this
 change goes too far in the other direction for me. It looks exactly like
 content to me. Content that might be displayed on the front end. Part of
 the reason of the bold border colors was to provide an idea of "this is
 temporary" to users. We could probably remove the borders after a page is
 selected and base it on a timer – so users see it, but then know it won't
 show up on the front end. Can we split out these changes to another
 ticket? That way, it doesn't hold up any improvements here.
 Another idea I got as I was iterating on the approach was to only show the
 borders when the front page section is open, similarly to how the
 placeholders are only shown with the front page section (as part of the
 placeholder). What about adding that back in, then iterating on the
 colors/style (per @karmatosed) on #38399? The current approach still reads
 like a design element to me, not something that's only shown when you're
 customizing it. But only showing it when you're working on the UI might be
 a nice intermediate approach. My biggest issue with the borders, and the
 reason they're removed in the initial pass, is that the implementation in
 `:before` prevents users from interacting with the contents of the panel
 within the preview; in a default theme that's concerning as it may cause
 new users to think they can't interact with the preview and navigate their
 site within the customizer.

 Also, I don't think the borders were showing before something was selected
 in a given section, but that may have been a bug. Either way, we should
 continue iterating on the placeholders. Some changes (especially with the
 JS) are coupled directly with the other changes here but I'd expect
 further iterations on the other ticket. Another idea I had was to add a
 link to add front page sections within the static front page section, but
 I left it out for now for simplicity.

Ticket URL: <https://core.trac.wordpress.org/ticket/38426#comment:10>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list