_button.scss 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927
  1. /**
  2. * @class Ext.Button
  3. * Used to create the base structure of an Ext.Button
  4. */
  5. @mixin extjs-button {
  6. // default button pictos icons
  7. @if $include-default-button-icons {
  8. @include extjs-button-icon('forbidden', 'd');
  9. @include extjs-button-icon('people', 'g');
  10. @include extjs-button-icon('information', 'i');
  11. @include extjs-button-icon('link', 'j');
  12. @include extjs-button-icon('love', 'k');
  13. @include extjs-button-icon('list', 'l', $top: 1px);
  14. @include extjs-button-icon('music', 'm');
  15. // @include extjs-button-icon('folder', 'o');
  16. @include extjs-button-icon('edit2', 'p');
  17. @include extjs-button-icon('chat2', 'q');
  18. @include extjs-button-icon('retweet', 'r');
  19. @include extjs-button-icon('search', 's');
  20. @include extjs-button-icon('time', 't');
  21. @include extjs-button-icon('photo', 'v');
  22. @include extjs-button-icon('chat', 'w');
  23. @include extjs-button-icon('settings', 'x');
  24. @include extjs-button-icon('settings2', 'y');
  25. @include extjs-button-icon('bookmark', 'z');
  26. @include extjs-button-icon('link2', 'A');
  27. @include extjs-button-icon('tweet', 'B');
  28. @include extjs-button-icon('cloud', 'C');
  29. @include extjs-button-icon('close', 'D');
  30. // @include extjs-button-icon('file', 'F');
  31. @include extjs-button-icon('home', 'H');
  32. @include extjs-button-icon('key', 'K');
  33. @include extjs-button-icon('mail', 'M');
  34. @include extjs-button-icon('paste', 'N');
  35. @include extjs-button-icon('power', 'Q');
  36. @include extjs-button-icon('open', 'R');
  37. @include extjs-button-icon('star', 'S');
  38. @include extjs-button-icon('person', 'U');
  39. @include extjs-button-icon('video', 'V');
  40. @include extjs-button-icon('edit', 'W');
  41. @include extjs-button-icon('charts', 'Z');
  42. @include extjs-button-icon('expand', '`');
  43. @include extjs-button-icon('refresh', '1');
  44. @include extjs-button-icon('tick', '2');
  45. @include extjs-button-icon('tick2', '3');
  46. @include extjs-button-icon('play', '4');
  47. @include extjs-button-icon('pause', '5');
  48. @include extjs-button-icon('stop', '6');
  49. @include extjs-button-icon('forward', '7');
  50. @include extjs-button-icon('rewind', '8');
  51. @include extjs-button-icon('play2', '9');
  52. @include extjs-button-icon('refresh2', '0');
  53. @include extjs-button-icon('minus', '-');
  54. @include extjs-button-icon('power', '-');
  55. @include extjs-button-icon('left', '[');
  56. @include extjs-button-icon('right', ']');
  57. @include extjs-button-icon('date', '\\');
  58. @include extjs-button-icon('shuffle', ';');
  59. @include extjs-button-icon('wifi', '\'');
  60. @include extjs-button-icon('speed', ',');
  61. @include extjs-button-icon('more', '.');
  62. @include extjs-button-icon('print', '/');
  63. @include extjs-button-icon('warning', '!');
  64. @include extjs-button-icon('location', '@');
  65. @include extjs-button-icon('trash', '#');
  66. @include extjs-button-icon('cart', '$');
  67. @include extjs-button-icon('flag', '^');
  68. @include extjs-button-icon('add', '&');
  69. @include extjs-button-icon('close', '*');
  70. @include extjs-button-icon('lock', '(');
  71. @include extjs-button-icon('unlock', ')');
  72. @include extjs-button-icon('remove', '_');
  73. @include extjs-button-icon('add2', '+');
  74. @include extjs-button-icon('up', '{');
  75. @include extjs-button-icon('down', '}');
  76. @include extjs-button-icon('bell', ':');
  77. @include extjs-button-icon('quote', '"');
  78. @include extjs-button-icon('novolume', '<');
  79. @include extjs-button-icon('volume', '>');
  80. @include extjs-button-icon('question', '?');
  81. }
  82. .#{$prefix}btn {
  83. display: inline-block;
  84. // @tag ie6hack
  85. *display: inline;
  86. position: relative;
  87. vertical-align: middle;
  88. background-repeat: no-repeat;
  89. @extend .mr-white-glove;
  90. // icons
  91. // @todo hacking
  92. &.small {
  93. .x-btn-icon:after {
  94. font-size: 16px;
  95. }
  96. }
  97. &.medium {
  98. .x-btn-icon:before,
  99. .x-btn-icon:after {
  100. font-size: 24px;
  101. }
  102. }
  103. &.large {
  104. .x-btn-icon:before,
  105. .x-btn-icon:after {
  106. font-size: 30px;
  107. }
  108. }
  109. em {
  110. background-repeat: no-repeat;
  111. // Styles for an anchor button.
  112. a {
  113. text-decoration: none;
  114. display: inline-block;
  115. color: inherit;
  116. }
  117. }
  118. button {
  119. margin: 0;
  120. padding: 0;
  121. border: 0;
  122. width: auto;
  123. background: none;
  124. @extend .outline-none;
  125. overflow: hidden;
  126. vertical-align: bottom;
  127. -webkit-appearance: none;
  128. &::-moz-focus-inner {
  129. border: 0;
  130. padding: 0;
  131. }
  132. }
  133. .#{$prefix}btn-inner {
  134. display: block;
  135. white-space: nowrap;
  136. background-color: transparent;
  137. background-repeat: no-repeat;
  138. background-position: left center;
  139. @include transition(color);
  140. }
  141. .#{$prefix}btn-left .#{$prefix}btn-inner {
  142. text-align: left;
  143. }
  144. .#{$prefix}btn-center .#{$prefix}btn-inner {
  145. text-align: center;
  146. }
  147. .#{$prefix}btn-right .#{$prefix}btn-inner {
  148. text-align: right;
  149. }
  150. }
  151. .#{$prefix}btn-disabled {
  152. @include opacity(1);
  153. }
  154. .#{$prefix}btn-disabled span {
  155. @include opacity(.5);
  156. .#{$prefix}ie6 &,
  157. .#{$prefix}ie7 & {
  158. filter: none;
  159. }
  160. }
  161. //remove the opacity rule of IE8
  162. .#{$prefix}ie7 .#{$prefix}btn-disabled,
  163. .#{$prefix}ie8 .#{$prefix}btn-disabled {
  164. filter: none;
  165. }
  166. .#{$prefix}ie6 .#{$prefix}btn-disabled,
  167. .#{$prefix}ie7 .#{$prefix}btn-disabled,
  168. .#{$prefix}ie8 .#{$prefix}btn-disabled {
  169. .#{$prefix}btn-icon {
  170. @include opacity(.6);
  171. }
  172. }
  173. @if $include-ie {
  174. * html .#{$prefix}ie {
  175. .#{$prefix}btn button {
  176. width: 1px;
  177. }
  178. }
  179. .#{$prefix}ie .#{$prefix}btn button {
  180. overflow-x: visible; /*prevents extra horiz space in IE*/
  181. vertical-align: baseline; /*IE doesn't like bottom*/
  182. }
  183. .#{$prefix}strict .#{$prefix}ie6,
  184. .#{$prefix}strict .#{$prefix}ie7 {
  185. .#{$prefix}btn .#{$prefix}frame-mc {
  186. height: 100%;
  187. }
  188. }
  189. }
  190. @if not $supports-border-radius or $compile-all {
  191. .#{$prefix}nbr {
  192. .#{$prefix}btn {
  193. .#{$prefix}frame-mc {
  194. vertical-align: middle;
  195. white-space: nowrap;
  196. text-align: center;
  197. cursor: pointer;
  198. }
  199. }
  200. }
  201. }
  202. // Icon alignment
  203. .#{$prefix}btn-icon-text-left .#{$prefix}btn-icon { background-position: left center; }
  204. .#{$prefix}btn-icon-text-right .#{$prefix}btn-icon { background-position: right center; }
  205. .#{$prefix}btn-icon-text-top .#{$prefix}btn-icon { background-position: center top; }
  206. .#{$prefix}btn-icon-text-bottom .#{$prefix}btn-icon { background-position: center bottom; }
  207. .#{$prefix}btn {
  208. button, a {
  209. position: relative;
  210. .#{$prefix}btn-icon {
  211. position: absolute;
  212. background-repeat: no-repeat;
  213. }
  214. }
  215. }
  216. .#{$prefix}btn-arrow-right {
  217. background: transparent no-repeat right 4px;
  218. padding-right: $button-arrow-size;
  219. .#{$prefix}btn-inner {
  220. padding-right: 0 !important;
  221. }
  222. }
  223. .x-btn-pressed {
  224. .#{$prefix}btn-arrow-right {
  225. background-position: right -17px;
  226. }
  227. }
  228. .x-btn-menu-active {
  229. .#{$prefix}btn-arrow-right {
  230. // background-position: right -28px;
  231. }
  232. }
  233. .#{$prefix}toolbar .#{$prefix}btn-arrow-right {
  234. padding-right: $button-toolbar-arrow-size;
  235. }
  236. .#{$prefix}btn-arrow-bottom {
  237. background: transparent no-repeat center bottom;
  238. padding-bottom: $button-arrow-size;
  239. }
  240. .#{$prefix}btn-arrow {
  241. background-image: theme-background-image($theme-name, 'button/arrow.png');
  242. display: block;
  243. }
  244. //split buttons
  245. .#{$prefix}btn-split-right,
  246. .#{$prefix}btn-over .#{$prefix}btn-split-right {
  247. background: transparent no-repeat right center;
  248. background-image: theme-background-image($theme-name, 'button/s-arrow.png');
  249. padding-right: $button-split-size !important;
  250. }
  251. .#{$prefix}btn-split-bottom,
  252. .#{$prefix}btn-over .#{$prefix}btn-split-bottom {
  253. background: transparent no-repeat center bottom;
  254. background-image: theme-background-image($theme-name, 'button/s-arrow-b.png');
  255. padding-bottom: $button-split-size;
  256. }
  257. .#{$prefix}toolbar .#{$prefix}btn-split-right {
  258. background-image: theme-background-image($theme-name, 'button/s-arrow-noline.png');
  259. padding-right: $button-toolbar-split-size !important;
  260. }
  261. .#{$prefix}toolbar .#{$prefix}btn-split-bottom {
  262. background-image: theme-background-image($theme-name, 'button/s-arrow-b-noline.png');
  263. }
  264. .#{$prefix}btn-split {
  265. display: block;
  266. }
  267. .#{$prefix}item-disabled,
  268. .#{$prefix}item-disabled * {
  269. cursor: default;
  270. }
  271. .#{$prefix}cycle-fixed-width .#{$prefix}btn-inner {
  272. text-align: inherit;
  273. }
  274. .#{$prefix}btn-over .#{$prefix}btn-split-right { background-image: theme-background-image($theme-name, 'button/s-arrow-o.png'); }
  275. .#{$prefix}btn-over .#{$prefix}btn-split-bottom { background-image: theme-background-image($theme-name, 'button/s-arrow-bo.png'); }
  276. .#{$prefix}btn-menu-active .#{$prefix}btn-split-right,
  277. .#{$prefix}btn-pressed .#{$prefix}btn-split-right { background-image: theme-background-image($theme-name, 'button/s-arrow-p.png'); }
  278. .#{$prefix}btn-menu-active .#{$prefix}btn-split-bottom,
  279. .#{$prefix}btn-pressed .#{$prefix}btn-split-bottom { background-image: theme-background-image($theme-name, 'button/s-arrow-bp.png'); }
  280. @if $include-button-uis {
  281. @include extjs-button-ui( 'default-small',
  282. $padding: $button-small-padding,
  283. $text-padding: $button-small-text-padding,
  284. $icon-size: $button-small-icon-size
  285. );
  286. @include extjs-button-ui( 'default-medium',
  287. $icon-size: $button-medium-icon-size
  288. );
  289. @include extjs-button-ui( 'default-large',
  290. $icon-size: $button-large-icon-size
  291. );
  292. @include extjs-button-ui( 'confirm-small',
  293. $background-color: $confirm-color,
  294. $icon-size: $button-small-icon-size
  295. );
  296. @include extjs-button-ui( 'confirm-medium',
  297. $background-color: $confirm-color,
  298. $icon-size: $button-medium-icon-size
  299. );
  300. @include extjs-button-ui( 'drastic-medium',
  301. $background-color: $drastic-color,
  302. $icon-size: $button-medium-icon-size
  303. );
  304. @include extjs-button-ui( 'action-medium',
  305. $background-color: $base-color,
  306. $icon-size: $button-medium-icon-size
  307. );
  308. @if $include-toolbar-uis {
  309. @include extjs-toolbar-button-ui( 'default-toolbar-small',
  310. $icon-size: $button-small-icon-size,
  311. $text-padding: $button-small-text-padding
  312. );
  313. @include extjs-toolbar-button-ui( 'default-toolbar-medium',
  314. $icon-size: $button-medium-icon-size
  315. );
  316. @include extjs-toolbar-button-ui( 'default-toolbar-large',
  317. $icon-size: $button-large-icon-size
  318. );
  319. }
  320. }
  321. .#{$prefix}btn-default-toolbar-small-disabled,
  322. .#{$prefix}btn-default-toolbar-medium-disabled,
  323. .#{$prefix}btn-default-toolbar-large-disabled {
  324. border-color: transparent;
  325. background-image: none;
  326. background: transparent;
  327. }
  328. }
  329. // This may move to compat file (new theme will likely have simpler defaults)
  330. @mixin extjs-toolbar-button-ui(
  331. $ui,
  332. $icon-size: $button-small-icon-size,
  333. $text-padding: $button-text-padding
  334. ){
  335. @include extjs-button-ui(
  336. $ui,
  337. $color: color-by-background($button-toolbar-background-color, 50%),
  338. $border-color: $button-toolbar-border-color,
  339. $border-color-over: $button-toolbar-border-color-over,
  340. $border-color-pressed: $button-toolbar-border-color-pressed,
  341. $background-color: $button-toolbar-background-color,
  342. $background-color-over: $button-toolbar-background-color-over,
  343. $background-color-pressed: $button-toolbar-background-color-pressed,
  344. $background-gradient: $button-toolbar-background-gradient,
  345. $background-gradient-over: $button-toolbar-background-gradient-over,
  346. $background-gradient-pressed: $button-toolbar-background-gradient-pressed,
  347. $font-weight: $button-toolbar-font-weight,
  348. $font-family: $button-toolbar-font-family,
  349. $font-size: $button-toolbar-font-size
  350. );
  351. }
  352. @mixin extjs-button-ui(
  353. $ui,
  354. $border-radius: $button-border-radius,
  355. $border-width: $button-border-width,
  356. $padding: $button-padding,
  357. $text-padding: $button-text-padding,
  358. $background-color: $button-base-color,
  359. $background-color-over: color-offset($background-color, 10%),
  360. $background-color-focus: $background-color-over,
  361. $background-color-pressed: color-offset($background-color, 10%, dark),
  362. $background-color-disabled: $background-color,
  363. $border-color: darken($background-color, 20%),
  364. $border-color-over: $border-color,
  365. $border-color-focus: $border-color,
  366. $border-color-pressed: $border-color,
  367. $border-color-disabled: $border-color,
  368. $background-gradient: $button-background-gradient,
  369. $background-gradient-over: $button-background-gradient-over,
  370. $background-gradient-focus: $button-background-gradient-over,
  371. $background-gradient-pressed: $button-background-gradient-pressed,
  372. $background-gradient-disabled: $button-background-gradient,
  373. $color: color-by-background($background-color, 60%),
  374. $color-over: color-by-background($background-color-over, 70%),
  375. $color-focus: $color,
  376. $color-pressed: color-by-background($background-color-pressed, 80%),
  377. $color-disabled: $button-color-disabled,
  378. $font-size: $button-font-size,
  379. $font-size-over: $font-size,
  380. $font-size-focus: $font-size,
  381. $font-size-pressed: $font-size,
  382. $font-size-disabled: $font-size,
  383. $font-weight: $button-font-weight,
  384. $font-weight-over: $font-weight,
  385. $font-weight-focus: $font-weight,
  386. $font-weight-pressed: $font-weight,
  387. $font-weight-disabled: $font-weight,
  388. $font-family: $button-font-family,
  389. $font-family-over: $font-family,
  390. $font-family-focus: $font-family,
  391. $font-family-pressed: $font-family,
  392. $font-family-disabled: $font-family,
  393. $icon-size: $button-small-icon-size
  394. ) {
  395. .#{$prefix}btn-#{$ui} {
  396. border-color: $border-color;
  397. }
  398. .#{$prefix}btn-#{$ui} .#{$prefix}btn-inner {
  399. font-size: $font-size;
  400. font-weight: $font-weight;
  401. font-family: $font-family;
  402. color: $color;
  403. background-repeat: no-repeat;
  404. padding: 0 $text-padding;
  405. @if $include-button-highlights {
  406. @include inset-by-background($background-color);
  407. }
  408. }
  409. @include x-frame('btn', $ui, $border-radius, $border-width, $padding, $background-color, $background-gradient, true);
  410. // Icons
  411. @if $include-default-button-icons {
  412. .x-btn-icon:after {
  413. @include background-gradient($color, matte);
  414. }
  415. @if $color-over != $color {
  416. .#{$prefix}btn-#{$ui}-over {
  417. .x-btn-icon:after {
  418. @include background-gradient($color-over, matte);
  419. }
  420. }
  421. }
  422. @if $color-focus != $color {
  423. .#{$prefix}btn-#{$ui}-focus {
  424. .x-btn-icon:after {
  425. @include background-gradient($color-focus, matte);
  426. }
  427. }
  428. }
  429. @if $color-pressed != $color {
  430. .#{$prefix}btn-#{$ui}-menu-active,
  431. .#{$prefix}btn-#{$ui}-pressed {
  432. .x-btn-icon:after {
  433. @include background-gradient($color-pressed, matte);
  434. }
  435. }
  436. }
  437. }
  438. .#{$prefix}btn-#{$ui}-icon,
  439. .#{$prefix}btn-#{$ui}-noicon {
  440. button,
  441. .#{$prefix}btn-inner {
  442. height: $icon-size;
  443. line-height: $icon-size;
  444. }
  445. }
  446. //icons
  447. .#{$prefix}btn-#{$ui}-icon {
  448. button {
  449. padding: 0;
  450. width: $icon-size !important;
  451. height: $icon-size;
  452. }
  453. .#{$prefix}btn-icon {
  454. width: $icon-size;
  455. height: $icon-size;
  456. top: 0;
  457. left: 0;
  458. bottom: 0;
  459. right: 0;
  460. }
  461. }
  462. .#{$prefix}btn-#{$ui}-icon-text-left {
  463. button {
  464. height: $icon-size;
  465. }
  466. .#{$prefix}btn-inner {
  467. height: $icon-size;
  468. line-height: $icon-size;
  469. padding-left: $icon-size + 4px;
  470. }
  471. .#{$prefix}btn-icon {
  472. width: $icon-size;
  473. height: auto;
  474. top: 0;
  475. left: 0;
  476. bottom: 0;
  477. right: auto;
  478. .#{$prefix}ie6 &,
  479. .#{$prefix}quirks & {
  480. height: $icon-size;
  481. }
  482. }
  483. }
  484. .#{$prefix}btn-#{$ui}-icon-text-right {
  485. button {
  486. height: $icon-size;
  487. }
  488. .#{$prefix}btn-inner {
  489. height: $icon-size;
  490. line-height: $icon-size;
  491. padding-right: $icon-size + 4px !important;
  492. }
  493. .#{$prefix}btn-icon {
  494. width: $icon-size;
  495. height: auto;
  496. top: 0;
  497. left: auto;
  498. bottom: 0;
  499. right: 0;
  500. .#{$prefix}ie6 &,
  501. .#{$prefix}quirks & {
  502. height: $icon-size;
  503. }
  504. }
  505. }
  506. .#{$prefix}btn-#{$ui}-icon-text-top {
  507. .#{$prefix}btn-inner {
  508. padding-top: $icon-size + 4px;
  509. }
  510. .#{$prefix}btn-icon {
  511. width: auto;
  512. height: $icon-size;
  513. top: 0;
  514. left: 0;
  515. bottom: auto;
  516. right: 0;
  517. .#{$prefix}ie6 &,
  518. .#{$prefix}quirks .#{$prefix}ie & {
  519. width: $icon-size;
  520. }
  521. }
  522. }
  523. .#{$prefix}btn-#{$ui}-icon-text-bottom {
  524. .#{$prefix}btn-inner {
  525. padding-bottom: $icon-size + 4px;
  526. }
  527. .#{$prefix}btn-icon {
  528. width: auto;
  529. height: $icon-size;
  530. top: auto;
  531. left: 0;
  532. bottom: 0;
  533. right: 0;
  534. .#{$prefix}ie6 &,
  535. .#{$prefix}quirks .#{$prefix}ie & {
  536. width: $icon-size;
  537. }
  538. }
  539. }
  540. .#{$prefix}btn-#{$ui}-over {
  541. @if $border-color-over != $border-color {
  542. border-color: $border-color-over;
  543. }
  544. @if $background-color-over != null {
  545. @include background-gradient($background-color-over, $background-gradient-over);
  546. }
  547. .#{$prefix}btn-inner {
  548. @if $color-over != $color {
  549. color: $color-over;
  550. }
  551. @if $font-weight-over != $font-weight {
  552. font-weight: $font-weight-over;
  553. }
  554. @if $font-size-over != $font-size {
  555. font-size: $font-size-over;
  556. }
  557. @if $font-family-over != $font-family {
  558. font-family: $font-family-over;
  559. }
  560. // @if $include-button-highlights {
  561. // @include inset-by-background($background-color-over);
  562. // }
  563. }
  564. // @todo IE6ify?
  565. // @if $include-button-highlights {
  566. // @include box-shadow($css-shadow-background-color 0 1px 1px);
  567. // }
  568. }
  569. .#{$prefix}btn-#{$ui}-focus {
  570. @if $border-color-focus != $border-color {
  571. border-color: $border-color-focus;
  572. }
  573. @if $background-color-focus != null {
  574. @include background-gradient($background-color-focus, $background-gradient-focus);
  575. }
  576. .#{$prefix}btn-inner {
  577. @if $color-focus != $color {
  578. color: $color-focus;
  579. }
  580. @if $font-weight-focus != $font-weight {
  581. font-weight: $font-weight-focus;
  582. }
  583. @if $font-size-focus != $font-size {
  584. font-size: $font-size-focus;
  585. }
  586. @if $font-family-focus != $font-family {
  587. font-family: $font-family-focus;
  588. }
  589. }
  590. }
  591. .#{$prefix}btn-#{$ui}-menu-active,
  592. .#{$prefix}btn-#{$ui}-pressed {
  593. @if $border-color-pressed != $border-color {
  594. border-color: $border-color-pressed;
  595. }
  596. @if $include-button-highlights {
  597. @include box-shadow(none);
  598. }
  599. @if $background-color-pressed != null {
  600. @include background-gradient($background-color-pressed, $background-gradient-pressed);
  601. }
  602. .#{$prefix}btn-inner {
  603. @if $color-pressed != $color {
  604. color: $color-pressed;
  605. }
  606. @if $font-weight-pressed != $font-weight {
  607. font-weight: $font-weight-pressed;
  608. }
  609. @if $font-size-pressed != $font-size {
  610. font-size: $font-size-pressed;
  611. }
  612. @if $font-family-pressed != $font-family {
  613. font-family: $font-family-pressed;
  614. }
  615. @if $include-button-highlights {
  616. @include inset-by-background($background-color-pressed);
  617. }
  618. }
  619. }
  620. .#{$prefix}btn-#{$ui}-menu-active {
  621. @include border-bottom-radius(0);
  622. }
  623. // .#{$prefix}btn-#{$ui}-menu-active {
  624. // border-color: #fff;
  625. //// border: 0;
  626. // @include border-bottom-radius(0);
  627. // background-image: none;
  628. // background: #fff;
  629. // @include box-shadow(#CACAC9 0 0 4px);
  630. // .#{$prefix}btn-inner {
  631. // color: #010101;
  632. // font-weight: bold;
  633. // }
  634. // }
  635. .#{$prefix}btn-#{$ui}-disabled {
  636. @if $border-color-disabled != $border-color {
  637. border-color: $border-color-disabled;
  638. }
  639. @if $background-color-disabled != null {
  640. @include background-gradient($background-color-disabled, $background-gradient-disabled);
  641. }
  642. .#{$prefix}btn-inner {
  643. @if $color-disabled != $color {
  644. color: $color !important;
  645. }
  646. @if $font-weight-disabled != $font-weight {
  647. font-weight: $font-weight-disabled;
  648. }
  649. @if $font-size-disabled != $font-size {
  650. font-size: $font-size-disabled;
  651. }
  652. @if $font-family-disabled != $font-family {
  653. font-family: $font-family-disabled;
  654. }
  655. }
  656. }
  657. .#{$prefix}ie .#{$prefix}btn-#{$ui}-disabled {
  658. .#{$prefix}btn-inner {
  659. @if $color-disabled != $color {
  660. color: darken($color-disabled, 20) !important;
  661. }
  662. }
  663. }
  664. .#{$prefix}ie6 .#{$prefix}btn-#{$ui}-disabled {
  665. .#{$prefix}btn-inner {
  666. @if $color-disabled != $color {
  667. color: $color-disabled !important;
  668. }
  669. }
  670. }
  671. @if not $supports-border-radius or $compile-all {
  672. .#{$prefix}nbr {
  673. .#{$prefix}btn-#{$ui}-over {
  674. .#{$prefix}frame-tl,
  675. .#{$prefix}frame-bl,
  676. .#{$prefix}frame-tr,
  677. .#{$prefix}frame-br,
  678. .#{$prefix}frame-tc,
  679. .#{$prefix}frame-bc {
  680. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-over-corners.gif');
  681. }
  682. .#{$prefix}frame-ml,
  683. .#{$prefix}frame-mr {
  684. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-over-sides.gif');
  685. }
  686. .#{$prefix}frame-mc {
  687. background-color: $background-color-over;
  688. @if $background-gradient-over != null {
  689. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-over-bg.gif');
  690. }
  691. }
  692. }
  693. .#{$prefix}btn-#{$ui}-focus {
  694. .#{$prefix}frame-tl,
  695. .#{$prefix}frame-bl,
  696. .#{$prefix}frame-tr,
  697. .#{$prefix}frame-br,
  698. .#{$prefix}frame-tc,
  699. .#{$prefix}frame-bc {
  700. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-focus-corners.gif');
  701. }
  702. .#{$prefix}frame-ml,
  703. .#{$prefix}frame-mr {
  704. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-focus-sides.gif');
  705. }
  706. .#{$prefix}frame-mc {
  707. background-color: $background-color-focus;
  708. @if $background-gradient-focus != null {
  709. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-focus-bg.gif');
  710. }
  711. }
  712. }
  713. .#{$prefix}btn-#{$ui}-menu-active,
  714. .#{$prefix}btn-#{$ui}-pressed {
  715. .#{$prefix}frame-tl,
  716. .#{$prefix}frame-bl,
  717. .#{$prefix}frame-tr,
  718. .#{$prefix}frame-br,
  719. .#{$prefix}frame-tc,
  720. .#{$prefix}frame-bc {
  721. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-pressed-corners.gif');
  722. }
  723. .#{$prefix}frame-ml,
  724. .#{$prefix}frame-mr {
  725. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-pressed-sides.gif');
  726. }
  727. .#{$prefix}frame-mc {
  728. background-color: $background-color-pressed;
  729. @if $background-gradient-pressed != null {
  730. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-pressed-bg.gif');
  731. }
  732. }
  733. }
  734. .#{$prefix}btn-#{$ui}-disabled {
  735. .#{$prefix}frame-tl,
  736. .#{$prefix}frame-bl,
  737. .#{$prefix}frame-tr,
  738. .#{$prefix}frame-br,
  739. .#{$prefix}frame-tc,
  740. .#{$prefix}frame-bc {
  741. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-disabled-corners.gif');
  742. }
  743. .#{$prefix}frame-ml,
  744. .#{$prefix}frame-mr {
  745. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-disabled-sides.gif');
  746. }
  747. .#{$prefix}frame-mc {
  748. background-color: $background-color-disabled;
  749. @if $background-gradient-disabled != null {
  750. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-disabled-bg.gif');
  751. }
  752. }
  753. }
  754. }
  755. }
  756. @if not $supports-gradients or $compile-all {
  757. @if $background-gradient != null {
  758. .#{$prefix}nlg {
  759. .#{$prefix}btn-#{$ui} {
  760. background-repeat: repeat-x;
  761. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-bg.gif');
  762. }
  763. }
  764. }
  765. @if $background-gradient-over != null {
  766. .#{$prefix}nlg {
  767. .#{$prefix}btn-#{$ui}-over {
  768. background-repeat: repeat-x;
  769. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-over-bg.gif');
  770. }
  771. }
  772. }
  773. @if $background-gradient-focus != null {
  774. .#{$prefix}nlg {
  775. .#{$prefix}btn-#{$ui}-focus {
  776. background-repeat: repeat-x;
  777. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-focus-bg.gif');
  778. }
  779. }
  780. }
  781. @if $background-gradient-pressed != null {
  782. .#{$prefix}nlg {
  783. .#{$prefix}btn-#{$ui}-menu-active,
  784. .#{$prefix}btn-#{$ui}-pressed {
  785. background-repeat: repeat-x;
  786. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-pressed-bg.gif');
  787. }
  788. }
  789. }
  790. @if $background-gradient-disabled != null {
  791. .#{$prefix}nlg {
  792. .#{$prefix}btn-#{$ui}-disabled {
  793. background-repeat: repeat-x;
  794. background-image: theme-background-image($theme-name, 'btn/btn-#{$ui}-disabled-bg.gif');
  795. }
  796. }
  797. }
  798. }
  799. };
  800. @mixin extjs-button-icon($name, $key, $size: 17px, $top: null, $left: null) {
  801. .#{$name} {
  802. @include pictos($key, $color: #fff, $size: $size, $include-states: false, $shadow: false, $border-color: false);
  803. &:after {
  804. @if $top {
  805. top: $top;
  806. }
  807. @if $left {
  808. left: $left;
  809. }
  810. }
  811. }
  812. }