Commit Graph

110 Commits

Author SHA1 Message Date
Weston Ruter
f3e8e7735d Customize: Re-architect and harden panel/section UI logic.
Removes contents for sections and panels from being logically nested (in the DOM) in order to eliminate many issues related to using `margin-top` hacks. The element containing the link to expand the content element for panels and sections is now a sibling element to its content element: the content is removed from being nested at initialization. The content element is now available in a `contentContainer` property whereas the head element (containing the link to open the construct) is in a `headContainer` property. The existing `container` property is now a jQuery collection that contains both of these elements. Since the head element is no longer in an ancestor element to the `content` element, the `aria-owns` property is now used to maintain the relationship between the `headContainer` and the `contentContainer`. These changes are also accompanied by an improvement to the animation performance for the sliding panes.

Props delawski, celloexpressions.
Fixes #34391.
Fixes #34344.
Fixes #35947.


git-svn-id: https://develop.svn.wordpress.org/trunk@38648 602fd350-edb4-49c9-b593-d223f7449a82
2016-09-23 22:22:09 +00:00
Helen Hou-Sandi
683f7bc4d3 Customizer: Better hover/focus state for section titles and available widgets.
The 4px border pattern is found in a number of places across the admin, including plugins, notices, and Press This.

props celloexpressions, folletto, hugobaeta.
see #29158.



git-svn-id: https://develop.svn.wordpress.org/trunk@38602 602fd350-edb4-49c9-b593-d223f7449a82
2016-09-14 16:14:20 +00:00
Andrea Fercia
770a150b42 Accessibility: Make links in the Customizer underlined by default.
Links within lines or blocks of text should always be underlined since they can't
rely on color alone to be distinguished from the surrounding text. Exceptions
can be handled on a case-by-case basis.

Props Presskopp for the initial patch.
Fixes #37527.


git-svn-id: https://develop.svn.wordpress.org/trunk@38503 602fd350-edb4-49c9-b593-d223f7449a82
2016-09-01 22:01:44 +00:00
Weston Ruter
7105787ced Customize: Allow users to more seamlessly create page-based nav menus during customization.
Introduces the ability to create stubs for the various post types to add to a given menu. This eliminates the need to leave the customizer to first create the post in the admin and then return to managing menus. Only the title of the newly-created post can be supplied; the post content will be blank and will need to be provided in the normal edit post screen outside the customizer, unless a plugin enables a post editing in the customizer experience. When a post is created and added to a nav menu in the customizer, the newly created post that is added to a menu is given the `auto-draft` status, and if the changes are not published, the `auto-draft` post will be automatically deleted within 7 days via `wp_delete_auto_drafts()`. However, if the customizer changes are saved, then these nav menu item `auto-draft` post stubs will be transitioned to `publish`.

Includes portions of code from the Customize Posts <https://github.com/xwp/wp-customize-posts> and Front-end Editor <https://github.com/iseulde/wp-front-end-editor> plugins.

For more information, see https://make.wordpress.org/core/2016/06/16/feature-proposal-content-authorship-in-menus-with-live-preview/

Props celloexpressions, westonruter, valendesigns, afercia, melchoyce, mapk, iseulde, mrahmadawais.
Fixes #34923.


git-svn-id: https://develop.svn.wordpress.org/trunk@38436 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-29 22:58:32 +00:00
Helen Hou-Sandi
1e21bf9bf7 System fonts: Don't quote single-word font names, per our coding standards.
props ocean90, netweb.
see #36753.


git-svn-id: https://develop.svn.wordpress.org/trunk@38152 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-26 16:38:49 +00:00
Dominik Schilling
50007cf37d Customize: Fix panel indentation in Firefox.
In Firefox on Windows the menus and widgets panel weren't fully visible due to a miscalculation of the width of a panel, caused by a visible scrollbar.

Props wpfo.
Fixes #34622.

git-svn-id: https://develop.svn.wordpress.org/trunk@37984 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-06 11:31:22 +00:00
Weston Ruter
097b3ad595 Customize: Prevent image controls with selected images smaller than pane width from being distorted through stretching to fit width.
Props celloexpressions.
Fixes #37277.


