@harvest-profit/npk
Version:
NPK UI Design System
181 lines (150 loc) • 5.14 kB
CSS
.Card {
background-color: var(--nested-card-bg, var(--card-variant-normal-bg));
border: 1px solid var(--card-border-color, var(--card-variant-normal-border-color));
--card-pad-x: 14px;
--card-pad-y: 14px;
padding: var(--card-pad-x) var(--card-pad-y);
border-radius: var(--card-radius);
& > * {
--nested-card-bg: transparent;
}
&[data-block="true"] {
width: 100%;
}
&[data-variant="muted"] {
--nested-card-bg: var(--card-variant-muted-bg);
--card-border-color: var(--card-variant-muted-border-color);
}
&[data-variant="invisible"] {
--nested-card-bg: transparent;
--card-border-color: var(--card-variant-muted-border-color);
}
& > [data-component="card-divider"],
& > * > [data-component="card-divider"] {
margin: 0 calc(var(--card-pad-x) * -1);
padding: 0 calc(var(--card-pad-x) * -1);
border-bottom: 2px solid var(--card-border-color, var(--card-variant-normal-border-color));
}
& >[data-component="card-footer"] {
font-size: var(--size-14);
opacity: 0.7;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: var(--size-8);
margin-top: var(--card-pad-y);
margin-left: calc(var(--card-pad-x) * -1);
margin-right: calc(var(--card-pad-x) * -1);
margin-bottom: calc(var(--card-pad-y) / 2 * -1);
padding-right: var(--card-pad-x);
padding-left: var(--card-pad-x);
padding-top: calc(var(--card-pad-y) / 2);
border-top: 1px solid var(--card-border-color, var(--card-variant-normal-border-color));
}
& >[data-component="card-header"] {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: var(--size-8);
margin-left: calc(var(--card-pad-x) * -1);
margin-right: calc(var(--card-pad-x) * -1);
padding-right: var(--card-pad-x);
padding-left: var(--card-pad-x);
padding-bottom: var(--card-pad-y);
&[data-variant="underlined"] {
border-bottom: 2px solid var(--card-border-color, var(--card-variant-normal-border-color));
margin-bottom: var(--card-pad-y);
}
&[data-variant="plain"] {
border-bottom: none;
margin-bottom: var(--card-pad-y);
padding-bottom: 0;
}
&[data-size="lg"] > [data-component="card-header-text"] {
font-size: 22px;
}
& >[data-component="card-header-text"] {
order: 1;
font-size: 18px;
margin: 0;
line-height: 1;
font-weight: bold;
}
& >[data-component="card-header-leadingActions"] {
order: 2;
display: flex;
flex-direction: row;
align-items: center;
gap: var(--size-8);
margin-top: calc(var(--card-pad-y) / 2 * -1);
margin-bottom: calc(var(--card-pad-y) / 2 * -1);
& > [data-invisible="true"] {
margin-right: calc(var(--size-8) * -1);
}
& > [data-invisible="true"]:first-of-type {
margin-left: calc(var(--card-pad-x) / 2 * -1);
}
}
& >[data-component="card-header-trailingActions"] {
order: 3;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-end;
gap: var(--size-8);
flex: 1;
margin-top: calc(var(--card-pad-y) / 2 * -1);
margin-bottom: calc(var(--card-pad-y) / 2 * -1);
& > [data-invisible="true"] {
margin-left: calc(var(--size-8) * -1);
}
& > [data-invisible="true"]:last-of-type {
margin-right: calc(var(--card-pad-x) / 2 * -1);
}
}
&[data-variant="inset"] {
margin-top: -22px;
&>[data-component="card-header-text"] {
font-size: 14px;
font-weight: normal;
color: var(--color-neutral-60);
background-color: var(--card-variant-normal-bg);
}
}
}
}
/*
Nested component modifications
*/
.Card {
--tab-nav-border-color: var(--card-variant-normal-border-color);
--tab-nav-parent-color: var(--nested-card-bg, var(--card-variant-normal-bg));
&:not([data-variant="invisible"],[data-variant="muted"]) {
--control-bg-color: var(--control-on-surface-bg-color);
--control-bg-color--hover: var(--control-on-surface-bg-color--hover);
--control-bg-color--active: var(--control-on-surface-bg-color--active);
--control-bg-color--disabled: var(--control-on-surface-bg-color--disabled);
}
& > [data-component="tabnav"] {
margin-top: 16px;
margin-left: calc(var(--card-pad-x) * -1);
margin-right: calc(var(--card-pad-x) * -1);
& > * {
padding-left: var(--card-pad-x);
padding-right: var(--card-pad-x);
}
}
& > [data-component="table"],
& > * > [data-component="table"] {
margin-left: calc(var(--card-pad-x) * -1);
margin-right: calc(var(--card-pad-x) * -1);
width: calc(100% + (var(--card-pad-x) * 2));
--table-cell-ends-padding-x: var(--card-pad-x);
--table-bg-color: var(--card-variant-normal-bg);
--table-border-color: var(--card-border-color, var(--card-variant-normal-border-color));
}
& > [data-component="card-header"] + [data-component="table"] {
margin-top: calc((var(--card-pad-y) * -1) - 1px);
}
}