Files
CWC/styles/blocks/buttons.css
T
Keith Solomon 33085ff08c
Sync TODOs with Issues / sync_todos (push) Successful in 6s
🐞 fix: Update button styles and add home contact positioning
2026-06-14 11:34:55 -05:00

179 lines
6.1 KiB
CSS

/* Button styles */
@theme static {
/* Configuration */
/**
* Button component settings
*
* The variables below are used to define the button styles.
* Most of these variables come from the main theme configuration.
* The following variables are not defined, but have fallback values
* in their respective locations and can be added if needed:
*
* --button-font-weight (fallback is 600/semibold)
* --button-font-size (fallback is 1rem)
* --button-outline-width (fallback is --button-border-width)
* --button-outline-style (fallback is --button-border-style)
* --button-outline-color (fallback is --button-border-color)
*/
--button-bg: var(--background-image-button-gradient);
--button-color: var(--color-white);
--button-hover-bg: var(--color-info);
--button-hover-border-color: var(--button-bg);
--button-hover-color: var(--color-white);
--button-border-width: 2px;
--button-border-style: solid;
--button-border-color: var(--color-secondary);
--button-radius: 1.25rem 0.25rem;
}
.btn, .button, .acf-block-preview .button {
@apply px-8 py-2 min-w-0;
background: var(--button-bg);
color: var(--button-color);
cursor: pointer;
display: inline-block;
transition: background 200ms, border-color 200ms, color 200ms;
border-width: var(--button-border-width);
border-style: var(--button-border-style);
border-color: var(--button-border-color);
border-radius: var(--button-radius);
padding: .5rem 2rem;
text-decoration: none;
font-weight: var(--button-font-weight, 600);
font-size: var(--button-font-size, 1rem);
line-height: 1.1;
&[data-button-variant="outline"] {
background: transparent;
&:hover {
background: var(--button-border-color);
}
--button-color: var(--button-border-color);
--button-hover-border-color: var(--button-border-color);
--button-hover-color: var(--color-white);
}
}
/* Hover/focus/active */
.btn:hover, .button:hover, .acf-block-preview .button:hover {
background: var(--button-hover-bg);
border-color: var(--button-hover-border-color);
color: var(--button-hover-color);
}
.btn:focus, .button:focus {
outline-width: var(--button-outline-width, var(--button-border-width));
outline-style: var(--button-outline-style, var(--button-border-style));
outline-color: var(--button-outline-color, var(--button-border-color));
outline-offset: calc(var(--button-border-width) * 2);
}
.btn:active, .button:active { transform: scale(99%); }
/**
* Variants
*
* The following styles are used to define button variants.
* These styles are applied to the button element using the
* `data-button-*` attributes.
*/
/* Sizes */
.btn[data-button-size="small"], .button[data-button-size="small"] { @apply px-4 py-0.5; }
.btn[data-button-size="medium"], .button[data-button-size="medium"] { @apply px-8 py-2; }
.btn[data-button-size="large"], .button[data-button-size="large"] { @apply px-12 py-3; }
/* Width */
.btn[data-button-width="auto"], .button[data-button-width="auto"] { @apply min-w-0; }
.btn[data-button-width="small"], .button[data-button-width="small"] { @apply px-2; }
.btn[data-button-width="wide"], .button[data-button-width="wide"] { @apply sm:min-w-[20rem]; }
.button[data-button-width="full"],
x-button:has(.button[data-button-width="full"]) { @apply w-full; }
/**
* Colors
*
* We don't need to specifically target "primary" buttons
* as the button styling defaults to "primary".
* However, you can, if necessary, by adding a style block
* like the ones below and changing the color values.
*/
.btn[data-button-color="secondary"], .button[data-button-color="secondary"] {
--button-bg: var(--color-secondary);
--button-color: var(--color-white);
--button-border-color: var(--color-secondary);
--button-outline-color: oklch(0.48 0.0136 252.2);
--button-hover-bg: var(--color-dark);
--button-hover-border-color: var(--color-dark);
--button-hover-color: var(--color-white);
}
.btn[data-button-color="light"], .button[data-button-color="light"] {
--button-bg: var(--color-white);
--button-color: var(--color-dark);
--button-border-color: var(--color-white);
--button-hover-bg: var(--color-dark);
--button-hover-border-color: var(--color-dark);
--button-hover-color: var(--color-white);
}
.btn[data-button-color="white"], .button[data-button-color="white"] {
--button-bg: var(--color-white);
--button-color: var(--color-black);
--button-border-color: var(--color-white);
--button-hover-bg: var(--color-secondary-200);
--button-hover-border-color: var(--color-secondary-200);
--button-hover-color: var(--color-black);
}
.btn[data-button-color="black"], .button[data-button-color="black"] {
--button-bg: var(--color-black);
--button-color: var(--color-white);
--button-border-color: var(--color-black);
--button-hover-bg: var(--color-secondary);
--button-hover-border-color: var(--color-secondary);
--button-hover-color: var(--color-dark);
}
/* Back To Top Button */
#backToTopBtn {
align-items: center;
background: var(--color-secondary);
border: 1px solid transparent;
border-radius: 100%;
color: var(--color-white);
cursor: pointer;
display: flex;
font-size: 1rem;
height: 1rem;
justify-content: center;
line-height: 1;
outline: 1px solid transparent;
padding: 1rem;
transition: opacity 0.2s, background 0.2s;
width: 1rem;
i {
font-weight: bold;
display: inline-block;
margin: -4px 0 0 0;
}
&:hover, &:focus {
background: var(--color-secondary-800);
border: 1px solid var(--color-secondary);
color: var(--color-white);
opacity: 1;
outline: 1px solid var(--color-secondary);
}
}