mirror of
https://github.com/documenso/documenso.git
synced 2026-07-11 05:25:08 +10:00
461 lines
12 KiB
CSS
461 lines
12 KiB
CSS
/* biome-ignore-all lint/suspicious/noDuplicateProperties: twv3-space-* lists both --value(number) and --value([length]) forms; v4 keeps only one per class. */
|
|
|
|
/* Shared theme. Apps declare their own `@source` file globs in their CSS entry. */
|
|
@import "tailwindcss";
|
|
|
|
@plugin "tailwindcss-animate";
|
|
@plugin "@tailwindcss/typography";
|
|
|
|
@custom-variant dark (&:is(.dark:not(.dark-mode-disabled) *));
|
|
|
|
/* `print:` as a screen would break the `container` utility under v4. */
|
|
@custom-variant print (@media print);
|
|
|
|
/* Recipient color safelist (built dynamically at runtime). */
|
|
@source inline("{ring,bg,border,text}-recipient-{green,blue,purple,orange,yellow,pink}");
|
|
@source inline("hover:bg-recipient-{green,blue,purple,orange,yellow,pink}/{15,30}");
|
|
@source inline("active:bg-recipient-{green,blue,purple,orange,yellow,pink}/15");
|
|
@source inline("hover:border-recipient-{green,blue,purple,orange,yellow,pink}");
|
|
@source inline("group-hover:text-recipient-{green,blue,purple,orange,yellow,pink}");
|
|
@source inline("group-hover/field-item:bg-recipient-{green,blue,purple,orange,yellow,pink}");
|
|
|
|
@theme {
|
|
/* Restore v3 `ring` defaults (v4 uses 1px / currentColor). */
|
|
--default-ring-width: 3px;
|
|
--default-ring-color: hsl(var(--ring));
|
|
|
|
/* Families are injected at runtime via `--font-family-*` (see the app entry). */
|
|
--font-sans:
|
|
var(--font-family-sans), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
|
|
"Segoe UI Symbol", "Noto Color Emoji";
|
|
--font-signature: var(--font-family-signature);
|
|
--font-noto: var(--font-family-noto);
|
|
|
|
--breakpoint-3xl: 1920px;
|
|
--breakpoint-4xl: 2560px;
|
|
--breakpoint-5xl: 3840px;
|
|
|
|
--aspect-signature-pad: 16 / 7;
|
|
|
|
--radius: 0.5rem;
|
|
--radius-sm: calc(var(--radius) - 4px);
|
|
--radius-md: calc(var(--radius) - 2px);
|
|
--radius-lg: var(--radius);
|
|
--radius-xl: calc(var(--radius) + 2px);
|
|
--radius-2xl: calc(var(--radius) + 4px);
|
|
|
|
/* Themed colors (driven by the runtime HSL vars below). */
|
|
--color-border: hsl(var(--border));
|
|
--color-field-border: hsl(var(--field-border));
|
|
--color-input: hsl(var(--input));
|
|
--color-ring: hsl(var(--ring));
|
|
--color-background: hsl(var(--background));
|
|
--color-foreground: hsl(var(--foreground));
|
|
|
|
--color-primary: hsl(var(--primary));
|
|
--color-primary-foreground: hsl(var(--primary-foreground));
|
|
|
|
--color-envelope-editor-background: hsl(var(--envelope-editor-background));
|
|
|
|
--color-secondary: hsl(var(--secondary));
|
|
--color-secondary-foreground: hsl(var(--secondary-foreground));
|
|
|
|
--color-warning: hsl(var(--warning));
|
|
|
|
--color-destructive: hsl(var(--destructive));
|
|
--color-destructive-foreground: hsl(var(--destructive-foreground));
|
|
|
|
--color-muted: hsl(var(--muted));
|
|
--color-muted-foreground: hsl(var(--muted-foreground));
|
|
|
|
--color-accent: hsl(var(--accent));
|
|
--color-accent-foreground: hsl(var(--accent-foreground));
|
|
|
|
--color-popover: hsl(var(--popover));
|
|
--color-popover-foreground: hsl(var(--popover-foreground));
|
|
|
|
--color-card: hsl(var(--card));
|
|
--color-card-foreground: hsl(var(--card-foreground));
|
|
|
|
--color-field-card: hsl(var(--field-card));
|
|
--color-field-card-border: hsl(var(--field-card-border));
|
|
--color-field-card-foreground: hsl(var(--field-card-foreground));
|
|
|
|
--color-widget: hsl(var(--widget));
|
|
--color-widget-foreground: hsl(var(--widget-foreground));
|
|
|
|
/* Static brand palettes */
|
|
--color-documenso: #a2e771;
|
|
--color-documenso-50: #ffffff;
|
|
--color-documenso-100: #fdfffd;
|
|
--color-documenso-200: #e7f9da;
|
|
--color-documenso-300: #d0f3b7;
|
|
--color-documenso-400: #b9ed94;
|
|
--color-documenso-500: #a2e771;
|
|
--color-documenso-600: #83df41;
|
|
--color-documenso-700: #66c622;
|
|
--color-documenso-800: #4d9619;
|
|
--color-documenso-900: #356611;
|
|
--color-documenso-950: #284e0d;
|
|
|
|
--color-dawn: #aaa89f;
|
|
--color-dawn-50: #f8f8f8;
|
|
--color-dawn-100: #f1f1ef;
|
|
--color-dawn-200: #e6e5e2;
|
|
--color-dawn-300: #d4d3cd;
|
|
--color-dawn-400: #b9b7b0;
|
|
--color-dawn-500: #aaa89f;
|
|
--color-dawn-600: #88857a;
|
|
--color-dawn-700: #706e65;
|
|
--color-dawn-800: #5f5d55;
|
|
--color-dawn-900: #52514a;
|
|
--color-dawn-950: #2a2925;
|
|
|
|
--color-water: #d7e4f3;
|
|
--color-water-50: #f3f6fb;
|
|
--color-water-100: #e3ebf6;
|
|
--color-water-200: #d7e4f3;
|
|
--color-water-300: #abc7e5;
|
|
--color-water-400: #82abd8;
|
|
--color-water-500: #658ecc;
|
|
--color-water-600: #5175bf;
|
|
--color-water-700: #4764ae;
|
|
--color-water-800: #3e538f;
|
|
--color-water-900: #364772;
|
|
--color-water-950: #252d46;
|
|
|
|
--color-recipient-green: hsl(var(--recipient-green));
|
|
--color-recipient-blue: hsl(var(--recipient-blue));
|
|
--color-recipient-purple: hsl(var(--recipient-purple));
|
|
--color-recipient-orange: hsl(var(--recipient-orange));
|
|
--color-recipient-yellow: hsl(var(--recipient-yellow));
|
|
--color-recipient-pink: hsl(var(--recipient-pink));
|
|
|
|
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
--animate-caret-blink: caret-blink 1.25s ease-out infinite;
|
|
}
|
|
|
|
@utility z-9999 {
|
|
z-index: 9999;
|
|
}
|
|
|
|
/* Bare `rounded` differs from `--radius`, so it can't be a theme token. */
|
|
@utility rounded {
|
|
border-radius: calc(var(--radius) - 3px);
|
|
}
|
|
|
|
@keyframes accordion-down {
|
|
from {
|
|
height: 0;
|
|
}
|
|
to {
|
|
height: var(--radix-accordion-content-height);
|
|
}
|
|
}
|
|
|
|
@keyframes accordion-up {
|
|
from {
|
|
height: var(--radix-accordion-content-height);
|
|
}
|
|
to {
|
|
height: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes caret-blink {
|
|
0%,
|
|
70%,
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
20%,
|
|
50% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
/* v3-compatible `space-*`; v4's built-in uses a `:where()` selector that collapses gaps. */
|
|
@utility twv3-space-y-* {
|
|
& > :not([hidden]) ~ :not([hidden]) {
|
|
--tw-space-y-reverse: 0;
|
|
margin-top: calc(--spacing(--value(number)) * calc(1 - var(--tw-space-y-reverse)));
|
|
margin-top: calc(--value([length]) * calc(1 - var(--tw-space-y-reverse)));
|
|
margin-bottom: calc(--spacing(--value(number)) * var(--tw-space-y-reverse));
|
|
margin-bottom: calc(--value([length]) * var(--tw-space-y-reverse));
|
|
}
|
|
}
|
|
|
|
@utility twv3-space-x-* {
|
|
& > :not([hidden]) ~ :not([hidden]) {
|
|
--tw-space-x-reverse: 0;
|
|
margin-left: calc(--spacing(--value(number)) * calc(1 - var(--tw-space-x-reverse)));
|
|
margin-left: calc(--value([length]) * calc(1 - var(--tw-space-x-reverse)));
|
|
margin-right: calc(--spacing(--value(number)) * var(--tw-space-x-reverse));
|
|
margin-right: calc(--value([length]) * var(--tw-space-x-reverse));
|
|
}
|
|
}
|
|
|
|
@utility twv3-space-y-reverse {
|
|
& > :not([hidden]) ~ :not([hidden]) {
|
|
--tw-space-y-reverse: 1;
|
|
}
|
|
}
|
|
|
|
@utility twv3-space-x-reverse {
|
|
& > :not([hidden]) ~ :not([hidden]) {
|
|
--tw-space-x-reverse: 1;
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
:root,
|
|
.dark-mode-disabled {
|
|
--background: 0 0% 100%;
|
|
--foreground: 222.2 47.4% 11.2%;
|
|
|
|
--muted: 210 40% 96.1%;
|
|
--muted-foreground: 215.4 16.3% 46.9%;
|
|
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 222.2 47.4% 11.2%;
|
|
|
|
--card: 0 0% 100%;
|
|
--card-border: 214.3 31.8% 91.4%;
|
|
--card-border-tint: 112 205 159;
|
|
--card-foreground: 222.2 47.4% 11.2%;
|
|
|
|
--field-card: 95 74% 90%;
|
|
--field-card-border: 95.08 71.08% 67.45%;
|
|
--field-card-foreground: 222.2 47.4% 11.2%;
|
|
|
|
--widget: 0 0% 97%;
|
|
--widget-foreground: 0 0% 95%;
|
|
|
|
--border: 214.3 31.8% 91.4%;
|
|
--input: 214.3 31.8% 91.4%;
|
|
|
|
--primary: 95.08 71.08% 67.45%;
|
|
--primary-foreground: 95.08 71.08% 10%;
|
|
|
|
--secondary: 210 40% 96.1%;
|
|
--secondary-foreground: 222.2 47.4% 11.2%;
|
|
|
|
--accent: 210 40% 96.1%;
|
|
--accent-foreground: 222.2 47.4% 11.2%;
|
|
|
|
--destructive: 0 100% 50%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
|
|
--ring: 95.08 71.08% 67.45%;
|
|
|
|
--radius: 0.5rem;
|
|
|
|
--warning: 54 96% 45%;
|
|
|
|
--gold: 47.9 95.8% 53.1%;
|
|
|
|
--recipient-green: 100 48% 55%;
|
|
--recipient-blue: 212 56% 50%;
|
|
--recipient-purple: 266 100% 64%;
|
|
--recipient-orange: 36 92% 54%;
|
|
--recipient-yellow: 51 100% 43%;
|
|
--recipient-pink: 313 65% 57%;
|
|
|
|
/* Base - Neutral */
|
|
--new-neutral-50: 0, 0%, 96%;
|
|
--new-neutral-100: 0, 0%, 91%;
|
|
--new-neutral-200: 0, 0%, 82%;
|
|
--new-neutral-300: 0, 0%, 69%;
|
|
--new-neutral-400: 0, 0%, 53%;
|
|
--new-neutral-500: 0, 0%, 43%;
|
|
--new-neutral-600: 0, 0%, 36%;
|
|
--new-neutral-700: 0, 0%, 31%;
|
|
--new-neutral-800: 0, 0%, 27%;
|
|
--new-neutral-900: 0, 0%, 24%;
|
|
--new-neutral-950: 0, 0%, 9%;
|
|
|
|
/* Base - White */
|
|
--new-white-50: 0, 0%, 5%;
|
|
--new-white-60: 0, 0%, 6%;
|
|
--new-white-100: 0, 0%, 10%;
|
|
--new-white-200: 0, 0%, 20%;
|
|
--new-white-300: 0, 0%, 30%;
|
|
--new-white-400: 0, 0%, 40%;
|
|
--new-white-500: 0, 0%, 50%;
|
|
--new-white-600: 0, 0%, 60%;
|
|
--new-white-700: 0, 0%, 80%;
|
|
--new-white-800: 0, 0%, 90%;
|
|
--new-white-900: 0, 0%, 100%;
|
|
|
|
/* Primary - Green */
|
|
--new-primary-50: 98, 73%, 97%;
|
|
--new-primary-100: 95, 73%, 94%;
|
|
--new-primary-200: 94, 70%, 87%;
|
|
--new-primary-300: 95, 71%, 81%;
|
|
--new-primary-400: 95, 71%, 74%;
|
|
--new-primary-500: 95, 71%, 67%;
|
|
--new-primary-600: 95, 71%, 54%;
|
|
--new-primary-700: 95, 71%, 41%;
|
|
--new-primary-800: 95, 71%, 27%;
|
|
--new-primary-900: 95, 72%, 14%;
|
|
--new-primary-950: 95, 72%, 7%;
|
|
|
|
/* Secondary - Info */
|
|
--new-info-50: 210, 54%, 95%;
|
|
--new-info-100: 211, 57%, 90%;
|
|
--new-info-200: 212, 55%, 80%;
|
|
--new-info-300: 212, 56%, 70%;
|
|
--new-info-400: 212, 56%, 60%;
|
|
--new-info-500: 212, 56%, 50%;
|
|
--new-info-600: 212, 56%, 40%;
|
|
--new-info-700: 212, 56%, 30%;
|
|
--new-info-800: 212, 55%, 20%;
|
|
--new-info-900: 211, 57%, 10%;
|
|
--new-info-950: 214, 54%, 5%;
|
|
|
|
/* Secondary - Error */
|
|
--new-error-50: 4, 80%, 96%;
|
|
--new-error-100: 3, 78%, 91%;
|
|
--new-error-200: 3, 79%, 83%;
|
|
--new-error-300: 3, 79%, 74%;
|
|
--new-error-400: 3, 79%, 66%;
|
|
--new-error-500: 4, 79%, 57%;
|
|
--new-error-600: 3, 79%, 46%;
|
|
--new-error-700: 3, 79%, 34%;
|
|
--new-error-800: 3, 79%, 23%;
|
|
--new-error-900: 3, 79%, 11%;
|
|
--new-error-950: 3, 80%, 6%;
|
|
|
|
/* Secondary - Warning */
|
|
--new-warning-50: 39, 100%, 96%;
|
|
--new-warning-100: 40, 100%, 93%;
|
|
--new-warning-200: 39, 100%, 86%;
|
|
--new-warning-300: 39, 100%, 79%;
|
|
--new-warning-400: 39, 100%, 71%;
|
|
--new-warning-500: 39, 100%, 64%;
|
|
--new-warning-600: 39, 100%, 57%;
|
|
--new-warning-700: 39, 100%, 43%;
|
|
--new-warning-800: 39, 100%, 29%;
|
|
--new-warning-900: 39, 100%, 14%;
|
|
--new-warning-950: 38, 100%, 7%;
|
|
|
|
/* Surface */
|
|
--new-surface-black: 0, 0%, 0%;
|
|
--new-surface-white: 0, 0%, 91%;
|
|
|
|
--envelope-editor-background: 210 40% 98.04%;
|
|
}
|
|
|
|
.dark:not(.dark-mode-disabled) {
|
|
--background: 0 0% 14.9%;
|
|
--foreground: 0 0% 97%;
|
|
|
|
--muted: 0 0% 23.4%;
|
|
--muted-foreground: 0 0% 85%;
|
|
|
|
--popover: 0 0% 14.9%;
|
|
--popover-foreground: 0 0% 90%;
|
|
|
|
--card: 0 0% 14.9%;
|
|
--card-border: 0 0% 27.9%;
|
|
--card-border-tint: 112 205 159;
|
|
--card-foreground: 0 0% 95%;
|
|
|
|
--widget: 0 0% 14.9%;
|
|
--widget-foreground: 0 0% 18%;
|
|
|
|
--border: 0 0% 27.9%;
|
|
--input: 0 0% 27.9%;
|
|
|
|
--field-border: 214.3 31.8% 91.4%;
|
|
|
|
--primary: 95.08 71.08% 67.45%;
|
|
--primary-foreground: 95.08 71.08% 10%;
|
|
|
|
--secondary: 0 0% 23.4%;
|
|
--secondary-foreground: 95.08 71.08% 67.45%;
|
|
|
|
--accent: 0 0% 27.9%;
|
|
--accent-foreground: 95.08 71.08% 67.45%;
|
|
|
|
--destructive: 0 87% 62%;
|
|
--destructive-foreground: 0 87% 19%;
|
|
|
|
--ring: 95.08 71.08% 67.45%;
|
|
|
|
--radius: 0.5rem;
|
|
|
|
--warning: 54 96% 45%;
|
|
|
|
--gold: 47.9 95.8% 53.1%;
|
|
|
|
--envelope-editor-background: 0 0% 14.9%;
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border;
|
|
}
|
|
|
|
/* Restore v3 preflight defaults that v4 changed. */
|
|
button:not(:disabled),
|
|
[role="button"]:not(:disabled) {
|
|
cursor: pointer;
|
|
}
|
|
|
|
input::placeholder,
|
|
textarea::placeholder {
|
|
color: hsl(var(--muted-foreground));
|
|
}
|
|
|
|
body {
|
|
@apply bg-background text-foreground;
|
|
font-feature-settings:
|
|
"rlig" 1,
|
|
"calt" 1;
|
|
}
|
|
}
|
|
|
|
/* Print page setup for reports. */
|
|
@page {
|
|
margin: 1in;
|
|
size: A4;
|
|
}
|
|
|
|
.gradient-border-mask::before {
|
|
mask:
|
|
linear-gradient(#fff 0 0) content-box,
|
|
linear-gradient(#fff 0 0);
|
|
-webkit-mask:
|
|
linear-gradient(#fff 0 0) content-box,
|
|
linear-gradient(#fff 0 0);
|
|
mask-composite: exclude;
|
|
-webkit-mask-composite: xor;
|
|
}
|
|
|
|
.custom-scrollbar::-webkit-scrollbar {
|
|
width: 6px;
|
|
background: transparent;
|
|
border-radius: 10px;
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
.scrollbar-hidden {
|
|
-ms-overflow-style: none;
|
|
scrollbar-width: none;
|
|
}
|
|
|
|
.scrollbar-hidden::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.swagger-dark-theme .swagger-ui {
|
|
filter: invert(88%) hue-rotate(180deg);
|
|
}
|
|
|
|
.swagger-dark-theme .swagger-ui .microlight {
|
|
filter: invert(100%) hue-rotate(180deg);
|
|
}
|