_cube.scss 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. @import "variables";
  2. .cube {
  3. width: calc(2 * var(--width-unit));
  4. height: calc(2 * var(--width-unit));
  5. transform-style: preserve-3d;
  6. transition: transform $transition-duration, margin $transition-duration, width $transition-duration, height $transition-duration;
  7. }
  8. .cube1 {
  9. transform: translateZ(calc(-1.75 * var(--width-unit)))
  10. translateX(calc(.25 * var(--width-unit)))
  11. rotateY(45deg) ;
  12. z-index: 1;
  13. }
  14. .cube2 {
  15. transform: rotateY(45deg);
  16. }
  17. .cube3 {
  18. transform: translateZ(calc(-1.75 * var(--width-unit)))
  19. translateX(calc(-.25 * var(--width-unit)))
  20. rotateY(45deg);
  21. }
  22. .cube__face--top {
  23. background: var(--color-top);
  24. border: var(--front-border-width) var(--border-style) var(--border-color) !important;
  25. }
  26. .cube1 .cube__face--left {
  27. background-color: var(--color-left);
  28. border: var(--front-border-width) var(--border-style) var(--border-color);
  29. }
  30. .cube1 .cube__face--front {
  31. background-color: var(--color-shadow);
  32. border: var(--front-border-width) var(--border-style) var(--border-color);
  33. }
  34. .cube2 .cube__face--left {
  35. background-color: var(--color-left);
  36. border: var(--front-border-width) var(--border-style) var(--border-color);
  37. }
  38. .cube2 .cube__face--front {
  39. background-color: var(--color-right);
  40. border: var(--front-border-width) var(--border-style) var(--border-color);
  41. }
  42. .cube3 .cube__face--front {
  43. background-color: var(--color-right);
  44. border: var(--front-border-width) var(--border-style) var(--border-color);
  45. }
  46. .cube3 .cube__face--left {
  47. background-color: var(--color-shadow);
  48. border: var(--front-border-width) var(--border-style) var(--border-color);
  49. }
  50. .cube {
  51. &.show-front {
  52. transform: translateZ(calc(-1 * var(--width-unit))) rotateY( 0deg);
  53. }
  54. &.show-right {
  55. transform: translateZ(calc(-1 * var(--width-unit))) rotateY( -90deg);
  56. }
  57. &.show-back {
  58. transform: translateZ(calc(-1 * var(--width-unit))) rotateY(-180deg);
  59. }
  60. &.show-left {
  61. transform: translateZ(calc(-1 * var(--width-unit))) rotateY( 90deg);
  62. }
  63. &.show-top {
  64. transform: translateZ(calc(-1 * var(--width-unit))) rotateX( -90deg);
  65. }
  66. &.show-bottom {
  67. transform: translateZ(calc(-1 * var(--width-unit))) rotateX( 90deg);
  68. }
  69. }
  70. .cube__face {
  71. position: absolute;
  72. width: calc(2 * var(--width-unit));
  73. height: calc(2 * var(--width-unit));
  74. border: var(--border-width) var(--border-style) var(--border-color);
  75. transition: background-color $transition-duration;
  76. --projection: 1;
  77. &.cube__face--front {
  78. transform: rotateY( 0deg) translateZ(calc(var(--projection) * var(--width-unit)));
  79. }
  80. &.cube__face--right {
  81. transform: rotateY( 90deg) translateZ(calc(var(--projection) * var(--width-unit)));
  82. }
  83. &.cube__face--back {
  84. transform: rotateY(180deg) translateZ(calc(var(--projection) * var(--width-unit)));
  85. }
  86. &.cube__face--left {
  87. transform: rotateY(-90deg) translateZ(calc(var(--projection) * var(--width-unit)));
  88. }
  89. &.cube__face--top {
  90. transform: rotateX( 90deg) translateZ(calc(var(--projection) * var(--width-unit)));
  91. }
  92. &.cube__face--bottom {
  93. transform: rotateX(-90deg) translateZ(calc(var(--projection) * var(--width-unit)));
  94. }
  95. }