feat: init

This commit is contained in:
hh committed 2026-08-08 16:30:22 +02:00
commit 8a609da778
59 files changed
+10053

No files matched your search

+268
View File
@@ -0,0 +1,268 @@
@layer theme, base, components, utilities;
@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/utilities.css" layer(utilities) important;
@source "./";
@custom-variant dark (&:where(.theme-dark, .theme-dark *));
.bcal-root {
--background: var(--background-primary);
--foreground: var(--text-normal);
--card: var(--background-primary-alt);
--card-foreground: var(--text-normal);
--popover: var(--background-secondary);
--popover-foreground: var(--text-normal);
--primary: var(--color-accent);
--primary-foreground: var(--text-on-accent);
--secondary: var(--background-modifier-hover);
--secondary-foreground: var(--text-normal);
--muted: var(--background-modifier-hover);
--muted-foreground: var(--text-muted);
--accent: var(--background-modifier-hover);
--accent-foreground: var(--text-normal);
--destructive: var(--text-error);
--destructive-foreground: var(--text-on-accent);
--border: var(--background-modifier-border);
--input: var(--background-modifier-border);
--ring: var(--color-accent);
--icon: var(--text-muted);
--signal: var(--color-accent);
--note: oklch(0.52 0.13 78);
--status-new: var(--color-accent);
--status-done: oklch(0.55 0.14 155);
--status-skip: var(--text-faint);
--status-reply: oklch(0.55 0.14 235);
--status-snooze: oklch(0.66 0.13 75);
--status-meeting: oklch(0.5 0.2 300);
--status-work: oklch(0.55 0.13 195);
--sidebar: var(--background-secondary);
--radius: 0.45rem;
}
.theme-dark .bcal-root {
--note: oklch(0.84 0.14 88);
--status-done: oklch(0.74 0.14 155);
--status-reply: oklch(0.72 0.13 235);
--status-snooze: oklch(0.8 0.13 75);
--status-meeting: oklch(0.72 0.16 300);
--status-work: oklch(0.75 0.12 195);
}
@theme inline {
--font-sans: var(--font-interface);
--text-xs: 0.75rem;
--text-sm: 0.8125rem;
--text-base: 0.875rem;
--text-lg: 1rem;
--text-xl: 1.25rem;
--text-2xl: 1.5rem;
--color-icon: var(--icon);
--color-signal: var(--signal);
--color-note: var(--note);
--color-sidebar: var(--sidebar);
--color-status-new: var(--status-new);
--color-status-done: var(--status-done);
--color-status-skip: var(--status-skip);
--color-status-reply: var(--status-reply);
--color-status-snooze: var(--status-snooze);
--color-status-meeting: var(--status-meeting);
--color-status-work: var(--status-work);
--color-ring: var(--ring);
--color-input: var(--input);
--color-border: var(--border);
--color-destructive-foreground: var(--destructive-foreground);
--color-destructive: var(--destructive);
--color-accent-foreground: var(--accent-foreground);
--color-accent: var(--accent);
--color-muted-foreground: var(--muted-foreground);
--color-muted: var(--muted);
--color-secondary-foreground: var(--secondary-foreground);
--color-secondary: var(--secondary);
--color-primary-foreground: var(--primary-foreground);
--color-primary: var(--primary);
--color-popover-foreground: var(--popover-foreground);
--color-popover: var(--popover);
--color-card-foreground: var(--card-foreground);
--color-card: var(--card);
--color-foreground: var(--foreground);
--color-background: var(--background);
--radius-sm: calc(var(--radius) * 0.6);
--radius-md: calc(var(--radius) * 0.8);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) * 1.4);
--radius-2xl: calc(var(--radius) * 1.8);
}
.bcal-root {
height: 100%;
font-family: var(--font-interface);
font-size: var(--text-sm);
color: var(--foreground);
background: var(--background);
}
.bcal-app {
container-type: inline-size;
display: flex;
height: 100%;
min-height: 0;
overflow: hidden;
}
.bcal-root.bcal-root *,
.bcal-root.bcal-root *::before,
.bcal-root.bcal-root *::after {
box-sizing: border-box;
border: 0 solid var(--border);
}
.bcal-root.bcal-root :is(h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd) {
margin: 0;
font-size: inherit;
font-weight: inherit;
line-height: inherit;
}
.bcal-root.bcal-root :is(ul, ol) {
margin: 0;
padding: 0;
list-style: none;
}
.bcal-root.bcal-root :is(button, input, select, textarea) {
height: auto;
min-height: 0;
margin: 0;
padding: 0;
font: inherit;
color: inherit;
letter-spacing: inherit;
background: transparent;
border: 0 solid var(--border);
border-radius: 0;
box-shadow: none;
outline: none;
-webkit-appearance: none;
appearance: none;
}
.bcal-root.bcal-root :is(button, input, select, textarea):hover,
.bcal-root.bcal-root :is(button, input, select, textarea):focus,
.bcal-root.bcal-root :is(button, input, select, textarea):active {
box-shadow: none;
}
.bcal-root.bcal-root button {
cursor: pointer;
text-align: inherit;
}
.bcal-root.bcal-root button:hover {
background: transparent;
}
.bcal-root.bcal-root button:disabled {
cursor: default;
}
.bcal-root.bcal-root input::placeholder,
.bcal-root.bcal-root textarea::placeholder {
color: var(--muted-foreground);
}
.bcal-root.bcal-root input[type="search"]::-webkit-search-cancel-button,
.bcal-root.bcal-root input[type="search"]::-webkit-search-decoration {
display: none;
-webkit-appearance: none;
}
.bcal-root.bcal-root svg {
display: block;
flex-shrink: 0;
}
.bcal-root.bcal-root a,
.bcal-root.bcal-root a:hover {
color: inherit;
text-decoration: inherit;
}
.bcal-root.bcal-root img {
display: block;
max-width: 100%;
height: auto;
}
.bcal-root.bcal-root .bcal-md > * {
display: inline;
}
.bcal-root.bcal-root .bcal-md a {
color: var(--link-color, var(--color-accent));
text-decoration: none;
}
.bcal-root.bcal-root .bcal-md a:hover {
text-decoration: underline;
}
.bcal-root.bcal-root .bcal-md a.is-unresolved {
color: var(--link-unresolved-color, var(--muted-foreground));
opacity: 0.75;
}
.bcal-root.bcal-root .bcal-md code {
padding: 0 0.25em;
font-size: 0.9em;
background: var(--secondary);
border-radius: var(--radius-sm);
}
.bcal-root.bcal-root .bcal-md :is(img, .internal-embed) {
display: inline-block;
max-height: 1.4em;
vertical-align: text-bottom;
}
.bcal-root.bcal-root .bcal-dragging {
position: relative;
z-index: 40;
cursor: grabbing;
box-shadow: 0 12px 28px -8px rgb(0 0 0 / 45%);
transition: none;
}
@utility touch-shown {
@media (hover: none) {
opacity: 1;
}
}
@utility tabular {
font-variant-numeric: tabular-nums;
}
@utility hue-chip {
color: oklch(0.45 0.13 var(--hue));
background: oklch(0.6 0.09 var(--hue) / 0.12);
border-color: oklch(0.6 0.09 var(--hue) / 0.4);
.theme-dark & {
color: oklch(0.82 0.08 var(--hue));
}
}
@utility scrollbar-none {
-ms-overflow-style: none;
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
}