FieldSet.scss 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. /**
  2. * @class Ext.form.FieldSet
  3. */
  4. /**
  5. * @var {number}
  6. * The font-size of the FieldSet header
  7. */
  8. $fieldset-header-font-size: dynamic(ceil($font-size * .9));
  9. /**
  10. * @var {string}
  11. * The font-weight of the FieldSet header
  12. */
  13. $fieldset-header-font-weight: dynamic($font-weight);
  14. /**
  15. * @var {string}
  16. * The font-family of the FieldSet header
  17. */
  18. $fieldset-header-font-family: dynamic($font-family);
  19. /**
  20. * @var {number/string}
  21. * The line-height of the FieldSet header
  22. */
  23. $fieldset-header-line-height: dynamic(14px);
  24. /**
  25. * @var {color}
  26. * The text color of the FieldSet header
  27. */
  28. $fieldset-header-color: dynamic(adjust-color($base-color, $hue: 3.785deg, $saturation: 18.194%, $lightness: -52.745%));
  29. /**
  30. * @var {number}
  31. * The border-width of the FieldSet
  32. */
  33. $fieldset-border-width: dynamic(1px);
  34. /**
  35. * @var {string}
  36. * The border-style of the FieldSet
  37. */
  38. $fieldset-border-style: dynamic(solid);
  39. /**
  40. * @var {color}
  41. * The border-color of the FieldSet
  42. */
  43. $fieldset-border-color: dynamic(#B5B8C8);
  44. /**
  45. * @var {number}
  46. * The border radius of FieldSet elements.
  47. */
  48. $fieldset-border-radius: dynamic(0);
  49. /**
  50. * @var {number/list}
  51. * The FieldSet's padding
  52. */
  53. $fieldset-padding: dynamic(0 10px);
  54. /**
  55. * @var {number/list}
  56. * The FieldSet's margin
  57. */
  58. $fieldset-margin: dynamic(0 0 10px);
  59. /**
  60. * @var {number/list}
  61. * The padding to apply to the FieldSet's header
  62. */
  63. $fieldset-header-padding: dynamic(0 3px 1px);
  64. /**
  65. * @var {number}
  66. * The size of the FieldSet's collapse tool
  67. */
  68. $fieldset-collapse-tool-size: dynamic(15px);
  69. /**
  70. * @var {number/list}
  71. * The margin to apply to the FieldSet's collapse tool
  72. */
  73. $fieldset-collapse-tool-margin: dynamic(1px 3px 0 0);
  74. /**
  75. * @var {number/list}
  76. * The padding to apply to the FieldSet's collapse tool
  77. */
  78. $fieldset-collapse-tool-padding: dynamic(0);
  79. /**
  80. * @var {string} $fieldset-collapse-tool-background-image
  81. * The background-image to use for the collapse tool. If 'none' the default tool
  82. * sprite will be used. Defaults to 'none'.
  83. */
  84. $fieldset-collapse-tool-background-image: dynamic('none');
  85. /**
  86. * @var {number}
  87. * The opacity of the FieldSet's collapse tool
  88. */
  89. $fieldset-collapse-tool-opacity: dynamic(1);
  90. /**
  91. * @var {number}
  92. * The opacity of the FieldSet's collapse tool when hovered
  93. */
  94. $fieldset-collapse-tool-opacity-over: dynamic(1);
  95. /**
  96. * @var {number}
  97. * The opacity of the FieldSet's collapse tool when pressed
  98. */
  99. $fieldset-collapse-tool-opacity-pressed: dynamic(1);
  100. /**
  101. * @var {number}
  102. * The font size to use for the collapse/expand tool icon when {@link Global_CSS#$enable-font-icons} is `true`.
  103. */
  104. $fieldset-tool-glyph-font-size: dynamic(16px);
  105. /**
  106. * @var {color}
  107. * The color to use for the collapse/expand tool icon when {@link Global_CSS#$enable-font-icons} is `true`.
  108. */
  109. $fieldset-tool-glyph-color: dynamic($fieldset-header-color);
  110. /**
  111. * @var {string/list}
  112. * Glyph for the "expand" tool icon when {@link Global_CSS#$enable-font-icons} is `true`.
  113. */
  114. $fieldset-tool-expand-glyph: dynamic($fa-var-caret-down $fieldset-tool-glyph-font-size $font-icon-font-family);
  115. /**
  116. * @var {string/list}
  117. * Glyph for the "collapse" tool icon when {@link Global_CSS#$enable-font-icons} is `true`.
  118. */
  119. $fieldset-tool-collapse-glyph: dynamic($fa-var-caret-up $fieldset-tool-glyph-font-size $font-icon-font-family);
  120. /**
  121. * @var {number/list}
  122. * The margin to apply to the FieldSet's checkbox (for FieldSets that use
  123. * {@link #checkboxToggle})
  124. */
  125. $fieldset-checkbox-margin: dynamic($fieldset-collapse-tool-margin);
  126. $fieldset-use-standard-tool-background-positions: dynamic(false);
  127. /**
  128. * @var {boolean}
  129. * True to include the "default" fieldset UI
  130. */
  131. $include-fieldset-default-ui: dynamic($include-field-default-ui);
  132. /**
  133. * Creates a visual theme for text fields. Note this mixin only provides styling
  134. * For the form field body, The label and error are styled by
  135. * {@link Ext.form.Labelable#css_mixin-extjs-label-ui}.
  136. *
  137. * @param {string} $ui
  138. * The name of the UI being created. Can not included spaces or special punctuation
  139. * (used in CSS class names).
  140. *
  141. * @param {number} [$ui-header-font-size=$fieldset-header-font-size]
  142. * The font-size of the FieldSet header
  143. *
  144. * @param {string} [$ui-header-font-weight=$fieldset-header-font-weight]
  145. * The font-weight of the FieldSet header
  146. *
  147. * @param {string} [$ui-header-font-family=$fieldset-header-font-family]
  148. * The font-family of the FieldSet header
  149. *
  150. * @param {number/string} [$ui-header-line-height=$fieldset-header-line-height]
  151. * The line-height of the FieldSet header
  152. *
  153. * @param {color} [$ui-header-color=$fieldset-header-color]
  154. * The text color of the FieldSet header
  155. *
  156. * @param {number} [$ui-border-width=$fieldset-border-width]
  157. * The border-width of the FieldSet
  158. *
  159. * @param {string} [$ui-border-style=$fieldset-border-style]
  160. * The border-style of the FieldSet
  161. *
  162. * @param {color} [$ui-border-color=$fieldset-border-color]
  163. * The border-color of the FieldSet
  164. *
  165. * @param {number} [$ui-border-radius=$fieldset-border-radius]
  166. * The border radius of FieldSet elements.
  167. *
  168. * @param {number/list} [$ui-padding=$fieldset-padding]
  169. * The FieldSet's padding
  170. *
  171. * @param {number/list} [$ui-margin=$fieldset-margin]
  172. * The FieldSet's margin
  173. *
  174. * @param {number/list} [$ui-header-padding=$fieldset-header-padding]
  175. * The padding to apply to the FieldSet's header
  176. *
  177. * @param {number} [$ui-collapse-tool-size=$fieldset-collapse-tool-size]
  178. * The size of the FieldSet's collapse tool
  179. *
  180. * @param {number/list} [$ui-collapse-tool-margin=$fieldset-collapse-tool-margin]
  181. * The margin to apply to the FieldSet's collapse tool
  182. *
  183. * @param {number/list} [$ui-collapse-tool-padding=$fieldset-collapse-tool-padding]
  184. * The padding to apply to the FieldSet's collapse tool
  185. *
  186. * @param {string} [$ui-collapse-tool-background-image=$fieldset-collapse-tool-background-image]
  187. * The background-image to use for the collapse tool. If 'none' the default tool
  188. * sprite will be used. Defaults to 'none'.
  189. *
  190. * @param {number} [$ui-collapse-tool-opacity=$fieldset-collapse-tool-opacity]
  191. * The opacity of the FieldSet's collapse tool
  192. *
  193. * @param {number} [$ui-collapse-tool-opacity-over=$fieldset-collapse-tool-opacity-over]
  194. * The opacity of the FieldSet's collapse tool when hovered
  195. *
  196. * @param {number} [$ui-collapse-tool-opacity-pressed=$fieldset-collapse-tool-opacity-pressed]
  197. * The opacity of the FieldSet's collapse tool when pressed
  198. *
  199. * @param {color} [$ui-tool-glyph-color=$fieldset-tool-glyph-color]
  200. * The color to use for the collapse/expand tool icon when {@link Global_CSS#$enable-font-icons} is `true`.
  201. *
  202. * @param {string/list} [$ui-tool-expand-glyph=$fieldset-tool-expand-glyph]
  203. * Glyph for the "expand" tool icon when {@link Global_CSS#$enable-font-icons} is `true`.
  204. *
  205. * @param {string/list} [$ui-tool-collapse-glyph=$fieldset-tool-collapse-glyph]
  206. * Glyph for the "collapse" tool icon when {@link Global_CSS#$enable-font-icons} is `true`.
  207. *
  208. * @param {number/list} [$ui-checkbox-margin=$fieldset-checkbox-margin]
  209. * The margin to apply to the FieldSet's checkbox (for FieldSets that use
  210. * {@link #checkboxToggle})
  211. *
  212. * @param {boolean} [$ui-use-standard-tool-background-positions=$fieldset-use-standard-tool-background-positions]
  213. *
  214. * @member Ext.form.FieldSet
  215. */
  216. @mixin extjs-fieldset-ui(
  217. $ui: null,
  218. $ui-header-font-size: $fieldset-header-font-size,
  219. $ui-header-font-weight: $fieldset-header-font-weight,
  220. $ui-header-font-family: $fieldset-header-font-family,
  221. $ui-header-line-height: $fieldset-header-line-height,
  222. $ui-header-color: $fieldset-header-color,
  223. $ui-border-width: $fieldset-border-width,
  224. $ui-border-style: $fieldset-border-style,
  225. $ui-border-color: $fieldset-border-color,
  226. $ui-border-radius: $fieldset-border-radius,
  227. $ui-padding: $fieldset-padding,
  228. $ui-margin: $fieldset-margin,
  229. $ui-header-padding: $fieldset-header-padding,
  230. $ui-collapse-tool-size: $fieldset-collapse-tool-size,
  231. $ui-collapse-tool-margin: $fieldset-collapse-tool-margin,
  232. $ui-collapse-tool-padding: $fieldset-collapse-tool-padding,
  233. $ui-collapse-tool-background-image: $fieldset-collapse-tool-background-image,
  234. $ui-collapse-tool-opacity: $fieldset-collapse-tool-opacity,
  235. $ui-collapse-tool-opacity-over: $fieldset-collapse-tool-opacity-over,
  236. $ui-collapse-tool-opacity-pressed: $fieldset-collapse-tool-opacity-pressed,
  237. $ui-tool-glyph-color: $fieldset-tool-glyph-color,
  238. $ui-tool-expand-glyph: $fieldset-tool-expand-glyph,
  239. $ui-tool-collapse-glyph: $fieldset-tool-collapse-glyph,
  240. $ui-checkbox-margin: $fieldset-checkbox-margin,
  241. $ui-use-standard-tool-background-positions: $fieldset-use-standard-tool-background-positions
  242. ) {
  243. $ui-collapse-tool-background-position: 0 0;
  244. $ui-collapse-tool-background-position-over: 0 (-$ui-collapse-tool-size);
  245. $ui-collapse-tool-background-position-collapsed: (-$ui-collapse-tool-size) 0;
  246. $ui-collapse-tool-background-position-collapsed-over: (-$ui-collapse-tool-size) (-$ui-collapse-tool-size);
  247. @if ($ui-use-standard-tool-background-positions) {
  248. $ui-collapse-tool-background-position: 0 ($ui-collapse-tool-size * -4);
  249. $ui-collapse-tool-background-position-over: (-$ui-collapse-tool-size) ($ui-collapse-tool-size * -4);
  250. $ui-collapse-tool-background-position-collapsed: 0 ($ui-collapse-tool-size * -5);
  251. $ui-collapse-tool-background-position-collapsed-over: (-$ui-collapse-tool-size) ($ui-collapse-tool-size * -5);
  252. }
  253. .#{$prefix}fieldset-#{$ui} {
  254. border: $ui-border-width $ui-border-style $ui-border-color;
  255. padding: $ui-padding;
  256. margin: $ui-margin;
  257. @if $ui-border-radius != 0 {
  258. @include border-radius($ui-border-radius);
  259. }
  260. }
  261. @if $include-ie {
  262. // Insane IE bug: Fieldset padding-top is rendered *outside* the border
  263. // So we transfer the padding-top to the body element.
  264. .#{$prefix}ie8 {
  265. .#{$prefix}fieldset-#{$ui} {
  266. padding-top: 0;
  267. }
  268. .#{$prefix}fieldset-body-#{$ui} {
  269. padding-top: top($ui-padding);
  270. }
  271. }
  272. }
  273. .#{$prefix}fieldset-header-#{$ui} {
  274. padding: $ui-header-padding;
  275. line-height: $ui-header-line-height;
  276. > .#{$prefix}fieldset-header-text {
  277. font: $ui-header-font-weight #{$ui-header-font-size}/#{$ui-header-line-height} $ui-header-font-family;
  278. color: $ui-header-color;
  279. padding: 1px 0;
  280. }
  281. }
  282. .#{$prefix}fieldset-header-checkbox-#{$ui} {
  283. margin: $ui-checkbox-margin;
  284. @if $include-rtl {
  285. &.#{$prefix}rtl {
  286. margin: rtl($ui-checkbox-margin);
  287. }
  288. }
  289. line-height: $ui-header-line-height;
  290. }
  291. .#{$prefix}fieldset-header-tool-#{$ui} {
  292. margin: $ui-collapse-tool-margin;
  293. @if $include-rtl {
  294. &.#{$prefix}rtl {
  295. margin: rtl($ui-collapse-tool-margin);
  296. }
  297. }
  298. padding: $ui-collapse-tool-padding;
  299. > .#{$prefix}tool-img {
  300. @include opacity($ui-collapse-tool-opacity);
  301. height: $ui-collapse-tool-size;
  302. width: $ui-collapse-tool-size;
  303. }
  304. @if $ui-collapse-tool-opacity-over != 1 or $ui-collapse-tool-opacity != 1 {
  305. &.#{$prefix}tool-over > .#{$prefix}tool-img {
  306. @include opacity($ui-collapse-tool-opacity-over);
  307. }
  308. }
  309. @if $ui-collapse-tool-opacity-pressed != 1 or $ui-collapse-tool-opacity != 1 {
  310. &.#{$prefix}tool-pressed > .#{$prefix}tool-img {
  311. @include opacity($ui-collapse-tool-opacity-pressed);
  312. }
  313. }
  314. @if $enable-font-icons and ($ui-tool-expand-glyph != null) {
  315. > .#{$prefix}tool-toggle {
  316. @include font-icon($ui-tool-expand-glyph);
  317. color: $ui-tool-glyph-color;
  318. }
  319. } @else {
  320. > .#{$prefix}tool-toggle {
  321. @if not is-null($ui-collapse-tool-background-image) {
  322. background-image: theme-background-image($ui-collapse-tool-background-image);
  323. }
  324. background-position: $ui-collapse-tool-background-position;
  325. }
  326. @if not is-null($ui-collapse-tool-background-position-over) {
  327. &.#{$prefix}tool-over > .#{$prefix}tool-toggle {
  328. background-position: $ui-collapse-tool-background-position-over;
  329. }
  330. }
  331. }
  332. // TODO Come up with proper styling!
  333. &.#{$prefix}focus {
  334. .#{$prefix}keyboard-mode & {
  335. outline: 1px solid $form-field-focus-border-color;
  336. }
  337. }
  338. }
  339. .#{$prefix}fieldset-#{$ui} {
  340. &.#{$prefix}fieldset-collapsed {
  341. @if $ui-border-radius != 0 {
  342. @include border-radius(0);
  343. }
  344. border-width: 1px 1px 0 1px;
  345. border-left-color: transparent;
  346. border-right-color: transparent;
  347. @if $enable-font-icons and ($ui-tool-collapse-glyph != null) {
  348. .#{$prefix}tool-toggle {
  349. @include font-icon($ui-tool-collapse-glyph);
  350. }
  351. } @else {
  352. .#{$prefix}tool-toggle {
  353. background-position: $ui-collapse-tool-background-position-collapsed;
  354. }
  355. @if not is-null($ui-collapse-tool-background-position-collapsed-over) {
  356. .#{$prefix}tool-over > .#{$prefix}tool-toggle {
  357. background-position: $ui-collapse-tool-background-position-collapsed-over;
  358. }
  359. }
  360. }
  361. }
  362. }
  363. }