    .#{$prefix}tree-expander {
        cursor: $tree-expander-cursor;
    }

    //arrows
    .#{$prefix}tree-arrows {
        .#{$prefix}tree-expander {
            background-image: theme-background-image('tree/arrows');
        }

        .#{$prefix}tree-expander-over .#{$prefix}tree-expander {
            background-position: -32px center;
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-expander {
            background-position: -16px center;
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-expander-over .#{$prefix}tree-expander {
            background-position: -48px center;
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tree-expander {
                background: theme-background-image('tree/arrows-rtl') no-repeat -48px center;
            }

            .#{$prefix}tree-expander-over .#{$prefix}rtl.#{$prefix}tree-expander {
                background-position: -16px center;
            }

            .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-expander {
                background-position: -32px center;
            }

            .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-expander-over .#{$prefix}rtl.#{$prefix}tree-expander {
                background-position: 0 center;
            }
        }
    }

    //elbows
    .#{$prefix}tree-lines {
        .#{$prefix}tree-elbow {
            background-image: theme-background-image('tree/elbow');
        }

        .#{$prefix}tree-elbow-end {
            background-image: theme-background-image('tree/elbow-end');
        }

        .#{$prefix}tree-elbow-plus {
            background-image: theme-background-image('tree/elbow-plus');
        }

        .#{$prefix}tree-elbow-end-plus {
            background-image: theme-background-image('tree/elbow-end-plus');
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-elbow-plus {
            background-image: theme-background-image('tree/elbow-minus');
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-elbow-end-plus {
            background-image: theme-background-image('tree/elbow-end-minus');
        }

        .#{$prefix}tree-elbow-line {
            background-image: theme-background-image('tree/elbow-line');
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tree-elbow {
                background-image: theme-background-image('tree/elbow-rtl');
            }

            .#{$prefix}rtl.#{$prefix}tree-elbow-end {
                background-image: theme-background-image('tree/elbow-end-rtl');
            }

            .#{$prefix}rtl.#{$prefix}tree-elbow-plus {
                background-image: theme-background-image('tree/elbow-plus-rtl');
            }

            .#{$prefix}rtl.#{$prefix}tree-elbow-end-plus {
                background-image: theme-background-image('tree/elbow-end-plus-rtl');
            }

            .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-elbow-plus {
                background-image: theme-background-image('tree/elbow-minus-rtl');
            }

            .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-elbow-end-plus {
                background-image: theme-background-image('tree/elbow-end-minus-rtl');
            }

            .#{$prefix}rtl.#{$prefix}tree-elbow-line {
                background-image: theme-background-image('tree/elbow-line-rtl');
            }
        }
    }

    .#{$prefix}tree-no-row-lines {
        .#{$prefix}tree-expander {
            background-image: theme-background-image('tree/elbow-plus-nl');
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-expander {
            background-image: theme-background-image('tree/elbow-minus-nl');
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tree-expander {
                background-image: theme-background-image('tree/elbow-plus-nl-rtl');
            }

            .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-expander {
                background-image: theme-background-image('tree/elbow-minus-nl-rtl');
            }
        }
    }

    .#{$prefix}tree-icon {
        width: $tree-icon-width;
        height: $grid-row-height;
    }

    .#{$prefix}tree-elbow-img {
        width: $tree-elbow-width;
        height: $grid-row-height;
        margin-right: $tree-elbow-spacing;
    }

    @if $include-rtl {
        .#{$prefix}rtl.#{$prefix}tree-elbow-img {
            margin-right: 0;
            margin-left: $tree-elbow-spacing;
        }
    }

    .#{$prefix}tree-icon,
    .#{$prefix}tree-elbow-img,
    .#{$prefix}tree-checkbox {
        // negative vertical margins are used to make the images ignore the inner cell's padding
        // this means we don't have to change the padding which ensures that the text is
        // vertically aligned exactly the same as regular grid cells
        margin-top: -(top($grid-cell-inner-padding));
        margin-bottom: -(bottom($grid-cell-inner-padding));
    }

    .#{$prefix}tree-icon-leaf {
        background-image: theme-background-image('tree/leaf');
    }

    @if $include-rtl {
        .#{$prefix}rtl.#{$prefix}tree-icon-leaf {
            background-image: theme-background-image('tree/leaf-rtl');
        }
    }

    .#{$prefix}tree-icon-parent {
        background-image: theme-background-image('tree/folder');
    }

    @if $include-rtl {
        .#{$prefix}rtl.#{$prefix}tree-icon-parent {
            background-image: theme-background-image('tree/folder-rtl');
        }
    }

    .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-icon-parent {
        background-image: theme-background-image('tree/folder-open');
    }

    @if $include-rtl {
        .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-icon-parent {
            background-image: theme-background-image('tree/folder-open-rtl');
        }
    }

    .#{$prefix}tree-checkbox {
        margin-right: $tree-checkbox-spacing;
        top: round(($grid-row-height - $form-checkbox-size) / 2);
        width: $form-checkbox-size;
        height: $form-checkbox-size;
        background-image: theme-background-image($form-checkbox-image);
    }

    @if $include-rtl {
        .#{$prefix}rtl.#{$prefix}tree-checkbox {
            margin-right: 0;
            margin-left: $tree-checkbox-spacing;
        }
    }

    .#{$prefix}tree-checkbox-checked {
        background-position: 0 (0 - $form-checkbox-size);
    }

    .#{$prefix}grid-tree-loading .#{$prefix}tree-icon {
        background-image: theme-background-image('tree/loading');
    }

    @if $include-rtl {
        .#{$prefix}grid-tree-loading .#{$prefix}rtl.#{$prefix}tree-icon {
            background-image: theme-background-image('tree/loading');
        }
    }

    // Sub-normal line-heights on block elements are ignored in IE 6,7 and quirks if the block
    // element contains inline elements with layout.  This bug affects tree cells because of
    // the images inside the cell.  To work around it we set the font size to 1 on the grid
    // cell-inner, and then declare the font-size on the text node. We don't use a font size of 0
    // because that breaks text-overflow: ellipsis on modern browsers.
    .#{$prefix}grid-cell-inner-treecolumn {
        font-size: 1px;
        // This approach breaks IE8 strict unless we move the line-height to the text node too.
        line-height: 0;
    }

    .#{$prefix}tree-node-text {
        font-size: $grid-row-cell-font-size;
        line-height: $grid-row-cell-line-height;
        padding-left: $tree-icon-spacing;
    }

    @if $include-rtl {
        .#{$prefix}rtl.#{$prefix}tree-node-text {
            padding-left: 0;
            padding-right: $tree-icon-spacing;
        }
    }

    @if $tree-cell-inner-padding != $grid-cell-inner-padding {
        .#{$prefix}grid-cell-inner-treecolumn {
            padding: $tree-cell-inner-padding;
        }
    }