Download src/styles/agent-server-ui-style-scope.ts from SaylorTwift/openhands: direct link, hf CLI and curl.
- Browser
- Download file 4.57 kB
-
https://huggingface.co/SaylorTwift/openhands/resolve/main/src/styles/agent-server-ui-style-scope.ts
- Command line
-
hf download hf://SaylorTwift/openhands/src/styles/agent-server-ui-style-scope.ts
-
curl -L -o agent-server-ui-style-scope.ts https://huggingface.co/SaylorTwift/openhands/resolve/main/src/styles/agent-server-ui-style-scope.ts
4.57 kB
| export const AGENT_SERVER_UI_SCOPE_ATTRIBUTE = "data-agent-server-ui"; | |
| export const AGENT_SERVER_UI_SCOPE_SELECTOR = `[${AGENT_SERVER_UI_SCOPE_ATTRIBUTE}]`; | |
| export const AGENT_SERVER_UI_DEFAULT_THEME = "dark" as const; | |
| export type AgentServerUITheme = "dark" | "light" | "default"; | |
| /** Brand tokens controlled by color themes — not inlined on AgentServerUIRoot. */ | |
| export const AGENT_SERVER_UI_THEMEABLE_BRAND_VARIABLES = [ | |
| "--oh-color-primary", | |
| "--oh-accent", | |
| "--oh-warning", | |
| ] as const; | |
| export type AgentServerUIThemeableBrandVariable = | |
| (typeof AGENT_SERVER_UI_THEMEABLE_BRAND_VARIABLES)[number]; | |
| export const AGENT_SERVER_UI_DEFAULT_CSS_VARIABLES = { | |
| // Brand/button colors (--oh-color-primary, --oh-accent, --oh-warning) live in | |
| // tailwind.css and are overridden at runtime by applyColorTheme(); keep them | |
| // out of inline defaults so theme tokens are not blocked by element.style. | |
| "--oh-color-logo": "#cfb755", | |
| "--oh-color-base": "var(--cool-grey-950)", | |
| "--oh-color-base-secondary": "var(--cool-grey-925)", | |
| "--oh-color-danger": "#e76a5e", | |
| "--oh-color-success": "#a5e75e", | |
| "--oh-color-basic": "var(--cool-grey-400)", | |
| "--oh-color-tertiary": "var(--cool-grey-800)", | |
| "--oh-color-tertiary-light": "var(--cool-grey-300)", | |
| "--oh-color-content": "var(--cool-grey-100)", | |
| "--oh-color-content-2": "var(--cool-grey-50)", | |
| "--oh-background": "var(--cool-grey-950)", | |
| "--oh-foreground": "var(--cool-grey-100)", | |
| "--oh-surface": "var(--cool-grey-925)", | |
| "--oh-surface-foreground": "var(--cool-grey-100)", | |
| "--oh-surface-raised": "var(--cool-grey-900)", | |
| "--oh-surface-deep": "var(--cool-grey-975)", | |
| "--oh-overlay": "var(--cool-grey-925)", | |
| "--oh-overlay-foreground": "var(--cool-grey-100)", | |
| "--oh-muted": "var(--cool-grey-400)", | |
| "--oh-text-secondary": "var(--cool-grey-300)", | |
| "--oh-text-tertiary": "var(--cool-grey-200)", | |
| "--oh-text-dim": "var(--cool-grey-500)", | |
| "--oh-text-subtle": "var(--cool-grey-600)", | |
| "--oh-interactive-hover": "var(--cool-grey-700)", | |
| "--oh-interactive-hover-low": "var(--cool-grey-900)", | |
| "--oh-interactive-active": "var(--cool-grey-800)", | |
| "--oh-interactive-selected": "var(--cool-grey-600)", | |
| "--oh-scrollbar": "color-mix(in srgb, var(--cool-grey-400) 30%, transparent)", | |
| "--oh-scrollbar-hover": | |
| "color-mix(in srgb, var(--cool-grey-400) 50%, transparent)", | |
| "--oh-default": "var(--cool-grey-800)", | |
| "--oh-default-foreground": "var(--cool-grey-100)", | |
| "--oh-accent-foreground": "var(--cool-grey-950)", | |
| "--oh-success": "#a5e75e", | |
| "--oh-success-foreground": "var(--cool-grey-950)", | |
| "--oh-warning-foreground": "var(--cool-grey-950)", | |
| "--oh-danger": "#e76a5e", | |
| "--oh-danger-foreground": "var(--cool-grey-50)", | |
| "--oh-segment": "var(--cool-grey-925)", | |
| "--oh-segment-foreground": "var(--cool-grey-100)", | |
| "--oh-border-width": "1px", | |
| "--oh-field-border-width": "1px", | |
| "--oh-border": "var(--cool-grey-700)", | |
| "--oh-border-input": "var(--cool-grey-600)", | |
| "--oh-border-subtle": "var(--cool-grey-800)", | |
| "--oh-separator": "rgba(113, 120, 136, 0.5)", | |
| "--oh-focus": "#ffffff", | |
| "--oh-status-success": "#1FBD53", | |
| "--oh-status-error": "#FF684E", | |
| "--oh-link": "var(--cool-grey-100)", | |
| "--oh-radius": "8px", | |
| "--oh-field-radius": "8px", | |
| "--oh-surface-shadow": "none", | |
| "--oh-overlay-shadow": "none", | |
| "--oh-field-shadow": "none", | |
| "--oh-bg-dark": "var(--cool-grey-950)", | |
| "--oh-bg-light": "var(--cool-grey-900)", | |
| "--oh-bg-input": "var(--cool-grey-800)", | |
| "--oh-bg-workspace": "var(--cool-grey-925)", | |
| "--oh-text-editor-base": "var(--cool-grey-400)", | |
| "--oh-text-editor-active": "var(--cool-grey-300)", | |
| "--oh-bg-editor-sidebar": "var(--cool-grey-925)", | |
| "--oh-bg-editor-active": "var(--cool-grey-900)", | |
| "--oh-border-editor-sidebar": "var(--cool-grey-800)", | |
| "--oh-bg-neutral-muted": | |
| "color-mix(in srgb, var(--cool-grey-300) 20%, transparent)", | |
| } as const; | |
| export type AgentServerUICssVariableName = | |
| | keyof typeof AGENT_SERVER_UI_DEFAULT_CSS_VARIABLES | |
| | AgentServerUIThemeableBrandVariable; | |
| export type AgentServerUIStyleOverrides = Partial< | |
| Record<AgentServerUICssVariableName, string> | |
| >; | |
| const GLOBAL_SCOPE_SELECTORS = new Set([":root", "body", "html"]); | |
| export function transformAgentServerUISelector( | |
| prefix: string, | |
| selector: string, | |
| prefixedSelector: string, | |
| ): string { | |
| if (selector.includes(prefix)) { | |
| return selector; | |
| } | |
| if (selector.includes(":host")) { | |
| return selector.replaceAll(":host", prefix); | |
| } | |
| if (GLOBAL_SCOPE_SELECTORS.has(selector.trim())) { | |
| return prefix; | |
| } | |
| return prefixedSelector; | |
| } | |