OwnGPT.v2 / client /src /styles.css
parthib07's picture
Upload 200 files
48b8720 verified
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
:root {
color-scheme: dark;
--background: 0 0% 13%;
--foreground: 0 0% 94%;
--card: 0 0% 17%;
--panel: 0 0% 10%;
--muted: 0 0% 22%;
--muted-foreground: 0 0% 68%;
--border: 0 0% 25%;
--input: 0 0% 28%;
--accent: 0 0% 8%;
--accent-foreground: 0 0% 100%;
--secondary: 0 0% 24%;
--secondary-foreground: 0 0% 94%;
--success: 155 62% 45%;
--warning: 38 92% 54%;
--danger: 0 75% 60%;
--ring: 212 90% 60%;
}
[data-theme='light'] {
color-scheme: light;
--background: 0 0% 100%;
--foreground: 0 0% 13%;
--card: 0 0% 100%;
--panel: 0 0% 97%;
--muted: 0 0% 94%;
--muted-foreground: 0 0% 42%;
--border: 0 0% 88%;
--input: 0 0% 82%;
--accent: 0 0% 8%;
--accent-foreground: 0 0% 100%;
--secondary: 0 0% 94%;
--secondary-foreground: 0 0% 13%;
--success: 155 58% 38%;
--warning: 38 90% 44%;
--danger: 0 72% 50%;
--ring: 212 92% 50%;
}
* {
@apply border-border;
letter-spacing: 0 !important;
}
html,
body,
#root {
height: 100%;
}
html {
@apply antialiased;
}
body {
@apply overflow-hidden bg-background font-sans text-foreground;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
transition:
background-color 180ms ease,
color 180ms ease;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: inherit;
}
code,
pre,
kbd {
font-family: 'JetBrains Mono', ui-monospace, monospace;
}
button,
input,
textarea,
select {
font: inherit;
}
button {
border-radius: 0.5rem !important;
}
::selection {
background: hsl(var(--accent) / 0.18);
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
}
}
}
@layer components {
.app-background {
background: hsl(var(--background));
}
[data-theme='light'] .app-background {
background: hsl(var(--background));
}
.app-background-glow {
display: none;
}
.app-background-grid {
display: none;
}
[data-theme='light'] .app-background-grid {
opacity: 0.18;
}
.brand-gradient {
background: hsl(var(--accent));
}
.text-gradient {
color: hsl(var(--foreground));
}
.surface-card,
.editorial-card,
.editorial-surface {
@apply rounded-lg border border-border bg-card;
}
.surface-soft,
.editorial-card-soft {
@apply rounded-lg border border-border bg-panel;
}
.label-pill,
.editorial-pill {
@apply inline-flex items-center rounded-lg border border-border bg-background px-3 py-1 text-[11px] font-medium text-muted-foreground;
}
.field {
@apply border border-input bg-card transition;
}
.field:focus-within {
border-color: hsl(var(--accent) / 0.42);
box-shadow: 0 0 0 2px hsl(var(--accent) / 0.14);
}
.rich-scroll {
scrollbar-width: thin;
scrollbar-color: hsl(var(--border)) transparent;
}
.rich-scroll::-webkit-scrollbar {
width: 10px;
height: 10px;
}
.rich-scroll::-webkit-scrollbar-track {
background: transparent;
}
.rich-scroll::-webkit-scrollbar-thumb {
border: 2px solid transparent;
border-radius: 999px;
background: hsl(var(--border));
background-clip: padding-box;
}
.markdown-body {
@apply space-y-4 break-words text-sm leading-7 text-foreground;
}
.markdown-body > :first-child {
@apply mt-0;
}
.markdown-body > :last-child {
@apply mb-0;
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3 {
@apply font-display font-semibold tracking-tight text-foreground;
}
.markdown-body h1 {
@apply text-2xl;
}
.markdown-body h2 {
@apply text-xl;
}
.markdown-body h3 {
@apply text-lg;
}
.markdown-body p,
.markdown-body ul,
.markdown-body ol,
.markdown-body blockquote,
.markdown-body pre,
.markdown-body table {
@apply my-4;
}
.markdown-body a {
@apply font-medium text-accent underline decoration-accent/35 underline-offset-4 transition hover:decoration-accent;
}
.markdown-body strong {
@apply font-semibold text-foreground;
}
.markdown-body code:not(pre code) {
@apply rounded-md bg-secondary px-1.5 py-1 text-[0.85em] text-foreground;
}
.markdown-body ul,
.markdown-body ol {
@apply pl-6;
}
.markdown-body ul {
@apply list-disc;
}
.markdown-body ol {
@apply list-decimal;
}
.markdown-body blockquote {
@apply rounded-lg border-l-4 border-border bg-secondary px-4 py-3 text-muted-foreground;
}
.markdown-body hr {
@apply border-border;
}
.markdown-body img {
@apply rounded-lg border border-border;
}
.markdown-body table {
@apply w-full overflow-hidden rounded-lg border border-border text-left text-sm;
}
.markdown-body thead {
@apply bg-background;
}
.markdown-body th,
.markdown-body td {
@apply border-b border-border px-4 py-3;
}
.markdown-body pre {
@apply overflow-x-auto rounded-lg border border-border bg-background p-4 text-sm;
}
.markdown-body pre code {
@apply bg-transparent p-0 text-foreground;
}
.code-shell {
margin: 1rem 0;
overflow: hidden;
border-radius: 8px;
border: 1px solid hsl(var(--border) / 0.8);
background: hsl(var(--background) / 0.92);
}
.code-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
border-bottom: 1px solid hsl(var(--border) / 0.8);
padding: 0.75rem 1rem;
background: hsl(var(--panel) / 0.88);
}
.code-badge {
border-radius: 8px;
border: 1px solid hsl(var(--border) / 0.8);
background: hsl(var(--background) / 0.75);
padding: 0.25rem 0.625rem;
font-size: 0.6875rem;
font-weight: 600;
color: hsl(var(--muted-foreground));
}
.code-copy-button {
border-radius: 8px;
border: 1px solid hsl(var(--border) / 0.8);
background: hsl(var(--background) / 0.78);
padding: 0.4rem 0.85rem;
font-size: 0.75rem;
font-weight: 600;
color: hsl(var(--foreground));
transition: background-color 180ms ease, border-color 180ms ease;
}
.code-copy-button:hover {
border-color: hsl(var(--accent) / 0.28);
background: hsl(var(--panel) / 0.95);
}
.typing-cursor {
display: inline-block;
width: 0.65rem;
height: 1rem;
margin-left: 0.25rem;
border-radius: 999px;
background: hsl(var(--accent));
animation: blink 1s step-end infinite;
vertical-align: middle;
}
.auth-panel {
background:
linear-gradient(135deg, hsl(var(--card)) 0%, hsl(var(--panel)) 100%);
}
.auth-sweep {
pointer-events: none;
position: absolute;
inset: -40% -20% auto;
height: 8rem;
background: linear-gradient(
90deg,
transparent,
hsl(var(--accent) / 0.16),
transparent
);
transform: rotate(-8deg) translateX(-40%);
animation: auth-sweep 5s ease-in-out infinite;
}
@keyframes auth-sweep {
0%,
100% {
transform: rotate(-8deg) translateX(-45%);
opacity: 0.2;
}
50% {
transform: rotate(-8deg) translateX(45%);
opacity: 0.55;
}
}
}