Common.less 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. /* claro/form/Common.css */
  2. /*========================= common css =========================*/
  3. @import "../variables";
  4. /* 'dijitTextBox' refers to 'dijit(TextBox|DateTextBox|CurrencyTextBox|...)' */
  5. .claro .dijitTextBox,
  6. .claro .dijitInputInner {
  7. // .dijitInputInner selector needed for ValidationTextBox on IE6 because <input> doesn't inherit
  8. // the color setting from the ancestor div.dijitTextBox
  9. color: @text-color;
  10. }
  11. .claro .dijitValidationTextBoxError .dijitValidationContainer {
  12. background-color: @erroricon-background-color;
  13. background-image: url("../@{image-form-error}");
  14. background-position: top center;
  15. border: solid @erroricon-background-color 0;
  16. width: 9px;
  17. }
  18. .claro .dijitTextBoxError .dijitValidationContainer {
  19. border-left-width: 1px;
  20. }
  21. .claro .dijitValidationTextBoxError .dijitValidationIcon {
  22. width: 0;
  23. background-color: transparent; /* so the INPUT doesn't obscure the border in rtl+a11y */
  24. }
  25. /* Padding for the input area of TextBox based widgets, and corresponding padding for the
  26. * down arrow button and the placeholder. placeholder is explicitly listed because
  27. * dijitPlaceHolder is absolutely positioned, so padding set on dijitInputField
  28. * won't affect it
  29. */
  30. .claro .dijitTextArea,
  31. .claro .dijitInputField .dijitPlaceHolder {
  32. padding: @textbox-padding;
  33. }
  34. .claro .dijitSelect .dijitInputField,
  35. .claro .dijitTextBox .dijitInputField {
  36. // Subtract 1px from top/bottom because we add 1px to other nodes, see rules below.
  37. // Although we are theoretically only adding 1px to top/bottom browsers seem to pad inputs by 1px on left/right,
  38. // although that varies by so compensate for that too.
  39. padding: @textbox-padding - 1px @textbox-padding;
  40. }
  41. .dj_gecko .claro .dijitTextBox .dijitInputInner,
  42. .dj_webkit .claro .dijitTextBox .dijitInputInner {
  43. // Although we are theoretically only adding 1px to top/bottom, some browsers seem to pad inputs by 1px on left/right,
  44. // so compensate for that too.
  45. padding-left: @textbox-padding - 1px;
  46. padding-right: @textbox-padding - 1px;
  47. }
  48. .claro .dijitSelect,
  49. .claro .dijitSelect .dijitButtonContents,
  50. .claro .dijitTextBox,
  51. .claro .dijitTextBox .dijitButtonNode {
  52. /* color for (outer) border on *TextBox widgets, and border between input and buttons on ComboBox and Spinner */
  53. border-color: @border-color;
  54. .transition-property(background-color, border);
  55. .transition-duration(.35s);
  56. }
  57. .claro .dijitSelect,
  58. .claro .dijitTextBox {
  59. background-color: @textbox-background-color;
  60. }
  61. /* hover */
  62. .claro .dijitSelectHover,
  63. .claro .dijitSelectHover .dijitButtonContents,
  64. .claro .dijitTextBoxHover,
  65. .claro .dijitTextBoxHover .dijitButtonNode {
  66. border-color: @hovered-border-color;
  67. .transition-duration(.25s);
  68. }
  69. .claro .dijitTextBoxHover {
  70. background-color: @textbox-hovered-background-color;
  71. .textbox-background-image;
  72. }
  73. /* error state */
  74. .claro .dijitSelectError,
  75. .claro .dijitSelectError .dijitButtonContents,
  76. .claro .dijitTextBoxError,
  77. .claro .dijitTextBoxError .dijitButtonNode {
  78. border-color: @error-border-color;
  79. }
  80. /* focused state */
  81. .claro .dijitSelectFocused,
  82. .claro .dijitSelectFocused .dijitButtonContents,
  83. .claro .dijitTextBoxFocused,
  84. .claro .dijitTextBoxFocused .dijitButtonNode {
  85. border-color:@focused-border-color;
  86. .transition-duration(.1s);
  87. }
  88. .claro .dijitTextBoxFocused {
  89. background-color: @textbox-focused-background-color;
  90. .textbox-background-image;
  91. }
  92. .claro .dijitTextBoxFocused .dijitInputContainer {
  93. background: @textbox-focused-background-color;
  94. }
  95. .claro .dijitSelectErrorFocused,
  96. .claro .dijitSelectErrorFocused .dijitButtonContents,
  97. .claro .dijitTextBoxErrorFocused,
  98. .claro .dijitTextBoxErrorFocused .dijitButtonNode {
  99. border-color: @error-focused-border-color;
  100. }
  101. /* disabled state */
  102. .claro .dijitSelectDisabled,
  103. .claro .dijitSelectDisabled .dijitButtonContents,
  104. .claro .dijitTextBoxDisabled,
  105. .claro .dijitTextBoxDisabled .dijitButtonNode {
  106. border-color: @disabled-border-color;
  107. }
  108. .claro .dijitSelectDisabled,
  109. .claro .dijitTextBoxDisabled,
  110. .claro .dijitTextBoxDisabled .dijitInputContainer {
  111. background-color: @textbox-disabled-background-color;
  112. background-image: none;
  113. }
  114. .claro .dijitSelectDisabled,
  115. .claro .dijitTextBoxDisabled,
  116. .claro .dijitTextBoxDisabled .dijitInputInner {
  117. color: @disabled-text-color;
  118. }
  119. .dj_webkit .claro .dijitDisabled input {
  120. /* because WebKit lightens disabled input/textarea no matter what color you specify */
  121. color: darken(@disabled-text-color, 5%)
  122. }
  123. .dj_webkit .claro textarea.dijitTextAreaDisabled {
  124. /* because WebKit lightens disabled input/textarea no matter what color you specify */
  125. color: darken(@disabled-text-color, 40%)
  126. }
  127. /*========================= for special widgets =========================*/
  128. /* Input boxes with an arrow (for a drop down) */
  129. .claro .dijitSelect .dijitArrowButtonInner,
  130. .claro .dijitComboBox .dijitArrowButtonInner {
  131. background-image: url("../@{image-form-common-arrows}");
  132. background-position:-35px 53%;
  133. background-repeat: no-repeat;
  134. margin: 0;
  135. width:16px;
  136. }
  137. .claro .dijitComboBox .dijitArrowButtonInner {
  138. border: 1px solid @arrowbutton-inner-border-color; // white gutter around the arrow button
  139. }
  140. .claro .dijitToolbar .dijitComboBox .dijitArrowButtonInner {
  141. border: none;
  142. }
  143. .claro .dijitToolbar .dijitComboBox .dijitArrowButtonInner {
  144. border: none;
  145. }
  146. /* Add 1px vertical padding to the <input> where user types and the validation icon,
  147. to match the 1px border on arrow button */
  148. .claro .dijitSelectLabel,
  149. .claro .dijitTextBox .dijitInputInner,
  150. .claro .dijitValidationTextBox .dijitValidationContainer {
  151. padding: 1px 0;
  152. }
  153. .claro .dijitComboBox .dijitButtonNode {
  154. background-color: @arrowbutton-background-color;
  155. .standard-gradient("../");
  156. }
  157. /* Arrow "hover" effect:
  158. * The arrow button should change color whenever the mouse is in a position such that clicking it
  159. * will toggle the drop down. That's either (1) anywhere over the ComboBox or (2) over the arrow
  160. * button, depending on the openOnClick setting for the widget.
  161. */
  162. .claro .dijitComboBoxOpenOnClickHover .dijitButtonNode,
  163. .claro .dijitComboBox .dijitDownArrowButtonHover,
  164. .claro .dijitComboBoxFocused .dijitArrowButton {
  165. background-color:@arrowbutton-hovered-background-color;
  166. }
  167. .claro .dijitComboBoxOpenOnClickHover .dijitArrowButtonInner,
  168. .claro .dijitComboBox .dijitDownArrowButtonHover .dijitArrowButtonInner {
  169. background-position:-70px 53%;
  170. }
  171. /* Arrow Button change when drop down is open */
  172. .claro .dijitComboBox .dijitHasDropDownOpen { // .dijitHasDropDown is on dijitArrowButton node
  173. background-color: @pressed-background-color;
  174. .active-gradient("../");
  175. padding: 1px; // Since no border on arrow button (see rule below)
  176. }
  177. .dj_iequirks .claro .dijitComboBox .dijitHasDropDownOpen {
  178. padding: 1px 0;
  179. }
  180. .claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {
  181. background-position:-70px 53%;
  182. border: 0 none;
  183. }
  184. /* disabled state */
  185. .claro div.dijitComboBoxDisabled .dijitArrowButtonInner {
  186. /* specific selector set to override background-position setting from Button.js
  187. * (.claro .dijitComboBoxDisabled .dijitArrowButtonInner) */
  188. background-position:0 50%;
  189. background-color:@disabled-background-color;
  190. }
  191. /*========================= hacks for browsers =========================*/
  192. /* it seems the input[type="hidden"] has a height (16px) too... this may cause the widget's height calculate error */
  193. .dj_ff3 .claro .dijitInputField input[type="hidden"] {
  194. display: none;
  195. height: 0;
  196. width: 0;
  197. }
  198. .dj_borderbox .claro .dijitComboBox .dijitHasDropDownOpen .dijitArrowButtonInner {
  199. width:18px; // quirks mode means border-box sizing, so 18px with the border (same as 16px without border)
  200. }
  201. .dj_borderbox .claro .dijitComboBoxFocused .dijitHasDropDownOpen .dijitArrowButtonInner {
  202. width:16px; // when no border, then back to 16px just like content-box sizing
  203. }