Skip to content

Commit 202ddd0

Browse files
committed
Button: Removed ui-button-text-icon class. Added ui-button-text-icon-primary and ui-button-text-icon-secondary classes. Fixed #5382 - Button: specifying only a secondary icon for the button widget locates the icon on the left
1 parent e815e7c commit 202ddd0

File tree

4 files changed

+67
-39
lines changed

4 files changed

+67
-39
lines changed

tests/static/button/default.html

+56-25
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,34 @@ <h2>Using button elements</h2>
2323
</button>
2424

2525
<button class="ui-button ui-button-icon-only ui-widget ui-state-default ui-corner-all" title="Button">
26-
<span class="ui-button-icon-primary ui-icon ui-icon-locked"></span>
27-
<span class="ui-button-text">Button</span>
26+
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
27+
<span class="ui-button-text">Primary icon</span>
2828
</button>
29-
30-
<button class="ui-button ui-button-text-icon ui-widget ui-state-default ui-corner-all">
31-
<span class="ui-button-icon-primary ui-icon ui-icon-locked"></span>
32-
<span class="ui-button-text">Button</span>
29+
30+
<button class="ui-button ui-button-icon-only ui-widget ui-state-default ui-corner-all" title="Button">
31+
<span class="ui-button-text">Secondary icon</span>
32+
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
33+
</button>
34+
35+
<button class="ui-button ui-button-text-icon-primary ui-widget ui-state-default ui-corner-all">
36+
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
37+
<span class="ui-button-text">Primary icon</span>
38+
</button>
39+
40+
<button class="ui-button ui-button-text-icon-secondary ui-widget ui-state-default ui-corner-all">
41+
<span class="ui-button-text">Secondary icon</span>
42+
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
3343
</button>
3444

3545
<button class="ui-button ui-button-text-icons ui-widget ui-state-default ui-corner-all">
3646
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
37-
<span class="ui-button-text">Button</span>
47+
<span class="ui-button-text">Both icons</span>
3848
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
3949
</button>
4050

4151
<button class="ui-button ui-button-icons-only ui-widget ui-state-default ui-corner-all">
4252
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
43-
<span class="ui-button-text">Button</span>
53+
<span class="ui-button-text">No text</span>
4454
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
4555
</button>
4656
</div>
@@ -53,24 +63,34 @@ <h2>Using anchor elements</h2>
5363
</a>
5464

5565
<a href="#" class="ui-button ui-button-icon-only ui-widget ui-state-default ui-corner-all" title="Button">
56-
<span class="ui-button-icon-primary ui-icon ui-icon-locked"></span>
57-
<span class="ui-button-text">Button</span>
66+
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
67+
<span class="ui-button-text">Primary icon</span>
5868
</a>
5969

60-
<a href="#" class="ui-button ui-button-text-icon ui-widget ui-state-default ui-corner-all">
61-
<span class="ui-button-icon-primary ui-icon ui-icon-locked"></span>
62-
<span class="ui-button-text">Button</span>
70+
<a href="#" class="ui-button ui-button-icon-only ui-widget ui-state-default ui-corner-all" title="Button">
71+
<span class="ui-button-text">Secondary icon</span>
72+
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
73+
</a>
74+
75+
<a href="#" class="ui-button ui-button-text-icon-primary ui-widget ui-state-default ui-corner-all">
76+
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
77+
<span class="ui-button-text">Primary icon</span>
78+
</a>
79+
80+
<a href="#" class="ui-button ui-button-text-icon-secondary ui-widget ui-state-default ui-corner-all">
81+
<span class="ui-button-text">Secondary icon</span>
82+
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
6383
</a>
6484

6585
<a href="#" class="ui-button ui-button-text-icons ui-widget ui-state-default ui-corner-all">
6686
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
67-
<span class="ui-button-text">Button</span>
87+
<span class="ui-button-text">Both icons</span>
6888
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
6989
</a>
7090

7191
<a href="#" class="ui-button ui-button-icons-only ui-widget ui-state-default ui-corner-all">
7292
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
73-
<span class="ui-button-text">Button</span>
93+
<span class="ui-button-text">No text</span>
7494
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
7595
</a>
7696
</div>
@@ -85,24 +105,34 @@ <h2>Using label elements (used when proxying to radio or check inputs)</h2>
85105
</label>
86106

87107
<label class="ui-button ui-button-icon-only ui-widget ui-state-default ui-corner-all" title="Button">
88-
<span class="ui-button-icon-primary ui-icon ui-icon-locked"></span>
89-
<span class="ui-button-text">Button</span>
108+
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
109+
<span class="ui-button-text">Primary icon</span>
90110
</label>
91111

