@harvest-profit/npk
Version:
NPK UI Design System
159 lines (132 loc) • 5.14 kB
CSS
a.ControlButton:hover {
color: var(--btn-fg-color, var(--control-fg-color));
}
.ControlButton {
cursor: pointer;
cursor: var(--btn-cursor, pointer);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
-moz-user-select: none;
user-select: none;
/* Places the border on the inside allowing for borders to not impact button sizes */
box-sizing: border-box;
transition: 180ms cubic-bezier(0.65, 0, 0.35, 1);
transition-property: color, fill, background-color, border-color, box-shadow;
display: inline-flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
min-width: -moz-max-content;
min-width: max-content;
-webkit-user-select: none;
text-decoration-line: none;
gap: var(--control-gap);
padding: 0 var(--control-padding);
font-size: var(--control-font-size);
font-weight: var(--btn-font-weight, var(--control-button-weight));
height: var(--control-size);
border-radius: var(--control-radius);
border: 1px solid var(--btn-border-color, var(--control-border-color));
background-color: var(--btn-bg-color, var(--control-bg-color));
color: var(--btn-fg-color, var(--control-fg-color));
}
.ControlButton:hover {
background-color: var(--btn-bg-color--hover, var(--control-bg-color--hover));
}
.ControlButton[data-state="active"] {
background-color: var(--btn-bg-color--active, var(--control-bg-color--active));
}
.ControlButton[aria-expanded="true"] {
background-color: var(--btn-bg-color--active, var(--control-bg-color--active));
}
.ControlButton:disabled,.ControlButton[data-state="disabled"],.ControlButton[data-state="loading"] {
--btn-cursor: not-allowed;
background-color: var(--btn-bg-color--disabled, var(--control-bg-color--disabled));
color: var(--btn-fg-color--disabled, var(--control-fg-color--disabled));
border-color: var(--btn-border-color--disabled, var(--control-border-color--disabled));
}
.ControlButton[data-state="loading"] {
--btn-cursor: progress;
}
.ControlButton > [data-component="contents"] {
flex-grow: 1;
flex-shrink: 0;
flex-basis: auto;
display: grid;
grid-template-areas: "leadingVisual text trailingVisual";
grid-template-columns: min-content minmax(0px, auto) min-content;
align-items: center;
align-content: center;
justify-content: center;
}
[data-icon="true"]:is(.ControlButton > [data-component="contents"]) > [data-component="leadingVisual"] {
margin-right: 0;
}
:is(.ControlButton > [data-component="contents"]) > [data-component="loading"] {
align-self: center;
justify-self: center;
}
:is(.ControlButton > [data-component="contents"]) > [data-component="loading"],:is(.ControlButton > [data-component="contents"]) > [data-component="text"] {
grid-row: text;
grid-column: text;
}
:is(.ControlButton > [data-component="contents"]) > [data-component="leadingVisual"] {
grid-row: leadingVisual;
grid-column: leadingVisual;
margin-right: var(--control-gap);
}
:is(.ControlButton > [data-component="contents"]) > [data-component="trailingVisual"] {
grid-row: trailingVisual;
grid-column: trailingVisual;
margin-left: var(--control-gap);
}
:is(.ControlButton > [data-component="contents"]) > [data-component="text"] {
line-height: calc(1.428571);
white-space-collapse: collapse;
text-wrap-mode: nowrap;
}
:is(.ControlButton > [data-component="contents"]) > [data-component="loading"] + [data-component="text"] {
visibility: hidden;
}
.ControlButton [data-component="ButtonChip"] {
font-size: 85%;
display: inline-block;
padding: 0.25em 0.55em;
font-weight: 500;
line-height: 1;
border-radius: 20px;
background-color: var(--control-surface-color);
}
.ControlButton [data-component="loading"],.ControlButton [data-component="leadingVisual"],.ControlButton [data-component="trailingVisual"],.ControlButton [data-component="trailingAction"] {
color: var(--btn-visual-color, var(--control-icon-color));
line-height: 0.9;
}
:is(.ControlButton [data-component="loading"],.ControlButton [data-component="leadingVisual"],.ControlButton [data-component="trailingVisual"],.ControlButton [data-component="trailingAction"]) svg {
display: inline-block;
vertical-align: text-bottom;
overflow: visible;
}
.ControlButton [data-component="trailingAction"] {
margin-right: calc(var(--control-gap) / -2);
}
/* Sizing */
.ControlButton[data-size="sm"] {
--control-font-size: var(--control-small-font-size);
--control-size: var(--control-small-size);
--control-gap: var(--control-small-gap);
--control-padding: var(--control-small-padding);
}
.ControlButton[data-size="lg"] {
--control-size: var(--control-large-size);
}
.ControlButton[data-block="true"] {
width: 100%;
}
/* Alignment */
.ControlButton[data-alignment="start"] > [data-component="contents"] {
justify-content: flex-start;
}
.ControlButton[data-alignment="end"] > [data-component="contents"] {
justify-content: flex-end;
}