git-svn-id: https://develop.svn.wordpress.org/trunk@37957 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-04 21:44:49 +00:00
Helen Hou-Sandi
265fabc1c4 Use numeric font weights instead of keywords.
When Open Sans was in use, the `300`, `400`, and `600` weights were loaded. `400` is the equivalent of `normal`; however, `bold` is equivalent to `700`, not `600`. With the move to system fonts, we need to be specific rather than relying on the lack of a `700` weight. Not all system fonts include a `600` weight; in those instances, they will use the `bold`/`700` weight.

The WordPress CSS Coding Standards have been updated accordingly.

props coderste.
see #36753.


git-svn-id: https://develop.svn.wordpress.org/trunk@37740 602fd350-edb4-49c9-b593-d223f7449a82
2016-06-17 18:36:03 +00:00
Peter Wilson
531ceb899e Customize: Run autoprefixer following [37476]
Adds prefixes to box-shadow and transition properties.

See #34893



git-svn-id: https://develop.svn.wordpress.org/trunk@37582 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-27 05:14:25 +00:00
Weston Ruter
c7ff79df64 Customize: Add setting validation model and control notifications to augment setting sanitization.
When a setting is invalid, not only will it be blocked from being saved but all other settings will be blocked as well. This ensures that Customizer saves aren't partial but are more transactional. User will be displayed the error in a notification so that they can fix and re-attempt saving.

PHP changes:

* Introduces `WP_Customize_Setting::validate()`, `WP_Customize_Setting::$validate_callback`, and the `customize_validate_{$setting_id}` filter.
* Introduces `WP_Customize_Manager::validate_setting_values()` to do validation (and sanitization) for the setting values supplied, returning a list of `WP_Error` instances for invalid settings.
* Attempting to save settings that are invalid will result in the save being blocked entirely, with the errors being sent in the `customize_save_response`. Modifies `WP_Customize_Manager::save()` to check all settings for validity issues prior to calling their `save` methods.
* Introduces `WP_Customize_Setting::json()` for parity with the other Customizer classes. This includes exporting of the `type`.
* Modifies `WP_Customize_Manager::post_value()` to apply `validate` after `sanitize`, and if validation fails, to return the `$default`.
* Introduces `customize_save_validation_before` action which fires right before the validation checks are made prior to saving.

JS changes:

* Introduces `wp.customize.Notification` in JS which to represent `WP_Error` instances returned from the server when setting validation fails.
* Introduces `wp.customize.Setting.prototype.notifications`.
* Introduces `wp.customize.Control.prototype.notifications`, which are synced with a control's settings' notifications.
* Introduces `wp.customize.Control.prototype.renderNotifications()` to re-render a control's notifications in its notification area. This is called automatically when the notifications collection changes.
* Introduces `wp.customize.settingConstructor`, allowing custom setting types to be used in the same way that custom controls, panels, and sections can be made.
* Injects a notification area into existing controls which is populated in response to the control's `notifications` collection changing. A custom control can customize the placement of the notification area by overriding the new `getNotificationsContainerElement` method.
* When a save fails due to setting invalidity, the invalidity errors will be added to the settings to then populate in the controls' notification areas, and the first such invalid control will be focused.

Props westonruter, celloexpressions, mrahmadawais.
See #35210.
See #30937.
Fixes #34893.


git-svn-id: https://develop.svn.wordpress.org/trunk@37476 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-20 21:09:40 +00:00
Helen Hou-Sandi
b34c03c5b0 System font: The stack does not work with the font shorthand property.
see #36753.


git-svn-id: https://develop.svn.wordpress.org/trunk@37442 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-17 01:44:36 +00:00
Weston Ruter
c1ec341ddb Customize: Clean up media control CSS.
Removes unnecessary wrapper elements and refactors class names to eliminate duplication of rule selectors.

Props celloexpressions.
Fixes #30618.


git-svn-id: https://develop.svn.wordpress.org/trunk@37426 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-12 20:22:45 +00:00
Helen Hou-Sandi
0671f3a8d3 Drop Open Sans in the admin in favor of system fonts.
Rejoice, for your admins will feel more native to your surrounding computing environment and likely load faster, especially when offline, as they no longer have to talk to The Google Overlord.

At the time of introduction in 3.8, there were not good system fonts common to all platforms at the time. In the years since, Windows, Android, OS X, iOS, Firefox OS, and various flavors of Linux have all gotten their own (good) system UI fonts.

There will definitely be visual bugs, mainly around alignment and spacing; these should be documented and reported on the ticket and fixed more atomically so that our current and future selves have a better understanding of what happened and why.

