Files
openwork/apps/app/src/app/index.css
Source Open 874191d8f8 fix welcome workspace bootstrap flow (#1205)
* fix welcome workspace bootstrap flow

* fix workspace modal dark theme

* fix(automations): prefer server scheduler when connected

* fix(automations): keep context key stable across server startup

* fix(sidebar): refresh selected workspace sessions after switch

* refactor(sidebar): move workspace session loading into store

* refactor(sidebar): reload sessions per workspace fingerprint

* refactor(sidebar): refresh workspace lists after session mutations

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
Co-authored-by: Benjamin Shafii <ben@prologe.io>
2026-03-28 15:50:20 -07:00

285 lines
5.7 KiB
CSS

@import "tailwindcss";
@config "../../tailwind.config.ts";
@import "../styles/colors.css";
:root {
color-scheme: light;
--dls-surface: #ffffff;
--dls-sidebar: #f9fafb;
--dls-app-bg: #ffffff;
--dls-border: #f3f4f6;
--dls-accent: #011627;
--dls-accent-hover: #000000;
--dls-accent-rgb: 1 22 39;
--dls-text-primary: #111827;
--dls-text-secondary: #6b7280;
--dls-hover: #f3f4f6;
--dls-active: #eef2f7;
--dls-radius: 16px;
--dls-radius-lg: 24px;
--dls-shell-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
--dls-card-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}
[data-theme="dark"] {
color-scheme: dark;
--dls-surface: #121212;
--dls-sidebar: #1a1a1a;
--dls-app-bg: #161616;
--dls-border: #262626;
--dls-accent: #3b82f6;
--dls-accent-hover: #2563eb;
--dls-accent-rgb: 59 130 246;
--dls-text-primary: #ededed;
--dls-text-secondary: #9ca3af;
--dls-hover: #1f1f1f;
--dls-active: #2d2d2d;
--dls-shell-shadow: 0 18px 48px rgba(0, 0, 0, 0.32);
--dls-card-shadow: 0 14px 36px rgba(0, 0, 0, 0.24);
}
html,
body {
height: 100%;
}
html {
font-size: var(--openwork-font-size, 16px);
}
body {
margin: 0;
font-family:
"IBM Plex Sans",
Geist,
"Avenir Next",
Inter,
ui-sans-serif,
system-ui,
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
Roboto,
"Helvetica Neue",
Arial,
"Noto Sans",
"Apple Color Emoji",
"Segoe UI Emoji";
font-size: 0.875rem;
line-height: 1.5;
color: var(--dls-text-primary);
background-color: var(--dls-surface);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.ow-soft-shell {
border: 1px solid var(--dls-border);
background: var(--dls-surface);
border-radius: 2rem;
box-shadow: var(--dls-shell-shadow);
}
.ow-soft-card {
border: 1px solid var(--dls-border);
background: var(--dls-surface);
border-radius: 1.5rem;
box-shadow: var(--dls-card-shadow);
}
.ow-soft-card-quiet {
border: 1px solid var(--dls-border);
background: var(--dls-sidebar);
border-radius: 1.5rem;
}
.ow-button-primary {
display: inline-flex;
min-height: 48px;
align-items: center;
justify-content: center;
border-radius: 9999px;
background: var(--dls-accent);
color: #ffffff;
box-shadow: 0 8px 20px -16px rgba(var(--dls-accent-rgb), 0.45);
}
.ow-button-primary:hover:not(:disabled) {
background: var(--dls-accent-hover);
}
.ow-button-secondary {
display: inline-flex;
min-height: 48px;
align-items: center;
justify-content: center;
border-radius: 9999px;
border: 1px solid var(--dls-border);
background: var(--dls-surface);
color: var(--dls-text-primary);
box-shadow: var(--dls-card-shadow);
}
.ow-button-secondary:hover:not(:disabled) {
background: var(--dls-hover);
}
.ow-button-primary,
.ow-button-secondary {
padding: 0.75rem 1.25rem;
font-size: 13px;
font-weight: 500;
transition: background-color 150ms ease, color 150ms ease, transform 150ms ease, opacity 150ms ease;
}
.ow-button-primary:active:not(:disabled),
.ow-button-secondary:active:not(:disabled) {
transform: scale(0.99);
}
.ow-button-primary:disabled,
.ow-button-secondary:disabled {
opacity: 0.5;
}
.ow-status-pill {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 9999px;
padding: 0.25rem 0.625rem;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
}
.ow-status-pill-positive {
border: 1px solid rgba(16, 185, 129, 0.16);
background: #ecfdf5;
color: #047857;
}
.ow-status-pill-warning {
border: 1px solid rgba(245, 158, 11, 0.16);
background: #fffbeb;
color: #b45309;
}
.ow-status-pill-neutral {
border: 1px solid #e5e7eb;
background: #f9fafb;
color: #6b7280;
}
.ow-icon-tile {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 0.85rem;
background: #f4f6f8;
color: #011627;
}
.ow-icon-tile-muted {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 0.85rem;
background: #f1f5f9;
color: #6b7280;
}
.ow-input {
appearance: none;
width: 100%;
border: 0;
border-radius: 0.9rem;
background: #fbfbfc;
box-shadow: inset 0 0 0 1px #eceef1;
color: var(--dls-text-primary);
}
.ow-input::placeholder {
color: #9ca3af;
}
.ow-input:focus {
outline: none;
box-shadow: inset 0 0 0 1px rgba(var(--dls-accent-rgb), 0.28), 0 0 0 3px rgba(var(--dls-accent-rgb), 0.08);
}
/* Global clickable elements pointer */
button,
[role="button"],
a,
input[type="submit"],
input[type="button"],
input[type="checkbox"],
input[type="radio"],
select {
cursor: pointer;
}
button:disabled,
[role="button"][aria-disabled="true"],
input:disabled,
select:disabled {
cursor: not-allowed;
}
@utility animate-spin-slow {
animation: spin 3s linear infinite;
}
@keyframes soft-pulse {
0%,
100% {
transform: scale(1);
opacity: 0.4;
}
50% {
transform: scale(1.15);
opacity: 1;
}
}
@utility animate-soft-pulse {
animation: soft-pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
/* Highlight animation for just-saved command */
@keyframes command-highlight {
0% {
box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.6);
border-color: rgba(99, 102, 241, 0.8);
}
50% {
box-shadow: 0 0 0 8px rgba(99, 102, 241, 0);
border-color: rgba(99, 102, 241, 0.4);
}
100% {
box-shadow: 0 0 0 0 rgba(99, 102, 241, 0);
border-color: rgba(255, 255, 255, 0.08);
}
}
.command-just-saved {
animation: command-highlight 2s ease-out;
border-color: rgba(99, 102, 241, 0.8);
}
@keyframes progress-shimmer {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(200%);
}
}
@utility animate-progress-shimmer {
animation: progress-shimmer 2s infinite linear;
}