@import "vars"; @import "mixins"; .artifact { .selection-actions {display: none; } &.selected { .selection-actions {display: block; } } } .selection-actions { position: absolute; right: 0; top: 0; padding: 10px; pointer-events: auto; } @mixin tri-s { &:after { top: 100%; margin-left: -13px; left: 50%; margin-top: -5px; border-left: 13px solid transparent; border-right: 13px solid transparent; border-top: 13px solid $dark; } } @mixin tri-n { &:after { bottom: 100%; margin-left: -13px; left: 50%; margin-bottom: -5px; border-left: 13px solid transparent; border-right: 13px solid transparent; border-bottom: 13px solid $dark; } } @mixin tri-e { &:after { left: 100%; margin-top: -13px; top: 50%; margin-left: -5px; border-top: 13px solid transparent; border-bottom: 13px solid transparent; border-left: 13px solid $dark; } } @mixin tri-w { &:after { right: 100%; margin-top: -13px; top: 50%; margin-right: -5px; border-top: 13px solid transparent; border-bottom: 13px solid transparent; border-right: 13px solid $dark; } } .selected .handles { display: block; // box-shadow: 0 0 0 1px rgba(41,41,41,0.4); } .handles { //border: 1px solid rgba(255,255,255,0.5); position: absolute; left: 0; top: 0; bottom: -1; right: 0; z-index: 800; pointer-events: none; background: rgba(255,255,255,0.1); &:after{ border: 4px dotted #000000; content: ""; display: block; position: absolute; height: auto; width: auto; top: 0px; left: 0px; right: 0px; bottom: -1px; } } .extreme-zoom .handles { border: 8px solid rgba(255,255,255,0.5); &:after{ border: 8px dotted #000000; top: -4px; left: -4px; right: -4px; bottom: -4px; } } .extreme-zoom .handle { @include scale(8,8); &:hover { @include scale(12,12); } } .mouse-scribble, .mouse-vector_transform { .handles, .handles:after { display: none !important; } } // .n-resize { cursor: n-resize; } // .e-resize { cursor: e-resize; } // .s-resize { cursor: s-resize; } // .w-resize { cursor: w-resize; } // .ns-resize { cursor: ns-resize; } // .ew-resize { cursor: ew-resize; } // .ne-resize { cursor: ne-resize; } // .nw-resize { cursor: nw-resize; } // .se-resize { cursor: se-resize; } // .sw-resize { cursor: sw-resize; } // .nesw-resize { cursor: nesw-resize; } // .nwse-resize { cursor: nwse-resize; } .resize-nw { .value-w { right: 35px; top: -10px; @include transform-origin(center right); @include tri-e; } .value-h { left: -10px; bottom: 35px; @include transform-origin(bottom center); @include tri-s; } } .resize-ne { .value-w { left: 35px; top: -10px; @include tri-w; @include transform-origin(center left); } .value-h { right: -10px; bottom: 35px; @include transform-origin(bottom center); @include tri-s; } } .resize-se { .value-w { left: 35px; bottom: -10px; @include tri-w; @include transform-origin(center left); } .value-h { right: -10px; top: 35px; @include transform-origin(top center); @include tri-n; pointer-events: none; } } .resize-sw { .value-w { right: 35px; bottom: -10px; @include tri-e; @include transform-origin(center right); // border-top-left-radius: 5px; // border-bottom-left-radius: 5px; } .value-h { left: -10px; top: 35px; @include transform-origin(top center); @include tri-n; // border-bottom-left-radius: 5px; // border-bottom-right-radius: 5px; } } .resize-n { .value-h { margin-left: -20px; left: 50%; bottom: 20px; @include transform-origin(bottom center); @include tri-s; } } .resize-e { .value-w { left: 20px; top: 50%; margin-top: -20px; @include tri-w; @include transform-origin(center left); } } .resize-s { .value-h { left: 50%; margin-left: -20px; top: 20px; @include transform-origin(top center); @include tri-n; } } .resize-w { .value-w { right: 20px; top: 50%; margin-top: -20px; @include tri-e; @include transform-origin(center right); } } .value-h, .value-w { z-index: 1; line-height: 40px; width: 40px; height: 40px; display: inline-block; position: absolute; border-radius: 100%; // border-radius: $radius; @include scale(0,0); // opacity: 0; pointer-events: none !important; @include transition( all 0.1s 0.05s ease-in-out); text-align: center; background-color: $dark; color: $light; font-size: 10px; &:after { @include transition( all 0.3s ease-in-out); content: ""; position: absolute; width: 0; height: 0; pointer-events: none !important; } } .handle > div > div > div:active .value-w, .handle:active .value-h{ @include transition( all 0.05s 0s cubic-bezier(0, 0, 0.7, 1.7)); opacity: 1; @include scale(1,1); } .edge-handle:active .value-w, .edge-handle:active .value-h{ @include transition( all 0.05s 0s cubic-bezier(0, 0, 0.7, 1.7)); opacity: 1; @include scale(1,1); } .edge-handle { @include user-select(none); pointer-events:auto; z-index: 1000; position: absolute; background-clip: content-box; @include transition( background-color 0.05s ease-in-out); &:active, &:hover { background-color: $blue; @include transition( background-color 0s ease-in-out); } &.resize-n, &.resize-s { width: 100%; height: 10px; } &.resize-w, &.resize-e { width: 10px; height: 100%; } &.resize-n:active { border-top: 3px solid transparent; border-bottom: 3px solid transparent; } &.resize-s:active { border-top: 3px solid transparent; border-bottom: 3px solid transparent; } &.resize-w:active { border-left: 3px solid transparent; border-right: 3px solid transparent; } &.resize-e:active { border-left: 3px solid transparent; border-right: 3px solid transparent; } &.resize-n { &:active,&:hover, { cursor: ns-resize;}} &.resize-s { &:active,&:hover, { cursor: ns-resize;}} &.resize-w { &:active,&:hover, { cursor: ew-resize;}} &.resize-e { &:active,&:hover, { cursor: ew-resize;}} &.resize-n { border-top: 4px solid transparent; border-bottom: 4px solid transparent; bottom: 100%; margin-bottom: -5px; } &.resize-s { border-top: 4px solid transparent; border-bottom: 4px solid transparent; top: 100%; margin-top: -5px; } &.resize-w { border-left: 4px solid transparent; border-right: 4px solid transparent; right: 100%; margin-right: -5px; } &.resize-e { border-left: 4px solid transparent; border-right: 4px solid transparent; left: 100%; margin-left: -5px; } } .vector-handle { @include user-select(none); pointer-events:auto; z-index: 2000; position: absolute; border-radius: 100%; border: 1px solid black; margin: -5px; padding: 4px; &:hover { background-color: black; cursor: move; } } .handles-vector { .handle, .edge-handle { display: none !important; } } .handles:not(.handles-vector) .vector-handle { display: none; } .handle { @include user-select(none); pointer-events:auto; z-index: 2000; position: absolute; width: 60px !important; height: 60px !important; border-radius: 100%; margin: -30px; @include transition(all 0.1s ease-in-out); @include scale(0.5,0.5); &:hover { @include scale(1,1); .value-h, .value-w { display: block; } } // &:after { // @include transition( all 0.3s ease-in-out); // content: ""; // position: absolute; // top: 0px; // margin-left: -20px; // width: 0; // height: 0; // border-left: 20px solid transparent; // border-right: 20px solid transparent; // border-top: 20px solid $dark; // pointer-events: none !important; // left: 50%; // } &.resize-nw { top: 0%; left: 0%;} &.resize-n { top: 0%; left: 50%;} &.resize-ne { top: 0%; left: 100%;} &.resize-e { top: 50%; left: 100%;} &.resize-se { top: 100%; left: 100%;} &.resize-s { top: 100%; left: 50%;} &.resize-sw { top: 100%; left: 0%;} &.resize-w { top: 50%; left: 0%;} &.resize-nw > div > div > div { cursor: nwse-resize; } &.resize-n > div > div > div { cursor: ns-resize;} &.resize-ne > div > div > div { cursor: nesw-resize; } &.resize-e > div > div > div { cursor: ew-resize; } &.resize-se > div > div > div { cursor: nwse-resize; } &.resize-s > div > div > div { cursor: ns-resize; } &.resize-sw > div > div > div { cursor: nesw-resize; } &.resize-w > div > div > div { cursor: ew-resize; } &.resize-n { display: none;} &.resize-e { display: none;} &.resize-s { display: none;} &.resize-w { display: none;} &:hover > div > div > div { border-width: 9px; } > div:hover > div > div { border-width: 8px; } > div > div:hover > div { border-width: 7px; } > div > div > div:hover { border-width: 6px; } > div > div > div:active { border-width: 6px; } > div > div > div { background-color: $dark; border-style: solid; border-width: 10px; border-color: transparent; background-clip: padding-box; transition: all .05s ease-in-out; } div { position: relative; border-radius: 100%; top: 5px; left: 5px; @include transition( all 0.5s ease-in-out); } > div { width: 50px; height: 50px; } > div > div { width: 40px; height: 40px; } > div > div > div { z-index: 10; width: 30px; height: 30px; } }