diff --git a/frontend/src/app/main/ui/ds/buttons/_buttons.scss b/frontend/src/app/main/ui/ds/buttons/_buttons.scss
index 07038c8239..08aa9fb81c 100644
--- a/frontend/src/app/main/ui/ds/buttons/_buttons.scss
+++ b/frontend/src/app/main/ui/ds/buttons/_buttons.scss
@@ -20,14 +20,18 @@
--button-focus-inner-ring-color: initial;
--button-focus-outer-ring-color: initial;
+ --button-width: initial;
+ --button-height: #{$sz-32};
+
appearance: none;
- height: $sz-32;
- border: none;
- border-radius: $br-8;
+
+ width: var(--button-width);
+ height: var(--button-height);
background: var(--button-bg-color);
color: var(--button-fg-color);
border: $b-1 solid var(--button-border-color);
+ border-radius: $br-8;
&:hover {
--button-bg-color: var(--button-hover-bg-color);
@@ -130,21 +134,3 @@
box-shadow: inset 0 0 #{px2rem(10)} #{px2rem(2)} rgba(0, 0, 0, 0.2);
}
}
-
-%base-button-action {
- --button-bg-color: transparent;
- --button-fg-color: var(--color-foreground-secondary);
-
- --button-hover-bg-color: transparent;
- --button-hover-fg-color: var(--color-accent-primary);
-
- --button-active-bg-color: var(--color-background-quaternary);
-
- --button-disabled-bg-color: transparent;
- --button-disabled-fg-color: var(--color-accent-primary-muted);
-
- --button-focus-bg-color: transparent;
- --button-focus-fg-color: var(--color-accent-primary);
- --button-focus-inner-ring-color: transparent;
- --button-focus-outer-ring-color: var(--color-accent-primary);
-}
diff --git a/frontend/src/app/main/ui/ds/buttons/buttons.mdx b/frontend/src/app/main/ui/ds/buttons/buttons.mdx
index ebbfa61a7e..3418edd5fe 100644
--- a/frontend/src/app/main/ui/ds/buttons/buttons.mdx
+++ b/frontend/src/app/main/ui/ds/buttons/buttons.mdx
@@ -45,6 +45,24 @@ These are available in the `app.main.ds.foundations.assets.icon` namespace.
+```clj
+[:> icon-button* {:variant "primary"
+ :icon i/effects}]
+```
+
+
+
+### Action Buttons
+
+Action buttons are a variant of `icon-button*` (`"action"`) but smaller.
+
+```clj
+[:> icon-button* {:variant "action"
+ :icon i/effects}]
+```
+
+
+
### Accessibility
Icon buttons require an `aria-label`. This is also shown in a tooltip on hovering the button.
diff --git a/frontend/src/app/main/ui/ds/buttons/icon_button.scss b/frontend/src/app/main/ui/ds/buttons/icon_button.scss
index eed4d8f5b3..3a75812646 100644
--- a/frontend/src/app/main/ui/ds/buttons/icon_button.scss
+++ b/frontend/src/app/main/ui/ds/buttons/icon_button.scss
@@ -10,10 +10,12 @@
.icon-button {
@extend %base-button;
- width: #{$sz-32};
- display: flex;
- justify-content: center;
- align-items: center;
+
+ --button-width: #{$sz-32};
+ --button-height: #{$sz-32};
+
+ display: grid;
+ place-content: center;
}
.icon-button-primary {
@@ -33,5 +35,22 @@
}
.icon-button-action {
- @extend %base-button-action;
+ --button-bg-color: transparent;
+ --button-fg-color: var(--color-foreground-secondary);
+
+ --button-hover-bg-color: transparent;
+ --button-hover-fg-color: var(--color-accent-primary);
+
+ --button-active-bg-color: var(--color-background-quaternary);
+
+ --button-disabled-bg-color: transparent;
+ --button-disabled-fg-color: var(--color-accent-primary-muted);
+
+ --button-focus-bg-color: transparent;
+ --button-focus-fg-color: var(--color-accent-primary);
+ --button-focus-inner-ring-color: transparent;
+ --button-focus-outer-ring-color: var(--color-accent-primary);
+
+ --button-width: #{$sz-24};
+ --button-height: #{$sz-24};
}