Use our Tailwind CSS Select
component to collect user provided information from a list of options.
A Select
component is a dropdown menu for displaying choices. Use the radio component when there are fewer total options (less than 5).
See below our Select
component example that you can use in your Tailwind CSS and React project. The example comes in different colors and styles, so you can adapt it easily to your needs.
import { Select, Option } from "@material-tailwind/react";
export function SelectDefault() {
return (
<div className="w-72">
<Select label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
</div>
);
}
The Select
component comes with 3 different variants that you can change it using the variant
prop.
import { Select, Option } from "@material-tailwind/react";
export function SelectVariants() {
return (
<div className="flex w-72 flex-col gap-6">
<Select variant="static" label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
<Select variant="standard" label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
<Select variant="outlined" label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
</div>
);
}
The Select
component comes with 2 different sizes that you can change it using the size
prop.
import { Select, Option } from "@material-tailwind/react";
export function SelectSizes() {
return (
<div className="flex w-72 flex-col gap-6">
<Select size="md" label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
<Select size="lg" label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
</div>
);
}
The Select
component comes with 19 different colors that you can change it using the color
prop.
import { Select, Option } from "@material-tailwind/react";
export function SelectColors() {
return (
<div className="flex w-72 flex-col gap-6">
<Select color="blue" label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
<Select color="purple" label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
<Select color="teal" label="Select Version">
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
</div>
);
}
The Select
component comes with error and success states for performing validations.
import { Select, Option } from "@material-tailwind/react";
export function SelectValidations() {
return (
<div className="flex w-72 flex-col gap-6">
<Select label="Select Version" error>
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
<Select label="Select Version" success>
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
</div>
);
}
You can make the Select
component to be controlled using the value
and onChange
props.
import React from "react";
import { Select, Option } from "@material-tailwind/react";
export function ControlledSelect() {
const [value, setValue] = React.useState("react");
return (
<div className="w-72">
<Select
label="Select Version"
value={value}
onChange={(val) => setValue(val)}
>
<Option value="html">Material Tailwind HTML</Option>
<Option value="react">Material Tailwind React</Option>
<Option value="vue">Material Tailwind Vue</Option>
<Option value="angular">Material Tailwind Angular</Option>
<Option value="svelte">Material Tailwind Svelte</Option>
</Select>
</div>
);
}
You can modify the open/close state animation for Select
component using the animate
prop.
import { Select, Option } from "@material-tailwind/react";
export function SelectCustomAnimation() {
return (
<div className="w-72">
<Select
label="Select Version"
animate={{
mount: { y: 0 },
unmount: { y: 25 },
}}
>
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
</div>
);
}
A Select
could be disabled as well, it will help you to prevent user interactions like click or focus over the Select
component.
import { Select, Option } from "@material-tailwind/react";
export function SelectDisabled() {
return (
<div className="w-72">
<Select label="Select Version" disabled>
<Option>Material Tailwind HTML</Option>
<Option>Material Tailwind React</Option>
<Option>Material Tailwind Vue</Option>
<Option>Material Tailwind Angular</Option>
<Option>Material Tailwind Svelte</Option>
</Select>
</div>
);
}
See the example below to see how you can create a Select
component with a list of countries.
This example is using use-react-countries
make sure you have installed it.
npm i use-react-countries
import React from "react";
import { useCountries } from "use-react-countries";
import { Select, Option } from "@material-tailwind/react";
export function CountriesSelect() {
const { countries } = useCountries();
return (
<div className="w-72">
<Select
size="lg"
label="Select Country"
selected={(element) =>
element &&
React.cloneElement(element, {
disabled: true,
className:
"flex items-center opacity-100 px-0 gap-2 pointer-events-none",
})
}
>
{countries.map(({ name, flags }) => (
<Option key={name} value={name} className="flex items-center gap-2">
<img
src={flags.svg}
alt={name}
className="h-5 w-5 rounded-full object-cover"
/>
{name}
</Option>
))}
</Select>
</div>
);
}
The following props are available for select component. These are the custom props that we've added for the select component and you can use all the other native props as well.
Attribute | Type | Description | Default |
---|---|---|---|
variant | Variant | Change select variant | outlined |
size | Size | Change select size | md |
color | Color | Change select color | gray |
label | string | Add label for select | '' |
error | boolean | Change select state to error | false |
success | boolean | Change select state to success | false |
arrow | node | Change select arrow icon | undefined |
value | string | Change selected value for select | undefined |
onChange | function | Return selected value when select value changed | undefined |
selected | function | Return selected element and it's index | undefined |
offset | Offset | Change select menu offset from it's input | 5 |
dismiss | Dismiss | Change dismiss listeners when clicking outside | undefined |
animate | Animate | Change select menu animation | undefined |
lockScroll | boolean | Lock page scrolling when select menu is opened | false |
containerProps | object | Add custom props for select container | undefined |
labelProps | object | Add custom props for select label | undefined |
menuProps | object | Add custom props for select menu | undefined |
disabled | boolean | Disable select | false |
name | string | Add name for select | false |
className | string | Add custom className for select | '' |
children | node | Add content for select | No default value it's a required prop. |
import type { SelectProps } from "@material-tailwind/react";
The following props are available for select option component. These are the custom props that we've added for the select option component and you can use all the other native props as well.
Attribute | Type | Description | Default |
---|---|---|---|
value | string | Add select option value, it works together with value props of select | undefined |
index | number | Add select option value | undefined |
disabled | boolean | Disable select option | false |
className | string | Add custom className for select option | '' |
children | node | Add content for select option | No default value it's a required prop. |
import type { SelectOptionProps } from "@material-tailwind/react";
type variant = "standard" | "outlined" | "static";
type size = "md" | "lg";
type color =
| "blue-gray"
| "gray"
| "brown"
| "deep-orange"
| "orange"
| "amber"
| "yellow"
| "lime"
| "light-green"
| "green"
| "teal"
| "cyan"
| "light-blue"
| "blue"
| "indigo"
| "deep-purple"
| "purple"
| "pink"
| "red";
type offset =
| number
| {
mainAxis?: number;
crossAxis?: number;
alignmentAxis?: number | null;
};
type dismissType = {
enabled?: boolean;
escapeKey?: boolean;
referencePress?: boolean;
referencePressEvent?: 'pointerdown' | 'mousedown' | 'click';
outsidePress?: boolean | ((event: MouseEvent) => boolean);
outsidePressEvent?: 'pointerdown' | 'mousedown' | 'click';
ancestorScroll?: boolean;
bubbles?: boolean | {
escapeKey?: boolean;
outsidePress?: boolean;
};
};
type animate = {
mount?: object;
unmount?: object;
};
Learn how to customize the theme and styles for select components, the theme object for select components has three main objects:
A. The defaultProps
object for setting up the default value for props of select components.
B. The valid
object for customizing the valid values for select components props.
C. The styles
object for customizing the theme and styles of select components.
You can customize the theme and styles of select components by adding Tailwind CSS classes as key paired values for objects.
Variant of Select
component theme has a specific type of Select Variant Styles Type
interface SelectStylesType {
defaultProps: {
variant: string;
color: string;
size: string;
label: string;
error: boolean;
success: boolean;
arrow: node;
value: string;
onChange: func;
selected: func;
offset:
| number
| {
mainAxis: number;
crossAxis: number;
alignmentAxis: number;
};
dismiss: {
enabled: boolean;
escapeKey: boolean;
referencePress: boolean;
referencePressEvent: 'pointerdown' | 'mousedown' | 'click';
outsidePress: boolean | ((event: MouseEvent) => boolean);
outsidePressEvent: 'pointerdown' | 'mousedown' | 'click';
ancestorScroll: boolean;
bubbles: boolean | {
escapeKey: boolean;
outsidePress: boolean;
};
};
animate: {
mount: object;
unmount: object;
};
autoHeight: boolean;
lockScroll: boolean;
labelProps: object;
menuProps: boolean;
className: string;
disabled: boolean;
};
valid: {
variants: string[];
sizes: string[];
colors: string[];
};
styles: {
base: {
container: object;
select: object;
arrow: {
initial: object;
active: object;
};
label: object;
menu: object;
option: {
initial: object;
active: object;
disabled: object;
};
};
variants: {
outlined: SelectVariantStylesType;
standard: SelectVariantStylesType;
static: SelectVariantStylesType;
};
};
}
import type { SelectStylesType } from "@material-tailwind/react";
Select variant object type contains three specific types of Select Size Styles Type, Select States Styles Type and Select State Styles Type
interface SelectVariantStylesType {
base: {
select: object;
label: object;
};
sizes: {
md: SelectSizeStylesType;
lg: SelectSizeStylesType;
};
colors: {
select: object;
label: object;
};
states: SelectStatesStylesType;
error: SelectStateStylesType;
success: SelectStateStylesType;
}
import type { SelectVariantStylesType } from "@material-tailwind/react";
interface SelectSizeStylesType {
container: object;
select: object;
label: {
initial: object;
states: {
close: object;
open: object;
withValue: object;
};
};
}
import type { SelectSizeStylesType } from "@material-tailwind/react";
interface SelectStatesStylesType {
close: {
select: object;
label: object;
};
open: {
select: object;
label: object;
};
withValue: {
select: object;
label: object;
};
}
import type { SelectStatesStylesType } from "@material-tailwind/react";
interface SelectStateStylesType {
select: {
initial: object;
states: {
close: object;
open: object;
withValue: object;
};
};
label: {
initial: object;
states: {
close: object;
open: object;
withValue: object;
};
};
}
import type { SelectStateStylesType } from "@material-tailwind/react";
const theme = {
select: {
defaultProps: {
variant: "outlined",
color: "blue",
size: "md",
label: "",
error: false,
success: false,
arrow: undefined,
value: undefined,
onChange: undefined,
selected: undefined,
offset: 5,
dismiss: {},
animate: {
unmount: {},
mount: {},
},
autoHeight: false,
lockScroll: false,
labelProps: {},
menuProps: {},
className: "",
disabled: false,
containerProps: undefined,
},
valid: {
variants: ["standard", "outlined", "static"],
sizes: ["md", "lg"],
colors: [
"blue-gray",
"gray",
"brown",
"deep-orange",
"orange",
"amber",
"yellow",
"lime",
"light-green",
"green",
"teal",
"cyan",
"light-blue",
"blue",
"indigo",
"deep-purple",
"purple",
"pink",
"red",
],
},
styles: {
base: {
container: {
position: "relative",
width: "w-full",
minWidth: "min-w-[200px]",
},
select: {
peer: "peer",
width: "w-full",
height: "h-full",
bg: "bg-transparent",
color: "text-blue-gray-700",
fontFamily: "font-sans",
fontWeight: "font-normal",
textAlign: "text-left",
outline: "outline outline-0 focus:outline-0",
disabled: "disabled:bg-blue-gray-50 disabled:border-0",
transition: "transition-all",
},
arrow: {
initial: {
display: "grid",
placeItems: "place-items-center",
position: "absolute",
top: "top-2/4",
right: "right-2",
pt: "pt-px",
width: "w-5",
height: "h-5",
color: "text-blue-gray-400",
transform: "rotate-0 -translate-y-2/4",
transition: "transition-all",
},
active: {
transform: "rotate-180",
mt: "mt-px",
},
},
label: {
display: "flex",
width: "w-full",
height: "h-full",
userSelect: "select-none",
pointerEvents: "pointer-events-none",
position: "absolute",
left: "left-0",
fontWeight: "font-normal",
transition: "transition-all",
},
menu: {
width: "w-full",
maxHeight: "max-h-96",
bg: "bg-white",
p: "p-3",
border: "border border-blue-gray-50",
borderRadius: "rounded-md",
boxShadow: "shadow-lg shadow-blue-gray-500/10",
fontFamily: "font-sans",
fontSize: "text-sm",
fontWeight: "font-normal",
color: "text-blue-gray-500",
overflow: "overflow-auto",
outline: "focus:outline-none",
},
option: {
initial: {
pt: "pt-[9px]",
pb: "pb-2",
px: "px-3",
borderRadius: "rounded-md",
lightHeight: "leading-tight",
cursor: "cursor-pointer",
userSelect: "select-none",
background: "hover:bg-blue-gray-50 focus:bg-blue-gray-50",
opacity: "hover:bg-opacity-80 focus:bg-opacity-80",
color: "hover:text-blue-gray-900 focus:text-blue-gray-900",
outline: "outline outline-0",
transition: "transition-all",
},
active: {
bg: "bg-blue-gray-50 bg-opacity-80",
color: "text-blue-gray-900",
},
disabled: {
opacity: "opacity-50",
cursor: "cursor-not-allowed",
userSelect: "select-none",
pointerEvents: "pointer-events-none",
},
},
},
variants: {
outlined: {
base: {
select: {},
label: {
position: "-top-1.5",
before: {
content: "before:content[' ']",
display: "before:block",
boxSizing: "before:box-border",
width: "before:w-2.5",
height: "before:h-1.5",
mt: "before:mt-[6.5px]",
mr: "before:mr-1",
borderRadius: "before:rounded-tl-md",
pointerEvents: "before:pointer-events-none",
transition: "before:transition-all",
disabled: "peer-disabled:before:border-transparent",
},
after: {
content: "after:content[' ']",
display: "after:block",
flexGrow: "after:flex-grow",
boxSizing: "after:box-border",
width: "after:w-2.5",
height: "after:h-1.5",
mt: "after:mt-[6.5px]",
ml: "after:ml-1",
borderRadius: "after:rounded-tr-md",
pointerEvents: "after:pointer-events-none",
transition: "after:transition-all",
disabled: "peer-disabled:after:border-transparent",
},
},
},
sizes: {
md: {
container: {
height: "h-10",
},
select: {
fontSize: "text-sm",
px: "px-3",
py: "py-2.5",
borderRadius: "rounded-[7px]",
},
label: {
initial: {},
states: {
close: {
lineHeight: "leading-[3.75]",
},
open: {
lineHeight: "leading-tight",
},
withValue: {
lineHeight: "leading-tight",
},
},
},
},
lg: {
container: {
height: "h-11",
},
select: {
fontSize: "text-sm",
px: "px-3",
py: "py-3",
borderRadius: "rounded-[7px]",
},
label: {
initial: {},
states: {
close: {
lineHeight: "leading-[4.1]",
},
open: {
lineHeight: "leading-tight",
},
withValue: {
lineHeight: "leading-tight",
},
},
},
},
},
colors: {
select: {
"blue-gray": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-blue-gray-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
gray: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-gray-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
brown: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-brown-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
"deep-orange": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-deep-orange-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
orange: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-orange-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
amber: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-amber-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
yellow: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-yellow-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
lime: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-lime-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
"light-green": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-light-green-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
green: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-green-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
teal: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-teal-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
cyan: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-cyan-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
"light-blue": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-light-blue-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
blue: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-blue-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
indigo: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-indigo-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
"deep-purple": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-deep-purple-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
purple: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-purple-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
pink: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-pink-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
red: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-red-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-blue-gray-200",
borderTopColor: "border-t-transparent",
},
},
},
label: {
"blue-gray": {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-blue-gray-500",
before: "before:border-blue-gray-500",
after: "after:border-blue-gray-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
gray: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-gray-500",
before: "before:border-gray-500",
after: "after:border-gray-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
brown: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-brown-500",
before: "before:border-brown-500",
after: "after:border-brown-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
"deep-orange": {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-deep-orange-500",
before: "before:border-deep-orange-500",
after: "after:border-deep-orange-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
orange: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-orange-500",
before: "before:border-orange-500",
after: "after:border-orange-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
amber: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-amber-500",
before: "before:border-amber-500",
after: "after:border-amber-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
yellow: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-yellow-500",
before: "before:border-yellow-500",
after: "after:border-yellow-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
lime: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-lime-500",
before: "before:border-lime-500",
after: "after:border-lime-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
"light-green": {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-light-green-500",
before: "before:border-light-green-500",
after: "after:border-light-green-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
green: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-green-500",
before: "before:border-green-500",
after: "after:border-green-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
teal: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-teal-500",
before: "before:border-teal-500",
after: "after:border-teal-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
cyan: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-cyan-500",
before: "before:border-cyan-500",
after: "after:border-cyan-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
"light-blue": {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-light-blue-500",
before: "before:border-light-blue-500",
after: "after:border-light-blue-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
blue: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-blue-500",
before: "before:border-blue-500",
after: "after:border-blue-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
indigo: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-indigo-500",
before: "before:border-indigo-500",
after: "after:border-indigo-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
"deep-purple": {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-deep-purple-500",
before: "before:border-deep-purple-500",
after: "after:border-deep-purple-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
purple: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-purple-500",
before: "before:border-purple-500",
after: "after:border-purple-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
pink: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-pink-500",
before: "before:border-pink-500",
after: "after:border-pink-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
red: {
close: {
color: "text-blue-gray-400",
before: "before:border-transparent",
after: "after:border-transparent",
},
open: {
color: "text-red-500",
before: "before:border-red-500",
after: "after:border-red-500",
},
withValue: {
color: "text-blue-gray-400",
before: "before:border-blue-gray-200",
after: "after:border-blue-gray-200",
},
},
},
},
states: {
close: {
select: {
borderWidth: "border",
},
label: {
fontSize: "text-sm",
disabled: "peer-disabled:text-blue-gray-400",
before: {
bt: "before:border-t-transparent",
bl: "before:border-l-transparent",
},
after: {
bt: "after:border-t-transparent",
br: "after:border-r-transparent",
},
},
},
open: {
select: {
borderWidth: "border-2",
borderColor: "border-t-transparent",
},
label: {
fontSize: "text-[11px]",
disabled: "peer-disabled:text-transparent",
before: {
bt: "before:border-t-2",
bl: "before:border-l-2",
},
after: {
bt: "after:border-t-2",
br: "after:border-r-2",
},
},
},
withValue: {
select: {
borderWidth: "border",
borderColor: "border-t-transparent",
},
label: {
fontSize: "text-[11px]",
disabled: "peer-disabled:text-transparent",
before: {
bt: "before:border-t",
bl: "before:border-l",
},
after: {
bt: "after:border-t",
br: "after:border-r",
},
},
},
},
error: {
select: {
initial: {},
states: {
close: {
borderColor: "border-red-500",
},
open: {
borderColor: "border-red-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-red-500",
borderTopColor: "border-t-transparent",
},
},
},
label: {
initial: {},
states: {
close: {
color: "text-red-500",
before: "before:border-red-500",
after: "after:border-red-500",
},
open: {
color: "text-red-500",
before: "before:border-red-500",
after: "after:border-red-500",
},
withValue: {
color: "text-red-500",
before: "before:border-red-500",
after: "after:border-red-500",
},
},
},
},
success: {
select: {
initial: {},
states: {
close: {
borderColor: "border-green-500",
},
open: {
borderColor: "border-green-500",
borderTopColor: "border-t-transparent",
},
withValue: {
borderColor: "border-green-500",
borderTopColor: "border-t-transparent",
},
},
},
label: {
initial: {},
states: {
close: {
color: "text-green-500",
before: "before:border-green-500",
after: "after:border-green-500",
},
open: {
color: "text-green-500",
before: "before:border-green-500",
after: "after:border-green-500",
},
withValue: {
color: "text-green-500",
before: "before:border-green-500",
after: "after:border-green-500",
},
},
},
},
},
standard: {
base: {
select: {},
label: {
position: "-top-1.5",
after: {
content: "after:content[' ']",
display: "after:block",
width: "after:w-full",
position: "after:absolute",
bottom: "after:-bottom-1.5",
left: "left-0",
borderWidth: "after:border-b-2",
transition: "after:transition-transform after:duration-300",
},
},
},
sizes: {
md: {
container: {
height: "h-11",
},
select: {
fontSize: "text-sm",
pt: "pt-4",
pb: "pb-1.5",
},
label: {
initial: {},
states: {
close: {
lineHeight: "leading-[4.25]",
},
open: {
lineHeight: "leading-tight",
},
withValue: {
lineHeight: "leading-tight",
},
},
},
},
lg: {
container: {
height: "h-12",
},
select: {
fontSize: "text-sm",
px: "px-px",
pt: "pt-5",
pb: "pb-2",
},
label: {
initial: {},
states: {
close: {
lineHeight: "leading-[4.875]",
},
open: {
lineHeight: "leading-tight",
},
withValue: {
lineHeight: "leading-tight",
},
},
},
},
},
colors: {
select: {
"blue-gray": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-blue-gray-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
gray: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-gray-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
brown: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-brown-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
"deep-orange": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-deep-orange-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
orange: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-orange-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
amber: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-amber-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
yellow: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-yellow-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
lime: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-lime-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
"light-green": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-light-green-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
green: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-green-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
teal: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-teal-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
cyan: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-cyan-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
"light-blue": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-light-blue-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
blue: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-blue-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
indigo: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-indigo-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
"deep-purple": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-deep-purple-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
purple: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-purple-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
pink: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-pink-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
red: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-red-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
},
label: {
"blue-gray": {
close: {
color: "text-blue-gray-500",
after: "after:border-blue-gray-500",
},
open: {
color: "text-blue-gray-500",
after: "after:border-blue-gray-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-blue-gray-50",
},
},
gray: {
close: {
color: "text-blue-gray-500",
after: "after:border-gray-500",
},
open: {
color: "text-gray-500",
after: "after:border-gray-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-gray-500",
},
},
brown: {
close: {
color: "text-blue-gray-500",
after: "after:border-brown-500",
},
open: {
color: "text-brown-500",
after: "after:border-brown-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-brown-500",
},
},
"deep-orange": {
close: {
color: "text-blue-gray-500",
after: "after:border-deep-orange-500",
},
open: {
color: "text-deep-orange-500",
after: "after:border-deep-orange-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-deep-orange-500",
},
},
orange: {
close: {
color: "text-blue-gray-500",
after: "after:border-orange-500",
},
open: {
color: "text-orange-500",
after: "after:border-orange-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-orange-500",
},
},
amber: {
close: {
color: "text-blue-gray-500",
after: "after:border-amber-500",
},
open: {
color: "text-amber-500",
after: "after:border-amber-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-amber-500",
},
},
yellow: {
close: {
color: "text-blue-gray-500",
after: "after:border-yellow-500",
},
open: {
color: "text-yellow-500",
after: "after:border-yellow-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-yellow-500",
},
},
lime: {
close: {
color: "text-blue-gray-500",
after: "after:border-lime-500",
},
open: {
color: "text-lime-500",
after: "after:border-lime-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-lime-500",
},
},
"light-green": {
close: {
color: "text-blue-gray-500",
after: "after:border-light-green-500",
},
open: {
color: "text-light-green-500",
after: "after:border-light-green-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-light-green-500",
},
},
green: {
close: {
color: "text-blue-gray-500",
after: "after:border-green-500",
},
open: {
color: "text-green-500",
after: "after:border-green-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-green-500",
},
},
teal: {
close: {
color: "text-blue-gray-500",
after: "after:border-teal-500",
},
open: {
color: "text-teal-500",
after: "after:border-teal-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-teal-500",
},
},
cyan: {
close: {
color: "text-blue-gray-500",
after: "after:border-cyan-500",
},
open: {
color: "text-cyan-500",
after: "after:border-cyan-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-cyan-500",
},
},
"light-blue": {
close: {
color: "text-blue-gray-500",
after: "after:border-light-blue-500",
},
open: {
color: "text-light-blue-500",
after: "after:border-light-blue-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-light-blue-500",
},
},
blue: {
close: {
color: "text-blue-gray-500",
after: "after:border-blue-500",
},
open: {
color: "text-blue-500",
after: "after:border-blue-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-blue-500",
},
},
indigo: {
close: {
color: "text-blue-gray-500",
after: "after:border-indigo-500",
},
open: {
color: "text-indigo-500",
after: "after:border-indigo-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-indigo-500",
},
},
"deep-purple": {
close: {
color: "text-blue-gray-500",
after: "after:border-deep-purple-500",
},
open: {
color: "text-deep-purple-500",
after: "after:border-deep-purple-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-deep-purple-500",
},
},
purple: {
close: {
color: "text-blue-gray-500",
after: "after:border-purple-500",
},
open: {
color: "text-purple-500",
after: "after:border-purple-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-purple-500",
},
},
pink: {
close: {
color: "text-blue-gray-500",
after: "after:border-pink-500",
},
open: {
color: "text-pink-500",
after: "after:border-pink-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-pink-500",
},
},
red: {
close: {
color: "text-blue-gray-500",
after: "after:border-red-500",
},
open: {
color: "text-red-500",
after: "after:border-red-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-red-500",
},
},
},
},
states: {
close: {
select: {
borderWidth: "border-b",
},
label: {
fontSize: "text-sm",
disabled: "peer-disabled:text-blue-gray-400",
after: {
transform: "after:scale-x-0",
},
},
},
open: {
select: {
borderWidth: "border-b",
},
label: {
fontSize: "text-[11px]",
disabled: "peer-disabled:text-transparent",
after: {
transform: "after:scale-x-100",
},
},
},
withValue: {
select: {
borderWidth: "border-b",
},
label: {
fontSize: "text-[11px]",
disabled: "peer-disabled:text-transparent",
after: {
transform: "after:scale-x-0",
},
},
},
},
error: {
select: {
initial: {},
states: {
close: {
borderColor: "border-red-500",
},
open: {
borderColor: "border-red-500",
},
withValue: {
borderColor: "border-red-500",
},
},
},
label: {
initial: {},
states: {
close: {
color: "text-red-500",
after: "after:border-red-500",
},
open: {
color: "text-red-500",
after: "after:border-red-500",
},
withValue: {
color: "text-red-500",
after: "after:border-red-500",
},
},
},
},
success: {
select: {
initial: {},
states: {
close: {
borderColor: "border-green-500",
},
open: {
borderColor: "border-green-500",
},
withValue: {
borderColor: "border-green-500",
},
},
},
label: {
initial: {},
states: {
close: {
color: "text-green-500",
after: "after:border-green-500",
},
open: {
color: "text-green-500",
after: "after:border-green-500",
},
withValue: {
color: "text-green-500",
after: "after:border-green-500",
},
},
},
},
},
static: {
base: {
select: {},
label: {
position: "-top-2.5",
after: {
content: "after:content[' ']",
display: "after:block",
width: "after:w-full",
position: "after:absolute",
bottom: "after:-bottom-2.5",
left: "left-0",
borderWidth: "after:border-b-2",
transition: "after:transition-transform after:duration-300",
},
},
},
sizes: {
md: {
container: {
height: "h-11",
},
select: {
fontSize: "text-sm",
pt: "pt-4",
pb: "pb-1.5",
},
label: {
initial: {},
states: {
close: {
lineHeight: "leading-tight",
},
open: {
lineHeight: "leading-tight",
},
withValue: {
lineHeight: "leading-tight",
},
},
},
},
lg: {
container: {
height: "h-12",
},
select: {
fontSize: "text-sm",
px: "px-px",
pt: "pt-5",
pb: "pb-2",
},
label: {
initial: {},
states: {
close: {
lineHeight: "leading-tight",
},
open: {
lineHeight: "leading-tight",
},
withValue: {
lineHeight: "leading-tight",
},
},
},
},
},
colors: {
select: {
"blue-gray": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-blue-gray-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
gray: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-gray-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
brown: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-brown-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
"deep-orange": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-deep-orange-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
orange: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-orange-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
amber: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-amber-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
yellow: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-yellow-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
lime: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-lime-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
"light-green": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-light-green-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
green: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-green-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
teal: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-teal-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
cyan: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-cyan-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
"light-blue": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-light-blue-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
blue: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-blue-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
indigo: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-indigo-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
"deep-purple": {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-deep-purple-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
purple: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-purple-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
pink: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-pink-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
red: {
close: {
borderColor: "border-blue-gray-200",
},
open: {
borderColor: "border-red-500",
},
withValue: {
borderColor: "border-blue-gray-200",
},
},
},
label: {
"blue-gray": {
close: {
color: "text-blue-gray-500",
after: "after:border-blue-gray-500",
},
open: {
color: "text-blue-gray-500",
after: "after:border-blue-gray-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-blue-gray-50",
},
},
gray: {
close: {
color: "text-blue-gray-500",
after: "after:border-gray-500",
},
open: {
color: "text-gray-500",
after: "after:border-gray-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-gray-500",
},
},
brown: {
close: {
color: "text-blue-gray-500",
after: "after:border-brown-500",
},
open: {
color: "text-brown-500",
after: "after:border-brown-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-brown-500",
},
},
"deep-orange": {
close: {
color: "text-blue-gray-500",
after: "after:border-deep-orange-500",
},
open: {
color: "text-deep-orange-500",
after: "after:border-deep-orange-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-deep-orange-500",
},
},
orange: {
close: {
color: "text-blue-gray-500",
after: "after:border-orange-500",
},
open: {
color: "text-orange-500",
after: "after:border-orange-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-orange-500",
},
},
amber: {
close: {
color: "text-blue-gray-500",
after: "after:border-amber-500",
},
open: {
color: "text-amber-500",
after: "after:border-amber-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-amber-500",
},
},
yellow: {
close: {
color: "text-blue-gray-500",
after: "after:border-yellow-500",
},
open: {
color: "text-yellow-500",
after: "after:border-yellow-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-yellow-500",
},
},
lime: {
close: {
color: "text-blue-gray-500",
after: "after:border-lime-500",
},
open: {
color: "text-lime-500",
after: "after:border-lime-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-lime-500",
},
},
"light-green": {
close: {
color: "text-blue-gray-500",
after: "after:border-light-green-500",
},
open: {
color: "text-light-green-500",
after: "after:border-light-green-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-light-green-500",
},
},
green: {
close: {
color: "text-blue-gray-500",
after: "after:border-green-500",
},
open: {
color: "text-green-500",
after: "after:border-green-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-green-500",
},
},
teal: {
close: {
color: "text-blue-gray-500",
after: "after:border-teal-500",
},
open: {
color: "text-teal-500",
after: "after:border-teal-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-teal-500",
},
},
cyan: {
close: {
color: "text-blue-gray-500",
after: "after:border-cyan-500",
},
open: {
color: "text-cyan-500",
after: "after:border-cyan-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-cyan-500",
},
},
"light-blue": {
close: {
color: "text-blue-gray-500",
after: "after:border-light-blue-500",
},
open: {
color: "text-light-blue-500",
after: "after:border-light-blue-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-light-blue-500",
},
},
blue: {
close: {
color: "text-blue-gray-500",
after: "after:border-blue-500",
},
open: {
color: "text-blue-500",
after: "after:border-blue-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-blue-500",
},
},
indigo: {
close: {
color: "text-blue-gray-500",
after: "after:border-indigo-500",
},
open: {
color: "text-indigo-500",
after: "after:border-indigo-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-indigo-500",
},
},
"deep-purple": {
close: {
color: "text-blue-gray-500",
after: "after:border-deep-purple-500",
},
open: {
color: "text-deep-purple-500",
after: "after:border-deep-purple-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-deep-purple-500",
},
},
purple: {
close: {
color: "text-blue-gray-500",
after: "after:border-purple-500",
},
open: {
color: "text-purple-500",
after: "after:border-purple-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-purple-500",
},
},
pink: {
close: {
color: "text-blue-gray-500",
after: "after:border-pink-500",
},
open: {
color: "text-pink-500",
after: "after:border-pink-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-pink-500",
},
},
red: {
close: {
color: "text-blue-gray-500",
after: "after:border-red-500",
},
open: {
color: "text-red-500",
after: "after:border-red-500",
},
withValue: {
color: "text-blue-gray-500",
after: "after:border-red-500",
},
},
},
},
states: {
close: {
select: {
borderWidth: "border-b",
},
label: {
fontSize: "text-sm",
disabled: "peer-disabled:text-blue-gray-400",
after: {
transform: "after:scale-x-0",
},
},
},
open: {
select: {
borderWidth: "border-b",
},
label: {
fontSize: "text-sm",
disabled: "peer-disabled:text-transparent",
after: {
transform: "after:scale-x-100",
},
},
},
withValue: {
select: {
borderWidth: "border-b",
},
label: {
fontSize: "text-sm",
disabled: "peer-disabled:text-transparent",
after: {
transform: "after:scale-x-0",
},
},
},
},
error: {
select: {
initial: {},
states: {
close: {
borderColor: "border-red-500",
},
open: {
borderColor: "border-red-500",
},
withValue: {
borderColor: "border-red-500",
},
},
},
label: {
initial: {},
states: {
close: {
color: "text-red-500",
after: "after:border-red-500",
},
open: {
color: "text-red-500",
after: "after:border-red-500",
},
withValue: {
color: "text-red-500",
after: "after:border-red-500",
},
},
},
},
success: {
select: {
initial: {},
states: {
close: {
borderColor: "border-green-500",
},
open: {
borderColor: "border-green-500",
},
withValue: {
borderColor: "border-green-500",
},
},
},
label: {
initial: {},
states: {
close: {
color: "text-green-500",
after: "after:border-green-500",
},
open: {
color: "text-green-500",
after: "after:border-green-500",
},
withValue: {
color: "text-green-500",
after: "after:border-green-500",
},
},
},
},
},
},
},
},
};
Looking for more select component examples? Check out our Ecommerce Sections from Material Tailwind Blocks.