mirror of
https://github.com/zadam/trilium.git
synced 2026-02-27 17:13:38 +01:00
ui/cards: create a card frame component
This commit is contained in:
parent
dfb5322b1a
commit
ad2df957c7
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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 <div className={clsx("tn-card-frame", props.className, {
|
||||
"tn-card-highlight-on-hover": props.highlightOnHover
|
||||
})}>
|
||||
|
||||
{props.children}
|
||||
</div>;
|
||||
}
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Card
|
||||
|
||||
export interface CardProps {
|
||||
@ -45,7 +64,7 @@ export function CardSection(props: {children: ComponentChildren} & CardSectionPr
|
||||
return <>
|
||||
<section className={clsx("tn-card-section", props.className, {
|
||||
"tn-card-section-nested": nestingLevel > 0,
|
||||
"tn-card-section-highlight-on-hover": props.highlightOnHover || props.onAction
|
||||
"tn-card-highlight-on-hover": props.highlightOnHover || props.onAction
|
||||
})}
|
||||
style={{"--tn-card-section-nesting-level": (nestingLevel) ? nestingLevel : null}}
|
||||
onClick={props.onAction}>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user