HyperView / frontend /src /app /globals.css
morozovdd's picture
feat: add HyperView app for space
23680f2
@import "dockview/dist/styles/dockview.css";
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
html,
body {
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
:root {
/* Rerun-inspired dark theme as default (dark-first) */
--background: 215 28% 7%; /* #0d1117 */
--foreground: 213 27% 92%; /* #e6edf3 */
--card: 215 21% 11%; /* #161b22 */
--card-foreground: 213 27% 92%;
--popover: 215 21% 11%;
--popover-foreground: 213 27% 92%;
--primary: 212 100% 67%; /* #58a6ff */
--primary-foreground: 215 28% 7%;
--secondary: 215 14% 17%; /* #21262d */
--secondary-foreground: 213 27% 92%;
--muted: 215 14% 17%;
--muted-foreground: 213 12% 58%; /* #8b949e */
--accent: 215 14% 17%;
--accent-foreground: 213 27% 92%;
--destructive: 0 62% 50%;
--destructive-foreground: 0 0% 98%;
--border: 215 14% 22%; /* #30363d */
--input: 215 14% 22%;
--ring: 212 100% 67%;
--radius: 0.375rem;
/* Custom Rerun-specific tokens */
--surface: 215 21% 11%; /* #161b22 */
--surface-light: 215 14% 17%; /* #21262d */
--surface-elevated: 215 14% 22%; /* #30363d */
--border-subtle: 215 14% 17%;
--text: 213 27% 92%; /* #e6edf3 */
--text-muted: 213 12% 58%; /* #8b949e */
--text-subtle: 215 10% 46%; /* #6e7681 */
--accent-cyan: 176 60% 53%; /* #39d3cc */
--accent-orange: 27 86% 59%; /* #f0883e */
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
font-size: 12px;
line-height: 16px;
letter-spacing: -0.15px;
font-weight: 500;
font-feature-settings: "liga" 1, "calt" 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
}
/* Custom scrollbar - Rerun style: 6px bar, 2px inner margin, 2px outer margin */
::-webkit-scrollbar {
width: 10px; /* 6px bar + 2px inner margin on each side */
height: 10px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: hsl(var(--muted-foreground) / 0.2);
border-radius: 3px;
border: 2px solid transparent;
background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover {
background: hsl(var(--muted-foreground) / 0.35);
border: 2px solid transparent;
background-clip: padding-box;
}
/* Firefox scrollbar */
* {
scrollbar-width: thin;
scrollbar-color: hsl(var(--muted-foreground) / 0.25) transparent;
}
/* Hide scrollbar for some elements */
.hide-scrollbar::-webkit-scrollbar {
display: none;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}
/* Scroll containers inside panels should keep scrollbars inset */
.panel-scroll {
scrollbar-gutter: stable;
}
/* Dockview theme overrides (match HyperView tokens) */
.hyperview-dockview {
--dv-background-color: hsl(var(--background));
--dv-group-view-background-color: hsl(var(--card));
--dv-tabs-and-actions-container-background-color: hsl(var(--secondary));
--dv-activegroup-visiblepanel-tab-background-color: hsl(var(--card));
--dv-activegroup-hiddenpanel-tab-background-color: hsl(var(--secondary));
--dv-inactivegroup-visiblepanel-tab-background-color: hsl(var(--secondary));
--dv-inactivegroup-hiddenpanel-tab-background-color: hsl(var(--secondary));
--dv-activegroup-visiblepanel-tab-color: hsl(var(--foreground));
--dv-activegroup-hiddenpanel-tab-color: hsl(var(--muted-foreground));
--dv-inactivegroup-visiblepanel-tab-color: hsl(var(--muted-foreground));
--dv-inactivegroup-hiddenpanel-tab-color: hsl(var(--muted-foreground));
--dv-tabs-and-actions-container-font-size: 12px;
--dv-tabs-and-actions-container-height: 24px;
--dv-tab-font-size: 12px;
--dv-tabs-container-scrollbar-color: hsl(var(--muted-foreground) / 0.25);
--dv-scrollbar-background-color: hsl(var(--muted-foreground) / 0.25);
--dv-tab-divider-color: hsl(var(--border));
--dv-separator-border: transparent;
--dv-paneview-header-border-color: hsl(var(--border));
--dv-sash-color: hsl(var(--border));
--dv-icon-hover-background-color: hsl(var(--accent));
--dv-active-sash-color: hsl(var(--primary));
--dv-drag-over-background-color: hsl(var(--primary) / 0.15);
--dv-drag-over-border-color: hsl(var(--primary) / 0.6);
/* Remove tab margins for flush appearance */
--dv-tab-margin: 0;
}
/* Remove any gaps between panels - Rerun-style flush layout */
.hyperview-dockview .dv-groupview {
border: none;
}
.hyperview-dockview .dv-tabs-and-actions-container {
border-bottom: 1px solid hsl(var(--border));
}
.hyperview-dockview .dv-tab {
padding: 0 8px;
height: 100%;
display: flex;
align-items: center;
line-height: 16px;
}
.hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal {
height: 6px;
border-radius: 3px;
}
/* Hide Dockview tab scrollbars (avoid extra bar under tabs) */
.hyperview-dockview .dv-tabs-container {
scrollbar-width: none;
}
.hyperview-dockview .dv-tabs-container::-webkit-scrollbar {
height: 0;
}
.hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal {
display: none;
}
/* Sash styling: transparent hit area with centered 1px visible line via pseudo-element */
.hyperview-dockview .dv-split-view-container > .dv-sash-container > .dv-sash {
/* Keep the sash itself transparent - we'll draw the line with ::after */
background-color: transparent !important;
}
/* Horizontal sash (vertical divider line) */
.hyperview-dockview .dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash::after {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 1px;
background-color: hsl(var(--border));
pointer-events: none;
}
.hyperview-dockview .dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-enabled:hover::after {
background-color: hsl(var(--primary));
}
/* Vertical sash (horizontal divider line) */
.hyperview-dockview .dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash::after {
content: "";
position: absolute;
left: 0;
right: 0;
top: 50%;
transform: translateY(-50%);
height: 1px;
background-color: hsl(var(--border));
pointer-events: none;
}
.hyperview-dockview .dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-enabled:hover::after {
background-color: hsl(var(--primary));
}