diff --git a/frontend/components/BackLink/_styles.scss b/frontend/components/BackLink/_styles.scss
index fc705cb256..f31328ac85 100644
--- a/frontend/components/BackLink/_styles.scss
+++ b/frontend/components/BackLink/_styles.scss
@@ -3,4 +3,12 @@
align-items: center;
padding: $pad-small $pad-xxsmall; // larger clickable area
gap: $pad-xsmall;
+
+ &:hover {
+ svg {
+ path {
+ stroke: $core-vibrant-blue-over;
+ }
+ }
+ }
}
diff --git a/frontend/components/Modal/Modal.tsx b/frontend/components/Modal/Modal.tsx
index 0ec2c2149f..28ec14d4dd 100644
--- a/frontend/components/Modal/Modal.tsx
+++ b/frontend/components/Modal/Modal.tsx
@@ -1,6 +1,8 @@
import React, { useContext, useEffect } from "react";
import classnames from "classnames";
import { NotificationContext } from "context/notification";
+import Button from "components/buttons/Button/Button";
+import Icon from "components/Icon/Icon";
const baseClass = "modal";
@@ -72,7 +74,9 @@ const Modal = ({
{children}
diff --git a/frontend/components/Modal/_styles.scss b/frontend/components/Modal/_styles.scss
index d629afa182..3f353948c6 100644
--- a/frontend/components/Modal/_styles.scss
+++ b/frontend/components/Modal/_styles.scss
@@ -33,18 +33,19 @@
&__ex {
text-decoration: none;
- padding-left: $pad-xsmall;
- .button::after {
- content: url("../assets/images/icon-close-fleet-blue-16x16@2x.png");
- transform: scale(0.5);
- border-radius: 0px;
+ &:hover {
+ .icon {
+ svg {
+ path {
+ stroke: $core-vibrant-blue;
+ }
+ }
+ }
}
- .button:hover::after {
- content: url("../assets/images/icon-close-vibrant-blue-16x16@2x.png");
- transform: scale(0.5);
- border-radius: 0px;
+ .button {
+ padding: $pad-small;
}
}
diff --git a/frontend/components/TableContainer/DataTable/DropdownCell/_styles.scss b/frontend/components/TableContainer/DataTable/DropdownCell/_styles.scss
index 032c26230a..f04bca94d7 100644
--- a/frontend/components/TableContainer/DataTable/DropdownCell/_styles.scss
+++ b/frontend/components/TableContainer/DataTable/DropdownCell/_styles.scss
@@ -48,6 +48,10 @@
.Select-input {
height: auto;
}
+
+ .Select-arrow-zone {
+ display: flex;
+ }
}
.Select-menu-outer {
@@ -66,12 +70,6 @@
left: -12px;
}
- &:not(.is-open) {
- .Select-control:hover .Select-arrow {
- content: url("../assets/images/icon-chevron-blue-16x16@2x.png");
- }
- }
-
&.is-open {
.Select-control .Select-placeholder {
color: $core-vibrant-blue;
diff --git a/frontend/components/buttons/Button/_styles.scss b/frontend/components/buttons/Button/_styles.scss
index 2111bd32a8..af8a085220 100644
--- a/frontend/components/buttons/Button/_styles.scss
+++ b/frontend/components/buttons/Button/_styles.scss
@@ -225,6 +225,12 @@ $base-class: "button";
&:hover,
&:focus {
color: $core-vibrant-blue-over;
+
+ svg {
+ path {
+ fill: $core-vibrant-blue-over;
+ }
+ }
}
// globally styled gap between text and icon
diff --git a/frontend/components/forms/fields/Dropdown/Dropdown.jsx b/frontend/components/forms/fields/Dropdown/Dropdown.jsx
index b96572a1ff..2c59935f14 100644
--- a/frontend/components/forms/fields/Dropdown/Dropdown.jsx
+++ b/frontend/components/forms/fields/Dropdown/Dropdown.jsx
@@ -6,6 +6,7 @@ import Select from "react-select";
import dropdownOptionInterface from "interfaces/dropdownOption";
import FormField from "components/forms/FormField";
+import Icon from "components/Icon";
const baseClass = "dropdown";
@@ -110,8 +111,22 @@ class Dropdown extends Component {
);
};
+ renderCustomDropdownArrow = () => {
+ return (
+
+
+
+ );
+ };
+
render() {
- const { handleChange, renderOption, onMenuOpen, onMenuClose } = this;
+ const {
+ handleChange,
+ renderOption,
+ onMenuOpen,
+ onMenuClose,
+ renderCustomDropdownArrow,
+ } = this;
const {
error,
className,
@@ -159,6 +174,7 @@ class Dropdown extends Component {
onOpen={onMenuOpen}
onClose={onMenuClose}
autoFocus={autoFocus}
+ arrowRenderer={renderCustomDropdownArrow}
/>
);
diff --git a/frontend/components/forms/fields/Dropdown/_styles.scss b/frontend/components/forms/fields/Dropdown/_styles.scss
index 795a358c1e..b9b8e7acac 100644
--- a/frontend/components/forms/fields/Dropdown/_styles.scss
+++ b/frontend/components/forms/fields/Dropdown/_styles.scss
@@ -1,4 +1,11 @@
.dropdown {
+ &__custom-arrow {
+ display: flex;
+
+ svg {
+ transition: transform 0.25s ease;
+ }
+ }
&__label {
display: block;
font-size: $small;
@@ -113,16 +120,6 @@
}
}
- .Select-arrow {
- content: url("../assets/images/icon-chevron-black-16x16@2x.png");
- height: 16px;
- width: 16px;
- vertical-align: middle;
- margin-top: -1px;
- margin-left: -4px;
- border: none;
- }
-
&.is-focused {
&.dropdown__select {
border: 1px solid $core-vibrant-blue;
@@ -137,34 +134,35 @@
}
&.is-open {
+ .dropdown__icon {
+ svg {
+ transform: rotate(180deg);
+ transition: transform 0.25s ease;
+ path {
+ stroke: $core-vibrant-blue-over;
+ }
+ }
+ }
.Select-control {
border-radius: $border-radius;
-
- .Select-arrow {
- content: url("../assets/images/icon-chevron-blue-16x16@2x.png");
- height: 16px;
- width: 16px;
- margin-left: -4px;
- border: none;
- top: 0px;
- }
}
}
:hover {
- .Select-arrow {
- content: url("../assets/images/icon-chevron-blue-16x16@2x.png");
- height: 16px;
- width: 16px;
- margin-left: -4px;
- border: none;
+ .dropdown__icon {
+ svg {
+ path {
+ stroke: $core-vibrant-blue-over;
+ }
+ }
}
+
&.is-open {
- .Select-arrow {
- content: url("../assets/images/icon-chevron-blue-16x16@2x.png");
- height: 16px;
- width: 16px;
- margin-left: -4px;
- border: none;
+ .dropdown__icon {
+ svg {
+ path {
+ stroke: $core-vibrant-blue-over;
+ }
+ }
}
}
}
@@ -277,7 +275,7 @@
}
.Select-arrow-zone {
- display: block;
+ display: flex;
}
.Select-option {
diff --git a/frontend/components/top_nav/UserMenu/_styles.scss b/frontend/components/top_nav/UserMenu/_styles.scss
index d0c75554a9..6be408158a 100644
--- a/frontend/components/top_nav/UserMenu/_styles.scss
+++ b/frontend/components/top_nav/UserMenu/_styles.scss
@@ -6,6 +6,18 @@
border: 1px solid $ui-vibrant-blue-10;
border-right: 0;
}
+ &:focus:has(+ .dropdown-button__options--opened) {
+ .icon {
+ svg {
+ transform: rotate(180deg);
+ transition: transform 0.25s ease;
+ }
+ }
+ }
+
+ svg {
+ transition: transform 0.25s ease;
+ }
}
.dropdown-button__options {
diff --git a/frontend/pages/hosts/ManageHostsPage/components/LabelFilterSelect/_styles.scss b/frontend/pages/hosts/ManageHostsPage/components/LabelFilterSelect/_styles.scss
index cb7d4a0720..0e979368a7 100644
--- a/frontend/pages/hosts/ManageHostsPage/components/LabelFilterSelect/_styles.scss
+++ b/frontend/pages/hosts/ManageHostsPage/components/LabelFilterSelect/_styles.scss
@@ -1,11 +1,15 @@
.label-filter-select {
width: 175px;
+ svg {
+ transition: transform 0.25s ease;
+ }
+
&:hover {
// no access to hover state from react-select in JS so this is done here.
.custom-dropdown-indicator {
& path {
- fill: $core-vibrant-blue;
+ stroke: $core-vibrant-blue;
}
}
}
@@ -21,6 +25,13 @@
box-shadow: none;
border: 1px solid $core-vibrant-blue;
}
+ &--is-focused,
+ &--menu-is-open {
+ svg {
+ transform: rotate(180deg);
+ transition: transform 0.25s ease;
+ }
+ }
}
.label-filter-select__value-container {
diff --git a/frontend/pages/hosts/details/HostDetailsPage/HostActionsDropdown/_styles.scss b/frontend/pages/hosts/details/HostDetailsPage/HostActionsDropdown/_styles.scss
index d17ab557e7..1152dcfb5f 100644
--- a/frontend/pages/hosts/details/HostDetailsPage/HostActionsDropdown/_styles.scss
+++ b/frontend/pages/hosts/details/HostDetailsPage/HostActionsDropdown/_styles.scss
@@ -1,5 +1,4 @@
.host-actions-dropdown {
-
.form-field {
margin: 0;
}
@@ -47,6 +46,10 @@
.Select-input {
height: auto;
}
+
+ .Select-arrow-zone {
+ display: flex;
+ }
}
.Select-multi-value-wrapper {
diff --git a/frontend/pages/hosts/details/_styles.scss b/frontend/pages/hosts/details/_styles.scss
index 3cf71ec2aa..c0e1af9b68 100644
--- a/frontend/pages/hosts/details/_styles.scss
+++ b/frontend/pages/hosts/details/_styles.scss
@@ -176,6 +176,14 @@
font-size: $x-small;
height: 38px;
margin-left: $pad-small;
+
+ &:hover {
+ svg {
+ path {
+ fill: $core-vibrant-blue-over;
+ }
+ }
+ }
}
.refetch-offline {