2 Essential styles that themes can inherit.
3 In other words, works but doesn't look great.
13 /* Use this style to null out padding, margin, border in your template elements
14 so that page specific styles don't break them.
15 - Use in all TABLE, TR and TD tags.
24 .dj_a11y .dijitReset {
25 -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */
29 /* To inline block elements.
30 Similar to InlineBox below, but this has fewer side-effects in Moz.
31 Also, apparently works on a DIV as well as a FIELDSET.
33 display:inline-block; /* webkit and FF3 */
34 #zoom: 1; /* set hasLayout:true to mimic inline-block */
35 #display:inline; /* don't use .dj_ie since that increases the priority */
38 vertical-align:middle;
39 #vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */
43 /* To inline tables with a given width set */
45 box-sizing: content-box; -moz-box-sizing: content-box;
49 /* To hide unselected panes in StackContainer etc. */
50 display: none !important;
54 /* To show selected pane in StackContainer etc. */
55 display: block !important; /* override user's display:none setting via style setting or indirectly via class */
56 position: relative; /* to support setting width/height, see #2033 */
59 .dj_ie6 .dijitComboBox .dijitInputContainer,
60 .dijitInputContainer {
61 /* for positioning of placeHolder */
64 float: none !important; /* needed to squeeze the INPUT in */
67 .dj_ie7 .dijitInputContainer {
68 float: left !important; /* needed by IE to squeeze the INPUT in */
70 display: inline-block !important; /* to fix wrong text alignment in rtl text box */
73 .dj_ie .dijitSelect input,
74 .dj_ie input.dijitTextBox,
75 .dj_ie .dijitTextBox input {
78 .dijitSelect .dijitButtonText {
83 padding: 0 !important; /* messes up border alignment */
85 .dijitTextBox .dijitSpinnerButtonContainer,
86 .dijitTextBox .dijitArrowButtonContainer,
87 .dijitValidationTextBox .dijitValidationContainer {
91 .dijitSelect input.dijitInputField,
92 .dijitTextBox input.dijitInputField {
93 /* override unreasonable user styling of buttons and icons */
94 padding-left: 0 !important;
95 padding-right: 0 !important;
97 .dijitValidationTextBox .dijitValidationContainer {
106 .dijitOffScreen { /* these class attributes should supercede any inline positioning style */
107 position: absolute !important;
108 left: 50% !important;
109 top: -10000px !important;
113 * Popup items have a wrapper div (dijitPopup)
114 * with the real popup inside, and maybe an iframe too
118 background-color: transparent;
125 /* Null out all position-related properties */
126 padding: 0 !important;
127 border: 0 !important;
128 background-color: transparent !important;
129 background-image: none !important;
130 height: auto !important;
131 width: auto !important;
134 .dijitNonPositionOnly {
135 /* Null position-related properties */
136 float: none !important;
137 position: static !important;
138 margin: 0 0 0 0 !important;
139 vertical-align: middle !important;
142 .dijitBackgroundIframe {
143 /* iframe used to prevent problems with PDF or other applets overlaying menus etc */
156 /* hide something. Use this as a class rather than element.style so another class can override */
157 display:none !important;
161 /* for all layout containers */
162 overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */
169 .dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */
170 .dj_a11y span.dijitArrowButtonInner,
171 .dj_a11y img.dijitArrowButtonInner,
172 .dj_a11y .dijitCalendarIncrementControl,
173 .dj_a11y .dijitTreeExpando {
174 /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents
175 * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */
178 .dijitSpinner div.dijitArrowButtonInner {
179 display: block; /* override previous rule */
182 .dj_a11y .dijitA11ySideArrow {
183 display: inline !important; /* display text instead */
188 * Since we can't use shading in a11y mode, and since the underline indicates today's date,
189 * use a border to show the selected date.
190 * Avoid screen jitter when switching selected date by compensating for the selected node's
191 * border w/padding on other nodes.
193 .dj_a11y .dijitCalendarDateLabel {
195 border: 0px !important;
197 .dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {
198 border-style: solid !important;
199 border-width: 1px !important;
202 .dj_a11y .dijitCalendarDateTemplate {
203 padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */
204 border: 0px !important;
206 .dj_a11y .dijitButtonNode {
207 border: black outset medium !important;
209 /* In claro, hovering a toolbar button reduces padding and adds a border.
210 * Not needed in a11y mode since Toolbar buttons always have a border.
212 padding: 0 !important;
214 .dj_a11y .dijitArrowButton {
215 padding: 0 !important;
218 .dj_a11y .dijitButtonContents {
219 margin: 0.15em; /* Margin needed to make focus outline visible */
222 .dj_a11y .dijitTextBoxReadOnly .dijitInputField,
223 .dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {
224 border-style: outset!important;
225 border-width: medium!important;
226 border-color: #999 !important;
227 color:#999 !important;
230 /* button inner contents - labels, icons etc. */
232 vertical-align: middle;
234 .dijitSelect .dijitArrowButtonInner,
235 .dijitButtonNode .dijitArrowButtonInner {
236 /* the arrow icon node */
237 background: no-repeat center;
240 direction: ltr; /* needed by IE/RTL */
244 3-element borders: ( dijitLeft + dijitStretch + dijitRight )
245 These were added for rounded corners on dijit.form.*Button but never actually used.
249 /* Left part of a 3-element border */
250 background-position:left top;
251 background-repeat:no-repeat;
255 /* Middle (stretchy) part of a 3-element border */
256 white-space:nowrap; /* MOW: move somewhere else */
257 background-repeat:repeat-x;
261 /* Right part of a 3-element border */
262 #display:inline; /* IE7 sizes to outer size w/o this */
263 background-position:right top;
264 background-repeat:no-repeat;
268 .dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {
274 .dijitDropDownButton,
276 /* outside of button */
278 vertical-align: middle;
281 .dijitButtonContents {
282 display: block; /* to make focus border rectangular */
284 td.dijitButtonContents {
285 display: table-cell; /* but don't affect Select, ComboButton */
288 .dijitButtonNode img {
289 /* make text and images line up cleanly */
290 vertical-align:middle;
291 /*margin-bottom:.2em;*/
294 .dijitToolbar .dijitComboButton {
295 /* because Toolbar only draws a border around the hovered thing */
296 border-collapse: separate;
299 .dijitToolbar .dijitToggleButton,
300 .dijitToolbar .dijitButton,
301 .dijitToolbar .dijitDropDownButton,
302 .dijitToolbar .dijitComboButton {
306 .dijitToolbar .dijitButtonContents {
307 /* just because it used to be this way */
312 .dj_webkit .dijitToolbar .dijitDropDownButton {
315 .dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {
320 border:1px solid gray;
323 /* Node that is acting as a button -- may or may not be a BUTTON element */
324 border:1px solid gray;
327 vertical-align: middle;
328 #vertical-align: auto;
332 .dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {
333 /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode)
334 can be different than just a single line-height:normal, visible in InlineEditBox/Spinner */
337 .dijitTextBox .dijitButtonNode {
348 .dj_ie .dijitButtonNode {
349 /* ensure hasLayout */
353 .dj_ie .dijitButtonNode button {
355 disgusting hack to get rid of spurious padding around button elements
356 on IE. MSIE is truly the web's boat anchor.
361 div.dijitArrowButton {
367 Everything that has an <input>
371 border: solid black 1px;
372 #overflow: hidden; /* #6027, #6067 */
373 width: 15em; /* need to set default size on outer node since inner nodes say <input style="width:100%"> and <td width=100%>. user can override */
374 vertical-align: middle;
377 .dijitTextBoxReadOnly,
378 .dijitTextBoxDisabled {
381 .dj_safari .dijitTextBoxDisabled input {
382 color: #B0B0B0; /* because Safari lightens disabled input/textarea no matter what color you specify */
384 .dj_safari textarea.dijitTextAreaDisabled {
385 color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */
387 .dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */
388 .dj_gecko .dijitTextBoxDisabled input {
389 -moz-user-input: none; /* prevent focus of disabled textbox buttons */
393 /* hint text that appears in a textbox until user starts typing */
399 #filter: ""; /* make this showup in IE6 after the rendering of the widget */
406 /* rules for webkit to deal with fuzzy blue focus border */
407 .dijitTextBox input:focus {
408 outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */
410 .dijitTextBoxFocused {
411 outline: 5px -webkit-focus-ring-color;
415 .dijitTextBox input {
416 float: left; /* needed by IE to remove secret margin */
418 .dj_ie6 input.dijitTextBox,
419 .dj_ie6 .dijitTextBox input {
423 /* for when an <input> is embedded inside an inline-block <div> with a size and border */
425 background-color:transparent !important;
426 width:100% !important;
427 /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */
428 padding-left: 0 !important;
429 padding-right: 0 !important;
430 margin-left: 0 !important;
431 margin-right: 0 !important;
433 .dj_a11y .dijitTextBox input {
434 margin: 0 !important;
436 .dijitValidationTextBoxError input.dijitValidationInner,
438 .dijitTextBox input.dijitArrowButtonInner {
439 /* <input> used to display arrow icon/validation icon, or in arrow character in high contrast mode.
440 * The css below is a trick to hide the character in non-high-contrast mode
442 text-indent: -2em !important;
443 direction: ltr !important;
444 text-align: left !important;
445 height: auto !important;
446 #text-indent: 0 !important;
447 #letter-spacing: -5em !important;
448 #text-align: right !important;
450 .dj_ie .dijitSelect input,
451 .dj_ie .dijitTextBox input,
452 .dj_ie input.dijitTextBox {
453 overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */
454 line-height: normal; /* strict mode */
456 .dijitSelect .dijitSelectLabel span {
459 .dj_ie .dijitSelect .dijitSelectLabel {
462 .dj_ie6 .dijitSelect .dijitSelectLabel,
463 .dj_ie7 .dijitSelect .dijitSelectLabel,
464 .dj_ie8 .dijitSelect .dijitSelectLabel,
465 .dj_iequirks .dijitSelect .dijitSelectLabel,
467 .dj_ie6 .dijitSelect input,
468 .dj_iequirks .dijitSelect input,
469 .dj_ie6 .dijitSelect .dijitValidationContainer,
470 .dj_ie6 .dijitTextBox input,
471 .dj_ie6 input.dijitTextBox,
472 .dj_iequirks .dijitTextBox input.dijitValidationInner,
473 .dj_iequirks .dijitTextBox input.dijitArrowButtonInner,
474 .dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,
475 .dj_iequirks .dijitTextBox input.dijitInputInner,
476 .dj_iequirks input.dijitTextBox {
477 line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */
479 .dj_a11y input.dijitValidationInner,
480 .dj_a11y input.dijitArrowButtonInner {
481 /* (in high contrast mode) revert rules from above so character displays */
482 text-indent: 0 !important;
483 width: 1em !important;
484 #text-align: left !important;
485 color: black !important;
487 .dijitValidationTextBoxError .dijitValidationContainer {
492 /* ComboBox & Spinner */
494 .dijitSpinner .dijitSpinnerButtonContainer,
495 .dijitComboBox .dijitArrowButtonContainer {
496 /* dividing line between input area and up/down button(s) for ComboBox and Spinner */
497 border-width: 0 0 0 1px !important; /* !important needed due to wayward ".theme .dijitButtonNode" rules */
499 .dj_a11y .dijitSelect .dijitArrowButtonContainer,
500 .dijitToolbar .dijitComboBox .dijitArrowButtonContainer {
501 /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */
502 border-width: 0 !important;
506 /* Drop down menu is implemented as <ul> <li/> <li/> ... but we don't want circles before each item */
507 list-style-type: none;
509 .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {
510 /* dividing line between input area and up/down button(s) for ComboBox and Spinner */
513 .dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {
514 clear: both; /* IE workaround */
517 .dj_ie .dijitToolbar .dijitComboBox {
518 /* make combobox buttons align properly with other buttons in a toolbar */
519 vertical-align: middle;
524 .dijitTextBox .dijitSpinnerButtonContainer {
526 position: relative !important;
529 .dijitSpinner .dijitSpinnerButtonInner {
531 visibility:hidden !important; /* just a sizing element */
534 .dijitComboBox .dijitButtonNode,
535 .dijitSpinnerButtonContainer .dijitButtonNode {
538 .dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {
539 border-width: 0px !important;
540 border-style: solid !important;
542 .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,
543 .dj_a11y .dijitSpinner .dijitArrowButtonInner,
544 .dj_a11y .dijitSpinnerButtonContainer input {
545 width: 1em !important;
547 .dj_a11y .dijitSpinner .dijitArrowButtonInner {
548 margin: 0 auto !important; /* should auto-center */
550 .dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
551 padding-left: 0.3em !important;
552 padding-right: 0.3em !important;
553 margin-left: 0.3em !important;
554 margin-right: 0.3em !important;
555 width: 1.4em !important;
557 .dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
558 padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */
559 padding-right: 0 !important;
560 width: 1em !important;
562 .dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
563 margin-left: 0.1em !important;
564 margin-right: 0.1em !important;
565 width: 1em !important;
567 .dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
568 margin-left: 0 !important;
569 margin-right: 0 !important;
570 width: 2em !important;
572 .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
573 /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings
574 * for dijit.form.Button
577 position: absolute !important;
586 .dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
589 .dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {
590 overflow: visible !important;
592 .dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {
594 border-top-width: 1px !important;
596 .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {
597 #bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */
600 .dijitSpinner .dijitArrowButtonInner {
603 height: 100% !important;
605 .dj_iequirks .dijitSpinner .dijitArrowButtonInner {
606 height: auto !important;
608 .dijitSpinner .dijitArrowButtonInner .dijitInputField {
609 -moz-transform: scale(0.5);
610 -moz-transform-origin: center top;
611 -webkit-transform: scale(0.5);
612 -webkit-transform-origin: center top;
613 -o-transform: scale(0.5);
614 -o-transform-origin: center top;
615 transform: scale(0.5);
616 transform-origin: left top;
619 padding-left: 0 !important;
620 padding-right: 0 !important;
624 .dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {
625 zoom: 50%; /* emulate transform: scale(0.5) */
627 .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {
631 .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
634 .dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {
635 width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */
637 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {
641 .dj_a11y .dijitSpinnerButtonContainer {
648 dijit.form.RadioButton
653 .dijitCheckBoxInput {
658 background-position:center center;
659 background-repeat:no-repeat;
663 .dijitCheckBox input,
670 .dijitCheckBoxInput {
671 /* place the actual input on top, but all-but-invisible */
675 .dj_ie .dijitCheckBoxInput {
676 filter: alpha(opacity=0);
679 .dj_a11y .dijitCheckBox,
680 .dj_a11y .dijitRadio {
681 /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */
682 width: auto !important;
683 height: auto !important;
685 .dj_a11y .dijitCheckBoxInput {
692 .dj_a11y .dijitFocusedLabel {
693 /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/
695 outline: 0px !important;
703 z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */
705 .dijitProgressBarEmpty {
706 /* outer container and background of the bar that's not finished yet*/
707 position:relative;overflow:hidden;
708 border:1px solid black; /* a11y: border necessary for high-contrast mode */
709 z-index:0; /* establish a stacking context for this progress bar */
712 .dijitProgressBarFull {
713 /* outer container for background of bar that is finished */
720 .dj_ie6 .dijitProgressBarFull {
724 .dijitProgressBarTile {
725 /* inner container for finished portion */
734 width: 100%; /* needed for IE/quirks */
736 background-color:#aaa;
737 background-attachment: fixed;
740 .dj_a11y .dijitProgressBarTile {
741 /* a11y: The border provides visibility in high-contrast mode */
744 background-color:transparent !important;
747 .dj_ie6 .dijitProgressBarTile {
748 /* width:auto works in IE6 with position:static but not position:absolute */
750 /* height:auto or 100% does not work in IE6 */
754 .dijitProgressBarIndeterminate .dijitProgressBarTile {
755 /* animated gif for 'indeterminate' mode */
758 .dijitProgressBarIndeterminateHighContrastImage {
762 .dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {
773 .dijitProgressBarLabel {
778 background-color:transparent !important;
789 /* make visible but off screen */
795 .dijitTooltipContainer {
796 border: solid black 2px;
802 .dijitTooltipFocusNode {
803 padding: 2px 2px 2px 2px;
806 .dijitTooltipConnector {
809 .dj_a11y .dijitTooltipConnector {
810 display: none; /* won't show b/c it's background-image; hide to avoid border gap */
817 /* Layout widgets. This is essential CSS to make layout work (it isn't "styling" CSS)
818 make sure that the position:absolute in dijitAlign* overrides other classes */
820 .dijitLayoutContainer {
834 body .dijitAlignClient { position: absolute; }
839 * .dijitBorderContainer is a stylized layout where panes have border and margin.
840 * .dijitBorderContainerNoGutter is a raw layout.
842 .dijitBorderContainer, .dijitBorderContainerNoGutter {
845 z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */
848 .dijitBorderContainerPane,
849 .dijitBorderContainerNoGutterPane {
850 position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */
851 z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */
854 .dijitBorderContainer > .dijitTextArea {
855 /* On Safari, for SimpleTextArea inside a BorderContainer,
856 don't want to display the grip to resize */
861 /* gutter is just a place holder for empty space between panes in BorderContainer */
863 font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */
868 'V' == container that splits vertically (up/down)
869 'H' = horizontal (left/right)
875 z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/
876 background-color: #fff;
881 .dj_ie .dijitSplitter {
882 z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */
885 .dijitSplitterActive {
886 z-index: 11 !important;
889 .dijitSplitterCover {
898 .dijitSplitterCoverActive {
899 z-index:3 !important;
902 /* #6945: stop mouse events */
903 .dj_ie .dijitSplitterCover {
905 filter: alpha(opacity=0);
920 .dijitSplitContainer {
925 .dj_ff3 .dj_a11y div.dijitSplitter:focus {
926 outline-style:dotted;
934 .dijitSplitContainerSizerH,
935 .dijitSplitContainerSizerV {
938 background-color: ThreeDFace;
940 border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;
944 .dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {
950 .dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {
955 .dijitSplitterShadow,
956 .dijitSplitContainerVirtualSizerH,
957 .dijitSplitContainerVirtualSizerV {
959 background-color: ThreeDShadow;
962 filter: Alpha(Opacity=50);
966 .dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {
970 .dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {
974 .dj_a11y .dijitSplitterH {
975 border-top:1px solid #d3d3d3 !important;
976 border-bottom:1px solid #d3d3d3 !important;
978 .dj_a11y .dijitSplitterV {
979 border-left:1px solid #d3d3d3 !important;
980 border-right:1px solid #d3d3d3 !important;
987 overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */
990 .dijitContentPaneSingleChild {
992 * if the ContentPane holds a single layout widget child which is being sized to match the content pane,
993 * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449
998 .dijitContentPaneLoading .dijitIconLoading,
999 .dijitContentPaneError .dijitIconError {
1009 .dijitTitlePaneTitle {
1012 .dijitFixedOpen, .dijitFixedClosed {
1013 /* TitlePane that cannot be toggled */
1016 .dijitFixedOpen .dijitArrowNode, .dijitFixedOpen .dijitArrowNodeInner,
1017 .dijitFixedClosed .dijitArrowNode, .dijitFixedClosed .dijitArrowNodeInner{
1018 /* don't show the open close icon, it makes the user think the pane is closable*/
1022 .dijitTitlePaneTitle * {
1023 vertical-align: middle;
1025 .dijitTitlePane .dijitArrowNodeInner {
1026 /* normally, hide arrow text in favor of icon */
1029 .dj_a11y .dijitTitlePane .dijitArrowNodeInner {
1030 /* ... except in a11y mode, then show text arrow */
1031 display:inline !important;
1032 font-family: monospace; /* because - and + are different widths */
1034 .dj_a11y .dijitTitlePane .dijitArrowNode {
1035 /* ... and hide icon */
1039 .dj_ie6 .dijitTitlePaneContentOuter,
1040 .dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {
1041 /* force hasLayout to ensure borders etc, show up */
1046 * Sizes designed so that table cell positions match icons in underlying image,
1047 * which appear at 20x20 intervals.
1050 .dijitColorPalette {
1051 border: 1px solid #999;
1056 .dijitColorPalette .dijitPaletteTable {
1057 /* Table that holds the palette cells, and overlays image file with color swatches.
1058 * padding/margin to align table with image.
1060 padding: 2px 3px 3px 3px;
1064 border-collapse: separate;
1066 .dj_ie6 .dijitColorPalette .dijitPaletteTable,
1067 .dj_ie7 .dijitColorPalette .dijitPaletteTable,
1068 .dj_iequirks .dijitColorPalette .dijitPaletteTable {
1069 /* using padding above so that focus border isn't cutoff on moz/webkit,
1070 * but using margin on IE because padding doesn't seem to work
1073 margin: 2px 3px 3px 3px;
1076 .dijitColorPalette .dijitPaletteCell {
1077 /* <td> in the <table> */
1079 vertical-align: middle;
1083 .dijitColorPalette .dijitPaletteImg {
1084 /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */
1085 padding: 1px; /* white area between gray border and color swatch */
1086 border: 1px solid #999;
1089 font-size: 1px; /* prevent <span> from getting bigger just to hold a character */
1091 .dj_gecko .dijitColorPalette .dijitPaletteImg {
1092 padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */
1094 .dijitColorPalette .dijitColorPaletteSwatch {
1095 /* the actual part where the color is */
1099 .dijitPaletteTable td {
1102 .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {
1103 /* hovered color swatch */
1104 border: 1px solid #000;
1107 .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,
1108 .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {
1109 border: 2px solid #000;
1110 margin: 1px 0; /* reduce margin to compensate for increased border */
1114 .dj_a11y .dijitColorPalette .dijitPaletteTable,
1115 .dj_a11y .dijitColorPalette .dijitPaletteTable * {
1116 /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */
1117 background-color: transparent !important;
1120 /* AccordionContainer */
1122 .dijitAccordionContainer {
1123 border:1px solid #b7b7b7;
1124 border-top:0 !important;
1126 .dijitAccordionTitle {
1129 .dijitAccordionTitleSelected {
1133 /* images off, high-contrast mode styles */
1134 .dijitAccordionTitle .arrowTextUp,
1135 .dijitAccordionTitle .arrowTextDown {
1138 font-weight: normal !important;
1141 .dj_a11y .dijitAccordionTitle .arrowTextUp,
1142 .dj_a11y .dijitAccordionTitleSelected .arrowTextDown {
1146 .dj_a11y .dijitAccordionTitleSelected .arrowTextUp {
1150 .dijitAccordionChildWrapper {
1151 /* this is the node whose height is adjusted */
1157 .dijitCalendarContainer {
1158 width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */
1160 .dijitCalendarContainer th, .dijitCalendarContainer td {
1162 vertical-align: middle;
1165 .dijitCalendarYearLabel {
1166 white-space: nowrap; /* make sure previous, current, and next year appear on same row */
1169 .dijitCalendarNextYear {
1170 margin:0 0 0 0.55em;
1173 .dijitCalendarPreviousYear {
1174 margin:0 0.55em 0 0;
1177 .dijitCalendarIncrementControl {
1178 vertical-align: middle;
1181 .dijitCalendarIncrementControl,
1182 .dijitCalendarDateTemplate,
1183 .dijitCalendarMonthLabel,
1184 .dijitCalendarPreviousYear,
1185 .dijitCalendarNextYear {
1189 .dijitCalendarDisabledDate {
1191 text-decoration: line-through;
1196 /* don't display it, but make it affect the width */
1203 /* Styling for month drop down list */
1205 .dijitCalendarMonthMenu .dijitCalendarMonthLabel {
1212 border:1px solid black;
1213 background-color:white;
1216 border-collapse:collapse;
1218 background-color:white;
1221 /* workaround for webkit bug #8427, remove this when it is fixed upstream */
1222 .dj_webkit .dijitMenuTable td[colspan="2"]{
1223 border-right:hidden;
1228 white-space: nowrap;
1234 No need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected
1235 rule below that handles the high contrast case when there's no shading.
1236 Hiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779.
1238 .dijitMenuItem:focus {
1242 .dijitMenuPassive .dijitMenuItemHover,
1243 .dijitMenuItemSelected {
1245 * dijitMenuItemHover refers to actual mouse over
1246 * dijitMenuItemSelected is used after a menu has been "activated" by
1247 * clicking it, tabbing into it, or being opened from a parent menu,
1248 * and denotes that the menu item has focus or that focus is on a child
1251 background-color:black;
1255 .dijitMenuItemIcon, .dijitMenuExpand {
1256 background-repeat: no-repeat;
1259 .dijitMenuItemDisabled * {
1260 /* for a disabled menu item, just set it to mostly transparent */
1264 .dj_ie .dj_a11y .dijitMenuItemDisabled,
1265 .dj_ie .dj_a11y .dijitMenuItemDisabled *,
1266 .dj_ie .dijitMenuItemDisabled * {
1268 filter: alpha(opacity=35);
1271 .dijitMenuItemLabel {
1273 vertical-align: middle;
1276 .dj_a11y .dijitMenuItemSelected {
1277 border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */
1279 .dj_ff3 .dj_a11y .dijitMenuItem td {
1280 padding: 0 !important;
1281 background:none !important;
1283 .dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {
1285 border-style: solid;
1287 .dj_ie8 .dj_a11y .dijitMenuItemLabel {
1291 .dijitMenuExpandA11y {
1294 .dj_a11y .dijitMenuExpandA11y {
1298 .dijitMenuSeparator td {
1303 /* separator can be two pixels -- set border of either one to 0 to have only one */
1304 .dijitMenuSeparatorTop {
1311 .dijitMenuSeparatorBottom {
1318 /* the checked menu item */
1319 .dijitCheckedMenuItemIconChar {
1320 vertical-align: middle;
1323 .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar {
1324 visibility: visible;
1326 .dj_a11y .dijitCheckedMenuItemIconChar {
1327 display:inline !important;
1329 .dj_a11y .dijitCheckedMenuItemIcon {
1332 .dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {
1333 /* so bottom border of MenuBar appears on IE7 in high-contrast mode */
1337 /* StackContainer */
1339 .dijitStackController .dijitToggleButtonChecked * {
1340 cursor: default; /* because pressing it has no effect */
1346 Main class hierarchy:
1348 .dijitTabContainer - the whole TabContainer
1349 .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons
1350 .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width)
1351 .nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width)
1352 .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs
1355 .dijitTabContainer {
1356 z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */
1357 overflow-y: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */
1359 .dj_ie6 .dijitTabContainer {
1360 /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */
1364 .dijitTabContainerNoLayout {
1365 width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */
1368 .dijitTabContainerBottom-tabs,
1369 .dijitTabContainerTop-tabs,
1370 .dijitTabContainerLeft-tabs,
1371 .dijitTabContainerRight-tabs {
1373 overflow: visible !important; /* so tabs can cover up border adjacent to container */
1376 .dijitTabController {
1379 .dijitTabContainerBottom-container,
1380 .dijitTabContainerTop-container,
1381 .dijitTabContainerLeft-container,
1382 .dijitTabContainerRight-container {
1385 border: 1px solid black;
1391 text-align: left; /* just in case ancestor has non-standard setting */
1394 .dijitTabListWrapper {
1399 .dj_a11y .tabStripButton img {
1400 /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */
1404 .dijitTabContainerTop-tabs {
1405 border-bottom: 1px solid black;
1407 .dijitTabContainerTop-container {
1411 .dijitTabContainerLeft-tabs {
1412 border-right: 1px solid black;
1413 float: left; /* needed for IE7 RTL mode */
1415 .dijitTabContainerLeft-container {
1419 .dijitTabContainerBottom-tabs {
1420 border-top: 1px solid black;
1422 .dijitTabContainerBottom-container {
1426 .dijitTabContainerRight-tabs {
1427 border-left: 1px solid black;
1428 float: left; /* needed for IE7 RTL mode */
1430 .dijitTabContainerRight-container {
1434 div.dijitTabDisabled, .dj_ie div.dijitTabDisabled {
1445 /* make tab icons and close icon line up w/text */
1446 vertical-align: middle;
1449 cursor: default; /* because clicking will have no effect */
1452 .dijitTabContainerTop-tabs .dijitTab {
1453 top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */
1455 .dijitTabContainerBottom-tabs .dijitTab {
1456 top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */
1458 .dijitTabContainerLeft-tabs .dijitTab {
1459 left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */
1461 .dijitTabContainerRight-tabs .dijitTab {
1462 left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */
1466 .dijitTabContainerTop-tabs .dijitTab,
1467 .dijitTabContainerBottom-tabs .dijitTab {
1469 display:inline-block; /* webkit and FF3 */
1470 #zoom: 1; /* set hasLayout:true to mimic inline-block */
1471 #display:inline; /* don't use .dj_ie since that increases the priority */
1478 .dijitTabButtonDisabled .tabStripButton {
1483 .dijitTabCloseButton {
1487 .dijitTabCloseText {
1491 .dijitTab .tabLabel {
1492 /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.
1493 * assumes <=15px height for close button icon.
1496 display: inline-block;
1499 /* applied to <img>/<span> node when there is no icon specified */
1502 .dj_ie6 .dijitTab .dijitNoIcon {
1503 /* because min-height (on .tabLabel, above) doesn't work on IE6 */
1509 /* images off, high-contrast mode styles */
1511 .dj_a11y .dijitTabCloseButton {
1512 background-image: none !important;
1513 width: auto !important;
1514 height: auto !important;
1517 .dj_a11y .dijitTabCloseText {
1522 .dijitStackContainer-child,
1523 .dijitAccordionContainer-child {
1524 /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders
1525 * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.
1527 border: none !important;
1531 .dijitInlineEditBoxDisplayMode {
1532 border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */
1536 .dj_a11y .dijitInlineEditBoxDisplayMode,
1537 .dj_ie6 .dijitInlineEditBoxDisplayMode {
1538 /* except that IE6 doesn't support transparent borders, nor does high contrast mode */
1542 .dijitInlineEditBoxDisplayModeHover,
1543 .dj_a11y .dijitInlineEditBoxDisplayModeHover,
1544 .dj_ie6 .dijitInlineEditBoxDisplayModeHover {
1545 /* An InlineEditBox in view mode (click this to edit the text) */
1546 background-color: #e2ebf2;
1547 border: solid 1px black;
1550 .dijitInlineEditBoxDisplayModeDisabled {
1556 overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */
1560 /* amount to indent each tree node (relative to parent node) */
1564 .dijitTreeRow, .dijitTreeContent {
1565 white-space: nowrap;
1569 /* make the expando and folder icons line up with the label */
1570 vertical-align: middle;
1581 .dj_a11y .dijitExpandoText {
1584 padding-right: 10px;
1585 font-family: monospace;
1586 border-style: solid;
1600 overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */
1603 .dijitDialogTitleBar {
1606 .dijitDialogFixed .dijitDialogTitleBar {
1609 .dijitDialogCloseIcon {
1612 .dijitDialogUnderlayWrapper {
1618 background: transparent !important;
1621 .dijitDialogUnderlay {
1626 .dj_ie .dijitDialogUnderlay {
1627 filter: alpha(opacity=50);
1630 /* images off, high-contrast mode styles */
1631 .dj_a11y .dijitSpinnerButtonContainer,
1632 .dj_a11y .dijitDialog {
1633 opacity: 1 !important;
1634 background-color: white !important;
1637 .dijitDialog .closeText {
1639 /* for the onhover border in high contrast on IE: */
1643 .dj_a11y .dijitDialog .closeText {
1649 .dijitSliderMoveable {
1651 position:absolute !important;
1653 vertical-align:middle;
1656 .dijitSliderMoveableH {
1659 .dijitSliderMoveableV {
1663 .dj_a11y div.dijitSliderImageHandle,
1664 .dijitSliderImageHandle {
1667 position:relative !important;
1668 border:8px solid gray;
1673 .dj_iequirks .dj_a11y .dijitSliderImageHandle {
1676 .dj_ie7 .dijitSliderImageHandle {
1677 overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */
1679 .dj_ie7 .dj_a11y .dijitSliderImageHandle {
1680 overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */
1682 .dj_a11y .dijitSliderFocused .dijitSliderImageHandle {
1683 border:4px solid #000;
1688 .dijitSliderImageHandleV {
1693 .dijitSliderImageHandleH {
1705 .dijitSliderBarContainerV {
1711 .dijitSliderBarContainerH {
1726 .dijitSliderProgressBar {
1727 background-color:red;
1731 .dijitSliderProgressBarV {
1732 position:static !important;
1738 .dijitSliderProgressBarH {
1739 position:absolute !important;
1741 vertical-align:middle;
1745 .dijitSliderRemainingBar {
1747 background-color:transparent;
1751 .dijitSliderRemainingBarV {
1756 .dijitSliderRemainingBarH {
1757 width:100% !important;
1760 /* the slider bumper is the space consumed by the slider handle when it hangs over an edge */
1761 .dijitSliderBumper {
1766 .dijitSliderBumperV {
1772 .dijitSliderBumperH {
1778 .dijitSliderBottomBumper,
1779 .dijitSliderLeftBumper {
1780 background-color:red;
1783 .dijitSliderTopBumper,
1784 .dijitSliderRightBumper {
1785 background-color:transparent;
1788 .dijitSliderDecoration {
1792 .dijitSliderDecorationC,
1793 .dijitSliderDecorationV {
1794 position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */
1797 .dijitSliderDecorationH {
1801 .dijitSliderDecorationV {
1803 white-space: nowrap;
1806 .dijitSliderButton {
1807 font-family:monospace;
1813 .dj_a11y .dijitSliderButtonInner {
1814 visibility:visible !important;
1817 .dijitSliderButtonContainer {
1821 .dijitSliderButtonContainer * {
1825 .dijitSlider .dijitButtonNode {
1830 .dijitRuleContainer {
1835 .dijitRuleContainerV {
1842 .dj_opera .dijitRuleContainerV {
1846 .dj_ie .dijitRuleContainerV {
1850 .dj_gecko .dijitRuleContainerV {
1851 margin:0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */
1856 border:1px solid black;
1863 border-top-width:0 !important;
1864 border-bottom-width:0 !important;
1865 border-left-width:0 !important;
1868 .dijitRuleLabelContainer {
1872 .dijitRuleLabelContainerH {
1874 display:inline-block;
1883 /* so that long labels don't overflow to multiple rows, or overwrite slider itself */
1884 text-overflow: ellipsis;
1885 white-space: nowrap;
1891 border-right-width:0 !important;
1892 border-bottom-width:0 !important;
1893 border-left-width:0 !important;
1898 .dj_ie .dijitRuleLabelContainerV {
1902 .dj_a11y .dijitSliderReadOnly,
1903 .dj_a11y .dijitSliderDisabled {
1906 .dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,
1907 .dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {
1908 filter: alpha(opacity=40);
1911 /* + and - Slider buttons: override theme settings to display icons */
1912 .dj_a11y .dijitSlider .dijitSliderButtonContainer div {
1913 font-family: monospace; /* otherwise hyphen is larger and more vertically centered */
1921 /* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */
1922 .dj_a11y .dijitButtonContents .dijitButtonText,
1923 .dj_a11y .dijitTab .tabLabel {
1924 display: inline !important;
1926 .dj_a11y .dijitSelect .dijitButtonText {
1927 display: inline-block !important;
1929 .dijitSelectError .dijitButtonContents .dijitButtonText {
1930 display: none !important;
1933 /* TextArea, SimpleTextArea */
1936 overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */
1938 .dijitTextArea[cols] {
1939 width:auto; /* SimpleTextArea cols */
1941 .dj_ie .dijitTextAreaCols {
1945 .dijitExpandingTextArea {
1946 /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */
1952 * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.
1955 .dijitToolbarSeparator {
1963 .dijitIEFixedToolbar {
1966 top: expression(eval((document.documentElement||document.body).scrollTop));
1970 display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */
1973 .dijitEditorDisabled,
1974 .dijitEditorReadOnly {
1980 .dijitTimePickerItemInner {
1983 padding:2px 8px 2px 8px;
1986 .dijitTimePickerTick,
1987 .dijitTimePickerMarker {
1988 border-bottom:1px solid gray;
1991 .dijitTimePicker .dijitDownArrowButton {
1992 border-top: none !important;
1995 .dijitTimePickerTick {
1999 .dijitTimePickerMarker {
2001 background-color:#CCC;
2004 .dijitTimePickerItemSelected {
2007 background-color:#b7cdee;
2010 .dijitTimePickerItemHover {
2011 background-color:gray;
2016 .dijitTimePickerItemDisabled {
2018 text-decoration:line-through;
2021 .dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {
2022 border: solid 4px black;
2024 .dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {
2025 border: dashed 4px black;
2029 .dijitToggleButtonIconChar {
2030 /* character (instead of icon) to show that ToggleButton is checked */
2031 display:none !important;
2033 .dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {
2034 display:inline !important;
2037 .dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {
2038 font-family: "Arial Unicode MS"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */
2040 .dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {
2041 display: inline !important; /* In high contrast mode, display the check symbol */
2042 visibility:visible !important;
2045 .dijitArrowButtonChar {
2046 display:none !important;
2048 .dj_a11y .dijitArrowButtonChar {
2049 display:inline !important;
2052 .dj_a11y .dijitDropDownButton .dijitArrowButtonInner,
2053 .dj_a11y .dijitComboButton .dijitArrowButtonInner {
2054 display:none !important;
2058 .dj_a11y .dijitSelect {
2059 border-collapse: separate !important;
2061 border-style: solid;
2063 .dj_ie .dijitSelect {
2064 vertical-align: middle; /* Set this back for what we hack in dijit inline */
2066 .dj_ie6 .dijitSelect .dijitValidationContainer,
2067 .dj_ie8 .dijitSelect .dijitButtonText {
2068 vertical-align: top;
2070 .dj_ie6 .dijitTextBox .dijitInputContainer,
2071 .dj_iequirks .dijitTextBox .dijitInputContainer,
2072 .dj_ie6 .dijitTextBox .dijitArrowButtonInner,
2073 .dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,
2074 .dijitSelect .dijitSelectLabel {
2075 vertical-align: baseline;
2078 .dijitNumberTextBox {
2083 .dijitNumberTextBox .dijitInputInner {
2084 text-align: inherit; /* input */
2087 .dijitToolbar .dijitSelect {
2090 .dj_webkit .dijitToolbar .dijitSelect {
2091 padding-left: 0.3em;
2093 .dijitSelect .dijitButtonContents {
2095 white-space: nowrap;
2097 border-style: none solid none none;
2100 .dijitSelectFixedWidth .dijitButtonContents {
2104 .dijitSelectMenu .dijitMenuItemIcon {
2105 /* avoid blank area in left side of menu (since we have no icons) */
2108 .dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,
2109 .dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {
2110 /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */
2114 /* Fix the baseline of our label (for multi-size font elements) */
2117 vertical-align: baseline;
2120 /* Styling for the currently-selected option (rich text can mess this up) */
2121 .dijitSelectSelectedOption * {
2125 /* Fix the styling of the dropdown menu to be more combobox-like */
2130 /* Style the different areas of the button to look like a "real" dropdown */
2131 /* Remove margins on the sub-table */
2132 .dijitSelectMenu .dijitMenuTable {
2134 background-color: transparent;
2137 /* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */
2139 position: static !important;
2142 /**** Disabled cursor *****/
2147 /* a region the user would be able to click on, but it's disabled */
2153 padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */
2155 /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */
2156 -webkit-touch-callout: none;
2157 -webkit-user-select: none; /* Disable selection/Copy of UIWebView */
2159 .dojoDndHorizontal .dojoDndItem {
2160 /* make contents of horizontal container be side by side, rather than vertical */
2162 display: inline-block;
2167 border: 0px solid #369;
2169 .dojoDndItemBefore {
2170 border-width: 2px 0 0 0;
2171 padding: 0 2px 2px 2px;
2174 border-width: 0 0 2px 0;
2175 padding: 2px 2px 0 2px;
2177 .dojoDndHorizontal .dojoDndItemBefore {
2178 border-width: 0 0 0 2px;
2179 padding: 2px 2px 2px 0;
2181 .dojoDndHorizontal .dojoDndItemAfter {
2182 border-width: 0 2px 0 0;
2183 padding: 2px 0 2px 2px;
2189 .dj_gecko .dijitArrowButtonInner INPUT,
2190 .dj_gecko INPUT.dijitArrowButtonInner {
2191 -moz-user-focus:ignore;