92-
<label class="ui-button ui-button-text-icon ui-widget ui-state-default ui-corner-all">
93-
<span class="ui-button-icon-primary ui-icon ui-icon-locked"></span>
94-
<span class="ui-button-text">Button</span>
112+
<label class="ui-button ui-button-icon-only ui-widget ui-state-default ui-corner-all" title="Button">
113+
<span class="ui-button-text">Secondary icon</span>
114+
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
115+
</label>
116+
117+
<label class="ui-button ui-button-text-icon-primary ui-widget ui-state-default ui-corner-all">
118+
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
119+
<span class="ui-button-text">Primary icon</span>
120+
</label>
121+
122+
<label class="ui-button ui-button-text-icon-secondary ui-widget ui-state-default ui-corner-all">
123+
<span class="ui-button-text">Secondary icon</span>
124+
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
95125
</label>
96126

97127
<label class="ui-button ui-button-text-icons ui-widget ui-state-default ui-corner-all">
98128
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
99-
<span class="ui-button-text">Button</span>
129+
<span class="ui-button-text">Both icons</span>
100130
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
101131
</label>
102132

103133
<label class="ui-button ui-button-icons-only ui-widget ui-state-default ui-corner-all">
104134
<span class="ui-button-icon-primary ui-icon ui-icon-gear"></span>
105-
<span class="ui-button-text">Button</span>
135+
<span class="ui-button-text">No text</span>
106136
<span class="ui-button-icon-secondary ui-icon ui-icon-triangle-1-s"></span>
107137
</label>
108138
</div>
@@ -111,9 +141,10 @@ <h2>Using label elements (used when proxying to radio or check inputs)</h2>
111141
<h2>Button Sets</h2>
112142

113143
<div class="ui-buttonset">
114-
<button class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-left"><span class="ui-button-text">Simple button</span></button>
115-
<button class="ui-button ui-button-text-only ui-widget ui-state-default"><span class="ui-button-text">Simple button</span></button>
116-
<button class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-right"><span class="ui-button-text">Simple button</span></button>
144+
<button class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-left"><span class="ui-button-text">First</span></button>
145+
<button class="ui-button ui-button-text-only ui-widget ui-state-default"><span class="ui-button-text">Middle</span></button>
146+
<button class="ui-button ui-button-text-only ui-widget ui-state-default"><span class="ui-button-text">Middle</span></button>
147+
<button class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-right"><span class="ui-button-text">Last</span></button>
117148
</div>
118149

119150

tests/visual/button/button.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@
5858
<div>
5959
With icon
6060
<button class="{button:{icons:{primary:'ui-icon-locked'},text:false}}">Button with icon only</button>
61-
<button class="{button:{icons:{primary:'ui-icon-locked'}}}">Button with icon on the left</button>
62-
<button class="{button:{icons:{primary:'ui-icon-gear',secondary:'ui-icon-triangle-1-s'}}}">Button with two icons</button>
63-
<button class="{button:{icons:{secondary:'ui-icon-triangle-1-s'}}}">Button with text and secondary icon</button>
61+
<button class="{button:{icons:{primary:'ui-icon-locked'}}}">Primary icon</button>
62+
<button class="{button:{icons:{secondary:'ui-icon-triangle-1-s'}}}">Secondary icon</button>
63+
<button class="{button:{icons:{primary:'ui-icon-gear',secondary:'ui-icon-triangle-1-s'}}}">Both icons</button>
6464
<button class="{button:{icons:{primary:'ui-icon-gear',secondary:'ui-icon-triangle-1-s'},text:false}}">Button with two icons and no text</button>
6565
</div>
6666
</div>

themes/base/jquery.ui.button.css

+5-8
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,17 @@ button.ui-button-icons-only { width: 3.7em; }
1111
.ui-button .ui-button-text { display: block; line-height: 1.4; }
1212
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
1313
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
14-
.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
14+
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
15+
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
1516
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
1617
/* no icon support for input elements, provide padding by default */
1718
input.ui-button { padding: .4em 1em; }
1819

1920
/*button icon element(s) */
20-
.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
21+
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
2122
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
22-
.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
23+
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
24+
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
2325
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
2426

2527
/*button sets*/
@@ -28,8 +30,3 @@ input.ui-button { padding: .4em 1em; }
2830

2931
/* workarounds */
3032
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
31-
32-
33-
34-
35-

ui/jquery.ui.button.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
var lastActive,
1717
baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
1818
stateClasses = "ui-state-hover ui-state-active ",
19-
typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only",
19+
typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
2020
formResetHandler = function( event ) {
2121
$( ":ui-button", event.target.form ).each(function() {
2222
var inst = $( this ).data( "button" );
@@ -288,7 +288,7 @@ $.widget( "ui.button", {
288288
multipleIcons = icons.primary && icons.secondary;
289289
if ( icons.primary || icons.secondary ) {
290290
buttonElement.addClass( "ui-button-text-icon" +
291-
( multipleIcons ? "s" : "" ) );
291+
( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
292292
if ( icons.primary ) {
293293
buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
294294
}
@@ -298,7 +298,7 @@ $.widget( "ui.button", {
298298
if ( !this.options.text ) {
299299
buttonElement
300300
.addClass( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" )
301-
.removeClass( "ui-button-text-icons ui-button-text-icon" );
301+
.removeClass( "ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary" );
302302
if ( !this.hasTitle ) {
303303
buttonElement.attr( "title", buttonText );
304304
}

0 commit comments

Comments
 (0)