From 482da718f3b02b645cbdd72f689df041dabfbaab Mon Sep 17 00:00:00 2001 From: Grzegorz Kucmierz Date: Mon, 23 Feb 2026 00:23:54 +0000 Subject: [PATCH] chore: cube queue UI and copy/reset actions --- src/components/renderers/SmartCube.vue | 303 ++++++++++++++++++++++++- src/config/animationSettings.js | 1 + 2 files changed, 294 insertions(+), 10 deletions(-) create mode 100644 src/config/animationSettings.js 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