OpChan/src/index.css

149 lines
3.5 KiB
CSS
Raw Normal View History

2025-04-15 16:28:03 +05:30
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap');
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
:root {
/* Cypherpunk theme */
--background: 226 20% 14%; /* cyber-dark */
--foreground: 0 0% 94%;
--card: 226 20% 14%;
--card-foreground: 0 0% 94%;
--popover: 226 20% 18%;
--popover-foreground: 0 0% 94%;
--primary: 195 82% 42%; /* cyber-accent */
--primary-foreground: 0 0% 98%;
--secondary: 226 20% 18%; /* slightly lighter than background */
--secondary-foreground: 0 0% 94%;
--muted: 226 13% 27%; /* cyber-muted */
--muted-foreground: 225 6% 57%; /* cyber-neutral */
--accent: 195 82% 42%; /* cyber-accent */
--accent-foreground: 0 0% 98%;
--destructive: 0 84% 60%;
--destructive-foreground: 0 0% 98%;
--border: 226 13% 27%;
--input: 226 13% 27%;
--ring: 195 82% 42%;
--radius: 0.25rem; /* smaller radius for shaper edges */
--sidebar-background: 226 20% 14%;
--sidebar-foreground: 0 0% 94%;
--sidebar-primary: 195 82% 42%;
--sidebar-primary-foreground: 0 0% 98%;
--sidebar-accent: 226 20% 18%;
--sidebar-accent-foreground: 0 0% 94%;
--sidebar-border: 226 13% 27%;
--sidebar-ring: 195 82% 42%;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground font-mono;
}
/* Terminal-like appearance */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: hsl(var(--secondary));
}
::-webkit-scrollbar-thumb {
background: hsl(var(--muted));
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: hsl(var(--muted-foreground));
}
/* Add a subtle text-shadow to primary elements */
.text-glow {
text-shadow: 0 0 8px rgba(15, 160, 206, 0.5);
}
/* Custom focus styles */
*:focus-visible {
@apply outline-none ring-2 ring-primary/70 ring-offset-1 ring-offset-background;
}
/* Monospace styling */
h1, h2, h3, h4, h5, h6, button, input, textarea {
@apply font-mono;
}
/* Button styles */
.btn {
@apply inline-flex items-center justify-center rounded-sm px-4 py-2 text-sm font-medium transition-colors focus-visible:outline-none disabled:opacity-50;
}
}
@layer components {
.thread-card {
@apply border border-cyber-muted bg-cyber-dark hover:bg-cyber-muted/20 transition-colors rounded-sm p-4 mb-4;
}
.board-card {
@apply border border-cyber-muted bg-cyber-dark hover:bg-cyber-muted/20 transition-colors rounded-sm p-4 mb-4;
}
.comment-card {
@apply border-l-2 border-cyber-muted pl-4 py-2 my-3 hover:border-cyber-accent transition-colors;
}
}
/* Cyberpunk glow animation for CypherImage */
@keyframes cyber-flicker {
0%, 100% {
opacity: 1;
filter: drop-shadow(0 0 2px rgba(0, 255, 255, 0.8));
}
8%, 10% {
opacity: 0.8;
filter: drop-shadow(0 0 5px rgba(0, 255, 255, 0.8));
}
20%, 25% {
opacity: 1;
filter: drop-shadow(0 0 1px rgba(0, 255, 255, 0.5));
}
30% {
opacity: 0.6;
filter: drop-shadow(0 0 8px rgba(0, 255, 255, 1));
}
40%, 45% {
opacity: 1;
filter: drop-shadow(0 0 2px rgba(0, 255, 255, 0.6));
}
50%, 55% {
opacity: 0.9;
filter: drop-shadow(0 0 3px rgba(0, 255, 255, 0.8));
}
60%, 100% {
opacity: 1;
filter: drop-shadow(0 0 2px rgba(0, 255, 255, 0.6));
}
}
.cyberpunk-glow {
animation: cyber-flicker 8s infinite;
will-change: filter, opacity;
}