alvarocastro/ember-draggable-modifiers

View on GitHub
packages/test-app/app/styles/app.css

Summary

Maintainability
Test Coverage
/* * * * * Drag Drop * * * * */
.drop-target-item {
  background: gray;
}

.is-dragging {
  opacity: 0.5;
}

/* * /
[data-drop-edge]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}
[data-drop-edge="top"]::before {
  border-top: 3px solid red; bottom: auto;
}
[data-drop-edge="bottom"]::before {
  border-top: 3px solid red; top: auto;
}
[data-drop-edge="left"]::before {
  border-left: 3px solid red; right: auto;
}
[data-drop-edge="right"]::before {
  border-left: 3px solid red; left: auto;
}
/ **/
[data-drop-tree-intruction]::before {
  content: "";
  position: absolute;
  inset: 0;
}

/*
[data-drop-tree-intruction="make-child"] {
}

reorder-above
reorder-below
reparent
*/

/* * * * * Examples * * * * */

.board-column {
  width: 260px;
}

.desktop {
  position: relative;
  background: #008080;
  height: 400px;
  overflow: hidden;
}

.desktop-icon {
  position: absolute;
  width: 96px;
}

.desktop-icon img {
  pointer-events: none;
  margin: 0 auto 4px;
  width: 48px;
  height: 48px;
  display: block;
}

.desktop-icon span {
  display: block;
  font-size: 14px;
  text-align: center;
}

.bsod {
  position: absolute;
  width: 100%;
  height: 100%;
  background: blue;
  font-family: monospace;
}

.bsod .message {
  max-width: 400px;
}

.bsod .title {
  text-align: center;
}

.bsod .title span {
  background: gray;
  color: blue;
  padding: 0 8px;
}

/* * * * * Fancy backgrounds * * * * */

.fancy-background-1 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 200px;
  --c1: var(--c);
  --c2: hsl(from var(--c) h s calc(l + var(--v)));
  --g: #0000 8%, var(--c1) 0 17%, #0000 0 58%;

  background:
    linear-gradient(135deg, #0000 20.5%, var(--c1) 0 29.5%, #0000 0) 0
      calc(var(--s) / 4),
    linear-gradient(45deg, var(--g)) calc(var(--s) / 2) 0,
    linear-gradient(135deg, var(--g), var(--c1) 0 67%, #0000 0),
    linear-gradient(
      45deg,
      var(--g),
      var(--c1) 0 67%,
      #0000 0 83%,
      var(--c1) 0 92%,
      #0000 0
    ),
    var(--c2);
  background-size: var(--s) var(--s);
}

.fancy-background-2 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 60px;
  --c1: hsl(from var(--c) h s calc(l + var(--v)));
  --c2: hsl(from var(--c) h s calc(l - var(--v)));
  --c3: var(--c);

  background:
    var(--s) var(--s) / calc(var(--s) * 2) calc(var(--s) * 2)
      linear-gradient(
        135deg,
        var(--c1) 10%,
        var(--c2) 0 25%,
        transparent 0 75%,
        var(--c2) 0 90%,
        var(--c1) 90%
      ),
    0 0 / calc(var(--s) * 2) calc(var(--s) * 2)
      linear-gradient(
        135deg,
        var(--c1) 10%,
        var(--c3) 0 25%,
        transparent 0 75%,
        var(--c3) 0 90%,
        var(--c1) 90%
      ),
    0 0 / calc(var(--s) * 2) calc(var(--s) * 2)
      linear-gradient(
        45deg,
        var(--c1) 10%,
        var(--c2) 0 25%,
        var(--c3) 0 40%,
        var(--c1) 0 60%,
        var(--c3) 0 75%,
        var(--c2) 0 90%,
        var(--c1) 90%
      );
}

.fancy-background-3 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 50px;
  --c1: hsl(from var(--c) h s calc(l + var(--v)));
  --c2: var(--c);

  background:
    radial-gradient(
      circle at 100% 50%,
      transparent 20%,
      var(--c1) 21%,
      var(--c1) 34%,
      transparent 35%,
      transparent
    ),
    radial-gradient(
        circle at 0% 50%,
        transparent 20%,
        var(--c1) 21%,
        var(--c1) 34%,
        transparent 35%,
        transparent
      )
      0 calc(var(--s) * -1);
  background-color: var(--c2);
  background-size: calc(var(--s) * 1.5) calc(var(--s) * 2);
}

.fancy-background-4 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 150px;
  --c1: var(--c);
  --c2: hsl(from var(--c) h s calc(l + var(--v)));
  --c3: hsl(from var(--c) h s calc(l + var(--v) * 2));
  --c4: hsl(from var(--c) h s calc(l + var(--v) * 3));
  --gp: 50% / var(--s) var(--s);

  background:
    repeating-conic-gradient(
        from 90deg at 75% 75%,
        var(--c4) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 180deg at 50% 75%,
        var(--c1) 0% 12.5%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 135deg at 62.5% 62.5%,
        var(--c4) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 134.5deg at 25% 75%,
        var(--c1) 0% 12.65%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 135deg at 12.5% 62.5%,
        var(--c4) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 225deg at 12.5% 62.5%,
        var(--c3) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 225deg at 25% 50%,
        var(--c2) 0% 12.5%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 90deg at 75% 75%,
        var(--c1) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 135deg at 50% 50%,
        var(--c1) 0% 37.5%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 225deg at 75% 50%,
        var(--c2) 0% 12.5%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 45deg at 62.5% 62.5%,
        var(--c3) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 90deg at 75% 25%,
        var(--c3) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 45deg at 62.5% 12.5%,
        var(--c3) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from -45deg at 62.5% 12.5%,
        var(--c4) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 45deg at 50% 25%,
        var(--c2) 0% 12.5%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from -45deg at 12.5% 12.5%,
        var(--c4) 0% 25%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from 0deg at 0% 25%,
        var(--c3) 0% 12.5%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-conic-gradient(
        from -90deg at 25% 25%,
        var(--c2) 0% 12.5%,
        #fff0 0% 100%
      )
      var(--gp),
    repeating-linear-gradient(
        180deg,
        var(--c1) 0 25%,
        var(--c2) 0 50%,
        var(--c1) 0 100%
      )
      var(--gp);
  background-color: var(--c1);
}