The style remains registered, as it is almost certainly in use by themes and plugins.

props mattmiklic.
see #36753.


git-svn-id: https://develop.svn.wordpress.org/trunk@37361 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-04 22:06:27 +00:00
Andrea Fercia
112337ce75 Accessibility: Customizer, improve UI controls in customize.php
- makes the mobile preview/customize toggle a button
- changes the "Close" link hidden text from 'Cancel' to 'Close the Customizer and go back to the previous page'
- adds a missing `type="button"` attribute
- removes unnecessary `keydown` events and `preventDefault()`: buttons don't need a keydown event and when they have a `type="button"` attribute there's no default action to prevent

Props Cheffheid, afercia.

Fixes #31487.

git-svn-id: https://develop.svn.wordpress.org/trunk@37230 602fd350-edb4-49c9-b593-d223f7449a82
2016-04-17 15:40:50 +00:00
Weston Ruter
43b9dedeea Customize: Prevent preview iframe from showing until fully loaded.
Fixes issue where the Customizer preview window can appear to momentarily bounce to the top when being refreshed. Regression from [36532].

See #31195.
Fixes #36276.


git-svn-id: https://develop.svn.wordpress.org/trunk@37060 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-23 00:52:20 +00:00
Andrea Fercia
474c7da237 Accessibility: Improve the color contrast ratio of the expandable panel "handles".
Fixes #35923.

git-svn-id: https://develop.svn.wordpress.org/trunk@36959 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-10 21:44:00 +00:00
Konstantin Obenland
326806a961 Customize: Reduce vertical space of site icon control.
Makes the control easier to find, reduces visual clutter, and is more
consistent with Customizer UI conventions.

Props celloexpressions.
Fixes #35943.


git-svn-id: https://develop.svn.wordpress.org/trunk@36907 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-09 21:18:53 +00:00
Andrea Fercia
7e71bb398c Accessibility: Reduce the WordPress shades of grey, Episode 3.
Also, removes some no more used CSS.

See #35783.

git-svn-id: https://develop.svn.wordpress.org/trunk@36904 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-09 19:50:28 +00:00
Andrea Fercia
d92e10fbb1 Customizer: Improve the collapsed view when switching to the responsive view.
Props rittesh.patel, afercia.

Fixes #35220.

git-svn-id: https://develop.svn.wordpress.org/trunk@36877 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-07 22:04:29 +00:00
Dominik Schilling (ocean90)
e5556666cc Themes: Bring the device preview from [31195] to the theme install previewer.
Props celloexpressions.
Fixes #36017.

git-svn-id: https://develop.svn.wordpress.org/trunk@36858 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-05 22:06:57 +00:00
Weston Ruter
084772af80 Customize: Eliminate unnecessary WP_Customize_Site_Logo_Control in favor of re-using WP_Customize_Image_Control.
* Removes double `margin-bottom` from all the media controls.
* All media controls now send `{settingId}-attachment-data` messages to the preview when a media setting is updated so that the preview has access to the attachment data.
* Fixes receiving of `attachment-data` message for `custom_logo` which resulted in instant JS-applied preview not working. See #36096.

See #33755.
Fixes #35941.


git-svn-id: https://develop.svn.wordpress.org/trunk@36851 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-04 23:46:07 +00:00
Konstantin Obenland
43ff969765 Customize: Site logos are custom logos.
Brings the nomenclature closer to custom headers and backgrounds.

See https://wordpress.slack.com/archives/core/p1456955151003150
See #35945. 


git-svn-id: https://develop.svn.wordpress.org/trunk@36837 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-03 19:55:15 +00:00
Weston Ruter
fd8ed4e673 Customize: Fix visibility of preview in iOS.
Removes CSS rule added in [21014] that is now obsolete. 

Props adamsilverstein.
See #20805.
Fixes #35875.


git-svn-id: https://develop.svn.wordpress.org/trunk@36804 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-02 18:21:21 +00:00
Konstantin Obenland
b73a1c9aa9 Customize: Introduce Logo support for themes.
Allows a common theme feature to have a common implementation provided by core and available in a consistent location for users.
See https://make.wordpress.org/core/2016/02/24/theme-logo-support/

Props kwight, enejb, jeherve, bhubbard, samhotchkiss, zinigor, eliorivero, adamsilverstein, melchoyce, ryan, mikeschroder, westonruter, pento, karmatosed, celloexpressions, obenland. 
See #33755.



