button refactor (#372)

This commit is contained in:
Red J Adaya 2024-09-13 13:22:31 +08:00 committed by GitHub
parent b3f7e7a2b9
commit 04924870c1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 119 additions and 101 deletions

View File

@ -2,16 +2,10 @@
/* SPDX-License-Identifier: Apache-2.0 */ /* SPDX-License-Identifier: Apache-2.0 */
.button { .button {
padding: 1px; // override default button appearance
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 8px; outline: 1px solid transparent;
&:focus,
&.focus {
border: 1px solid var(--button-focus-border-color);
}
.button-inner {
background: var(--accent-color); background: var(--accent-color);
border: none; border: none;
cursor: pointer; cursor: pointer;
@ -88,114 +82,139 @@
&.disabled { &.disabled {
opacity: 0.5; opacity: 0.5;
} }
&:focus,
&.focus {
outline: 1px solid var(--button-focus-border-color);
outline-offset: 2px;
} }
/* /*
* customs styles here * customs styles here
*/ */
.border-radius-4 { &.border-radius-2 {
border-radius: 4px; border-radius: 4px;
} }
.vertical-padding-2 { &.border-radius-3 {
border-radius: 4px;
}
&.border-radius-4 {
border-radius: 4px;
}
&.border-radius-5 {
border-radius: 4px;
}
&.border-radius-6 {
border-radius: 4px;
}
&.border-radius-10 {
border-radius: 10px;
}
&.vertical-padding-2 {
padding-top: 2px; padding-top: 2px;
padding-bottom: 2px; padding-bottom: 2px;
} }
.vertical-padding-3 { &.vertical-padding-3 {
padding-top: 3px; padding-top: 3px;
padding-bottom: 3px; padding-bottom: 3px;
} }
.vertical-padding-4 { &.vertical-padding-4 {
padding-top: 4px; padding-top: 4px;
padding-bottom: 4px; padding-bottom: 4px;
} }
.vertical-padding-5 { &.vertical-padding-5 {
padding-top: 5px; padding-top: 5px;
padding-bottom: 5px; padding-bottom: 5px;
} }
.vertical-padding-6 { &.vertical-padding-6 {
padding-top: 6px; padding-top: 6px;
padding-bottom: 6px; padding-bottom: 6px;
} }
.vertical-padding-7 { &.vertical-padding-7 {
padding-top: 7px; padding-top: 7px;
padding-bottom: 7px; padding-bottom: 7px;
} }
.vertical-padding-8 { &.vertical-padding-8 {
padding-top: 8px; padding-top: 8px;
padding-bottom: 8px; padding-bottom: 8px;
} }
.vertical-padding-9 { &.vertical-padding-9 {
padding-top: 9px; padding-top: 9px;
padding-bottom: 9px; padding-bottom: 9px;
} }
.vertical-padding-10 { &.vertical-padding-10 {
padding-top: 10px; padding-top: 10px;
padding-bottom: 10px; padding-bottom: 10px;
} }
.horizontal-padding-2 { &.horizontal-padding-2 {
padding-left: 2px; padding-left: 2px;
padding-right: 2px; padding-right: 2px;
} }
.horizontal-padding-3 { &.horizontal-padding-3 {
padding-left: 3px; padding-left: 3px;
padding-right: 3px; padding-right: 3px;
} }
.horizontal-padding-4 { &.horizontal-padding-4 {
padding-left: 4px; padding-left: 4px;
padding-right: 4px; padding-right: 4px;
} }
.horizontal-padding-5 { &.horizontal-padding-5 {
padding-left: 5px; padding-left: 5px;
padding-right: 5px; padding-right: 5px;
} }
.horizontal-padding-6 { &.horizontal-padding-6 {
padding-left: 6px; padding-left: 6px;
padding-right: 6px; padding-right: 6px;
} }
.horizontal-padding-7 { &.horizontal-padding-7 {
padding-left: 7px; padding-left: 7px;
padding-right: 7px; padding-right: 7px;
} }
.horizontal-padding-8 { &.horizontal-padding-8 {
padding-left: 8px; padding-left: 8px;
padding-right: 8px; padding-right: 8px;
} }
.horizontal-padding-9 { &.horizontal-padding-9 {
padding-left: 9px; padding-left: 9px;
padding-right: 9px; padding-right: 9px;
} }
.horizontal-padding-10 { &.horizontal-padding-10 {
padding-left: 10px; padding-left: 10px;
padding-right: 10px; padding-right: 10px;
} }
.font-size-11 { &.font-size-11 {
font-size: 11px; font-size: 11px;
} }
.font-weight-500 { &.font-weight-500 {
font-weight: 500; font-weight: 500;
} }
.font-weight-600 { &.font-weight-600 {
font-weight: 500; font-weight: 600;
} }
} }

View File

@ -17,9 +17,9 @@ const Button = React.memo(({ className = "primary", children, disabled, ...props
); );
return ( return (
<div className="button">
<button <button
className={clsx("button-inner", className, { tabIndex={disabled ? -1 : 0}
className={clsx("button", className, {
disabled, disabled,
hasIcon, hasIcon,
})} })}
@ -28,7 +28,6 @@ const Button = React.memo(({ className = "primary", children, disabled, ...props
> >
{children} {children}
</button> </button>
</div>
); );
}); });