mirror of
https://github.com/nextui-org/nextui.git
synced 2025-12-08 19:26:11 +00:00
fix(theme): focus ring styles (#5531)
This commit is contained in:
parent
60118379f5
commit
2f414a8926
9
.changeset/chatty-balloons-brush.md
Normal file
9
.changeset/chatty-balloons-brush.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
"@heroui/number-input": patch
|
||||
"@heroui/slider": patch
|
||||
"@heroui/input": patch
|
||||
"@heroui/system-rsc": patch
|
||||
"@heroui/theme": patch
|
||||
---
|
||||
|
||||
use outline-solid outline-transparent to perverse focus ring styles (#5530)
|
||||
@ -467,7 +467,7 @@ export default function Page() {
|
||||
<label className="flex items-center text-default-400 text-small">
|
||||
Rows per page:
|
||||
<select
|
||||
className="bg-transparent outline-hidden text-default-400 text-small"
|
||||
className="bg-transparent outline-solid outline-transparent text-default-400 text-small"
|
||||
onChange={onRowsPerPageChange}
|
||||
>
|
||||
<option value="5">5</option>
|
||||
|
||||
@ -459,7 +459,7 @@ export default function Page() {
|
||||
<label className="flex items-center text-default-400 text-small">
|
||||
Rows per page:
|
||||
<select
|
||||
className="bg-transparent outline-hidden text-default-400 text-small"
|
||||
className="bg-transparent outline-solid outline-transparent text-default-400 text-small"
|
||||
onChange={onRowsPerPageChange}
|
||||
>
|
||||
<option value="5">5</option>
|
||||
|
||||
@ -63,7 +63,7 @@ const cmdk = tv({
|
||||
"h-14",
|
||||
"font-sans",
|
||||
"text-lg",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"rounded-none",
|
||||
"bg-transparent",
|
||||
"text-default-700",
|
||||
|
||||
@ -196,7 +196,7 @@ function TreeItem<T>(props: TreeItemProps<T>) {
|
||||
aria-expanded={dataAttr(hasChildNodes ? isExpanded : undefined)}
|
||||
aria-selected={dataAttr(isSelected)}
|
||||
className={clsx(
|
||||
"flex flex-col outline-hidden w-full tap-highlight-transparent",
|
||||
"flex flex-col outline-solid outline-transparent w-full tap-highlight-transparent",
|
||||
hasChildNodes ? "mb-4" : "first:mt-4",
|
||||
// focus ring
|
||||
...dataFocusVisibleClasses,
|
||||
|
||||
@ -33,7 +33,7 @@ export const FbRoadmapLink = ({className, innerClassName}: Props) => {
|
||||
<div className={clsx("relative", innerClassName)}>
|
||||
Roadmap
|
||||
<Icon
|
||||
className="absolute right-[-10px] top-0 outline-hidden transition-transform group-data-[hover=true]:translate-y-0.5 [&>path]:stroke-[2.5px]"
|
||||
className="absolute right-[-10px] top-0 outline-solid outline-transparent transition-transform group-data-[hover=true]:translate-y-0.5 [&>path]:stroke-[2.5px]"
|
||||
icon={arrowRightUpIcon}
|
||||
width={10}
|
||||
/>
|
||||
|
||||
@ -80,7 +80,7 @@ export const HeroUIChatBanner = () => {
|
||||
HeroUI Chat
|
||||
<Icon
|
||||
aria-hidden="true"
|
||||
className="outline-hidden transition-transform group-hover:translate-x-0.5 [&>path]:stroke-[2px]"
|
||||
className="outline-solid outline-transparent transition-transform group-hover:translate-x-0.5 [&>path]:stroke-[2px]"
|
||||
icon={arrowRightIcon}
|
||||
width={16}
|
||||
/>
|
||||
|
||||
@ -59,7 +59,7 @@ export const shopCartStyles = tv({
|
||||
"text-sm",
|
||||
"rounded-full",
|
||||
// focus ring
|
||||
"group-data-[focus-visible=true]:outline-hidden",
|
||||
"group-data-[focus-visible=true]:outline-solid outline-transparent",
|
||||
"group-data-[focus-visible=true]:ring-2",
|
||||
"group-data-[focus-visible=true]:ring-focus",
|
||||
"group-data-[focus-visible=true]:ring-offset-2",
|
||||
|
||||
@ -67,7 +67,7 @@ export const Hero = () => {
|
||||
color="primary"
|
||||
endContent={
|
||||
<ArrowRightIcon
|
||||
className="group-data-[hover=true]:translate-x-0.5 outline-hidden transition-transform"
|
||||
className="group-data-[hover=true]:translate-x-0.5 outline-solid outline-transparent transition-transform"
|
||||
strokeWidth={2}
|
||||
/>
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ export const InstallBanner = () => {
|
||||
color="secondary"
|
||||
endContent={
|
||||
<ArrowRightIcon
|
||||
className="group-data-[hover=true]:translate-x-0.5 outline-hidden transition-transform"
|
||||
className="group-data-[hover=true]:translate-x-0.5 outline-solid outline-transparent transition-transform"
|
||||
strokeWidth={2}
|
||||
/>
|
||||
}
|
||||
|
||||
@ -275,7 +275,7 @@ export const APITable: React.FC<APITableProps> = ({data}) => {
|
||||
{/* Mobile popover */}
|
||||
<Components.Popover placement="top">
|
||||
<Components.PopoverTrigger>
|
||||
<button className="flex items-center gap-1 sm:hidden outline-hidden">
|
||||
<button className="flex items-center gap-1 sm:hidden outline-solid outline-transparent">
|
||||
<InfoCircle className="text-default-400" size={16} />
|
||||
</button>
|
||||
</Components.PopoverTrigger>
|
||||
|
||||
@ -227,7 +227,7 @@ export const Navbar: FC<NavbarProps> = ({children, routes, mobileRoutes = [], sl
|
||||
<NavbarItem className="flex h-full items-center">
|
||||
<button
|
||||
className={clsx(
|
||||
"transition-opacity p-1 hover:opacity-80 rounded-full cursor-pointer outline-hidden",
|
||||
"transition-opacity p-1 hover:opacity-80 rounded-full cursor-pointer outline-solid outline-transparent",
|
||||
// focus ring
|
||||
...dataFocusVisibleClasses,
|
||||
)}
|
||||
|
||||
@ -97,7 +97,7 @@ export const PhBanner = () => {
|
||||
Get 30% off
|
||||
<Icon
|
||||
aria-hidden="true"
|
||||
className="outline-hidden transition-transform group-hover:translate-x-0.5 [&>path]:stroke-[2px]"
|
||||
className="outline-solid outline-transparent transition-transform group-hover:translate-x-0.5 [&>path]:stroke-[2px]"
|
||||
icon={arrowRightIcon}
|
||||
width={16}
|
||||
/>
|
||||
|
||||
@ -105,7 +105,7 @@ export const ProBanner = () => {
|
||||
HeroUI Pro
|
||||
<Icon
|
||||
aria-hidden="true"
|
||||
className="outline-hidden transition-transform group-hover:translate-x-0.5 [&>path]:stroke-[2px]"
|
||||
className="outline-solid outline-transparent transition-transform group-hover:translate-x-0.5 [&>path]:stroke-[2px]"
|
||||
icon={arrowRightIcon}
|
||||
width={16}
|
||||
/>
|
||||
|
||||
@ -15,7 +15,7 @@ export const CustomCheckbox = (props) => {
|
||||
},
|
||||
isFocusVisible: {
|
||||
true: {
|
||||
base: "outline-hidden ring-2 ring-focus ring-offset-2 ring-offset-background",
|
||||
base: "outline-solid outline-transparent ring-2 ring-focus ring-offset-2 ring-offset-background",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@ -40,7 +40,7 @@ export default function App() {
|
||||
},
|
||||
isFocusVisible: {
|
||||
true: {
|
||||
base: "outline-hidden ring-2 ring-focus ring-offset-2 ring-offset-background",
|
||||
base: "outline-solid outline-transparent ring-2 ring-focus ring-offset-2 ring-offset-background",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@ -99,7 +99,7 @@ export default function App() {
|
||||
className="cursor-default"
|
||||
endContent={
|
||||
<select
|
||||
className="z-10 outline-hidden w-16 py-0.5 rounded-md text-tiny group-data-[hover=true]:border-default-500 border-small border-default-300 dark:border-default-200 bg-transparent text-default-500"
|
||||
className="z-10 outline-solid outline-transparent w-16 py-0.5 rounded-md text-tiny group-data-[hover=true]:border-default-500 border-small border-default-300 dark:border-default-200 bg-transparent text-default-500"
|
||||
id="theme"
|
||||
name="theme"
|
||||
>
|
||||
|
||||
@ -71,7 +71,7 @@ export default function App() {
|
||||
endContent={
|
||||
<button
|
||||
aria-label="toggle password visibility"
|
||||
className="focus:outline-hidden"
|
||||
className="focus:outline-solid outline-transparent"
|
||||
type="button"
|
||||
onClick={toggleVisibility}
|
||||
>
|
||||
|
||||
@ -110,7 +110,7 @@ export default function App() {
|
||||
Currency
|
||||
</label>
|
||||
<select
|
||||
className="outline-hidden border-0 bg-transparent text-default-400 text-small"
|
||||
className="outline-solid outline-transparent border-0 bg-transparent text-default-400 text-small"
|
||||
id="currency"
|
||||
name="currency"
|
||||
>
|
||||
|
||||
@ -21,7 +21,7 @@ export default function App() {
|
||||
</label>
|
||||
<select
|
||||
aria-label="Select currency"
|
||||
className="outline-hidden border-0 bg-transparent text-default-400 text-small"
|
||||
className="outline-solid outline-transparent border-0 bg-transparent text-default-400 text-small"
|
||||
defaultValue="USD"
|
||||
id="currency"
|
||||
name="currency"
|
||||
|
||||
@ -31,7 +31,7 @@ export default function App() {
|
||||
>
|
||||
<input
|
||||
aria-label="Temperature value"
|
||||
className="px-1 py-0.5 w-12 text-right text-small text-default-700 font-medium bg-default-100 outline-hidden transition-colors rounded-small border-medium border-transparent hover:border-primary focus:border-primary"
|
||||
className="px-1 py-0.5 w-12 text-right text-small text-default-700 font-medium bg-default-100 outline-solid outline-transparent transition-colors rounded-small border-medium border-transparent hover:border-primary focus:border-primary"
|
||||
type="text"
|
||||
value={inputValue}
|
||||
onChange={(e) => {
|
||||
|
||||
@ -34,7 +34,7 @@ export default function App() {
|
||||
>
|
||||
<input
|
||||
aria-label="Temperature value"
|
||||
className="px-1 py-0.5 w-12 text-right text-small text-default-700 font-medium bg-default-100 outline-hidden transition-colors rounded-small border-medium border-transparent hover:border-primary focus:border-primary"
|
||||
className="px-1 py-0.5 w-12 text-right text-small text-default-700 font-medium bg-default-100 outline-solid outline-transparent transition-colors rounded-small border-medium border-transparent hover:border-primary focus:border-primary"
|
||||
type="text"
|
||||
value={inputValue}
|
||||
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
|
||||
|
||||
@ -554,7 +554,7 @@ export default function App() {
|
||||
<label className="flex items-center text-default-400 text-small">
|
||||
Rows per page:
|
||||
<select
|
||||
className="bg-transparent outline-hidden text-default-400 text-small"
|
||||
className="bg-transparent outline-solid outline-transparent text-default-400 text-small"
|
||||
onChange={onRowsPerPageChange}
|
||||
>
|
||||
<option value="5">5</option>
|
||||
|
||||
@ -566,7 +566,7 @@ export default function App() {
|
||||
<label className="flex items-center text-default-400 text-small">
|
||||
Rows per page:
|
||||
<select
|
||||
className="bg-transparent outline-hidden text-default-400 text-small"
|
||||
className="bg-transparent outline-solid outline-transparent text-default-400 text-small"
|
||||
onChange={onRowsPerPageChange}
|
||||
>
|
||||
<option value="5">5</option>
|
||||
|
||||
@ -550,7 +550,7 @@ export default function App() {
|
||||
<label className="flex items-center text-default-400 text-small">
|
||||
Rows per page:
|
||||
<select
|
||||
className="bg-transparent outline-hidden text-default-400 text-small"
|
||||
className="bg-transparent outline-solid outline-transparent text-default-400 text-small"
|
||||
onChange={onRowsPerPageChange}
|
||||
>
|
||||
<option value="5">5</option>
|
||||
|
||||
@ -563,7 +563,7 @@ export default function App() {
|
||||
<label className="flex items-center text-default-400 text-small">
|
||||
Rows per page:
|
||||
<select
|
||||
className="bg-transparent outline-hidden text-default-400 text-small"
|
||||
className="bg-transparent outline-solid outline-transparent text-default-400 text-small"
|
||||
onChange={onRowsPerPageChange}
|
||||
>
|
||||
<option value="5">5</option>
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
"peerDependencies": {
|
||||
"react": ">=18 || >=19.0.0-rc.0",
|
||||
"react-dom": ">=18 || >=19.0.0-rc.0",
|
||||
"@heroui/theme": ">=2.4.17",
|
||||
"@heroui/theme": ">=2.4.19",
|
||||
"@heroui/system": ">=2.4.18"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@ -300,7 +300,7 @@ const StartAndEndContentTemplate = (args) => (
|
||||
Currency
|
||||
</label>
|
||||
<select
|
||||
className="outline-hidden border-0 bg-transparent text-default-400 text-sm"
|
||||
className="outline-solid outline-transparent border-0 bg-transparent text-default-400 text-sm"
|
||||
id="currency"
|
||||
name="currency"
|
||||
>
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
"react": ">=18 || >=19.0.0-rc.0",
|
||||
"react-dom": ">=18 || >=19.0.0-rc.0",
|
||||
"@heroui/system": ">=2.4.18",
|
||||
"@heroui/theme": ">=2.4.17"
|
||||
"@heroui/theme": ">=2.4.19"
|
||||
},
|
||||
"dependencies": {
|
||||
"@heroui/form": "workspace:*",
|
||||
|
||||
@ -372,7 +372,7 @@ export const StartAndEndContent = {
|
||||
Currency
|
||||
</label>
|
||||
<select
|
||||
className="outline-hidden border-0 bg-transparent text-default-400 text-sm"
|
||||
className="outline-solid outline-transparent border-0 bg-transparent text-default-400 text-sm"
|
||||
id="currency"
|
||||
name="currency"
|
||||
>
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
"peerDependencies": {
|
||||
"react": ">=18 || >=19.0.0-rc.0",
|
||||
"react-dom": ">=18 || >=19.0.0-rc.0",
|
||||
"@heroui/theme": ">=2.4.17",
|
||||
"@heroui/theme": ">=2.4.19",
|
||||
"@heroui/system": ">=2.4.18"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@ -165,7 +165,7 @@ const CustomValueTemplate = (args: SliderProps) => {
|
||||
>
|
||||
<input
|
||||
aria-label="Temperature"
|
||||
className="px-1 py-0.5 w-12 text-right text-small text-default-700 font-medium bg-default-100 outline-hidden transition-colors rounded-small border-medium border-transparent hover:border-primary focus:border-primary"
|
||||
className="px-1 py-0.5 w-12 text-right text-small text-default-700 font-medium bg-default-100 outline-solid outline-transparent transition-colors rounded-small border-medium border-transparent hover:border-primary focus:border-primary"
|
||||
type="text"
|
||||
value={inputValue}
|
||||
onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
|
||||
|
||||
@ -19,7 +19,7 @@ const card = tv({
|
||||
"relative",
|
||||
"overflow-hidden",
|
||||
"h-auto",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"text-foreground",
|
||||
"box-border",
|
||||
"bg-content1",
|
||||
|
||||
@ -59,7 +59,7 @@ const accordionItem = tv({
|
||||
base: "",
|
||||
heading: "",
|
||||
trigger: [
|
||||
"flex py-4 w-full h-full gap-3 outline-hidden items-center tap-highlight-transparent",
|
||||
"flex py-4 w-full h-full gap-3 outline-solid outline-transparent items-center tap-highlight-transparent",
|
||||
// focus ring
|
||||
...dataFocusVisibleClasses,
|
||||
],
|
||||
|
||||
@ -17,7 +17,7 @@ const breadcrumbItem = tv({
|
||||
"flex gap-1 items-center",
|
||||
"cursor-pointer",
|
||||
"whitespace-nowrap",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"tap-highlight-transparent",
|
||||
// focus ring
|
||||
...dataFocusVisibleClasses,
|
||||
|
||||
@ -29,7 +29,7 @@ const button = tv({
|
||||
"justify-center",
|
||||
"box-border",
|
||||
"appearance-none",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"select-none",
|
||||
"whitespace-nowrap",
|
||||
"min-w-max",
|
||||
|
||||
@ -25,7 +25,7 @@ const card = tv({
|
||||
"relative",
|
||||
"overflow-hidden",
|
||||
"h-auto",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"text-foreground",
|
||||
"box-border",
|
||||
"bg-content1",
|
||||
|
||||
@ -38,7 +38,7 @@ const chip = tv({
|
||||
closeButton: [
|
||||
"z-10",
|
||||
"appearance-none",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"select-none",
|
||||
"transition-opacity",
|
||||
"opacity-70",
|
||||
|
||||
@ -29,7 +29,7 @@ const dateInput = tv({
|
||||
], // this wraps the input and the start/end content
|
||||
segment: [
|
||||
"group first:-ml-0.5 [&:not(:first-child)]:-ml-1 px-0.5 my-auto box-content tabular-nums text-start",
|
||||
"inline-block outline-hidden focus:shadow-xs rounded-md",
|
||||
"inline-block outline-solid outline-transparent focus:shadow-xs rounded-md",
|
||||
"text-foreground-500 data-[editable=true]:text-foreground",
|
||||
"data-[editable=true]:data-[placeholder=true]:text-foreground-500",
|
||||
// isInvalid=true
|
||||
|
||||
@ -58,7 +58,7 @@ const dropdownItem = tv({
|
||||
"h-full",
|
||||
"box-border",
|
||||
"rounded-small",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"cursor-pointer",
|
||||
"tap-highlight-transparent",
|
||||
"data-[pressed=true]:opacity-70",
|
||||
|
||||
@ -11,7 +11,7 @@ const inputOtp = tv({
|
||||
"absolute",
|
||||
"inset-0",
|
||||
"border-none",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"bg-transparent",
|
||||
"text-transparent",
|
||||
],
|
||||
|
||||
@ -42,7 +42,7 @@ const input = tv({
|
||||
"relative w-full inline-flex tap-highlight-transparent flex-row items-center shadow-xs px-3 gap-3",
|
||||
innerWrapper: "inline-flex w-full items-center h-full box-border",
|
||||
input: [
|
||||
"w-full font-normal bg-transparent !outline-hidden placeholder:text-foreground-500 focus-visible:outline-hidden",
|
||||
"w-full font-normal bg-transparent !outline-solid outline-transparent placeholder:text-foreground-500 focus-visible:outline-solid outline-transparent",
|
||||
"data-[has-start-content=true]:ps-1.5",
|
||||
"data-[has-end-content=true]:pe-1.5",
|
||||
"data-[type=color]:rounded-none",
|
||||
@ -58,7 +58,7 @@ const input = tv({
|
||||
"start-auto",
|
||||
"pointer-events-none",
|
||||
"appearance-none",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"select-none",
|
||||
"opacity-0",
|
||||
"cursor-pointer",
|
||||
|
||||
@ -11,7 +11,7 @@ import {dataFocusVisibleClasses} from "../utils";
|
||||
*/
|
||||
const link = tv({
|
||||
base: [
|
||||
"relative inline-flex items-center outline-hidden tap-highlight-transparent",
|
||||
"relative inline-flex items-center outline-solid outline-transparent tap-highlight-transparent",
|
||||
// focus ring
|
||||
...dataFocusVisibleClasses,
|
||||
],
|
||||
|
||||
@ -12,7 +12,7 @@ import {dataFocusVisibleClasses} from "../utils";
|
||||
const menu = tv({
|
||||
slots: {
|
||||
base: "w-full relative flex flex-col gap-1 p-1 overflow-clip",
|
||||
list: "w-full flex flex-col gap-0.5 outline-hidden",
|
||||
list: "w-full flex flex-col gap-0.5 outline-solid outline-transparent",
|
||||
emptyContent: [
|
||||
"h-10",
|
||||
"px-2",
|
||||
@ -63,7 +63,7 @@ const menuItem = tv({
|
||||
"box-border",
|
||||
"rounded-small",
|
||||
"subpixel-antialiased",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"cursor-pointer",
|
||||
"tap-highlight-transparent",
|
||||
// focus ring
|
||||
|
||||
@ -43,7 +43,7 @@ const modal = tv({
|
||||
"w-full",
|
||||
"box-border",
|
||||
"bg-content1",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"mx-1",
|
||||
"my-1",
|
||||
"sm:mx-6",
|
||||
@ -56,7 +56,7 @@ const modal = tv({
|
||||
closeButton: [
|
||||
"absolute",
|
||||
"appearance-none",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"select-none",
|
||||
"top-1",
|
||||
"end-1",
|
||||
|
||||
@ -77,7 +77,7 @@ const navbar = tv({
|
||||
"justify-center",
|
||||
"w-6",
|
||||
"h-full",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"rounded-small",
|
||||
"tap-highlight-transparent",
|
||||
// focus ring
|
||||
|
||||
@ -42,7 +42,7 @@ const numberInput = tv({
|
||||
"relative w-full inline-flex tap-highlight-transparent flex-row items-center shadow-sm px-3 gap-3",
|
||||
innerWrapper: "inline-flex w-full items-center h-full box-border",
|
||||
input: [
|
||||
"w-full font-normal bg-transparent !outline-hidden placeholder:text-foreground-500 focus-visible:outline-hidden",
|
||||
"w-full font-normal bg-transparent !outline-solid outline-transparent placeholder:text-foreground-500 focus-visible:outline-solid outline-transparent",
|
||||
"data-[has-start-content=true]:ps-1.5",
|
||||
"data-[has-end-content=true]:pe-1.5",
|
||||
"autofill:bg-transparent bg-clip-text",
|
||||
@ -55,7 +55,7 @@ const numberInput = tv({
|
||||
"start-auto",
|
||||
"pointer-events-none",
|
||||
"appearance-none",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"select-none",
|
||||
"opacity-0",
|
||||
"hover:!opacity-100",
|
||||
|
||||
@ -344,7 +344,7 @@ const pagination = tv({
|
||||
"flex-wrap",
|
||||
"truncate",
|
||||
"box-border",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"items-center",
|
||||
"justify-center",
|
||||
"text-default-foreground",
|
||||
|
||||
@ -81,7 +81,7 @@ const popover = tv({
|
||||
"justify-center",
|
||||
"box-border",
|
||||
"subpixel-antialiased",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"box-border",
|
||||
],
|
||||
trigger: ["z-10"],
|
||||
|
||||
@ -22,7 +22,7 @@ const select = tv({
|
||||
],
|
||||
mainWrapper: "w-full flex flex-col",
|
||||
trigger:
|
||||
"relative px-3 gap-3 w-full inline-flex flex-row items-center shadow-xs outline-hidden tap-highlight-transparent",
|
||||
"relative px-3 gap-3 w-full inline-flex flex-row items-center shadow-xs outline-solid outline-transparent tap-highlight-transparent",
|
||||
innerWrapper:
|
||||
"inline-flex h-fit w-[calc(100%_-theme(spacing.6))] min-h-4 items-center gap-1.5 box-border",
|
||||
selectorIcon: "absolute end-3 w-4 h-4",
|
||||
|
||||
@ -56,7 +56,7 @@ const table = tv({
|
||||
table: "min-w-full h-auto",
|
||||
thead: "[&>tr]:first:rounded-lg",
|
||||
tbody: "after:block",
|
||||
tr: ["group/tr", "outline-hidden", ...dataFocusVisibleClasses],
|
||||
tr: ["group/tr", "outline-solid outline-transparent", ...dataFocusVisibleClasses],
|
||||
th: [
|
||||
"group/th",
|
||||
"px-3",
|
||||
@ -70,7 +70,7 @@ const table = tv({
|
||||
"font-semibold",
|
||||
"first:rounded-s-lg",
|
||||
"last:rounded-e-lg",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"data-[sortable=true]:cursor-pointer",
|
||||
"data-[hover=true]:text-foreground-400",
|
||||
...dataFocusVisibleClasses,
|
||||
@ -83,7 +83,7 @@ const table = tv({
|
||||
"whitespace-normal",
|
||||
"text-small",
|
||||
"font-normal",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"[&>*]:z-1",
|
||||
"[&>*]:relative",
|
||||
...dataFocusVisibleClasses,
|
||||
|
||||
@ -44,7 +44,7 @@ const tabs = tv({
|
||||
"relative",
|
||||
"justify-center",
|
||||
"items-center",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"cursor-pointer",
|
||||
"transition-opacity",
|
||||
"tap-highlight-transparent",
|
||||
@ -67,7 +67,7 @@ const tabs = tv({
|
||||
panel: [
|
||||
"py-3",
|
||||
"px-1",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"data-[inert=true]:hidden",
|
||||
// focus ring
|
||||
...dataFocusVisibleClasses,
|
||||
|
||||
@ -38,7 +38,7 @@ const toast = tv({
|
||||
"relative",
|
||||
"z-50",
|
||||
"box-border",
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"p-3 sm:mx-1",
|
||||
"my-1",
|
||||
"w-full sm:w-[356px]",
|
||||
|
||||
@ -18,7 +18,7 @@ import {dataFocusVisibleClasses} from "../utils";
|
||||
const user = tv({
|
||||
slots: {
|
||||
base: [
|
||||
"inline-flex items-center justify-center gap-2 rounded-small outline-hidden",
|
||||
"inline-flex items-center justify-center gap-2 rounded-small outline-solid outline-transparent",
|
||||
// focus ring
|
||||
...dataFocusVisibleClasses,
|
||||
],
|
||||
|
||||
@ -18,7 +18,7 @@ export const focusVisibleClasses = [
|
||||
];
|
||||
|
||||
export const dataFocusVisibleClasses = [
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"data-[focus-visible=true]:z-10",
|
||||
"data-[focus-visible=true]:outline-2",
|
||||
"data-[focus-visible=true]:outline-focus",
|
||||
@ -26,7 +26,7 @@ export const dataFocusVisibleClasses = [
|
||||
];
|
||||
|
||||
export const groupDataFocusVisibleClasses = [
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"group-data-[focus-visible=true]:z-10",
|
||||
"group-data-[focus-visible=true]:ring-2",
|
||||
"group-data-[focus-visible=true]:ring-focus",
|
||||
@ -35,7 +35,7 @@ export const groupDataFocusVisibleClasses = [
|
||||
];
|
||||
|
||||
export const ringClasses = [
|
||||
"outline-hidden",
|
||||
"outline-solid outline-transparent",
|
||||
"ring-2",
|
||||
"ring-focus",
|
||||
"ring-offset-2",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user