mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 05:52:51 +00:00
411 lines
13 KiB
CSS
411 lines
13 KiB
CSS
@import 'tailwindcss';
|
|
@import 'fumadocs-ui/css/neutral.css';
|
|
@import 'fumadocs-ui/css/preset.css';
|
|
@import 'fumadocs-openapi/css/preset.css';
|
|
|
|
@theme {
|
|
/* 1. REGISTER STANDARD UTILITIES */
|
|
--color-background: hsl(var(--background));
|
|
--color-foreground: hsl(var(--foreground));
|
|
--color-card: hsl(var(--card));
|
|
--color-card-foreground: hsl(var(--card-foreground));
|
|
--color-popover: hsl(var(--popover));
|
|
--color-popover-foreground: hsl(var(--popover-foreground));
|
|
--color-primary: hsl(var(--primary));
|
|
--color-primary-foreground: hsl(var(--primary-foreground));
|
|
--color-secondary: hsl(var(--secondary));
|
|
--color-secondary-foreground: hsl(var(--secondary-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-destructive: hsl(var(--destructive));
|
|
--color-destructive-foreground: hsl(var(--destructive-foreground));
|
|
--color-border: hsl(var(--border));
|
|
--color-input: hsl(var(--input));
|
|
--color-ring: hsl(var(--ring));
|
|
|
|
/* 2. MAP FUMADOCS VARIABLES */
|
|
--color-fd-primary: var(--color-primary);
|
|
--color-fd-primary-foreground: var(--color-primary-foreground);
|
|
--color-fd-background: var(--color-background);
|
|
--color-fd-foreground: var(--color-foreground);
|
|
--color-fd-card: var(--color-card);
|
|
--color-fd-card-foreground: var(--color-card-foreground);
|
|
--color-fd-popover: var(--color-popover);
|
|
--color-fd-popover-foreground: var(--color-popover-foreground);
|
|
--color-fd-muted: var(--color-muted);
|
|
--color-fd-muted-foreground: var(--color-muted-foreground);
|
|
--color-fd-accent: var(--color-accent);
|
|
--color-fd-accent-foreground: var(--color-accent-foreground);
|
|
--color-fd-border: var(--color-border);
|
|
--color-fd-ring: var(--color-ring);
|
|
|
|
--color-zitadelpink: #ff2069;
|
|
--font-sans: var(--font-lato), "Lato", "ui-sans-serif", "system-ui";
|
|
}
|
|
|
|
/* --- LIGHT MODE VARIABLES --- */
|
|
:root {
|
|
--primary: 230 59% 58%;
|
|
--primary-foreground: 0 0% 100%;
|
|
|
|
--background: 0 0% 98%;
|
|
--foreground: 0 0% 10%;
|
|
|
|
--popover: 0 0% 98%;
|
|
--popover-foreground: 0 0% 10%;
|
|
|
|
--card: 0 0% 93%;
|
|
--card-foreground: 0 0% 10%;
|
|
|
|
--muted: 0 0% 96%;
|
|
--muted-foreground: 0 0% 45%;
|
|
|
|
--accent: 0 0% 92%;
|
|
--accent-foreground: 230 59% 58%;
|
|
|
|
--secondary: 240 4.8% 95.9%;
|
|
--secondary-foreground: 240 5.9% 10%;
|
|
|
|
--destructive: 0 84.2% 60.2%;
|
|
--destructive-foreground: 0 0% 98%;
|
|
|
|
--border: 0 0% 90%;
|
|
--input: 0 0% 90%;
|
|
--ring: 230 59% 58%;
|
|
|
|
--radius: 0.5rem;
|
|
--overlaycolor: #6c90b420;
|
|
}
|
|
|
|
/* --- DARK MODE VARIABLES --- */
|
|
:root[class~="dark"], [data-theme="dark"] {
|
|
--primary: 340 100% 56%;
|
|
--primary-foreground: 0 0% 100%;
|
|
|
|
--background: 235 45% 14%;
|
|
--foreground: 0 0% 98%;
|
|
|
|
--card: 220 40% 25%;
|
|
--card-foreground: 0 0% 98%;
|
|
|
|
--muted: 230 43% 15%;
|
|
--muted-foreground: 230 20% 70%;
|
|
|
|
--accent: 230 43% 20%;
|
|
--accent-foreground: 340 100% 65%;
|
|
|
|
--secondary: 240 3.7% 15.9%;
|
|
--secondary-foreground: 0 0% 98%;
|
|
|
|
--destructive: 0 62.8% 30.6%;
|
|
--destructive-foreground: 0 0% 98%;
|
|
|
|
--border: 230 43% 25%;
|
|
--input: 230 43% 25%;
|
|
--ring: 340 100% 56%;
|
|
|
|
--overlaycolor: #ffffff15;
|
|
|
|
/* FORCE OVERRIDE for Fumadocs Variables */
|
|
--color-fd-background: hsl(var(--background));
|
|
--color-fd-foreground: hsl(var(--foreground));
|
|
--color-fd-primary: hsl(var(--primary));
|
|
--color-fd-primary-foreground: hsl(var(--primary-foreground));
|
|
--color-fd-card: hsl(var(--card));
|
|
--color-fd-card-foreground: hsl(var(--card-foreground));
|
|
--color-fd-popover: hsl(var(--card));
|
|
--color-fd-popover-foreground: hsl(var(--foreground));
|
|
--color-fd-muted: hsl(var(--muted));
|
|
--color-fd-muted-foreground: hsl(var(--muted-foreground));
|
|
--color-fd-accent: hsl(var(--accent));
|
|
--color-fd-accent-foreground: hsl(var(--accent-foreground));
|
|
--color-fd-border: hsl(var(--border));
|
|
--color-fd-ring: hsl(var(--ring));
|
|
}
|
|
|
|
@layer components {
|
|
|
|
/* 1. VISIBILITY HELPERS */
|
|
.hideondark { display: block !important; }
|
|
.hideonlight { display: none !important; }
|
|
|
|
:root[class~="dark"] .hideondark, [data-theme="dark"] .hideondark {
|
|
display: none !important;
|
|
}
|
|
:root[class~="dark"] .hideonlight, [data-theme="dark"] .hideonlight {
|
|
display: block !important;
|
|
}
|
|
|
|
/* 2. MAIN CARD LAYOUT (Tile Wrapper) */
|
|
.tile-wrapper {
|
|
@apply flex flex-row flex-wrap gap-6 my-6;
|
|
}
|
|
|
|
.tile-wrapper > * {
|
|
@apply flex flex-col items-center text-center rounded-lg border relative;
|
|
|
|
background-color: hsl(var(--card)) !important;
|
|
border-color: hsl(var(--border));
|
|
|
|
justify-content: flex-start;
|
|
min-width: 160px;
|
|
min-height: 180px;
|
|
padding: 2rem;
|
|
padding-bottom: 3rem;
|
|
}
|
|
|
|
.tile-wrapper > * > :last-child {
|
|
margin-top: auto;
|
|
}
|
|
|
|
.tile-wrapper > * > h3,
|
|
.tile-wrapper > * > h4,
|
|
.tile-wrapper > * > strong {
|
|
@apply mt-0;
|
|
}
|
|
|
|
/* 3. ICON STYLING */
|
|
.custom-rounded {
|
|
@apply flex items-center justify-center p-2 rounded-full w-14 h-14 shrink-0 m-0;
|
|
}
|
|
.custom-rounded svg {
|
|
@apply fill-white h-7 w-7;
|
|
}
|
|
.custom-rounded i {
|
|
@apply text-white;
|
|
}
|
|
|
|
/* Gradients */
|
|
.custom-rounded-start { background: linear-gradient(40deg, #059669 30%, #047857); }
|
|
.custom-rounded-password { background: linear-gradient(40deg, #f59e0b 30%, #b45309); }
|
|
.custom-rounded-login, .custom-rounded-register { background: linear-gradient(40deg, #059669 30%, #047857); }
|
|
.custom-rounded-privatelabel, .custom-rounded-phone, .custom-rounded-email, .custom-rounded-storage, .custom-rounded-service { background: linear-gradient(40deg, #ff2069 30%, #cc1a54); }
|
|
.custom-rounded-split { background: linear-gradient(40deg, #ff2069, #cc1a54); }
|
|
.custom-rounded-texts, .custom-rounded-help, .custom-rounded-architecture { background: linear-gradient(40deg, #dc2626 30%, #db2777); }
|
|
.custom-rounded-system, .custom-rounded-apis, .custom-rounded-policy, .custom-rounded-instance { background: linear-gradient(40deg, #1f2937, #111827); }
|
|
|
|
/* 4. B2B / DIAGRAM LAYOUTS (Fixes the B2B Component) */
|
|
.flexrowbetween {
|
|
@apply flex flex-row items-center justify-around gap-4 my-8 w-full;
|
|
}
|
|
|
|
.arrowright {
|
|
@apply w-8 h-8 shrink-0 text-muted-foreground;
|
|
}
|
|
|
|
.b2borg, .b2bproject, .b2bapp, .b2buser {
|
|
@apply rounded-xl p-4 border text-left;
|
|
background: var(--overlaycolor);
|
|
border-color: hsl(var(--border));
|
|
}
|
|
|
|
.b2buser { @apply mt-4; }
|
|
|
|
.b2borg span, .b2bproject span, .b2bapp span, .b2buser span {
|
|
@apply ml-4 mb-2 block font-semibold;
|
|
}
|
|
|
|
/* Specific styling for the role text */
|
|
.b2bprojectrole {
|
|
@apply mt-2 ml-4 block text-sm opacity-80 font-normal;
|
|
}
|
|
|
|
/* 5. FOOTER / PAGINATION CARDS */
|
|
a.\@max-lg\:col-span-full {
|
|
@apply flex flex-col p-6 rounded-xl border transition-all no-underline;
|
|
background-color: hsl(var(--card)) !important;
|
|
border-color: hsl(var(--border)) !important;
|
|
}
|
|
|
|
a.\@max-lg\:col-span-full:hover {
|
|
@apply shadow-sm;
|
|
border-color: hsl(var(--primary)) !important;
|
|
background-color: hsl(var(--card)) !important;
|
|
}
|
|
|
|
a.\@max-lg\:col-span-full > div:first-child {
|
|
@apply flex items-center gap-3;
|
|
}
|
|
|
|
a.\@max-lg\:col-span-full svg {
|
|
@apply w-5 h-5 m-0;
|
|
}
|
|
|
|
a.\@max-lg\:col-span-full p {
|
|
margin-bottom: 0 !important;
|
|
margin-top: 0 !important;
|
|
}
|
|
|
|
a.\@max-lg\:col-span-full p.text-fd-muted-foreground {
|
|
@apply mt-2 text-sm opacity-80;
|
|
}
|
|
|
|
/* 6. VIDEO PLAYER WRAPPER */
|
|
/* Fixes aspect ratio for ReactPlayer embeds */
|
|
.player-wrapper {
|
|
@apply relative mb-8;
|
|
padding-top: 56.25%; /* 16:9 Aspect Ratio */
|
|
}
|
|
.react-player {
|
|
@apply absolute top-0 left-0;
|
|
}
|
|
|
|
/* 7. GET STARTED BUTTON */
|
|
.get-started {
|
|
@apply inline-flex items-center justify-center px-6 py-2 rounded-full font-bold border-2 transition-all;
|
|
border-color: #ff2069;
|
|
background-color: #ff2069;
|
|
color: white;
|
|
}
|
|
.get-started:hover {
|
|
@apply opacity-90;
|
|
color: white !important;
|
|
}
|
|
|
|
/* Target any div that uses the callout color variable */
|
|
div[style*="--callout-color"] {
|
|
@apply rounded-lg shadow-sm mb-4;
|
|
|
|
/* Force Docusaurus Layout: Left Border Only */
|
|
border: 1px solid rgba(0,0,0,0.05) !important;
|
|
border-left-width: 4px !important;
|
|
|
|
/* Hide the default Fumadocs vertical colored bar inside */
|
|
& > div[role="none"] {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
/* --- INFO (Blue) --- */
|
|
/* We match the variable name in the style string */
|
|
div[style*="--color-fd-info"] {
|
|
background-color: #eff6ff !important;
|
|
border-left-color: #3b82f6 !important;
|
|
color: #1e3a8a !important;
|
|
}
|
|
div[style*="--color-fd-info"] svg {
|
|
color: #3b82f6 !important;
|
|
fill: transparent !important; /* Remove fill to look cleaner */
|
|
}
|
|
/* Dark Mode Info */
|
|
:is(.dark div[style*="--color-fd-info"]) {
|
|
background-color: rgba(59, 130, 246, 0.1) !important;
|
|
color: #dbeafe !important;
|
|
border-top-color: rgba(255,255,255,0.05) !important;
|
|
border-right-color: rgba(255,255,255,0.05) !important;
|
|
border-bottom-color: rgba(255,255,255,0.05) !important;
|
|
}
|
|
|
|
/* --- WARNING (Amber) --- */
|
|
div[style*="--color-fd-warn"] {
|
|
background-color: #fffbeb !important;
|
|
border-left-color: #f59e0b !important;
|
|
color: #78350f !important;
|
|
}
|
|
div[style*="--color-fd-warn"] svg {
|
|
color: #f59e0b !important;
|
|
fill: transparent !important;
|
|
}
|
|
/* Dark Mode Warning */
|
|
:is(.dark div[style*="--color-fd-warn"]) {
|
|
background-color: rgba(245, 158, 11, 0.1) !important;
|
|
color: #fef3c7 !important;
|
|
border-top-color: rgba(255,255,255,0.05) !important;
|
|
border-right-color: rgba(255,255,255,0.05) !important;
|
|
border-bottom-color: rgba(255,255,255,0.05) !important;
|
|
}
|
|
|
|
/* --- ERROR (Red) --- */
|
|
div[style*="--color-fd-error"] {
|
|
background-color: #fef2f2 !important;
|
|
border-left-color: #ef4444 !important;
|
|
color: #7f1d1d !important;
|
|
}
|
|
div[style*="--color-fd-error"] svg {
|
|
color: #ef4444 !important;
|
|
fill: transparent !important;
|
|
}
|
|
/* Dark Mode Error */
|
|
:is(.dark div[style*="--color-fd-error"]) {
|
|
background-color: rgba(239, 68, 68, 0.12) !important;
|
|
color: #fee2e2 !important;
|
|
border-top-color: rgba(255,255,255,0.05) !important;
|
|
border-right-color: rgba(255,255,255,0.05) !important;
|
|
border-bottom-color: rgba(255,255,255,0.05) !important;
|
|
}
|
|
|
|
/* --- TITLE BOLD --- */
|
|
div[style*="--callout-color"] strong,
|
|
div[style*="--callout-color"] p:first-child strong {
|
|
font-weight: 700 !important;
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
/* HEADINGS */
|
|
h1, h2, h3, h4, h5, h6 {
|
|
font-family: var(--font-sans);
|
|
color: hsl(var(--foreground)) !important;
|
|
margin-bottom: 1rem;
|
|
letter-spacing: -0.025em;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
|
|
color: inherit !important;
|
|
text-decoration: none !important;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 3.5rem !important;
|
|
font-weight: 700 !important;
|
|
line-height: 1.1 !important;
|
|
margin-bottom: 1.5rem !important;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 2.25rem !important;
|
|
font-weight: 600 !important;
|
|
margin-top: 3rem !important;
|
|
margin-bottom: 1rem !important;
|
|
padding-bottom: 0.5rem !important;
|
|
border-bottom: 1px solid hsl(var(--border)) !important;
|
|
}
|
|
|
|
h3 {
|
|
font-size: 2rem !important;
|
|
font-weight: 600 !important;
|
|
margin-top: 2.5rem !important;
|
|
margin-bottom: 1rem !important;
|
|
}
|
|
|
|
h4 {
|
|
font-size: 1.5rem !important;
|
|
font-weight: 600 !important;
|
|
margin-top: 2.5rem !important;
|
|
margin-bottom: 1rem !important;
|
|
}
|
|
|
|
p {
|
|
font-size: 1rem;
|
|
line-height: 1.7;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
html, body {
|
|
background-color: hsl(var(--background));
|
|
color: hsl(var(--foreground));
|
|
}
|
|
|
|
a {
|
|
color: hsl(var(--primary));
|
|
text-decoration: none;
|
|
transition: opacity 0.2s;
|
|
}
|
|
a:hover {
|
|
opacity: 0.8;
|
|
}
|
|
} |