wise-web-client
Version:
Based on Spine MVC framework
111 lines (107 loc) • 3.22 kB
text/less
/* ------------------------ */
/* LESS mixin for CSS arrow */
/* ------------------------ */
/* Usage
* .arrow(size, color, direction, offset, border-size, border-color);
*/
/* Where
* Size is the with of the arrow
* Color is the color of the arrow (plain color required)
* Direction is the orientation of the arrow (top, right, bottom, left)
* Offset is the position of the arrow on its axis (px / em)
* Border-size is the width of the border if there is one (optional;
default "0")
* Border-color is the color of the border if there is one (optional;
default "inherit");
*/
/* Extra
* Drop-shadows can be used on the element to create a shadow on the arrow as well */
.arrow(@size, @color, @direction, @offset, @border-size:0, @border-color:inherit) {
position: relative;
&:after, &:before {
content: "";
position: absolute;
width: 0;
height: 0;
}
}
.arrow(@size, @color, @direction, @offset, @border-size:0, @border-color:inherit) when (@direction = top) {
@m-size: @size + (@border-size*2);
&:after {
bottom: 100%;
left: @offset;
margin-left: -@size;
border-left: @size solid transparent;
border-right: @size solid transparent;
border-bottom: @size solid @color;
}
&:before {
bottom: 100%;
left: @offset;
margin-left: -@m-size;
border-left: @m-size solid transparent;
border-right: @m-size solid transparent;
border-bottom: @m-size solid;
border-bottom-color: @border-color;
}
}
.arrow(@size, @color, @direction, @offset, @border-size:0, @border-color:inherit) when (@direction = bottom) {
@m-size: @size + (@border-size*2);
&:after {
top: 100%;
left: @offset;
margin-left: -@size;
border-left: @size solid transparent;
border-right: @size solid transparent;
border-top: @size solid @color;
}
&:before {
top: 100%;
left: @offset;
margin-left: -@m-size;
border-left: @m-size solid transparent;
border-right: @m-size solid transparent;
border-top: @m-size solid;
border-top-color: @border-color;
}
}
.arrow(@size, @color, @direction, @offset, @border-size:0, @border-color:inherit) when (@direction = right) {
@m-size: @size + (@border-size*2);
&:after {
left: 100%;
top: @offset;
margin-top: -@size;
border-top: @size solid transparent;
border-bottom: @size solid transparent;
border-left: @size solid @color;
}
&:before {
left: 100%;
top: @offset;
margin-top: -@m-size;
border-top: @m-size solid transparent;
border-bottom: @m-size solid transparent;
border-left: @m-size solid;
border-left-color: @border-color;
}
}
.arrow(@size, @color, @direction, @offset, @border-size:0, @border-color:inherit) when (@direction = left) {
@m-size: @size + (@border-size*2);
&:after {
right: 100%;
top: @offset;
margin-top: -@size;
border-top: @size solid transparent;
border-bottom: @size solid transparent;
border-right: @size solid @color;
}
&:before {
right: 100%;
top: @offset;
margin-top: -@m-size;
border-top: @m-size solid transparent;
border-bottom: @m-size solid transparent;
border-right: @m-size solid;
border-right-color: @border-color;
}
}