2026-06-24 20:56:53 +00:00
|
|
|
@layer components {
|
|
|
|
|
.card {
|
|
|
|
|
@apply text-content bg-surface border-line rounded-3xl border-solid p-6;
|
|
|
|
|
border-width: var(--border-thick);
|
|
|
|
|
background-clip: padding-box;
|
|
|
|
|
box-shadow: var(--shadow-lg);
|
|
|
|
|
transition:
|
|
|
|
|
transform 0.2s ease,
|
|
|
|
|
box-shadow 0.2s ease,
|
|
|
|
|
border-color 0.2s ease;
|
|
|
|
|
|
|
|
|
|
&.card-sm {
|
2026-07-15 16:30:17 +00:00
|
|
|
@apply p-4;
|
2026-06-24 20:56:53 +00:00
|
|
|
box-shadow: var(--shadow);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.card-interactive {
|
|
|
|
|
@apply cursor-pointer;
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
@apply border-primary;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.card-flat {
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
}
|
2026-07-15 16:30:17 +00:00
|
|
|
|
|
|
|
|
&.card-primary {
|
|
|
|
|
--accent: var(--primary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.card-secondary {
|
|
|
|
|
--accent: var(--secondary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.card-primary,
|
|
|
|
|
&.card-secondary {
|
|
|
|
|
background-color: color-mix(in srgb, var(--accent) 10%, var(--surface));
|
|
|
|
|
border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
|
|
|
|
|
}
|
2026-06-24 20:56:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* nested cards & cards in dialogs lose their shadow */
|
|
|
|
|
.card .card,
|
|
|
|
|
.dialog .card {
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[data-fl-theme="clay"] .card {
|
|
|
|
|
box-shadow: var(--shadow-lg), var(--shadow-inset);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[data-fl-theme="clay"] .card-sm {
|
|
|
|
|
box-shadow: var(--shadow), var(--shadow-inset);
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-15 16:30:17 +00:00
|
|
|
[data-fl-theme="clay"] .card-primary,
|
|
|
|
|
[data-fl-theme="clay"] .card-secondary {
|
|
|
|
|
box-shadow:
|
|
|
|
|
8px 8px 0 color-mix(in srgb, var(--accent) 28%, transparent),
|
|
|
|
|
var(--shadow-inset);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[data-fl-theme="clay"] .card-sm.card-primary,
|
|
|
|
|
[data-fl-theme="clay"] .card-sm.card-secondary {
|
|
|
|
|
box-shadow:
|
|
|
|
|
6px 6px 0 color-mix(in srgb, var(--accent) 28%, transparent),
|
|
|
|
|
var(--shadow-inset);
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-24 20:56:53 +00:00
|
|
|
/* cards nested in another card (or a dialog) drop the raised clay treatment and
|
2026-07-15 16:30:17 +00:00
|
|
|
read flat — no offset shadow / inset, hairline border. */
|
2026-06-24 20:56:53 +00:00
|
|
|
[data-fl-theme="clay"] .card .card,
|
|
|
|
|
[data-fl-theme="clay"] .dialog .card {
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
border-width: 1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[data-fl-theme="clay"] .card-interactive:hover {
|
|
|
|
|
box-shadow:
|
|
|
|
|
10px 10px 0 rgba(var(--shadow-color), 0.18),
|
|
|
|
|
var(--shadow-inset);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[data-fl-theme="clay"] .card-interactive:active {
|
|
|
|
|
transform: translateY(2px);
|
|
|
|
|
box-shadow: 2px 2px 0 rgba(var(--shadow-color), 0.3);
|
|
|
|
|
}
|