WordPress/wp-includes/css/buttons.css

272 lines
7.0 KiB
CSS
Raw Normal View History

/* ----------------------------------------------------------------------------
WordPress-style Buttons
=======================
Create a button by adding the `.button` class to an element. For backwards
compatibility, we support several other classes (such as `.button-secondary`),
but these will *not* work with the stackable classes described below.
Button Styles
-------------
To display a primary button style, add the `.button-primary` class to a button.
Button Sizes
------------
Adjust a button's size by adding the `.button-large` or `.button-small` class.
Button States
-------------
Lock the state of a button by adding the name of the pseudoclass as
an actual class (e.g. `.hover` for `:hover`).
TABLE OF CONTENTS:
------------------
1.0 - Button Layouts
2.0 - Default Button Style
3.0 - Primary Button Style
4.0 - Button Groups
---------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------------
1.0 - Button Layouts
---------------------------------------------------------------------------- */
.wp-core-ui .button,
.wp-core-ui .button-primary,
.wp-core-ui .button-secondary {
display: inline-block;
text-decoration: none;
font-size: 13px;
line-height: 26px;
height: 28px;
margin: 0;
padding: 0 10px 1px;
cursor: pointer;
border-width: 1px;
border-style: solid;
-webkit-border-radius: 3px;
-webkit-appearance: none;
border-radius: 3px;
white-space: nowrap;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* Remove the dotted border on :focus and the extra padding in Firefox */
.wp-core-ui button::-moz-focus-inner,
.wp-core-ui input[type="reset"]::-moz-focus-inner,
.wp-core-ui input[type="button"]::-moz-focus-inner,
.wp-core-ui input[type="submit"]::-moz-focus-inner {
border-width: 1px 0;
border-style: solid none;
border-color: transparent;
padding: 0;
}
.wp-core-ui .button.button-large,
.wp-core-ui .button-group.button-large .button {
height: 30px;
line-height: 28px;
padding: 0 12px 2px;
}
.wp-core-ui .button.button-small,
.wp-core-ui .button-group.button-small .button {
height: 21px;
line-height: 20px;
padding: 0 8px 1px;
}
.wp-core-ui .button.button-hero,
.wp-core-ui .button-group.button-hero .button {
Streamlining media, part I. The main goal here is to rearrange the media components in a modularized structure to support more linear workflows. This is that structure using the pre-existing workflows, which will be improved over the course of the next few commits. This leaves a few pieces a bit rough around the edges: namely gallery editing and selecting a featured image. The fine print follows. ---- '''Styles''' * Tightened padding around the modal to optimize for a smaller default screen size. * Added a light dashed line surrounding the modal to provide a subtle cue for the persistent dropzone (which is evolving into a power user feature since we now have a dedicated `upload` state). * Add a size for `hero` buttons. * Remove transitions from frame subviews (e.g. menu, content, sidebar, toolbar). ---- '''Code''' `wp.media.controller.StateManager` * Don't fire `activate` and `deactivate` if attempting to switch to the current state. `wp.media.controller.State` * Add a base state class to bind default methods (as not all states will inherit from the `Library` state). * On `activate`, fire `activate()`, `menu()`, `content()`, `sidebar()`, and `toolbar()`. * The menu view is often a shared object (as its most common use case is switching between states). Assign the view to the state's `menu` attribute. * `menu()` automatically fetches the state's `menu` attribute, attaches the menu view to the frame, and attempts to select a menu item that matches the state's `id`. `wp.media.controller.Library` * Now inherits from `wp.media.controller.State`. `wp.media.controller.Upload` * A new state to improve the upload experience. * Displays a large dropzone when empty (a `UploaderInline` view). * When attachments are uploaded, displays management interface (a `library` state restricted to attachments uploaded during the current session). `wp.media.view.Frame` * In `menu()`, `content()`, `sidebar()`, and `toolbar()`, only change the view if it differs from the current view. Also, ensure `hide-*` classes are properly removed. * `wp.media.view.PriorityList` * A new container view used to sort and render child views by the `priority` property. * Used by `wp.media.view.Sidebar` and `wp.media.view.Menu`. * Next step: Use two instances to power `wp.media.view.Toolbar`. `wp.media.view.Menu` and `wp.media.view.MenuItem` * A new `PriorityList` view that renders a list of views used to switch between states. * `MenuItem` instances have `id` attributes that are tied directly to states. * Separators can be added as plain `Backbone.View` instances with the `separator` class. * Supports any type of `Backbone.View`. `media.view.Menu.Landing` * The landing menu for the 'insert media' workflow. * Includes an inactive link to an "Embed from URL" state. * Next steps: only use in select cases to allot for other workflows (such as featured images). `wp.media.view.AttachmentsBrowser` * A container to render an `Attachments` view with accompanying UI controls (similar to what the `Attachments` view was when it contained the `$list` property). * Currently only renders a `Search` view as a control. * Next steps: Add optional view counts (e.g. "21 images"), upload buttons, and collection filter UI. `wp.media.view.Attachments` * If the `Attachments` scroll buffer is not filled with `Attachment` views, continue loading more attachments. * Use `this.model` instead of `this.controller.state()` to allow `Attachments` views to have differing `edge` and `gutter` properties. * Add `edge()`, a method used to calculate the optimal dimensions for an attachment based on the current width of the `Attachments` container element. * `edge()` is currently only enabled on resize, as the relative positioning and CSS transforms used to center thumbnails are suboptimal when coupled with frequent resizing. * Next steps: For infinite scroll performance improvements, look into absolutely positioning attachment views and paging groups of attachment views. `wp.media.view.UploaderWindow` * Now generates a `$browser` element as the browse button (instead of a full `UploaderInline` view). Using a portable browse button prevents us from having to create a new `wp.Uploader` instance every time we want access to a browse button. `wp.media.view.UploaderInline` * No longer directly linked to the `UploaderWindow` view or its `wp.Uploader` instance. * Used as the default `upload` state view. `wp.media.view.Selection` * An interactive representation of the selected `Attachments`. * Based on the improved workflows, this is likely overkill. For simplicity's sake, will probably remove this in favor of `SelectionPreview`. ---- see #21390. git-svn-id: http://core.svn.wordpress.org/trunk@22362 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-04 23:59:12 +01:00
font-size: 14px;
height: 46px;
line-height: 44px;
padding: 0 36px;
}
.wp-core-ui .button:active {
outline: none;
}
.wp-core-ui .button.hidden {
display: none;
}
/* Style Reset buttons as simple text links */
.wp-core-ui input[type="reset"],
.wp-core-ui input[type="reset"]:hover,
.wp-core-ui input[type="reset"]:active,
.wp-core-ui input[type="reset"]:focus {
background: none;
border: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
padding: 0 2px 1px;
width: auto;
}
/* ----------------------------------------------------------------------------
2.0 - Default Button Style
---------------------------------------------------------------------------- */
.wp-core-ui .button,
.wp-core-ui .button-secondary {
color: #555;
border-color: #cccccc;
background: #f7f7f7;
-webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
vertical-align: top;
}
.wp-core-ui .button.hover,
.wp-core-ui .button:hover,
.wp-core-ui .button-secondary:hover,
.wp-core-ui .button.focus,
.wp-core-ui .button:focus,
.wp-core-ui .button-secondary:focus {
background: #fafafa;
border-color: #999;
color: #222;
}
.wp-core-ui .button.focus,
.wp-core-ui .button:focus,
.wp-core-ui .button-secondary:focus {
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
box-shadow: 1px 1px 1px rgba(0,0,0,.2);
}
.wp-core-ui .button.active,
.wp-core-ui .button.active:hover,
.wp-core-ui .button.active:focus,
.wp-core-ui .button:active,
.wp-core-ui .button-secondary:active {
background: #eee;
border-color: #999;
color: #333;
-webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
}
/* this creates an inset effect on the text */
.wp-core-ui .button:active {
padding-top: 1px;
}
.wp-core-ui .button[disabled],
.wp-core-ui .button:disabled,
.wp-core-ui .button-secondary[disabled],
.wp-core-ui .button-secondary:disabled,
.wp-core-ui .button-disabled {
color: #aaa !important;
border-color: #ddd !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
text-shadow: 0 1px 0 #fff !important;
cursor: default;
}
/* ----------------------------------------------------------------------------
3.0 - Primary Button Style
---------------------------------------------------------------------------- */
.wp-core-ui .button-primary {
background: #2ea2cc;
border-color: #0074a2;
-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
color: #fff;
text-decoration: none;
}
.wp-core-ui .button-primary.hover,
.wp-core-ui .button-primary:hover,
.wp-core-ui .button-primary.focus,
.wp-core-ui .button-primary:focus {
background: #1e8cbe;
border-color: #0074a2;
-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
color: #fff;
}
.wp-core-ui .button-primary.focus,
.wp-core-ui .button-primary:focus {
border-color: #0e3950;
-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
}
.wp-core-ui .button-primary.active,
.wp-core-ui .button-primary.active:hover,
.wp-core-ui .button-primary.active:focus,
.wp-core-ui .button-primary:active {
background: #1e8cbe;
border-color: #005684;
color: rgba(255,255,255,0.95);
-webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
vertical-align: top;
}
/* this creates an inset effect on the text */
.wp-core-ui .button-primary:active {
padding-top: 1px;
}
.wp-core-ui .button-primary[disabled],
.wp-core-ui .button-primary:disabled,
.wp-core-ui .button-primary-disabled {
color: #94cde7 !important;
background: #298cba !important;
border-color: #1b607f !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
text-shadow: 0 -1px 0 rgba(0,0,0,0.1) !important;
cursor: default;
}
/* ----------------------------------------------------------------------------
4.0 - Button Groups
---------------------------------------------------------------------------- */
.wp-core-ui .button-group {
position: relative;
display: inline-block;
white-space: nowrap;
font-size: 0;
vertical-align: middle;
}
.wp-core-ui .button-group > .button {
display: inline-block;
border-radius: 0;
margin-right: -1px;
z-index: 10;
}
.wp-core-ui .button-group > .button-primary {
z-index: 100;
}
.wp-core-ui .button-group > .button:hover {
z-index: 20;
}
.wp-core-ui .button-group > .button:first-child {
border-radius: 3px 0 0 3px;
}
.wp-core-ui .button-group > .button:last-child {
border-radius: 0 3px 3px 0;
}