diff --git a/src/components/renderers/SmartCube.vue b/src/components/renderers/SmartCube.vue
index cad7fdf..c63e77b 100644
--- a/src/components/renderers/SmartCube.vue
+++ b/src/components/renderers/SmartCube.vue
@@ -1,17 +1,18 @@
@@ -479,6 +646,38 @@ onUnmounted(() => {
+
+
+
+
+
+
+
+ {{ m.label }}
+
+
+
+
+
+
+
+
@@ -545,6 +744,90 @@ onUnmounted(() => {
padding: 0 10px;
}
+.scramble-btn {
+ position: absolute;
+ bottom: 72px;
+ left: 24px;
+ z-index: 50;
+}
+
+.moves-history {
+ position: absolute;
+ bottom: 72px;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 100%;
+ max-width: calc(100vw - 360px);
+ overflow-x: hidden;
+ padding: 12px 12px 26px 12px;
+ background: rgba(0, 0, 0, 0.4);
+ border-radius: 8px;
+ backdrop-filter: blur(8px);
+}
+
+.moves-inner {
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+}
+
+.moves-row {
+ display: flex;
+ column-gap: 8px;
+}
+
+.moves-row-justify {
+ justify-content: space-between;
+}
+
+.move-pill {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 4px 8px;
+ border-radius: 999px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ font-size: 0.8rem;
+ color: #f0f0f0;
+ white-space: nowrap;
+}
+
+.move-pill-active {
+ background: #ffd500;
+ color: #000;
+ border-color: #ffd500;
+}
+
+.move-pill-pending {
+ opacity: 0.4;
+}
+
+.moves-actions {
+ position: absolute;
+ right: 6px;
+ bottom: 6px;
+ display: flex;
+ gap: 0px;
+}
+
+.queue-action {
+ border: none;
+ background: transparent;
+ padding: 6px 6px;
+ color: #fff;
+ font-size: 0.8rem;
+ cursor: pointer;
+}
+
+.moves-history::after {
+ content: none;
+}
+
+.queue-action:focus {
+ outline: none;
+ box-shadow: none;
+}
+
/* Projection Styles */
.projections {
position: absolute;
diff --git a/src/config/animationSettings.js b/src/config/animationSettings.js
new file mode 100644
index 0000000..42b2585
--- /dev/null
+++ b/src/config/animationSettings.js
@@ -0,0 +1 @@
+export const LAYER_ANIMATION_DURATION = 200