git-svn-id: https://develop.svn.wordpress.org/trunk@36698 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-24 22:09:54 +00:00
Dominik Schilling (ocean90)
7e16474308 Customizer: Add visual feedback to reorder buttons.
Props coreymcollins, melchoyce.
Fixes #35041.

git-svn-id: https://develop.svn.wordpress.org/trunk@36641 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-23 17:53:40 +00:00
Dominik Schilling (ocean90)
ccaa888386 Customizer: Contain "No image set/selected" in dashed border.
Props Ankit K Gupta, chris_dev.
Fixes #35826.

git-svn-id: https://develop.svn.wordpress.org/trunk@36639 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-23 17:26:58 +00:00
Andrea Fercia
bd6fc729e9 Accessibility: Reduce the WordPress shades of grey, Episode 2.
See #35783.

git-svn-id: https://develop.svn.wordpress.org/trunk@36582 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-18 22:29:29 +00:00
Dominik Schilling (ocean90)
3921eb53ea Autoprefixer for [36532].
See #31195.

git-svn-id: https://develop.svn.wordpress.org/trunk@36548 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-17 15:38:04 +00:00
Weston Ruter
6dd1dd61a1 Customize: Add a user-friendly way to preview site responsiveness for desktop, tablet, and mobile.
Introduces `WP_Customize_Manager::get_previewable_devices()` with a `customize_previewable_devices` filter to change the default device and which devices are available for previewing. This is a feature that was first pioneered on WordPress.com.

Props celloexpressions, folletto, valendesigns, westonruter, welcher, adamsilverstein, michaelarestad, Fab1en.
Fixes #31195.


git-svn-id: https://develop.svn.wordpress.org/trunk@36532 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-16 01:56:13 +00:00
Andrea Fercia
d4af1b036e Customizer: Aggregate similar CSS rules.
Fixes #34333.

git-svn-id: https://develop.svn.wordpress.org/trunk@36291 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-13 22:35:05 +00:00
Weston Ruter
b1bea5bf5c Customize: Ensure multi-line label alignment for checkbox/radio inputs on both desktop and mobile.
Follow-up to [35608].

Props bordoni, delawski.
Fixes #34607.


git-svn-id: https://develop.svn.wordpress.org/trunk@35643 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-16 04:43:16 +00:00
Helen Hou-Sandi
6f1bb2ab67 Buttons: Standardize on .button-link for link-like buttons.
This serves as both a reset and some basic styling. The class name also aligns with parallel components in other popular projects.

props paulwilde for the initial patch.
fixes #34242.


git-svn-id: https://develop.svn.wordpress.org/trunk@35636 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-13 15:46:12 +00:00
Weston Ruter
c854c33f82 Customize: Prevent multi-line checkbox control labels from wrapping under checkbox.
Props bordoni.
Fixes #34607.


git-svn-id: https://develop.svn.wordpress.org/trunk@35608 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-11 09:36:53 +00:00
Drew Jaynes
74b68afa3f Customizer: Adjust styles on panel titles to prevent descenders – such as with the letters g, j, p, q, or y – from getting cut off in some browsers.
Props umeshnevase.
Fixes #33575.


git-svn-id: https://develop.svn.wordpress.org/trunk@35511 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-04 18:52:13 +00:00
Weston Ruter
bde89adaf8 Customizer: Introduce customize_loaded_components filter to allow core components to be disabled.
Also move style rule from `customize-nav-menus.css` to `customize-controls.css` so that widgets button is properly styled when `nav_menus` component is excluded from loading. See [35304]. See #33327.

Props westonruter, DrewAPicture.
Fixes #33552.


git-svn-id: https://develop.svn.wordpress.org/trunk@35307 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-20 22:15:11 +00:00
Andrea Fercia
8774b40dc8 Customizer: Make the widgets "Reorder" and "Add a Widget" buttons... buttons.
For accessibility, UI controls should preferably be native controls. Adds
ARIA attributes and labels to improve accessibility and pair these buttons
with the ones in the Menu Customizer.

Props obenland, TomHarrigan, sanket.parmar, metodiew, afercia.

Fixes #33327.

git-svn-id: https://develop.svn.wordpress.org/trunk@35304 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-20 20:14:51 +00:00
Weston Ruter
370057b5d7 Customizer: Always show Widgets panel initially if sidebars are registered; show notice to users in panel if no widget areas are in current preview.
Widgets panel will not wait to display until the preview loads.