.fancy-background-5 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 100px; /* diameter */
  --t: 4px; /* thickness */
  --o: 10px; /* offset */
  --c1: hsl(from var(--c) h s calc(l + var(--v)));
  --c2: var(--c);

  background-color: var(--c2);
  background-size: calc(var(--s) * 2 + var(--t) * 2)
    calc(var(--s) * 2 + var(--t) * 2);
  background-image: radial-gradient(
      transparent var(--s),
      var(--c1) var(--s),
      var(--c1) calc(var(--s) + var(--t)),
      transparent calc(var(--s) + var(--t))
    ),
    radial-gradient(
      transparent var(--s),
      var(--c1) var(--s),
      var(--c1) calc(var(--s) + var(--t)),
      transparent calc(var(--s) + var(--t))
    );
  background-position:
    var(--o) var(--o),
    calc(var(--s) + var(--t) + var(--o)) calc(var(--s) + var(--t) + var(--o));
}

.fancy-background-6 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 200px; /* size */
  --c1: hsl(from var(--c) h s calc(l + var(--v)));
  --c2: var(--c);

  background: linear-gradient(135deg, #0000 18.75%, var(--c2) 0 31.25%, #0000 0),
    repeating-linear-gradient(45deg, var(--c2) -6.25% 6.25%, var(--c1) 0 18.75%);
  background-size: var(--s) var(--s);
}

.fancy-background-7 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 50px; /* size */
  --c1: hsl(from var(--c) h s calc(l + var(--v)));
  --c2: var(--c);

  background:
    linear-gradient(135deg, var(--c1) 25%, transparent 25%)
      calc(var(--s) * -1.5) 0,
    linear-gradient(225deg, var(--c1) 25%, transparent 25%)
      calc(var(--s) * -1.5) 0,
    linear-gradient(315deg, var(--c1) 25%, transparent 25%),
    linear-gradient(45deg, var(--c1) 25%, transparent 25%);
  background-size: var(--s) var(--s);
  background-color: var(--c2);
}

.fancy-background-8 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 90px;
  --c1: hsl(from var(--c) h s calc(l + var(--v)));
  --c2: hsl(from var(--c) h s calc(l - var(--v)));
  --c3: var(--c);
  --s1: calc(var(--s) * 0.5);
  --s2: calc(var(--s) * 0.6);

  background:
    radial-gradient(
        circle,
        var(--c1) calc(var(--s1) / 2),
        #0000 calc(var(--s1) / 2),
        #0000 var(--s1),
        var(--c2) var(--s1),
        var(--c2) var(--s2),
        #0000 var(--s2)
      )
      0 0,
    radial-gradient(
        circle,
        var(--c2) calc(var(--s1) / 2),
        #0000 calc(var(--s1) / 2),
        #0000 var(--s1),
        var(--c1) var(--s1),
        var(--c1) var(--s2),
        #0000 var(--s2)
      )
      var(--s) var(--s),
    radial-gradient(
        circle,
        var(--c1) calc(var(--s1) / 4),
        #0000 calc(var(--s1) / 4)
      )
      var(--s) 0,
    radial-gradient(
        circle,
        var(--c2) calc(var(--s1) / 5),
        #0000 calc(var(--s1) / 5)
      )
      0 var(--s);
  background-size: calc(var(--s) * 2) calc(var(--s) * 2);
  background-color: var(--c3);
  background-repeat: repeat;
}

.fancy-background-9 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 110px;
  --c1: hsl(from var(--c) h s calc(l + var(--v)));
  --c2: var(--c);

  background: linear-gradient(
    -45deg,
    #0000 50%,
    var(--c1) 50%,
    var(--c1) 60%,
    #0000 60%
  );
  background-size: var(--s) var(--s);
  background-color: var(--c2);
}

.fancy-background-10 {
  --c: var(--bs-tertiary-bg);
  --v: 3;
  --s: 100px;
  --c1: hsl(from var(--c) h s calc(l + var(--v) * 6));
  --c2: hsl(from var(--c) h s calc(l + var(--v) * 2));
  --c3: var(--c);
  --s1: var(--s);
  --s2: calc(var(--s) / 5);

  background-color: var(--c3);
  background-image: linear-gradient(var(--c1) 2px, transparent 2px),
    linear-gradient(90deg, var(--c1) 2px, transparent 2px),
    linear-gradient(var(--c2) 1px, transparent 1px),
    linear-gradient(90deg, var(--c2) 1px, transparent 1px);
  background-size:
    var(--s1) var(--s1),
    var(--s1) var(--s1),
    var(--s2) var(--s2),
    var(--s2) var(--s2);
  background-position:
    -10px -2px,
    -2px -2px,
    -1px -1px,
    -1px -1px;
}