mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
287 lines
No EOL
6.4 KiB
CSS
287 lines
No EOL
6.4 KiB
CSS
@import url('https://api.fonts.coollabs.io/css2?family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500&display=swap')
|
|
layer(base);
|
|
/*
|
|
---break---
|
|
*/
|
|
@plugin 'tailwindcss-animate';
|
|
|
|
@import 'tailwindcss';
|
|
|
|
@plugin "@tailwindcss/typography";
|
|
|
|
@custom-variant dark (&:is(.dark *));
|
|
|
|
@theme {
|
|
--radius-lg: var(--radius);
|
|
--radius-md: calc(var(--radius) - 2px);
|
|
--radius-sm: calc(var(--radius) - 4px);
|
|
|
|
--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));
|
|
|
|
--color-chart-1: hsl(var(--chart-1));
|
|
--color-chart-2: hsl(var(--chart-2));
|
|
--color-chart-3: hsl(var(--chart-3));
|
|
--color-chart-4: hsl(var(--chart-4));
|
|
--color-chart-5: hsl(var(--chart-5));
|
|
}
|
|
|
|
/*
|
|
The default border color has changed to `currentColor` in Tailwind CSS v4,
|
|
so we've added these compatibility styles to make sure everything still
|
|
looks the same as it did with Tailwind CSS v3.
|
|
|
|
If we ever want to remove these styles, we need to add an explicit border
|
|
color utility to any element that depends on these defaults.
|
|
*/
|
|
@layer base {
|
|
*,
|
|
::after,
|
|
::before,
|
|
::backdrop,
|
|
::file-selector-button {
|
|
border-color: var(--color-gray-200, currentColor);
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
.nice-shadow {
|
|
@apply shadow-md shadow-gray-300/25 outline outline-1 outline-neutral-200/40;
|
|
}
|
|
|
|
.light-shadow {
|
|
@apply shadow-lg shadow-gray-300/15 outline outline-1 outline-neutral-200/30;
|
|
}
|
|
|
|
.custom-dots-bg {
|
|
@apply bg-fixed;
|
|
background-image:
|
|
radial-gradient(#4744446b 1px, transparent 1px),
|
|
radial-gradient(#4744446b 1px, transparent 1px);
|
|
background-position:
|
|
0 0,
|
|
25px 25px;
|
|
background-size: 50px 50px;
|
|
background-repeat: repeat;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
padding: 0;
|
|
margin: 0;
|
|
transition: all 0.2s ease;
|
|
font-family:
|
|
'DM Sans',
|
|
-apple-system,
|
|
BlinkMacSystemFont,
|
|
Segoe UI,
|
|
Roboto,
|
|
Oxygen,
|
|
Ubuntu,
|
|
Cantarell,
|
|
Fira Sans,
|
|
Droid Sans,
|
|
Helvetica Neue,
|
|
sans-serif;
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
button {
|
|
@apply cursor-pointer;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
body {
|
|
color: black;
|
|
background: #fbfbfb;
|
|
}
|
|
}
|
|
|
|
/* Basic editor styles */
|
|
.ProseMirror > * + * {
|
|
margin-top: 0.75em;
|
|
}
|
|
/* Placeholder (at the top) */
|
|
.ProseMirror p.is-editor-empty:first-child::before {
|
|
color: #adb5bd;
|
|
content: attr(data-placeholder);
|
|
float: left;
|
|
height: 0;
|
|
pointer-events: none;
|
|
}
|
|
/* Give a remote user a caret */
|
|
.collaboration-cursor__caret {
|
|
border-left: 1px solid #0d0d0d;
|
|
border-right: 1px solid #0d0d0d;
|
|
margin-left: -1px;
|
|
margin-right: -1px;
|
|
pointer-events: none;
|
|
position: relative;
|
|
word-break: normal;
|
|
}
|
|
/* Render the username above the caret */
|
|
.collaboration-cursor__label {
|
|
border-radius: 3px 3px 3px 0;
|
|
color: #0d0d0d;
|
|
font-size: 12px;
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
left: -1px;
|
|
line-height: normal;
|
|
padding: 0.1rem 0.3rem;
|
|
position: absolute;
|
|
top: -1.4em;
|
|
user-select: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.fade-enter {
|
|
opacity: 0;
|
|
transform: translateY(-20px);
|
|
}
|
|
|
|
.fade-enter-active {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
transition:
|
|
opacity 300ms,
|
|
transform 300ms;
|
|
}
|
|
|
|
.fade-exit {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.fade-exit-active {
|
|
opacity: 0;
|
|
transform: translateY(-20px);
|
|
transition:
|
|
opacity 300ms,
|
|
transform 300ms;
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
:root {
|
|
--background: 0 0% 100%;
|
|
--foreground: 0 0% 3.9%;
|
|
--card: 0 0% 100%;
|
|
--card-foreground: 0 0% 3.9%;
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 0 0% 3.9%;
|
|
--primary: 0 0% 9%;
|
|
--primary-foreground: 0 0% 98%;
|
|
--secondary: 0 0% 96.1%;
|
|
--secondary-foreground: 0 0% 9%;
|
|
--muted: 0 0% 96.1%;
|
|
--muted-foreground: 0 0% 45.1%;
|
|
--accent: 0 0% 96.1%;
|
|
--accent-foreground: 0 0% 9%;
|
|
--destructive: 0 84.2% 60.2%;
|
|
--destructive-foreground: 0 0% 98%;
|
|
--border: 0 0% 89.8%;
|
|
--input: 0 0% 89.8%;
|
|
--ring: 0 0% 3.9%;
|
|
--chart-1: 12 76% 61%;
|
|
--chart-2: 173 58% 39%;
|
|
--chart-3: 197 37% 24%;
|
|
--chart-4: 43 74% 66%;
|
|
--chart-5: 27 87% 67%;
|
|
--radius: 0.5rem;}
|
|
.dark {
|
|
--background: 0 0% 3.9%;
|
|
--foreground: 0 0% 98%;
|
|
--card: 0 0% 3.9%;
|
|
--card-foreground: 0 0% 98%;
|
|
--popover: 0 0% 3.9%;
|
|
--popover-foreground: 0 0% 98%;
|
|
--primary: 0 0% 98%;
|
|
--primary-foreground: 0 0% 9%;
|
|
--secondary: 0 0% 14.9%;
|
|
--secondary-foreground: 0 0% 98%;
|
|
--muted: 0 0% 14.9%;
|
|
--muted-foreground: 0 0% 63.9%;
|
|
--accent: 0 0% 14.9%;
|
|
--accent-foreground: 0 0% 98%;
|
|
--destructive: 0 62.8% 30.6%;
|
|
--destructive-foreground: 0 0% 98%;
|
|
--border: 0 0% 14.9%;
|
|
--input: 0 0% 14.9%;
|
|
--ring: 0 0% 83.1%;
|
|
--chart-1: 220 70% 50%;
|
|
--chart-2: 160 60% 45%;
|
|
--chart-3: 30 80% 55%;
|
|
--chart-4: 280 65% 60%;
|
|
--chart-5: 340 75% 55%;}}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border;}
|
|
body {
|
|
@apply bg-background text-foreground;}}
|
|
|
|
/* Flipcard 3D Animation Styles */
|
|
.flipcard-container {
|
|
perspective: 1000px;
|
|
}
|
|
|
|
.flipcard-inner {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 100%;
|
|
text-align: center;
|
|
transition: transform 0.7s ease-in-out;
|
|
transform-style: preserve-3d;
|
|
}
|
|
|
|
.flipcard-inner.flipped {
|
|
transform: rotateY(180deg);
|
|
}
|
|
|
|
.flipcard-front,
|
|
.flipcard-back {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
-webkit-backface-visibility: hidden;
|
|
backface-visibility: hidden;
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.flipcard-back {
|
|
transform: rotateY(180deg);
|
|
} |