diff --git a/frontend/src/app/main/ui/workspace/color_palette.cljs b/frontend/src/app/main/ui/workspace/color_palette.cljs index b48eb89dc3..62c4146144 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.cljs +++ b/frontend/src/app/main/ui/workspace/color_palette.cljs @@ -41,27 +41,29 @@ state (mf/use-state {:show-menu false}) offset-step (cond (<= size 64) 40 - (<= size 72) 88 - (<= size 80) 88 - :else 88) + (<= size 80) 72 + :else 72) buttons-size (cond (<= size 64) 164 - (<= size 72) 164 - (<= size 80) 132 :else 132) width (- width buttons-size) visible (int (/ width offset-step)) show-arrows? (> (count current-colors) visible) + visible (if show-arrows? + (int (/ (- width 48) offset-step)) + visible) offset (:offset @state 0) max-offset (- (count current-colors) visible) - container (mf/use-ref nil) bullet-size (cond (<= size 64) "32" (<= size 72) "28" (<= size 80) "32" :else "32") + color-cell-width (cond + (<= size 64) 32 + :else 64) on-left-arrow-click (mf/use-callback @@ -103,7 +105,7 @@ [:div {:class (stl/css-case :color-palette true :no-text (< size 64)) - :style #js {"--bullet-size" (dm/str bullet-size "px")}} + :style #js {"--bullet-size" (dm/str bullet-size "px") "--color-cell-width" (dm/str color-cell-width "px")}} (when show-arrows? [:button {:class (stl/css :left-arrow) diff --git a/frontend/src/app/main/ui/workspace/color_palette.scss b/frontend/src/app/main/ui/workspace/color_palette.scss index 019704155f..6d27fbe998 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.scss +++ b/frontend/src/app/main/ui/workspace/color_palette.scss @@ -73,27 +73,26 @@ } .color-palette-content { - display: flex; - overflow: hidden; + overflow: hidden; +} - .color-palette-inside { - display: flex; - gap: $s-8; - } - .color-cell { - display: grid; - grid-template-columns: 100%; - grid-template-rows: auto 1fr; - justify-items: center; - height: 100%; - width: $s-80; - &.is-not-library-color { - width: $s-64; - } - &.no-text { - @include flexCenter; - width: $s-32; - } +.color-palette-inside { + display: grid; + grid-auto-flow: column; + grid-auto-columns: var(--color-cell-width); + gap: $s-8; +} + +.color-cell { + display: grid; + grid-template-columns: 100%; + grid-template-rows: auto 1fr; + justify-items: center; + height: 100%; + + &.no-text { + @include flexCenter; + width: $s-32; } } diff --git a/frontend/src/app/main/ui/workspace/palette.cljs b/frontend/src/app/main/ui/workspace/palette.cljs index eab23c77bc..eedaeda61f 100644 --- a/frontend/src/app/main/ui/workspace/palette.cljs +++ b/frontend/src/app/main/ui/workspace/palette.cljs @@ -125,7 +125,6 @@ (dom/blur! node)))) any-palette? (or color-palette? text-palette?) - size-classname (cond (<= size 64) (stl/css :small-palette)