visualiser2 / src /App.css
Vishalpainjane's picture
added files
8a01471
/*
* Oldskool Wireframe Design System
* Inspired by ctxdc.com and awwwards-winning dark interfaces
*/
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&display=swap');
:root {
/* Core Colors */
--bg-primary: #0a0a0a;
--bg-secondary: #0f0f0f;
--bg-tertiary: #141414;
--bg-card: rgba(15, 15, 15, 0.8);
/* Accent Colors */
--accent-primary: #b4ff39;
--accent-secondary: #7fff00;
--accent-dim: rgba(180, 255, 57, 0.15);
--accent-glow: rgba(180, 255, 57, 0.3);
/* Text Colors */
--text-primary: #ffffff;
--text-secondary: #a0a0a0;
--text-tertiary: #606060;
--text-muted: #404040;
/* Border Colors */
--border-primary: rgba(180, 255, 57, 0.3);
--border-secondary: rgba(255, 255, 255, 0.1);
--border-dim: rgba(255, 255, 255, 0.05);
/* Status Colors */
--success: #b4ff39;
--error: #ff4444;
--warning: #ffaa00;
/* Typography */
--font-mono: 'JetBrains Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;
/* Spacing */
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 24px;
--space-xl: 32px;
/* Border Radius */
--radius-sm: 2px;
--radius-md: 4px;
--radius-lg: 8px;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body, #root {
width: 100%;
height: 100%;
overflow: hidden;
font-family: var(--font-mono);
font-size: 13px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background: var(--bg-primary);
color: var(--text-primary);
}
.app {
width: 100%;
height: 100%;
position: relative;
background: var(--bg-primary);
}
/* Grid Background Pattern */
.app::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image:
linear-gradient(rgba(180, 255, 57, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(180, 255, 57, 0.03) 1px, transparent 1px);
background-size: 50px 50px;
pointer-events: none;
z-index: 0;
}
/* Scrollbar styling */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: var(--bg-secondary);
}
::-webkit-scrollbar-thumb {
background: var(--border-primary);
border-radius: var(--radius-sm);
}
::-webkit-scrollbar-thumb:hover {
background: var(--accent-primary);
}
/* Selection styling */
::selection {
background: var(--accent-dim);
color: var(--accent-primary);
}
/* Focus styling */
:focus-visible {
outline: 1px solid var(--accent-primary);
outline-offset: 2px;
}
/* Custom checkbox */
input[type="checkbox"] {
appearance: none;
width: 14px;
height: 14px;
border: 1px solid var(--border-primary);
border-radius: var(--radius-sm);
background: transparent;
cursor: pointer;
position: relative;
transition: all 0.15s ease;
}
input[type="checkbox"]:checked {
background: var(--accent-primary);
border-color: var(--accent-primary);
}
input[type="checkbox"]:checked::after {
content: '';
position: absolute;
top: 2px;
left: 4px;
width: 4px;
height: 7px;
border: solid var(--bg-primary);
border-width: 0 2px 2px 0;
transform: rotate(45deg);
}
input[type="checkbox"]:hover {
border-color: var(--accent-primary);
}
/* Terminal cursor blink */
@keyframes blink {
0%, 50% { opacity: 1; }
51%, 100% { opacity: 0; }
}
/* Scan line effect */
@keyframes scanline {
0% { transform: translateY(-100%); }
100% { transform: translateY(100vh); }
}
/* Pulse glow */
@keyframes pulse-glow {
0%, 100% {
box-shadow: 0 0 5px var(--accent-dim);
}
50% {
box-shadow: 0 0 20px var(--accent-glow), 0 0 30px var(--accent-dim);
}
}
/* Tooltip animations */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(5px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.tooltip-enter {
animation: fadeIn 0.2s ease-out;
}