Also fixes problems with `margin-top` in panels where other panels' `active` states change, as well as ensuring sections of deactivated panel collapse before panel is hidden to prevent the pane from becoming empty of controls.

Fixes #33052.
Fixes #33567.


git-svn-id: https://develop.svn.wordpress.org/trunk@35231 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-16 23:47:56 +00:00
Scott Taylor
b8e30f3ec7 Dashicons CSS: one-word font families don't need quotes. Font families with a space in the name should use double-quotes (doesn't apply here).
Props afercia.
Fixes #32866.


git-svn-id: https://develop.svn.wordpress.org/trunk@33912 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-05 19:56:15 +00:00
Sergey Biryukov
dfceba6d05 Provide more helpful feedback than just "Cheatin' uh?" for permission errors in wp-admin/js/customize-controls.js.
fixes #33685. see #14530.

git-svn-id: https://develop.svn.wordpress.org/trunk@33902 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-04 03:39:33 +00:00
Dominik Schilling (ocean90)
3f7b1ca2ff Customizer: Remove obsolete .control-panel-back and .customize-overlay-close buttons.
props afercia, ocean90.
see #31336.
fixes #33229.

git-svn-id: https://develop.svn.wordpress.org/trunk@33599 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-09 18:59:34 +00:00
Konstantin Obenland
63395e7652 Customizer: Improve focus styles for screen option and help toggles.
Props ocean90.
See #33181.



git-svn-id: https://develop.svn.wordpress.org/trunk@33510 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-29 23:24:17 +00:00
Helen Hou-Sandi
c40301f1a0 Customizer: Ensure consistent margins in sections.
Since the customizer dynamically changes, `nth-child` selectors are not always a great idea.

props afercia.
fixes #32902.


git-svn-id: https://develop.svn.wordpress.org/trunk@33297 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-16 19:14:31 +00:00
Weston Ruter
d9fcddae25 Customizer: Hide the transport list when it's empty, especially for screen readers.
Also prevent invalid markup for `.customize-section-description`.

Props valendesigns.
Fixes #32843.


git-svn-id: https://develop.svn.wordpress.org/trunk@33282 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-15 19:58:42 +00:00
Konstantin Obenland
68cd0bc870 Site Icon: Add Customizer UI.
Second part of the Site Icon feature after [32994] introduced it for Settings.

Props celloexpressions.
See #16434.



git-svn-id: https://develop.svn.wordpress.org/trunk@33154 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-10 21:32:23 +00:00
Dominik Schilling (ocean90)
0730240b9a Customizer: Use a <button> for the collapse sidebar … button.
props afercia.
fixes #32819.

git-svn-id: https://develop.svn.wordpress.org/trunk@33153 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-10 21:21:07 +00:00
Dominik Schilling (ocean90)
cf6504c787 Customizer: Use the new dashicon for the Preview/Customize toggle in narrow screens.
see #30902, #28784.

git-svn-id: https://develop.svn.wordpress.org/trunk@33150 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-09 21:04:36 +00:00
Dominik Schilling (ocean90)
e430245d00 Customizer: Accessibility enhancements.
* Move tabindex/focus code into `onChangeExpanded` so that it works for cases where `expand()` is called directly.
* Use `visibility: hidden` to hide hidden elements from keyboard focus and screen readers.

props celloexpressions.
fixes #31336.

git-svn-id: https://develop.svn.wordpress.org/trunk@33069 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-03 20:18:17 +00:00
Helen Hou-Sandi
b896a4e31b Customizer: Build flips the panel arrow for RTL on our behalf.
see #31336.


git-svn-id: https://develop.svn.wordpress.org/trunk@33045 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-02 01:28:43 +00:00
Dominik Schilling (ocean90)
71cdd9a3e1 Customizer: Revert the blue on hover color which was introduced in [32649].
Blue is meant to be the primary action which isn't the case in this context. Colors need to be revised in #29158. 

see #31336.

git-svn-id: https://develop.svn.wordpress.org/trunk@32823 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-17 21:07:01 +00:00
Dominik Schilling (ocean90)
2481eec41d Customizer: Replace usage of calc() with box-sizing: border-box.
IE8 doesn't support `calc()`.

props afercia.
see #31336.
fixes #32664.

git-svn-id: https://develop.svn.wordpress.org/trunk@32821 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-17 19:34:44 +00:00