@harvest-profit/npk
Version:
NPK UI Design System
246 lines (218 loc) • 10 kB
CSS
.Card {
--card-header-sticky-z-index: 6;
--card-header-underlined-size: 2px;
--card-other-border-sizes: 1px;
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: 14px 14px;
padding: var(--card-pad-x) var(--card-pad-y);
border-radius: var(--card-radius);
}
.Card > * {
--nested-colored-card-bg: var(--card-variant-normal-bg);
--nested-card-bg: transparent;
}
.Card[data-block="true"] {
width: 100%;
}
.Card[data-variant="muted"] {
--nested-colored-card-bg: var(--card-variant-muted-bg);
--nested-card-bg: var(--card-variant-muted-bg);
--card-border-color: var(--card-variant-muted-border-color);
}
.Card[data-variant="invisible"] {
--nested-card-bg: transparent;
--card-border-color: var(--card-variant-muted-border-color);
}
.Card > [data-component="card-divider"],.Card > * > [data-component="card-divider"] {
margin: 0 calc(var(--card-pad-x) * -1);
padding: 0 calc(var(--card-pad-x) * -1);
border-bottom: var(--card-header-underlined-size) solid var(--card-border-color, var(--card-variant-normal-border-color));
}
.Card > [data-component="card-section"] {
margin-top: auto;
margin-top: var(--internal-card-section-margin-top, auto);
margin-left: calc(var(--card-pad-x) * -1);
margin-right: calc(var(--card-pad-x) * -1);
padding: var(--card-section-padding-y, calc(var(--card-pad-y) / 2)) calc(var(--card-pad-x));
border-top: var(--internal-card-section-border-size, var(--card-other-border-sizes)) solid var(--card-border-color, var(--card-variant-normal-border-color));
border-bottom: var(--internal-card-section-border-size, var(--card-other-border-sizes)) solid var(--card-border-color, var(--card-variant-normal-border-color));
color: var(--color-fg-muted);
background-color: var(--card-section-variant-muted-bg);
font-size: var(--size-14);
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: var(--size-8);
}
:is(.Card > [data-component="card-section"]):has( + [data-component="card-footer"]) {
margin-bottom: calc((var(--card-pad-y) + var(--card-other-border-sizes)) * -1);
border-top-width: var(--card-other-border-sizes);
border-bottom-width: var(--card-other-border-sizes);
}
.Card > [data-component="card-footer"] {
font-size: var(--size-14);
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: var(--card-other-border-sizes) solid var(--card-border-color, var(--card-variant-normal-border-color));
}
.Card > [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"]:is(.Card > [data-component="card-header"]) {
border-bottom: var(--card-header-underlined-size) solid var(--card-border-color, var(--card-variant-normal-border-color));
margin-bottom: var(--card-pad-y);
}
[data-variant="underlined"][data-sticky="true"]:is(.Card > [data-component="card-header"]) {
position: sticky;
top: calc(0px + var(--card-pad-y));
top: calc(var(--sticky-top, 0px) + var(--card-pad-y));
z-index: 6;
z-index: var(--card-header-sticky-z-index, 6);
}
[data-variant="underlined"][data-sticky="true"]:is(.Card > [data-component="card-header"])::before {
content: '';
position: absolute;
background-color: var(--nested-colored-card-bg, var(--card-variant-normal-bg));
top: calc(var(--card-pad-y) * -1);
left: 0;
right: 0;
height: calc(100% + var(--card-pad-y));
z-index: -1;
border-top-right-radius: var(--card-radius);
border-top-left-radius: var(--card-radius);
}
[data-variant="underlined"]:is(.Card > [data-component="card-header"]) + [data-component="card-section"] {
--internal-card-section-margin-top: calc((var(--card-pad-y, 0) + var(--card-header-underlined-size)) * -1);
--internal-card-section-border-size: var(--card-header-underlined-size);
}
[data-variant="plain"]:is(.Card > [data-component="card-header"]) {
border-bottom: none;
margin-bottom: var(--card-pad-y);
padding-bottom: 0;
}
[data-size="lg"]:is(.Card > [data-component="card-header"]) > [data-component="card-header-text"] {
font-size: 22px;
}
:is(.Card > [data-component="card-header"]) > [data-component="card-header-text"] {
order: 1;
font-size: 18px;
margin: 0;
line-height: 1;
font-weight: bold;
}
:is(.Card > [data-component="card-header"]) > [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);
}
:is(:is(.Card > [data-component="card-header"]) > [data-component="card-header-leadingActions"]) > [data-invisible="true"] {
margin-right: calc(var(--size-8) * -1);
}
:is(:is(.Card > [data-component="card-header"]) > [data-component="card-header-leadingActions"]) > [data-invisible="true"]:first-of-type {
margin-left: calc(var(--card-pad-x) / 2 * -1);
}
:is(.Card > [data-component="card-header"]) > [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);
}
:is(:is(.Card > [data-component="card-header"]) > [data-component="card-header-trailingActions"]) > [data-invisible="true"] {
margin-left: calc(var(--size-8) * -1);
}
:is(:is(.Card > [data-component="card-header"]) > [data-component="card-header-trailingActions"]) > [data-invisible="true"]:last-of-type {
margin-right: calc(var(--card-pad-x) / 2 * -1);
}
[data-variant="inset"]:is(.Card > [data-component="card-header"]) {
margin-top: -22px;
}
[data-variant="inset"]:is(.Card > [data-component="card-header"]) > [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));
}
.Card: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);
}
.Card > [data-component="tabnav"] {
margin-top: 16px;
margin-left: calc(var(--card-pad-x) * -1);
margin-right: calc(var(--card-pad-x) * -1);
}
:is(.Card > [data-component="tabnav"]) > * {
padding-left: var(--card-pad-x);
padding-right: var(--card-pad-x);
}
.Card > [data-component="card-header"][data-variant="underlined"][data-sticky="true"] ~ [data-component="table"],.Card > [data-component="card-header"][data-variant="underlined"][data-sticky="true"] ~ * > [data-component="table"] {
--sticky-top: calc((var(--card-pad-y) * 2) + var(--card-header-underlined-size) + 18px);
}
.Card > [data-component="table"],.Card > * > [data-component="table"] {
--table-header-padding: 0px var(--card-pad-x) calc(var(--card-pad-y) - 4px) var(--card-pad-x);
--table-footer-padding: calc(var(--card-pad-y) - 4px) var(--card-pad-x) 0px var(--card-pad-x);
margin-bottom: calc((var(--card-pad-y) - var(--card-radius)) * -1);
margin-top: calc((var(--card-pad-y) - var(--card-radius)) * -1);
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);
}
.Card > [data-component="card-header"] + [data-component="table"] {
margin-top: calc((var(--card-pad-y) * -1) - 1px);
--table-header-padding: 0.3rem;
}
.Card[data-variant="invisible"] > [data-component="table"],.Card[data-variant="invisible"] > * > [data-component="table"] {
--table-bg-color: var(--body-bg-color);
--table-footer-bg-color: var(--body-bg-color);
}
.Card[data-variant="muted"] > [data-component="table"],.Card[data-variant="muted"] > * > [data-component="table"] {
--table-bg-color: var(--card-variant-muted-bg);
--table-footer-bg-color: var(--card-variant-muted-bg);
--table-border-color: var(--card-border-color);
}
.Card:not([data-variant="invisible"],[data-variant="muted"]) > [data-component="table"],.Card:not([data-variant="invisible"],[data-variant="muted"]) > * > [data-component="table"] {
--table-bg-color: var(--card-variant-normal-bg);
--table-footer-bg-color: var(--card-variant-normal-bg);
--table-border-color: var(--card-border-color, var(--card-variant-normal-border-color));
}