Panel.scss 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476
  1. /**
  2. * @class Ext.panel.Panel
  3. */
  4. // TODO: setting this probably does not work well, since border-radius is typically
  5. // reserved for framed-panels - should we remove this?
  6. $panel-border-radius: dynamic(0);
  7. /**
  8. * @var {number}
  9. * The default border-width of Panels
  10. */
  11. $panel-border-width: dynamic(1px);
  12. /**
  13. * @var {color}
  14. * The base color of Panels
  15. */
  16. $panel-base-color: dynamic($base-color);
  17. /**
  18. * @var {color}
  19. * The default border-color of Panels
  20. */
  21. $panel-border-color: dynamic($panel-base-color);
  22. /**
  23. * @var {number}
  24. * The maximum width a Panel's border can be before resizer handles are embedded
  25. * into the borders using negative absolute positions.
  26. *
  27. * This defaults to 2, so that in the classic theme which uses 1 pixel borders,
  28. * resize handles are in the content area within the border as they always have
  29. * been.
  30. *
  31. * In the Neptune theme, the handles are embedded into the 5 pixel wide borders
  32. * of any framed panel.
  33. */
  34. $border-width-threshold: dynamic(2);
  35. // ===============================
  36. // ========= PANEL BODY ==========
  37. // ===============================
  38. /**
  39. * @var {string}
  40. * The default border-style of Panels
  41. */
  42. $panel-body-border-style: dynamic(solid);
  43. /**
  44. * @var {color}
  45. * The default body background-color of Panels
  46. */
  47. $panel-body-background-color: dynamic(#fff);
  48. /**
  49. * @var {color}
  50. * The default color of text inside a Panel's body
  51. */
  52. $panel-body-color: dynamic($color);
  53. /**
  54. * @var {color}
  55. * The default border-color of the Panel body
  56. */
  57. $panel-body-border-color: dynamic($panel-border-color);
  58. /**
  59. * @var {number}
  60. * The default border-width of the Panel body
  61. */
  62. $panel-body-border-width: dynamic(1px);
  63. /**
  64. * @var {number}
  65. * The default font-size of the Panel body
  66. */
  67. $panel-body-font-size: dynamic($font-size);
  68. /**
  69. * @var {string}
  70. * The default font-weight of the Panel body
  71. */
  72. $panel-body-font-weight: dynamic($font-weight);
  73. /**
  74. * @var {string}
  75. * The default font-family of the Panel body
  76. */
  77. $panel-body-font-family: dynamic($font-family);
  78. /**
  79. * @var {number}
  80. * The space between the Panel {@link Ext.panel.Tool Tools}
  81. */
  82. $panel-tool-spacing: dynamic(4px);
  83. /**
  84. * @var {string}
  85. * The background sprite to use for Panel {@link Ext.panel.Tool Tools}
  86. */
  87. $panel-tool-background-image: dynamic('tools/tool-sprites');
  88. /**
  89. * @var {color}
  90. * The color of the outline around Panel {@link Ext.panel.Tool Tools} when focused
  91. */
  92. $panel-tool-focus-outline-color: dynamic($base-color);
  93. /**
  94. * @var {string}
  95. * The outline-style of Panel {@link Ext.panel.Tool Tools} when focused
  96. */
  97. $panel-tool-focus-outline-style: dynamic(solid);
  98. /**
  99. * @var {number}
  100. * The outline-width of Panel {@link Ext.panel.Tool Tools} when focused
  101. */
  102. $panel-tool-focus-outline-width: dynamic(1px);
  103. /**
  104. * @var {number}
  105. * The outline-offset of Panel {@link Ext.panel.Tool Tools} when focused
  106. */
  107. $panel-tool-focus-outline-offset: dynamic(0);
  108. /**
  109. * @var {color}
  110. * The text color of focused Panel tool glyph
  111. */
  112. $panel-tool-focus-color: dynamic(null);
  113. /**
  114. * @var {color}
  115. * The background color of focused Panel tool
  116. */
  117. $panel-tool-focus-background-color: dynamic(null);
  118. /**
  119. * @var {string}
  120. * The background sprite to use for focused Panel tools
  121. */
  122. $panel-tool-focus-background-image: dynamic($panel-tool-background-image);
  123. /**
  124. * @var {number}
  125. * The border-width of Panel Headers
  126. */
  127. $panel-header-border-width: dynamic($panel-border-width);
  128. /**
  129. * @var {string}
  130. * The border-style of Panel Headers
  131. */
  132. $panel-header-border-style: dynamic(solid);
  133. /**
  134. * @var {color}
  135. * The color of the outline around focused Panel title
  136. */
  137. $panel-header-focus-outline-color: dynamic($base-color);
  138. /**
  139. * @var {string}
  140. * The outline style of the focused Panel title
  141. */
  142. $panel-header-focus-outline-style: dynamic(solid);
  143. /**
  144. * @var {number}
  145. * The outline width of the focused Panel title
  146. */
  147. $panel-header-focus-outline-width: dynamic(1px);
  148. /**
  149. * @var {number}
  150. * The offset for focused Panel title outline
  151. */
  152. $panel-header-focus-outline-offset: dynamic(1px);
  153. /**
  154. * @var {color}
  155. * The color of Panel title text when header is focused
  156. */
  157. $panel-header-focus-color: dynamic(null);
  158. /**
  159. * @var {color}
  160. * The background color of Panel title text when header is focused
  161. */
  162. $panel-header-focus-background-color: dynamic(null);
  163. /**
  164. * @var {number/list}
  165. * The padding of Panel Headers
  166. */
  167. $panel-header-padding: dynamic(5px);
  168. /**
  169. * @var {number}
  170. * The font-size of Panel Headers
  171. */
  172. $panel-header-font-size: dynamic($font-size);
  173. /**
  174. * @var {number}
  175. * The line-height of Panel Headers
  176. */
  177. $panel-header-line-height: dynamic(16px);
  178. /**
  179. * @var {string}
  180. * The font-weight of Panel Headers
  181. */
  182. $panel-header-font-weight: dynamic($font-weight-bold);
  183. /**
  184. * @var {string}
  185. * The font-family of Panel Headers
  186. */
  187. $panel-header-font-family: dynamic($font-family);
  188. /**
  189. * @var {string}
  190. * The text-transform of Panel Headers
  191. */
  192. $panel-header-text-transform: dynamic(none);
  193. /**
  194. * @var {number/list}
  195. * The padding of the Panel Header's text element
  196. */
  197. $panel-header-text-padding: dynamic(0);
  198. /**
  199. * @var {number/list}
  200. * The margin of the Panel Header's text element
  201. */
  202. $panel-header-text-margin: dynamic(0);
  203. /**
  204. * @var {string/list}
  205. * The background-gradient of the Panel Header. Can be either the name of a predefined
  206. * gradient or a list of color stops. Used as the `$type` parameter for
  207. * {@link Global_CSS#background-gradient}.
  208. */
  209. $panel-header-background-gradient: dynamic('none');
  210. /**
  211. * @var {color}
  212. * The border-color of the Panel Header
  213. */
  214. $panel-header-border-color: dynamic($panel-border-color);
  215. /**
  216. * @var {color}
  217. * The inner border-color of the Panel Header
  218. */
  219. $panel-header-inner-border-color: dynamic(#fff);
  220. /**
  221. * @var {number}
  222. * The inner border-width of the Panel Header
  223. */
  224. $panel-header-inner-border-width: dynamic(0);
  225. /**
  226. * @var {color}
  227. * The text color of the Panel Header
  228. */
  229. $panel-header-color: dynamic($color);
  230. /**
  231. * @var {color}
  232. * The background-color of the Panel Header
  233. */
  234. $panel-header-background-color: dynamic($panel-base-color);
  235. /**
  236. * @var {number}
  237. * The width of the Panel Header icon
  238. */
  239. $panel-header-icon-width: dynamic(16px);
  240. /**
  241. * @var {number}
  242. * The height of the Panel Header icon
  243. */
  244. $panel-header-icon-height: dynamic(16px);
  245. /**
  246. * @var {number}
  247. * The space between the Panel Header icon and text
  248. */
  249. $panel-header-icon-spacing: dynamic(4px);
  250. /**
  251. * @var {list}
  252. * The background-position of the Panel Header icon
  253. */
  254. $panel-header-icon-background-position: dynamic(center center);
  255. /**
  256. * @var {color}
  257. * The color of the Panel Header glyph icon
  258. */
  259. $panel-header-glyph-color: dynamic($panel-header-color);
  260. /**
  261. * @var {number}
  262. * The opacity of the Panel Header glyph icon
  263. */
  264. $panel-header-glyph-opacity: dynamic(.5);
  265. /**
  266. * @var {boolean}
  267. * True to adjust the padding of borderless panel headers so that their height is the same
  268. * as the height of bordered panels. This is helpful when borderless and bordered panels
  269. * are used side-by-side, as it maintains a consistent vertical alignment.
  270. */
  271. $panel-header-noborder-adjust: dynamic(true);
  272. /**
  273. * @var {color}
  274. * The base color of the framed Panels
  275. */
  276. $panel-frame-base-color: dynamic($panel-base-color);
  277. /**
  278. * @var {number}
  279. * The border-radius of framed Panels
  280. */
  281. $panel-frame-border-radius: dynamic(4px);
  282. /**
  283. * @var {number}
  284. * The border-width of framed Panels
  285. */
  286. $panel-frame-border-width: dynamic(1px);
  287. /**
  288. * @var {string}
  289. * The border-style of framed Panels
  290. */
  291. $panel-frame-border-style: dynamic(solid);
  292. /**
  293. * @var {number}
  294. * The padding of {@link Ext.panel.Panel#cfg-frame framed} Panels.
  295. *
  296. * The padding value must be equal to or greater than value specified in the
  297. * {@link #$panel-frame-border-radius} variable (or the maximum value if corner values
  298. * are specified individually).
  299. * See also: {@link #$panel-ignore-frame-padding}
  300. */
  301. $panel-frame-padding: dynamic(4px);
  302. /**
  303. * @var {color}
  304. * The background-color of framed Panels
  305. */
  306. $panel-frame-background-color: dynamic(#fff);
  307. /**
  308. * @var {color}
  309. * The border-color of framed Panels
  310. */
  311. $panel-frame-border-color: dynamic($panel-border-color);
  312. /**
  313. * @var {number}
  314. * The border-width of the body element of framed Panels
  315. */
  316. $panel-frame-body-border-width: dynamic(1px);
  317. /**
  318. * @var {number}
  319. * The border-width of framed Panel Headers
  320. */
  321. $panel-frame-header-border-width: dynamic($panel-header-border-width);
  322. /**
  323. * @var {color}
  324. * The inner border-color of framed Panel Headers
  325. */
  326. $panel-frame-header-inner-border-color: dynamic(#fff);
  327. /**
  328. * @var {number}
  329. * The inner border-width of framed Panel Headers
  330. */
  331. $panel-frame-header-inner-border-width: dynamic(0);
  332. /**
  333. * @var {number/list}
  334. * The padding of framed Panel Headers
  335. */
  336. $panel-frame-header-padding: dynamic($panel-header-padding);
  337. /**
  338. * @var {number}
  339. * The opacity of ghost Panels while dragging
  340. */
  341. $panel-ghost-opacity: dynamic(0.50);
  342. /**
  343. * @var {string}
  344. * The direction to strech the background-gradient of top docked Headers when slicing images
  345. * for IE using Sencha Cmd
  346. */
  347. $panel-background-stretch-top: dynamic(bottom);
  348. /**
  349. * @var {string}
  350. * The direction to strech the background-gradient of bottom docked Headers when slicing images
  351. * for IE using Sencha Cmd
  352. */
  353. $panel-background-stretch-bottom: dynamic(top);
  354. /**
  355. * @var {string}
  356. * The direction to strech the background-gradient of right docked Headers when slicing images
  357. * for IE using Sencha Cmd
  358. */
  359. $panel-background-stretch-right: dynamic(left);
  360. /**
  361. * @var {string}
  362. * The direction to strech the background-gradient of left docked Headers when slicing images
  363. * for IE using Sencha Cmd
  364. */
  365. $panel-background-stretch-left: dynamic(right);
  366. /**
  367. * @var {boolean}
  368. * True to include neptune style border management rules.
  369. */
  370. $panel-include-border-management-rules: dynamic(false);
  371. /**
  372. * @var {color}
  373. * The color to apply to the border that wraps the body and docked items in a framed
  374. * panel. The presence of the wrap border in a framed panel is controlled by the
  375. * {@link #border} config. Only applicable when `$panel-include-border-management-rules` is
  376. * `true`.
  377. */
  378. $panel-wrap-border-color: dynamic($panel-border-color);
  379. /**
  380. * @var {number}
  381. * The width to apply to the border that wraps the body and docked items in a framed
  382. * panel. The presence of the wrap border in a framed panel is controlled by the
  383. * {@link #border} config. Only applicable when `$panel-include-border-management-rules` is
  384. * `true`.
  385. */
  386. $panel-wrap-border-width: dynamic(1px);
  387. /**
  388. * @var {boolean}
  389. * True to include the "default" panel UI
  390. */
  391. $include-panel-default-ui: dynamic($include-default-uis);
  392. /**
  393. * @var {boolean}
  394. * True to include the "default-framed" panel UI
  395. */
  396. $include-panel-default-framed-ui: dynamic($include-default-uis);
  397. /**
  398. * @var {boolean}
  399. * True to ignore the frame padding. By default, the frame mixin adds extra padding when
  400. * border radius is larger than border width. This is intended to prevent the content
  401. * from colliding with the rounded corners of the frame. Set this to true to prevent
  402. * the panel frame from adding this extra padding.
  403. *
  404. * **Note:** This var is not applicable to IE8 & IE9.
  405. */
  406. $panel-ignore-frame-padding: dynamic(false);
  407. /**
  408. * Creates a visual theme for a Panel.
  409. *
  410. * **Note:** When using `frame: true`, this mixin call creates a UI property with the name and a "-framed" suffix.
  411. *
  412. * For example, Panel's UI will be set to "highlight-framed" if `frame:true`.
  413. *
  414. * @param {string} $ui
  415. * The name of the UI being created. Can not included spaces or special punctuation
  416. * (used in CSS class names).
  417. *
  418. * @param {color} [$ui-border-color=$panel-border-color]
  419. * The border-color of the Panel
  420. *
  421. * @param {number} [$ui-border-radius=$panel-border-radius]
  422. * The border-radius of the Panel
  423. *
  424. * @param {number} [$ui-border-width=$panel-border-width]
  425. * The border-width of the Panel
  426. *
  427. * @param {number} [$ui-padding=$panel-padding]
  428. * The padding of the Panel
  429. *
  430. * @param {color} [$ui-header-color=$panel-header-color]
  431. * The text color of the Header
  432. *
  433. * @param {string} [$ui-header-font-family=$panel-header-font-family]
  434. * The font-family of the Header
  435. *
  436. * @param {number} [$ui-header-font-size=$panel-header-font-size]
  437. * The font-size of the Header
  438. *
  439. * @param {string} [$ui-header-font-weight=$panel-header-font-weight]
  440. * The font-weight of the Header
  441. *
  442. * @param {number} [$ui-header-line-height=$panel-header-line-height]
  443. * The line-height of the Header
  444. *
  445. * @param {color} [$ui-header-border-color=$panel-header-border-color]
  446. * The border-color of the Header
  447. *
  448. * @param {number} [$ui-header-border-width=$panel-header-border-width]
  449. * The border-width of the Header
  450. *
  451. * @param {string} [$ui-header-border-style=$panel-header-border-style]
  452. * The border-style of the Header
  453. *
  454. * @param {color} [$ui-header-focus-outline-color=$panel-header-focus-outline-color]
  455. * The outline color of the Header's focus
  456. *
  457. * @param {string} [$ui-header-focus-outline-style=$panel-header-focus-outline-style]
  458. * The outline style of the Header's focus
  459. *
  460. * @param {number} [$ui-header-focus-outline-width=$panel-header-focus-outline-width]
  461. * The outline width of the Header's focus
  462. *
  463. * @param {number} [$ui-header-focus-outline-offset=$panel-header-focus-outline-offset]
  464. * The outline offset of the Header's focus
  465. *
  466. * @param {color} [$ui-header-focus-color=$panel-header-focus-color]
  467. * The color of the Header's focus
  468. *
  469. * @param [$ui-header-focus-background-color=$panel-header-focus-background-color]
  470. * The background color of the Header's focus
  471. *
  472. * @param {color} [$ui-header-background-color=$panel-header-background-color]
  473. * The background-color of the Header
  474. *
  475. * @param {string/list} [$ui-header-background-gradient=$panel-header-background-gradient]
  476. * The background-gradient of the Header. Can be either the name of a predefined gradient
  477. * or a list of color stops. Used as the `$type` parameter for {@link Global_CSS#background-gradient}.
  478. *
  479. * @param {color} [$ui-header-inner-border-color=$panel-header-inner-border-color]
  480. * The inner border-color of the Header
  481. *
  482. * @param {number} [$ui-header-inner-border-width=$panel-header-inner-border-width]
  483. * The inner border-width of the Header
  484. *
  485. * @param {number/list} [$ui-header-text-padding=$panel-header-text-padding]
  486. * The padding of the Header's text element
  487. *
  488. * @param {number/list} [$ui-header-text-margin=$panel-header-text-margin]
  489. * The margin of the Header's text element
  490. *
  491. * @param {string} [$ui-header-text-transform=$panel-header-text-transform]
  492. * The text-transform of the Header
  493. *
  494. * @param {number/list} [$ui-header-padding=$panel-header-padding]
  495. * The padding of the Header
  496. *
  497. * @param {number} [$ui-header-icon-width=$panel-header-icon-width]
  498. * The width of the Header icon
  499. *
  500. * @param {number} [$ui-header-icon-height=$panel-header-icon-height]
  501. * The height of the Header icon
  502. *
  503. * @param {number} [$ui-header-icon-spacing=$panel-header-icon-spacing]
  504. * The space between the Header icon and text
  505. *
  506. * @param {list} [$ui-header-icon-background-position=$panel-header-icon-background-position]
  507. * The background-position of the Header icon
  508. *
  509. * @param {color} [$ui-header-glyph-color=$panel-header-glyph-color]
  510. * The color of the Header glyph icon
  511. *
  512. * @param {number} [$ui-header-glyph-opacity=$panel-header-glyph-opacity]
  513. * The opacity of the Header glyph icon
  514. *
  515. * @param {number} [$ui-header-noborder-adjust=$panel-header-noborder-adjust]
  516. * True to adjust the padding of borderless panel headers so that their height is the same
  517. * as the height of bordered panels. This is helpful when borderless and bordered panels
  518. * are used side-by-side, as it maintains a consistent vertical alignment.
  519. *
  520. * @param {number} [$ui-tool-spacing=$panel-tool-spacing]
  521. * The space between the Panel {@link Ext.panel.Tool Tools}
  522. *
  523. * @param {string} [$ui-tool-background-image=$panel-tool-background-image]
  524. * The background sprite to use for Panel {@link Ext.panel.Tool Tools}
  525. *
  526. * @param {color} [$ui-tool-glyph-color=$tool-glyph-color]
  527. * The color to use for tool icons when {@link Global_CSS#$enable-font-icons} is `true`.
  528. *
  529. * @param {color} [$ui-tool-focus-outline-color=$panel-tool-focus-outline-color]
  530. * The color of the outline around Panel {@link Ext.panel.Tool Tools} when focused
  531. *
  532. * @param {string} [$ui-tool-focus-outline-style=$panel-tool-focus-outline-style]
  533. * The outline-style of Panel {@link Ext.panel.Tool Tools} when focused
  534. *
  535. * @param {number} [$ui-tool-focus-outline-width=$panel-tool-focus-outline-width]
  536. * The outline-width of Panel {@link Ext.panel.Tool Tools} when focused
  537. *
  538. * @param {number} [$ui-tool-focus-outline-offset=$panel-tool-focus-outline-offset]
  539. * The outline-offset of Panel {@link Ext.panel.Tool Tools} when focused
  540. *
  541. * @param {color} [$ui-tool-focus-color]
  542. * The text color of the focused Panel tool glyph
  543. *
  544. * @param {color} [$ui-tool-focus-background-color]
  545. * The background color of the focused Panel tool
  546. *
  547. * @param {string} [$ui-tool-focus-background-image]
  548. * The sprite to use for focused Panel tools
  549. *
  550. * @param {color} [$ui-body-color=$panel-body-color]
  551. * The color of text inside the Panel body
  552. *
  553. * @param {color} [$ui-body-border-color=$panel-body-border-color]
  554. * The border-color of the Panel body
  555. *
  556. * @param {number} [$ui-body-border-width=$panel-body-border-width]
  557. * The border-width of the Panel body
  558. *
  559. * @param {string} [$ui-body-border-style=$panel-body-border-style]
  560. * The border-style of the Panel body
  561. *
  562. * @param {color} [$ui-body-background-color=$panel-body-background-color]
  563. * The background-color of the Panel body
  564. *
  565. * @param {number} [$ui-body-font-size=$panel-body-font-size]
  566. * The font-size of the Panel body
  567. *
  568. * @param {string} [$ui-body-font-weight=$panel-body-font-weight]
  569. * The font-weight of the Panel body
  570. *
  571. * @param {string} [$ui-body-font-family=$panel-body-font-family]
  572. * The font-family of the Panel body
  573. *
  574. * @param {string} [$ui-background-stretch-top=$panel-background-stretch-top]
  575. * The direction to stretch the background-gradient of top docked Headers when slicing images
  576. * for IE using Sencha Cmd
  577. *
  578. * @param {string} [$ui-background-stretch-bottom=$panel-background-stretch-bottom]
  579. * The direction to stretch the background-gradient of bottom docked Headers when slicing images
  580. * for IE using Sencha Cmd
  581. *
  582. * @param {string} [$ui-background-stretch-right=$panel-background-stretch-right]
  583. * The direction to stretch the background-gradient of right docked Headers when slicing images
  584. * for IE using Sencha Cmd
  585. *
  586. * @param {string} [$ui-background-stretch-left=$panel-background-stretch-left]
  587. * The direction to stretch the background-gradient of left docked Headers when slicing images
  588. * for IE using Sencha Cmd
  589. *
  590. * @param {boolean} [$ui-include-border-management-rules=$panel-include-border-management-rules]
  591. * True to include neptune style border management rules.
  592. *
  593. * @param {color} [$ui-wrap-border-color=$panel-wrap-border-color]
  594. * The color to apply to the border that wraps the body and docked items in a framed
  595. * panel. The presence of the wrap border in a framed panel is controlled by the
  596. * {@link #border} config. Only applicable when `$ui-include-border-management-rules` is
  597. * `true`.
  598. *
  599. * @param {color} [$ui-wrap-border-width=$panel-wrap-border-width]
  600. * The width to apply to the border that wraps the body and docked items in a framed
  601. * panel. The presence of the wrap border in a framed panel is controlled by the
  602. * {@link #border} config. Only applicable when `$ui-include-border-management-rules` is
  603. * `true`.
  604. *
  605. * @param {boolean} [$ui-ignore-frame-padding=$panel-ignore-frame-padding]
  606. * True to ignore the frame padding. By default, the frame mixin adds extra padding when
  607. * border radius is larger than border width. This is intended to prevent the content
  608. * from colliding with the rounded corners of the frame. Set this to true to prevent
  609. * the panel frame from adding this extra padding.
  610. *
  611. * @param {string} $ui-label
  612. * This is deprecated, please use $ui instead.
  613. *
  614. * @member Ext.panel.Panel
  615. */
  616. @mixin extjs-panel-ui(
  617. $ui: null,
  618. $ui-border-color: $panel-border-color,
  619. $ui-border-radius: $panel-border-radius,
  620. $ui-border-width: $panel-border-width,
  621. $ui-padding: 0,
  622. $ui-header-color: $panel-header-color,
  623. $ui-header-font-family: $panel-header-font-family,
  624. $ui-header-font-size: $panel-header-font-size,
  625. $ui-header-font-weight: $panel-header-font-weight,
  626. $ui-header-line-height: $panel-header-line-height,
  627. $ui-header-border-color: $panel-header-border-color,
  628. $ui-header-border-width: $panel-header-border-width,
  629. $ui-header-border-style: $panel-header-border-style,
  630. $ui-header-focus-outline-color: $panel-header-focus-outline-color,
  631. $ui-header-focus-outline-style: $panel-header-focus-outline-style,
  632. $ui-header-focus-outline-width: $panel-header-focus-outline-width,
  633. $ui-header-focus-outline-offset: $panel-header-focus-outline-offset,
  634. $ui-header-focus-color: $panel-header-focus-color,
  635. $ui-header-focus-background-color: $panel-header-focus-background-color,
  636. $ui-header-background-color: $panel-header-background-color,
  637. $ui-header-background-gradient: $panel-header-background-gradient,
  638. $ui-header-inner-border-color: $panel-header-inner-border-color,
  639. $ui-header-inner-border-width: $panel-header-inner-border-width,
  640. $ui-header-text-padding: $panel-header-text-padding,
  641. $ui-header-text-margin: $panel-header-text-margin,
  642. $ui-header-text-transform: $panel-header-text-transform,
  643. $ui-header-padding: $panel-header-padding,
  644. $ui-header-icon-width: $panel-header-icon-width,
  645. $ui-header-icon-height: $panel-header-icon-height,
  646. $ui-header-icon-spacing: $panel-header-icon-spacing,
  647. $ui-header-icon-background-position: $panel-header-icon-background-position,
  648. $ui-header-glyph-color: $panel-header-glyph-color,
  649. $ui-header-glyph-opacity: $panel-header-glyph-opacity,
  650. $ui-header-noborder-adjust: $panel-header-noborder-adjust,
  651. $ui-tool-spacing: $panel-tool-spacing,
  652. $ui-tool-background-image: $panel-tool-background-image,
  653. $ui-tool-glyph-color: $tool-glyph-color,
  654. $ui-tool-focus-outline-color: $panel-tool-focus-outline-color,
  655. $ui-tool-focus-outline-style: $panel-tool-focus-outline-style,
  656. $ui-tool-focus-outline-width: $panel-tool-focus-outline-width,
  657. $ui-tool-focus-outline-offset: $panel-tool-focus-outline-offset,
  658. $ui-tool-focus-color: $panel-tool-focus-color,
  659. $ui-tool-focus-background-color: $panel-tool-focus-background-color,
  660. $ui-tool-focus-background-image: $panel-tool-focus-background-image,
  661. $ui-body-color: $panel-body-color,
  662. $ui-body-border-color: $panel-body-border-color,
  663. $ui-body-border-width: $panel-body-border-width,
  664. $ui-body-border-style: $panel-body-border-style,
  665. $ui-body-background-color: $panel-body-background-color,
  666. $ui-body-font-size: $panel-body-font-size,
  667. $ui-body-font-weight: $panel-body-font-weight,
  668. $ui-body-font-family: $panel-body-font-family,
  669. $ui-background-stretch-top: $panel-background-stretch-top,
  670. $ui-background-stretch-bottom: $panel-background-stretch-bottom,
  671. $ui-background-stretch-right: $panel-background-stretch-right,
  672. $ui-background-stretch-left: $panel-background-stretch-left,
  673. // See the docs above
  674. $ui-include-border-management-rules: $panel-include-border-management-rules,
  675. $ui-wrap-border-color: null,
  676. $ui-wrap-border-width: null,
  677. $ui-ignore-frame-padding: $panel-ignore-frame-padding,
  678. // deprecated - use $ui instead
  679. $ui-label: null
  680. ){
  681. @if $ui == null {
  682. @if $ui-label != null {
  683. @warn '$ui-label is deprecated. Use $ui instead';
  684. $ui: $ui-label;
  685. } @else {
  686. @warn "#{error('$ui is required')}";
  687. }
  688. }
  689. @if is-null($ui-wrap-border-color) {
  690. @if $ui == 'default-framed' {
  691. $ui-wrap-border-color: $panel-wrap-border-color;
  692. } @else {
  693. $ui-wrap-border-color: $ui-border-color;
  694. }
  695. }
  696. @if is-null($ui-wrap-border-width) {
  697. @if $ui == 'default-framed' {
  698. $ui-wrap-border-width: $panel-wrap-border-width;
  699. } @else {
  700. $ui-wrap-border-width: $ui-border-width;
  701. }
  702. }
  703. @if is-null($ui-header-inner-border-color) and not is-null($ui-header-background-color) {
  704. $ui-header-inner-border-color: lighten($ui-header-background-color, 10);
  705. }
  706. $ui-header-padding-noborder:
  707. top($ui-header-padding) + top($ui-header-border-width)
  708. right($ui-header-padding) + right($ui-header-border-width)
  709. // don't add bottom border since bottom border always gets removed by dock layout
  710. bottom($ui-header-padding)
  711. left($ui-header-padding) + left($ui-header-border-width);
  712. .#{$prefix}panel-#{$ui} {
  713. @if not is-null($ui-border-color) {
  714. border-color: $ui-border-color;
  715. &.#{$prefix}masked {
  716. border-color: mix(#fff, $ui-border-color, $loadmask-opacity * 100);
  717. }
  718. }
  719. padding: $ui-padding;
  720. }
  721. // header
  722. .#{$prefix}panel-header-#{$ui} {
  723. @if not is-null($ui-header-font-size) { font-size: $ui-header-font-size; }
  724. @if $ui-header-border-width != 0 {
  725. border: $ui-header-border-width $ui-header-border-style $ui-header-border-color;
  726. }
  727. // Non font icon themes allow using glyphs as well
  728. @if $ui-tool-glyph-color != $tool-glyph-color {
  729. .#{$prefix}tool-tool-el {
  730. color: $ui-tool-glyph-color;
  731. }
  732. }
  733. @if not $enable-font-icons {
  734. .#{$prefix}tool-img {
  735. @if $ui-tool-background-image != $tool-background-image {
  736. background-image: theme-background-image($ui-tool-background-image);
  737. }
  738. }
  739. }
  740. @if is-null($ui-header-background-gradient) {
  741. // EXTJSIV-8846: partially transparent png images do not display correctly
  742. // in winXP/IE8 when the image element has a transparent background.
  743. // to fix this, we give the element the same background-color as the header.
  744. .#{$prefix}tool-tool-el {
  745. background-color: $ui-header-background-color;
  746. }
  747. }
  748. }
  749. .#{$prefix}panel-header-#{$ui}-horizontal {
  750. padding: $ui-header-padding;
  751. @if $include-ext-tab-bar {
  752. .#{$prefix}panel-header-#{$ui}-tab-bar {
  753. margin-top: -(top($ui-header-padding));
  754. margin-bottom: -(bottom($ui-header-padding));
  755. }
  756. }
  757. }
  758. @if $ui-header-noborder-adjust {
  759. .#{$prefix}panel-header-#{$ui}-horizontal.#{$prefix}header-noborder {
  760. padding: $ui-header-padding-noborder;
  761. @if $include-ext-tab-bar {
  762. .#{$prefix}panel-header-#{$ui}-tab-bar {
  763. margin-top: -(top($ui-header-padding-noborder));
  764. margin-bottom: -(bottom($ui-header-padding-noborder));
  765. }
  766. }
  767. }
  768. }
  769. .#{$prefix}panel-header-#{$ui}-vertical {
  770. padding: rotate90($ui-header-padding);
  771. @if $include-ext-tab-bar {
  772. .#{$prefix}panel-header-#{$ui}-tab-bar {
  773. margin-right: -(top($ui-header-padding));
  774. margin-left: -(bottom($ui-header-padding));
  775. }
  776. }
  777. }
  778. @if $ui-header-noborder-adjust {
  779. .#{$prefix}panel-header-#{$ui}-vertical.#{$prefix}header-noborder {
  780. padding: rotate90($ui-header-padding-noborder);
  781. @if $include-ext-tab-bar {
  782. .#{$prefix}panel-header-#{$ui}-tab-bar {
  783. margin-right: -(top($ui-header-padding-noborder));
  784. margin-left: -(bottom($ui-header-padding-noborder));
  785. }
  786. }
  787. }
  788. }
  789. @if $include-rtl {
  790. .#{$prefix}rtl.#{$prefix}panel-header-#{$ui}-vertical {
  791. padding: rotate270($ui-header-padding);
  792. @if $include-ext-tab-bar {
  793. .#{$prefix}panel-header-#{$ui}-tab-bar {
  794. margin-left: -(top($ui-header-padding));
  795. margin-right: -(bottom($ui-header-padding));
  796. }
  797. }
  798. }
  799. @if $ui-header-noborder-adjust {
  800. .#{$prefix}rtl.#{$prefix}panel-header-#{$ui}-vertical.#{$prefix}header-noborder {
  801. padding: rotate270($ui-header-padding-noborder);
  802. @if $include-ext-tab-bar {
  803. .#{$prefix}panel-header-#{$ui}-tab-bar {
  804. margin-left: -(top($ui-header-padding-noborder));
  805. margin-right: -(bottom($ui-header-padding-noborder));
  806. }
  807. }
  808. }
  809. }
  810. }
  811. .#{$prefix}panel-header-title-#{$ui} {
  812. @if not is-null($ui-header-color) { color: $ui-header-color; }
  813. @if not is-null($ui-header-font-size) { font-size: $ui-header-font-size; }
  814. @if not is-null($ui-header-font-weight) { font-weight: $ui-header-font-weight; }
  815. @if not is-null($ui-header-font-family) { font-family: $ui-header-font-family; }
  816. @if not is-null($ui-header-line-height) { line-height: $ui-header-line-height; }
  817. @if $ui-header-text-margin != 0 {
  818. margin: $ui-header-text-margin;
  819. }
  820. &.#{$prefix}title-focus {
  821. .#{$prefix}keyboard-mode & {
  822. @if not is-null($ui-header-focus-color) {
  823. color: $ui-header-focus-color;
  824. }
  825. @if not is-null($ui-header-focus-background-color) {
  826. background-color: $ui-header-focus-background-color;
  827. }
  828. @if not is-null($ui-header-focus-outline-width) {
  829. @include css-outline(
  830. $width: $ui-header-focus-outline-width,
  831. $style: $ui-header-focus-outline-style,
  832. $color: $ui-header-focus-outline-color,
  833. $offset: $ui-header-focus-outline-offset
  834. );
  835. }
  836. }
  837. }
  838. > {
  839. .#{$prefix}title-text-#{$ui} {
  840. text-transform: $ui-header-text-transform;
  841. padding: $ui-header-text-padding;
  842. @if $ext-trial {
  843. &:after {
  844. font-family: ext-watermark;
  845. font-size: ($ui-header-line-height + vertical($ui-header-padding)) * 0.75;
  846. content: 'd';
  847. position: absolute;
  848. top: 0;
  849. right: 0;
  850. // since IE8 does not support opacity on pseudo elements we simulate it by
  851. // mixing the text color with the background color
  852. color: mix($ui-header-color, $ui-header-background-color, 40%);
  853. }
  854. @if $include-rtl {
  855. &.#{$prefix}rtl:after {
  856. right: auto;
  857. left: 0;
  858. }
  859. }
  860. }
  861. @if $ext-beta {
  862. &:after {
  863. font-family: ext-watermark;
  864. font-size: ($ui-header-line-height + vertical($ui-header-padding)) * 0.75;
  865. content: 'b';
  866. position: absolute;
  867. top: 0;
  868. right: 0;
  869. // since IE8 does not support opacity on pseudo elements we simulate it by
  870. // mixing the text color with the background color
  871. color: mix($ui-header-color, $ui-header-background-color, 40%);
  872. }
  873. @if $include-rtl {
  874. &.#{$prefix}rtl:after {
  875. right: auto;
  876. left: 0;
  877. }
  878. }
  879. }
  880. }
  881. .#{$prefix}title-icon-wrap-#{$ui} {
  882. &.#{$prefix}title-icon-top {
  883. height: $ui-header-icon-height + $ui-header-icon-spacing;
  884. padding-bottom: $ui-header-icon-spacing;
  885. }
  886. &.#{$prefix}title-icon-right {
  887. width: $ui-header-icon-width + $ui-header-icon-spacing;
  888. padding-left: $ui-header-icon-spacing;
  889. @if $include-rtl {
  890. &.#{$prefix}rtl {
  891. padding-left: 0;
  892. padding-right: $ui-header-icon-spacing;
  893. }
  894. }
  895. }
  896. &.#{$prefix}title-icon-bottom {
  897. height: $ui-header-icon-height + $ui-header-icon-spacing;
  898. padding-top: $ui-header-icon-spacing;
  899. }
  900. &.#{$prefix}title-icon-left {
  901. width: $ui-header-icon-width + $ui-header-icon-spacing;
  902. padding-right: $ui-header-icon-spacing;
  903. @if $include-rtl {
  904. &.#{$prefix}rtl {
  905. padding-right: 0;
  906. padding-left: $ui-header-icon-spacing;
  907. }
  908. }
  909. }
  910. > .#{$prefix}title-icon-#{$ui} {
  911. width: $ui-header-icon-width;
  912. height: $ui-header-icon-height;
  913. font-size: $ui-header-icon-height;
  914. color: $ui-header-glyph-color;
  915. background-position: $ui-header-icon-background-position;
  916. &.#{$prefix}title-glyph {
  917. @if $ui-header-glyph-opacity != 1 {
  918. // do not use the opacity mixin because we do not want IE's filter version of
  919. // opacity to be included. We emulate the opacity setting in IE8m by mixing
  920. // the icon color into the background color. (see below)
  921. opacity: $ui-header-glyph-opacity;
  922. }
  923. // In IE8 and below when a glyph contains partially transparent pixels, we
  924. // can't apply an opacity filter to the glyph element, because IE8m will render
  925. // the partially transparent pixels of the glyph as black. To work around this,
  926. // we emulate the approximate color that the glyph would have if it had opacity
  927. // applied by mixing the glyph color with the header's background-color.
  928. @if $include-ie {
  929. .#{$prefix}ie8 & {
  930. color: mix($ui-header-glyph-color, $ui-header-background-color, $ui-header-glyph-opacity * 100);
  931. }
  932. }
  933. }
  934. }
  935. }
  936. }
  937. }
  938. // body
  939. .#{$prefix}panel-body-#{$ui} {
  940. @if not is-null($ui-body-background-color) { background: $ui-body-background-color; }
  941. @if not is-null($ui-body-border-color) { border-color: $ui-body-border-color; }
  942. @if not is-null($ui-body-color) { color: $ui-body-color; }
  943. @if not is-null($ui-body-font-size) { font-size: $ui-body-font-size; }
  944. @if not is-null($ui-body-font-weight) { font-weight: $ui-body-font-weight; }
  945. @if not is-null($ui-body-font-family) { font-family: $ui-body-font-family; }
  946. @if not is-null($ui-body-border-width) {
  947. border-width: $ui-body-border-width;
  948. @if not is-null($ui-body-border-style) { border-style: $ui-body-border-style; }
  949. }
  950. }
  951. @if not is-null($ui-border-radius) and $ui-border-radius != 0 {
  952. @include x-frame(
  953. $cls: 'panel',
  954. $ui: '#{$ui}',
  955. $border-radius: $ui-border-radius,
  956. $border-width: $ui-border-width,
  957. $padding: $ui-padding,
  958. $background-color: $ui-body-background-color,
  959. $ignore-frame-padding: $ui-ignore-frame-padding
  960. );
  961. @include x-frame(
  962. $cls: 'panel-header',
  963. $ui: '#{$ui}-top',
  964. $border-radius: top($ui-border-radius) right($ui-border-radius) 0 0,
  965. $border-width: top($ui-header-border-width) right($ui-header-border-width) 0 left($ui-header-border-width),
  966. $padding: $ui-header-padding,
  967. $background-color: $ui-header-background-color,
  968. $background-gradient: $ui-header-background-gradient,
  969. $background-stretch: $ui-background-stretch-top
  970. );
  971. @include x-frame(
  972. $cls: 'panel-header',
  973. $ui: '#{$ui}-right',
  974. $border-radius: 0 right($ui-border-radius) bottom($ui-border-radius) 0,
  975. $border-width: top($ui-header-border-width) right($ui-header-border-width) bottom($ui-header-border-width) 0,
  976. $padding: rotate90($ui-header-padding),
  977. $background-color: $ui-header-background-color,
  978. $background-gradient: $ui-header-background-gradient,
  979. $background-direction: right,
  980. $include-frame-rtl: $include-rtl,
  981. $background-stretch: $ui-background-stretch-right
  982. );
  983. @include x-frame(
  984. $cls: 'panel-header',
  985. $ui: '#{$ui}-bottom',
  986. $border-radius: 0 0 bottom($ui-border-radius) left($ui-border-radius),
  987. $border-width: 0 right($ui-header-border-width) bottom($ui-header-border-width) left($ui-header-border-width),
  988. $padding: $ui-header-padding,
  989. $background-color: $ui-header-background-color,
  990. $background-gradient: $ui-header-background-gradient,
  991. $background-stretch: $ui-background-stretch-bottom
  992. );
  993. @include x-frame(
  994. $cls: 'panel-header',
  995. $ui: '#{$ui}-left',
  996. $border-radius: top($ui-border-radius) 0 0 left($ui-border-radius),
  997. $border-width: top($ui-header-border-width) 0 bottom($ui-header-border-width) left($ui-header-border-width),
  998. $padding: rotate90($ui-header-padding),
  999. $background-color: $ui-header-background-color,
  1000. $background-gradient: $ui-header-background-gradient,
  1001. $background-direction: right,
  1002. $include-frame-rtl: $include-rtl,
  1003. $background-stretch: $ui-background-stretch-left
  1004. );
  1005. @include x-frame(
  1006. $cls: 'panel-header',
  1007. $ui: '#{$ui}-collapsed-top',
  1008. $border-radius: top($ui-border-radius) right($ui-border-radius) bottom($ui-border-radius) left($ui-border-radius),
  1009. $border-width: $ui-header-border-width,
  1010. $padding: $ui-header-padding,
  1011. $background-color: $ui-header-background-color,
  1012. $background-gradient: $ui-header-background-gradient,
  1013. $background-stretch: $ui-background-stretch-top
  1014. );
  1015. @include x-frame(
  1016. $cls: 'panel-header',
  1017. $ui: '#{$ui}-collapsed-right',
  1018. $border-radius: top($ui-border-radius) right($ui-border-radius) bottom($ui-border-radius) left($ui-border-radius),
  1019. $border-width: $ui-header-border-width,
  1020. $padding: rotate90($ui-header-padding),
  1021. $background-color: $ui-header-background-color,
  1022. $background-gradient: $ui-header-background-gradient,
  1023. $background-direction: right,
  1024. $include-frame-rtl: $include-rtl,
  1025. $background-stretch: $ui-background-stretch-right
  1026. );
  1027. @include x-frame(
  1028. $cls: 'panel-header',
  1029. $ui: '#{$ui}-collapsed-bottom',
  1030. $border-radius: top($ui-border-radius) right($ui-border-radius) bottom($ui-border-radius) left($ui-border-radius),
  1031. $border-width: $ui-header-border-width,
  1032. $padding: $ui-header-padding,
  1033. $background-color: $ui-header-background-color,
  1034. $background-gradient: $ui-header-background-gradient,
  1035. $background-stretch: $ui-background-stretch-bottom
  1036. );
  1037. @include x-frame(
  1038. $cls: 'panel-header',
  1039. $ui: '#{$ui}-collapsed-left',
  1040. $border-radius: top($ui-border-radius) right($ui-border-radius) bottom($ui-border-radius) left($ui-border-radius),
  1041. $border-width: $ui-header-border-width,
  1042. $padding: rotate90($ui-header-padding),
  1043. $background-color: $ui-header-background-color,
  1044. $background-gradient: $ui-header-background-gradient,
  1045. $background-direction: right,
  1046. $include-frame-rtl: $include-rtl,
  1047. $background-stretch: $ui-background-stretch-left
  1048. );
  1049. // !important is needed in the following rules to override dock layout's border
  1050. // management rules. the x-panel ancestor selector is used to increase the
  1051. // specificity over the ".#{$prefix}nbr .#{$prefix}#{$cls-ui}" rule produced by
  1052. // x-frame
  1053. .#{$prefix}panel {
  1054. .#{$prefix}panel-header-#{$ui}-top {
  1055. border-bottom-width: bottom($ui-header-border-width) !important;
  1056. }
  1057. .#{$prefix}panel-header-#{$ui}-right {
  1058. border-left-width: bottom($ui-header-border-width) !important;
  1059. }
  1060. .#{$prefix}panel-header-#{$ui}-bottom {
  1061. border-top-width: bottom($ui-header-border-width) !important;
  1062. }
  1063. .#{$prefix}panel-header-#{$ui}-left {
  1064. border-right-width: bottom($ui-header-border-width) !important;
  1065. }
  1066. }
  1067. @if $include-slicer-border-radius {
  1068. .#{$prefix}nbr {
  1069. .#{$prefix}panel-header-#{$ui}-collapsed-top {
  1070. border-bottom-width: 0 !important;
  1071. }
  1072. .#{$prefix}panel-header-#{$ui}-collapsed-right {
  1073. border-left-width: 0 !important;
  1074. }
  1075. .#{$prefix}panel-header-#{$ui}-collapsed-bottom {
  1076. border-top-width: 0 !important;
  1077. }
  1078. .#{$prefix}panel-header-#{$ui}-collapsed-left {
  1079. border-right-width: 0 !important;
  1080. }
  1081. }
  1082. }
  1083. } @else {
  1084. @if not is-null($ui-header-background-color) {
  1085. .#{$prefix}panel-header-#{$ui} {
  1086. @include background-gradient($ui-header-background-color, $ui-header-background-gradient);
  1087. }
  1088. .#{$prefix}panel-header-#{$ui}-vertical {
  1089. @include background-gradient($ui-header-background-color, $ui-header-background-gradient, right);
  1090. }
  1091. @if $include-rtl {
  1092. .#{$prefix}rtl.#{$prefix}panel-header-#{$ui}-vertical {
  1093. @include background-gradient($ui-header-background-color, $ui-header-background-gradient, left);
  1094. }
  1095. }
  1096. }
  1097. // header background images
  1098. $panel-header-ui: 'panel-header-#{$ui}';
  1099. $panel-header-path: 'panel-header/panel-header-#{$ui}';
  1100. @if not is-null($ui-header-background-color) and not is-null($ui-header-background-gradient) {
  1101. @if $include-slicer-gradient {
  1102. .#{$prefix}nlg {
  1103. .#{$prefix}#{$panel-header-ui}-top {
  1104. background: slicer-background-image($panel-header-ui + '-top',
  1105. '#{$panel-header-path}-top-bg');
  1106. }
  1107. .#{$prefix}#{$panel-header-ui}-bottom {
  1108. background: slicer-background-image($panel-header-ui + '-bottom',
  1109. '#{$panel-header-path}-bottom-bg') bottom left;
  1110. }
  1111. .#{$prefix}#{$panel-header-ui}-left {
  1112. background: slicer-background-image($panel-header-ui + '-left',
  1113. '#{$panel-header-path}-left-bg') top left;
  1114. }
  1115. .#{$prefix}#{$panel-header-ui}-right {
  1116. background: slicer-background-image($panel-header-ui + '-right',
  1117. '#{$panel-header-path}-right-bg') top right;
  1118. }
  1119. @if $include-rtl {
  1120. .#{$prefix}rtl {
  1121. &.#{$prefix}#{$panel-header-ui}-left {
  1122. background: slicer-background-image-rtl($panel-header-ui + '-left',
  1123. '#{$panel-header-path}-left-bg-rtl') top right;
  1124. }
  1125. &.#{$prefix}#{$panel-header-ui}-right {
  1126. background: slicer-background-image-rtl($panel-header-ui + '-right',
  1127. '#{$panel-header-path}-right-bg-rtl') top left;
  1128. }
  1129. }
  1130. }
  1131. }
  1132. }
  1133. }
  1134. .#{$prefix}panel {
  1135. // !important is needed here to override dock layout's border management
  1136. // rules. the x-panel ancestor selector is used to increase the specificity
  1137. // over the ".#{$prefix}nbr .#{$prefix}#{$cls-ui}" rule produced by x-frame
  1138. .#{$prefix}panel-header-#{$ui}-collapsed-border-top {
  1139. border-bottom-width: $ui-header-border-width !important;
  1140. }
  1141. .#{$prefix}panel-header-#{$ui}-collapsed-border-right {
  1142. border-left-width: $ui-header-border-width !important;
  1143. }
  1144. .#{$prefix}panel-header-#{$ui}-collapsed-border-bottom {
  1145. border-top-width: $ui-header-border-width !important;
  1146. }
  1147. .#{$prefix}panel-header-#{$ui}-collapsed-border-left {
  1148. border-right-width: $ui-header-border-width !important;
  1149. }
  1150. }
  1151. $stretch: slicer-background-stretch($panel-header-ui + '-top', $ui-background-stretch-top);
  1152. $stretch: slicer-background-stretch($panel-header-ui + '-right', $ui-background-stretch-right);
  1153. $stretch: slicer-background-stretch($panel-header-ui + '-bottom', $ui-background-stretch-bottom);
  1154. $stretch: slicer-background-stretch($panel-header-ui + '-left', $ui-background-stretch-left);
  1155. @include x-slicer($panel-header-ui + '-top');
  1156. @include x-slicer($panel-header-ui + '-bottom');
  1157. @include x-slicer($panel-header-ui + '-left');
  1158. @include x-slicer($panel-header-ui + '-right');
  1159. }
  1160. @if $ui-header-inner-border-width != 0 {
  1161. .#{$prefix}panel-header-#{$ui}-top {
  1162. @include inner-border($ui-header-inner-border-width, $ui-header-inner-border-color);
  1163. }
  1164. .#{$prefix}panel-header-#{$ui}-right {
  1165. @include inner-border(rotate90($ui-header-inner-border-width), $ui-header-inner-border-color);
  1166. }
  1167. .#{$prefix}panel-header-#{$ui}-bottom {
  1168. @include inner-border(rotate180($ui-header-inner-border-width), $ui-header-inner-border-color);
  1169. }
  1170. .#{$prefix}panel-header-#{$ui}-left {
  1171. @include inner-border(rotate270($ui-header-inner-border-width), $ui-header-inner-border-color);
  1172. }
  1173. }
  1174. $ui-tool-margin: 0 0 0 $ui-tool-spacing;
  1175. .#{$prefix}panel-header-#{$ui}-horizontal {
  1176. .#{$prefix}tool-after-title {
  1177. margin: $ui-tool-margin;
  1178. }
  1179. @if $include-rtl {
  1180. .#{$prefix}rtl.#{$prefix}tool-after-title {
  1181. margin: rtl($ui-tool-margin);
  1182. }
  1183. }
  1184. .#{$prefix}tool-before-title {
  1185. margin: rtl($ui-tool-margin);
  1186. }
  1187. @if $include-rtl {
  1188. .#{$prefix}rtl.#{$prefix}tool-before-title {
  1189. margin: $ui-tool-margin;
  1190. }
  1191. }
  1192. }
  1193. .#{$prefix}panel-header-#{$ui}-vertical {
  1194. .#{$prefix}tool-after-title {
  1195. margin: rotate90($ui-tool-margin);
  1196. }
  1197. @if $include-rtl {
  1198. .#{$prefix}rtl.#{$prefix}tool-after-title {
  1199. margin: rotate270(rtl($ui-tool-margin));
  1200. }
  1201. }
  1202. .#{$prefix}tool-before-title {
  1203. margin: rotate90(rtl($ui-tool-margin));
  1204. }
  1205. @if $include-rtl {
  1206. .#{$prefix}rtl.#{$prefix}tool-before-title {
  1207. margin: rotate270($ui-tool-margin);
  1208. }
  1209. }
  1210. }
  1211. .#{$prefix}panel-header-#{$ui} {
  1212. .#{$prefix}tool-focus {
  1213. .#{$prefix}keyboard-mode & {
  1214. .#{$prefix}tool-tool-el {
  1215. @if not is-null($ui-tool-focus-color) {
  1216. color: $ui-tool-focus-color;
  1217. }
  1218. @if not is-null($ui-tool-focus-background-color) {
  1219. background-color: $ui-tool-focus-background-color;
  1220. }
  1221. }
  1222. @if $ui-tool-focus-background-image != $ui-tool-background-image {
  1223. .#{$prefix}tool-img {
  1224. background-image: theme-background-image($ui-tool-focus-background-image);
  1225. }
  1226. }
  1227. @if not is-null($ui-tool-focus-outline-width) {
  1228. @include css-outline(
  1229. $width: $ui-tool-focus-outline-width,
  1230. $style: $ui-tool-focus-outline-style,
  1231. $color: $ui-tool-focus-outline-color,
  1232. $offset: $ui-tool-focus-outline-offset
  1233. );
  1234. }
  1235. }
  1236. }
  1237. }
  1238. @if $include-rtl {
  1239. .#{$prefix}rtl {
  1240. &.#{$prefix}panel-header-#{$ui}-collapsed-border-right {
  1241. border-right-width: $ui-header-border-width !important;
  1242. }
  1243. &.#{$prefix}panel-header-#{$ui}-collapsed-border-left {
  1244. border-left-width: $ui-header-border-width !important;
  1245. }
  1246. }
  1247. }
  1248. // Panel resizing.
  1249. // If there's a border that's wider than the specified threshold (Sencha default is 2) then
  1250. // embed the handles in the borders using -ve position and make resizable windows show overflow.
  1251. // The dock layout should ensure that all constituent elements fit within the element.
  1252. // The only exception is during animated resizing. Overflow inline style is set hidden during animation (AbstractComponent.animate)
  1253. .#{$prefix}panel-#{$ui}-resizable {
  1254. // Panel resize handles are invisible
  1255. .#{$prefix}panel-handle {
  1256. @include opacity(0);
  1257. }
  1258. // If there's a border width, embed the handles in that border
  1259. @if $ui-border-width > $border-width-threshold {
  1260. // Resizable Panel element overflow must be visible for embedded handles to accept mouseovers.
  1261. overflow: visible;
  1262. .#{$prefix}panel-handle-north-br {
  1263. top: -($ui-border-width);
  1264. }
  1265. .#{$prefix}panel-handle-south-br {
  1266. bottom: -($ui-border-width);
  1267. }
  1268. .#{$prefix}panel-handle-east-br {
  1269. right: -($ui-border-width);
  1270. }
  1271. .#{$prefix}panel-handle-west-br {
  1272. left: -($ui-border-width);
  1273. }
  1274. .#{$prefix}panel-handle-northwest-br {
  1275. left: -($ui-border-width);
  1276. top: -($ui-border-width);
  1277. }
  1278. .#{$prefix}panel-handle-northeast-br {
  1279. right: -($ui-border-width);
  1280. top: -($ui-border-width);
  1281. }
  1282. .#{$prefix}panel-handle-southeast-br {
  1283. right: -($ui-border-width);
  1284. bottom: -($ui-border-width);
  1285. }
  1286. .#{$prefix}panel-handle-southwest-br {
  1287. left: -($ui-border-width);
  1288. bottom: -($ui-border-width);
  1289. }
  1290. }
  1291. }
  1292. @if $ui-include-border-management-rules {
  1293. @include border-management(
  1294. $parent-cls: panel-#{$ui},
  1295. $border-width: $ui-wrap-border-width,
  1296. $border-color: $ui-wrap-border-color
  1297. );
  1298. }
  1299. }