Download frontend/src/styles/globals.css from turtle89431/Moxie-Multimedia: direct link, hf CLI and curl.
- Browser
- Download file 10.7 kB
-
https://huggingface.co/turtle89431/Moxie-Multimedia/resolve/main/frontend/src/styles/globals.css
- Command line
-
hf download hf://turtle89431/Moxie-Multimedia/frontend/src/styles/globals.css
-
curl -L -o globals.css https://huggingface.co/turtle89431/Moxie-Multimedia/resolve/main/frontend/src/styles/globals.css
10.7 kB
| @config "../../tailwind.config.ts"; | |
| @import "tailwindcss/theme"; | |
| @import "tailwindcss/utilities"; | |
| @import "tw-animate-css"; | |
| @import "shadcn/tailwind.css"; | |
| /*---break--- | |
| */ | |
| @custom-variant dark (&:is(.dark *)); | |
| /** | |
| * Define CSS variables for light and dark themes, scoped under a custom class to avoid global conflicts. | |
| */ | |
| @theme inline { | |
| --color-background: var(--background); | |
| --color-foreground: var(--foreground); | |
| --color-card: var(--card); | |
| --color-card-foreground: var(--card-foreground); | |
| --color-popover: var(--popover); | |
| --color-popover-foreground: var(--popover-foreground); | |
| --color-primary: var(--primary); | |
| --color-primary-foreground: var(--primary-foreground); | |
| --color-secondary: var(--secondary); | |
| --color-secondary-foreground: var(--secondary-foreground); | |
| --color-muted: var(--muted); | |
| --color-muted-foreground: var(--muted-foreground); | |
| --color-accent: var(--accent); | |
| --color-accent-foreground: var(--accent-foreground); | |
| --color-destructive: var(--destructive); | |
| --color-destructive-foreground: var(--destructive-foreground); | |
| --color-border: var(--border); | |
| --color-input: var(--input); | |
| --color-ring: var(--ring); | |
| --color-highlight: var(--highlight); | |
| --color-prompt-semantic: var(--prompt-semantic); | |
| --color-prompt-dialogue: var(--prompt-dialogue); | |
| --color-panorama-axis-z: var(--panorama-axis-z); | |
| --color-image-tile-foreground: var(--image-tile-foreground); | |
| --radius-sm: calc(var(--radius) - 4px); | |
| --radius-md: calc(var(--radius) - 2px); | |
| --radius-lg: var(--radius); | |
| --radius-xl: calc(var(--radius) + 4px); | |
| --font-sans: var(--font-sans); | |
| --font-heading: var(--font-heading); | |
| --text-\[8px\]: 8px; | |
| --height-30: calc(var(--spacing) * 30); | |
| --color-surface-1: var(--surface-1); | |
| --color-surface-2: var(--surface-2); | |
| --color-surface-3: var(--surface-3); | |
| --color-surface-4: var(--surface-4); | |
| --color-surface-5: var(--surface-5); | |
| --color-surface-6: var(--surface-6); | |
| --color-surface-7: var(--surface-7); | |
| --color-surface-8: var(--surface-8); | |
| --shadow-surface-1: var(--shadow-1); | |
| --shadow-surface-2: var(--shadow-2); | |
| --shadow-surface-3: var(--shadow-3); | |
| --shadow-surface-4: var(--shadow-4); | |
| --shadow-surface-5: var(--shadow-5); | |
| --shadow-surface-6: var(--shadow-6); | |
| --shadow-surface-7: var(--shadow-7); | |
| --shadow-surface-8: var(--shadow-8); | |
| --color-dm-drop: var(--dm-drop); | |
| --color-dm-ring-high: var(--dm-ring-high); | |
| --color-dm-ring-mid: var(--dm-ring-mid); | |
| --color-dm-ring-base: var(--dm-ring-base); | |
| --color-dm-hi-peak: var(--dm-hi-peak); | |
| --color-dm-hi-high: var(--dm-hi-high); | |
| --color-dm-hi-mid: var(--dm-hi-mid); | |
| --color-dm-hi-base: var(--dm-hi-base); | |
| --shadow-8: var(--shadow-8); | |
| --shadow-7: var(--shadow-7); | |
| --shadow-6: var(--shadow-6); | |
| --shadow-5: var(--shadow-5); | |
| --shadow-4: var(--shadow-4); | |
| --shadow-3: var(--shadow-3); | |
| --shadow-2: var(--shadow-2); | |
| --shadow-1: var(--shadow-1); | |
| --color-shadow-color: var(--shadow-color); | |
| } | |
| /* All styles scoped under .__CUSTOM_NODE_CLASS__ to avoid global conflicts. | |
| * The placeholder is replaced with the lowercased project name by build.ts | |
| * after the Tailwind CSS build step. */ | |
| @layer base { | |
| .__CUSTOM_NODE_CLASS__ { | |
| /* Standard Tailwind-compatible variables - Light theme */ | |
| --checker-a: oklch(1 0 0); | |
| --checker-b: oklch(1 0 0); | |
| --background: oklch(1 0 0); | |
| --foreground: oklch(0.145 0 0); | |
| --card: oklch(1 0 0); | |
| --card-foreground: oklch(0.145 0 0); | |
| --popover: oklch(1 0 0); | |
| --popover-foreground: oklch(0.145 0 0); | |
| --primary: oklch(0.205 0 0); | |
| --primary-foreground: oklch(0.985 0 0); | |
| --secondary: oklch(0.97 0 0); | |
| --secondary-foreground: oklch(0.205 0 0); | |
| --muted: var(--comfy-input-bg); | |
| --muted-foreground: oklch(0.556 0 0); | |
| --accent: oklch(0.97 0 0); | |
| --accent-foreground: oklch(0.205 0 0); | |
| --destructive: oklch(0.577 0.245 27.325); | |
| --destructive-foreground: oklch(0.985 0 0); | |
| --highlight: oklch(73.286% 0.16689 115.634); | |
| --prompt-semantic: oklch(0.62 0.19 48); | |
| --prompt-dialogue: #cf3976; | |
| --panorama-axis-z: oklch(0.58 0.2 255); | |
| --image-tile-foreground: oklch(0.985 0 0); | |
| --warning: oklch(0.922 0.191 90); | |
| --multitrack-video-bg: oklch(0.42 0.08 195); | |
| --multitrack-video-bg-strong: oklch(0.34 0.09 195); | |
| --multitrack-video-border: oklch(0.82 0.08 195); | |
| --multitrack-video-text: oklch(0.96 0.02 195); | |
| --multitrack-video-waveform: #0A777E; | |
| --multitrack-audio-bg: #0E3058; | |
| --multitrack-audio-bg-strong: #0E3058; | |
| --multitrack-audio-title-bg: #274569; | |
| --multitrack-audio-waveform: #1581B3; | |
| --multitrack-audio-border: oklch(0.7 0.1 220); | |
| --multitrack-audio-text: oklch(0.96 0.02 245); | |
| --multitrack-task-bg: #744A82; | |
| --multitrack-task-bg-strong: #5F3B6A; | |
| --multitrack-task-border: #A783B2; | |
| --multitrack-task-text: oklch(0.96 0.01 260); | |
| --multitrack-subtitle-bg: #9D4937; | |
| --multitrack-subtitle-bg-strong: #7D3A2C; | |
| --multitrack-subtitle-border: #C9705A; | |
| --multitrack-subtitle-text: #ffffff; | |
| --multitrack-waveform: oklch(0.55 0.09 185); | |
| --border: var(--border-color); | |
| --input: oklch(0.922 0 0); | |
| --ring: oklch(0.708 0 0); | |
| --radius: 0.5rem; | |
| .nodeNew{ | |
| --muted:var(--component-node-widget-background); | |
| } | |
| @import "tailwindcss/preflight.css"; | |
| * { | |
| border-color: var(--border); | |
| } | |
| } | |
| /* Dark theme - active when body has dark-theme class */ | |
| .dark-theme .__CUSTOM_NODE_CLASS__{ | |
| --checker-a: oklch(0.145 0 0); | |
| --checker-b: oklch(0.205 0 0); | |
| --background: oklch(0.145 0 0); | |
| --foreground: oklch(0.985 0 0); | |
| --card: oklch(0.205 0 0); | |
| --card-foreground: oklch(0.985 0 0); | |
| --popover: oklch(0.205 0 0); | |
| --popover-foreground: oklch(0.985 0 0); | |
| --primary: oklch(0.922 0 0); | |
| --primary-foreground: oklch(0.205 0 0); | |
| --secondary: oklch(0.269 0 0); | |
| --secondary-foreground: oklch(0.985 0 0); | |
| --muted: var(--comfy-input-bg); | |
| --muted-foreground: oklch(0.708 0 0); | |
| --accent: oklch(0.269 0 0); | |
| --accent-foreground: oklch(0.985 0 0); | |
| --destructive: oklch(0.704 0.191 22.216); | |
| --destructive-foreground: oklch(0.985 0 0); | |
| --prompt-semantic: oklch(0.78 0.17 65); | |
| --prompt-dialogue: #cf3976; | |
| --panorama-axis-z: oklch(0.72 0.16 250); | |
| --multitrack-video-bg: oklch(0.42 0.08 195); | |
| --multitrack-video-bg-strong: oklch(0.34 0.09 195); | |
| --multitrack-video-border: oklch(0.82 0.08 195); | |
| --multitrack-video-text: oklch(0.96 0.02 195); | |
| --multitrack-video-waveform: #0A777E; | |
| --multitrack-audio-bg: #0E3058; | |
| --multitrack-audio-bg-strong: #0E3058; | |
| --multitrack-audio-title-bg: #274569; | |
| --multitrack-audio-waveform: #1581B3; | |
| --multitrack-audio-border: oklch(0.7 0.1 220); | |
| --multitrack-audio-text: oklch(0.96 0.02 245); | |
| --multitrack-task-bg: #744A82; | |
| --multitrack-task-bg-strong: #5F3B6A; | |
| --multitrack-task-border: #A783B2; | |
| --multitrack-task-text: oklch(0.96 0.01 260); | |
| --multitrack-subtitle-bg: #9D4937; | |
| --multitrack-subtitle-bg-strong: #7D3A2C; | |
| --multitrack-subtitle-border: #C9705A; | |
| --multitrack-subtitle-text: #ffffff; | |
| --multitrack-waveform: oklch(0.55 0.09 185); | |
| --border: var(--border-color); | |
| --input: oklch(1 0 0 / 15%); | |
| --ring: oklch(0.556 0 0); | |
| --highlight: oklch(96.109% 0.18336 113.683); | |
| } | |
| } | |
| /* Radix UI state attributes - needed because Tailwind arbitrary values don't work with data-* attributes */ | |
| @layer components { | |
| .__CUSTOM_NODE_CLASS__ [data-state="active"] { | |
| background-color: var(--background); | |
| color: var(--foreground); | |
| box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); | |
| } | |
| .__CUSTOM_NODE_CLASS__ [data-state="open"] { | |
| color: var(--foreground); | |
| } | |
| .__CUSTOM_NODE_CLASS__ [data-state="closed"] { | |
| color: var(--muted-foreground); | |
| } | |
| .__CUSTOM_NODE_CLASS__ [data-disabled="true"] { | |
| pointer-events: none; | |
| opacity: 0.5; | |
| } | |
| .__CUSTOM_NODE_CLASS__ .no-scrollbar { | |
| scrollbar-width: none; | |
| -ms-overflow-style: none; | |
| } | |
| .__CUSTOM_NODE_CLASS__ .no-scrollbar::-webkit-scrollbar { | |
| display: none; | |
| } | |
| .__CUSTOM_NODE_CLASS__ .text-gradient{ | |
| background: linear-gradient(90deg, var(--primary), var(--highlight)); | |
| -webkit-text-fill-color: #0000; | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| } | |
| .__CUSTOM_NODE_CLASS__ .task-image-grid-item, | |
| .__CUSTOM_NODE_CLASS__ .task-image-grid-add { | |
| transition: opacity 180ms ease; | |
| } | |
| .__CUSTOM_NODE_CLASS__ .task-segment-editor { | |
| container-type: inline-size; | |
| } | |
| @container (max-width: 40rem) { | |
| .__CUSTOM_NODE_CLASS__ .task-segment-editor .task-image-drop-zone { | |
| aspect-ratio: auto; | |
| width: clamp(10rem, 40%, 20rem); | |
| } | |
| .__CUSTOM_NODE_CLASS__ .task-segment-editor .task-image-picker-empty { | |
| aspect-ratio: auto; | |
| width: 100%; | |
| min-width: 0; | |
| padding-inline: 0.5rem; | |
| } | |
| .__CUSTOM_NODE_CLASS__ .task-segment-editor .task-image-grid { | |
| grid-template-columns: minmax(0, 1fr); | |
| } | |
| } | |
| } | |
| /* React DOM widgets are the containing block for every widget root. In Vue | |
| * node mode the slot itself may be auto-sized, so keep the container pinned to | |
| * its allocated node height instead of letting long prompt/content grow it. */ | |
| .comfyui-react-widget.__CUSTOM_NODE_CLASS__ { | |
| position: relative; | |
| display: block; | |
| width: 100%; | |
| height: 100%; | |
| min-width: 0; | |
| min-height: 0; | |
| max-height: 100%; | |
| box-sizing: border-box; | |
| overflow: hidden; | |
| contain: size layout paint; | |
| } | |
| /* Timeline's segment editor intentionally extends below the widget slot. */ | |
| .comfyui-react-widget.__CUSTOM_NODE_CLASS__.__CUSTOM_NODE_CLASS__-timeline-editor-open { | |
| overflow: visible; | |
| contain: size layout; | |
| z-index: 9999; | |
| } | |
| /* ββ Overlay management βββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| * When a Popover or ContextMenu is open, the widget container is elevated so | |
| * it stays interactive above the dismiss backdrop (z-9997). | |
| * The backdrop is a full-screen fixed div that intercepts clicks before they | |
| * reach the LiteGraph canvas β the only reliable dismiss approach in ComfyUI. */ | |
| .comfyui-react-widget.__CUSTOM_NODE_CLASS__-overlay-active { | |
| position: relative ; | |
| z-index: 9999 ; | |
| } | |
| /* Radix portal wrapper divs rendered into document.body. | |
| * pointer-events:none on the wrapper avoids capturing clicks in areas | |
| * where there is no actual popup content. */ | |
| body > .__CUSTOM_NODE_CLASS__ { | |
| display: block; | |
| visibility: visible; | |
| pointer-events: none; | |
| } | |
| body > .__CUSTOM_NODE_CLASS__ > * { | |
| pointer-events: auto; | |
| } | |