Is it possible to change backgroundColor of selectedItem on hover in Fluent UI?

Viewed 16
1 Answers

Here is a sample.

import * as React from "react";
import { IStackTokens, Stack } from "@fluentui/react/lib/Stack";
import {
  Dropdown,
  DropdownMenuItemType,
  IDropdownStyles,
  IDropdownOption
} from "@fluentui/react/lib/Dropdown";

const dropdownStyles: Partial<IDropdownStyles> = {
  dropdown: { width: 300 },
  dropdownItemSelected: {
    selectors: {
      "&:before": {
        content: '""',
        position: "absolute",
        left: 0,
        top: 0,
        bottom: 0,
        width: "4px",
        background: "rgb(0, 120, 212)"
      }
    },
    "&:hover:focus": {
      backgroundColor: "blue",
      color: "white"
    }
  }
};

const options: IDropdownOption[] = [
  {
    key: "fruitsHeader",
    text: "Fruits",
    itemType: DropdownMenuItemType.Header
  },
  { key: "apple", text: "Apple" },
  { key: "banana", text: "Banana" },
  { key: "orange", text: "Orange", disabled: true },
  { key: "grape", text: "Grape" },
  { key: "divider_1", text: "-", itemType: DropdownMenuItemType.Divider },
  {
    key: "vegetablesHeader",
    text: "Vegetables",
    itemType: DropdownMenuItemType.Header
  },
  { key: "broccoli", text: "Broccoli" },
  { key: "carrot", text: "Carrot" },
  { key: "lettuce", text: "Lettuce" }
];

const stackTokens: IStackTokens = { childrenGap: 20 };

export const DropdownSelectStyleExample: React.FunctionComponent = () => {
  return (
    <Stack tokens={stackTokens}>
      <Dropdown
        placeholder="Select an option"
        label="Favorite Fruit"
        options={options}
        styles={dropdownStyles}
      />
    </Stack>
  );
};
Related