diff --git a/apps/client/src/widgets/react/Card.css b/apps/client/src/widgets/react/Card.css index cabc4a0889..b14279d2ad 100644 --- a/apps/client/src/widgets/react/Card.css +++ b/apps/client/src/widgets/react/Card.css @@ -1,4 +1,4 @@ -:where(.tn-card) { +:where(.tn-card, .tn-card-frame) { --card-border-radius: 8px; --card-padding-block: 8px; --card-padding-inline: 16px; @@ -6,6 +6,22 @@ --card-nested-section-indent: 30px; } +.tn-card-frame, +.tn-card-section { + padding: var(--card-padding-block) var(--card-padding-inline); + border: 1px solid var(--card-border-color, var(--main-border-color)); + background: var(--card-background-color); + + &.tn-card-highlight-on-hover:hover { + background-color: var(--card-background-hover-color); + transition: background-color .2s ease-out; + } +} + +.tn-card-frame { + border-radius: var(--card-border-radius); +} + .tn-card-heading { margin-bottom: 10px; font-size: .75rem; @@ -20,10 +36,6 @@ gap: var(--card-section-gap); .tn-card-section { - padding: var(--card-padding-block) var(--card-padding-inline); - border: 1px solid var(--card-border-color, var(--main-border-color)); - background: var(--card-background-color); - &:first-of-type { border-top-left-radius: var(--card-border-radius); border-top-right-radius: var(--card-border-radius); @@ -38,10 +50,5 @@ padding-left: calc(var(--card-padding-inline) + var(--card-nested-section-indent) * var(--tn-card-section-nesting-level)); background-color: color-mix(in srgb, var(--card-background-color) calc(100% / (var(--tn-card-section-nesting-level) + 1)) , transparent); } - - &.tn-card-section-highlight-on-hover:hover { - background-color: var(--card-background-hover-color); - transition: background-color .2s ease-out; - } } } \ No newline at end of file diff --git a/apps/client/src/widgets/react/Card.tsx b/apps/client/src/widgets/react/Card.tsx index 224a151504..afc09b3438 100644 --- a/apps/client/src/widgets/react/Card.tsx +++ b/apps/client/src/widgets/react/Card.tsx @@ -4,6 +4,25 @@ import { JSX } from "preact"; import { useContext } from "preact/hooks"; import clsx from "clsx"; +// #region Card Frame + +export interface CardFrameProps { + className?: string; + highlightOnHover?: boolean; + children: ComponentChildren; +} + +export function CardFrame(props: CardFrameProps) { + return