Files
smesh/src/index.css
2025-12-04 23:24:16 +08:00

218 lines
4.7 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
* {
@apply border-border;
text-rendering: optimizeLegibility;
-webkit-tap-highlight-color: transparent;
}
html {
@apply font-sans antialiased;
--bc-color-brand: hsl(var(--primary));
--bc-color-brand-dark: hsl(var(--primary));
--bc-brand-mix: 100%;
--bc-color-brand-button-text: hsl(var(--primary-foreground));
--bc-color-brand-button-text-dark: hsl(var(--primary-foreground));
}
input,
textarea,
button {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
body {
@apply bg-background text-foreground;
-webkit-overflow-scrolling: touch;
text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
user-select: none;
}
body,
html {
overscroll-behavior-y: none;
}
.clickable {
cursor: pointer;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
&:active {
background-color: hsl(var(--muted) / 0.4);
}
}
.tiptap p.is-editor-empty:first-child::before {
color: hsl(var(--muted-foreground));
content: attr(data-placeholder);
float: left;
height: 0;
pointer-events: none;
}
.scrollbar-hide {
-ms-overflow-style: none; /* Internet Explorer 10+ */
scrollbar-width: none; /* Firefox */
}
.scrollbar-hide::-webkit-scrollbar {
display: none; /* Safari and Chrome */
}
/* Custom scrollbar styling */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: hsl(var(--muted) / 0.5);
border-radius: 4px;
transition: background 0.2s ease;
}
::-webkit-scrollbar-thumb:hover {
background: hsl(var(--muted) / 0.7);
}
@media (hover: hover) and (pointer: fine) {
.clickable:hover {
background-color: hsl(var(--muted) / 0.4);
}
}
@keyframes shimmer {
0% {
background-position: 400% 0;
}
100% {
background-position: 0% 0;
}
}
.animate-shimmer {
animation: shimmer 3s ease-in-out infinite;
}
:root {
--surface-background: 0 0% 98%;
--background: 0 0% 100%;
--foreground: 240 10% 3.9%;
--card: 0 0% 100%;
--card-foreground: 240 10% 3.9%;
--popover: 0 0% 100%;
--popover-foreground: 240 10% 3.9%;
--primary: 259 43% 56%;
--primary-hover: 259 43% 65%;
--primary-foreground: 0 0% 98%;
--secondary: 240 4.8% 94%;
--secondary-foreground: 240 5.9% 10%;
--muted: 240 4.8% 94%;
--muted-foreground: 240 3.8% 46.1%;
--accent: 240 4.8% 94%;
--accent-foreground: 240 5.9% 10%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 240 5.9% 92%;
--input: 240 5.9% 90%;
--ring: 259 43% 56%;
--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.75rem;
}
.dark {
--surface-background: 240 10% 3.9%;
--background: 0 0% 9%;
--foreground: 0 0% 98%;
--card: 0 0% 12%;
--card-foreground: 0 0% 98%;
--popover: 0 0% 12%;
--popover-foreground: 0 0% 98%;
--primary: 259 43% 56%;
--primary-hover: 259 43% 65%;
--primary-foreground: 240 5.9% 10%;
--secondary: 240 3.7% 15.9%;
--secondary-foreground: 0 0% 98%;
--muted: 240 3.7% 15.9%;
--muted-foreground: 240 5% 64.9%;
--accent: 240 3.7% 15.9%;
--accent-foreground: 0 0% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 0 0% 98%;
--border: 240 3.7% 18%;
--input: 240 3.7% 15.9%;
--ring: 259 43% 56%;
--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%;
--radius: 0.75rem;
}
.dark.pure-black {
--surface-background: 0 0% 0%;
--background: 0 0% 0%;
--card: 0 0% 5%;
--popover: 0 0% 5%;
}
.dark input[type='datetime-local']::-webkit-calendar-picker-indicator {
filter: invert(1) brightness(1.5);
}
}
@keyframes progressFill {
0% {
width: 0%;
}
100% {
width: 100%;
}
}
@keyframes shake {
0%,
100% {
transform: translate(0, 0) rotate(0deg);
}
10% {
transform: translate(-1px, -1px) rotate(-1deg);
}
20% {
transform: translate(1px, -1px) rotate(1deg);
}
30% {
transform: translate(-1px, 1px) rotate(-1deg);
}
40% {
transform: translate(1px, 1px) rotate(1deg);
}
50% {
transform: translate(-1px, -1px) rotate(-1deg);
}
60% {
transform: translate(1px, -1px) rotate(1deg);
}
70% {
transform: translate(-1px, 1px) rotate(-1deg);
}
80% {
transform: translate(1px, 1px) rotate(1deg);
}
90% {
transform: translate(-1px, -1px) rotate(-1deg);
}
}