style(theme): apply MapleDeploy palette and fonts
This commit is contained in:
parent
00e5a39750
commit
f5a80f5caf
25 changed files with 217 additions and 154 deletions
|
|
@ -118,7 +118,7 @@
|
|||
|
||||
'navigate' => [
|
||||
'show_progress_bar' => true,
|
||||
'progress_bar_color' => '#6b16ed',
|
||||
'progress_bar_color' => '#fde047', // MapleDeploy branding: warning yellow
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -14,57 +14,101 @@
|
|||
|
||||
@custom-variant dark (&:where(.dark, .dark *));
|
||||
|
||||
/* MapleDeploy branding: Canadian red accent, stone greys */
|
||||
@theme {
|
||||
--font-sans: 'Geist Sans', Inter, sans-serif;
|
||||
--font-mono: 'Geist Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
||||
--font-geist-sans: 'Geist Sans', Inter, sans-serif;
|
||||
--font-logs: 'Geist Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
||||
--font-sans: Inter, sans-serif;
|
||||
--font-display: 'Overlock', sans-serif;
|
||||
--font-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
||||
--font-logs: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
||||
|
||||
--color-base: #101010;
|
||||
--color-warning: #fcd452;
|
||||
--color-base: #292524;
|
||||
--color-warning: #fde047;
|
||||
--color-warning-50: #fefce8;
|
||||
--color-warning-100: #fef9c3;
|
||||
--color-warning-200: #fef08a;
|
||||
--color-warning-300: #fde047;
|
||||
--color-warning-400: #fcd452;
|
||||
--color-warning-500: #facc15;
|
||||
--color-warning-400: #facc15;
|
||||
--color-warning-500: #eab308;
|
||||
--color-warning-600: #ca8a04;
|
||||
--color-warning-700: #a16207;
|
||||
--color-warning-800: #854d0e;
|
||||
--color-warning-900: #713f12;
|
||||
--color-success: #22C55E;
|
||||
--color-error: #dc2626;
|
||||
--color-coollabs-50: #f5f0ff;
|
||||
--color-coollabs: #6b16ed;
|
||||
--color-coollabs-100: #7317ff;
|
||||
--color-coollabs-200: #5a12c7;
|
||||
--color-coollabs-300: #4a0fa3;
|
||||
--color-coolgray-100: #181818;
|
||||
--color-coolgray-200: #202020;
|
||||
--color-coolgray-300: #242424;
|
||||
--color-coolgray-400: #282828;
|
||||
--color-coolgray-500: #323232;
|
||||
/* MapleDeploy branding: red palette hue-normalized to OKLCH h=29.38 (#D52A1E) */
|
||||
--color-error: #dc281c;
|
||||
--color-coollabs-50: #fef3f1;
|
||||
--color-coollabs: #d52b1f;
|
||||
--color-coollabs-100: #f34d3d;
|
||||
--color-coollabs-200: #bc251a;
|
||||
--color-coollabs-300: #9c2117;
|
||||
/* Override Tailwind's red scale so red-* utility classes match the MapleDeploy brand hue */
|
||||
--color-red-50: #fef1ef;
|
||||
--color-red-100: #ffe3df;
|
||||
--color-red-200: #ffcec5;
|
||||
--color-red-300: #feaa9d;
|
||||
--color-red-400: #fb7968;
|
||||
--color-red-500: #f34d3d;
|
||||
--color-red-600: #d52b1f;
|
||||
--color-red-700: #bc251a;
|
||||
--color-red-800: #9c2117;
|
||||
--color-red-900: #812219;
|
||||
--color-red-950: #460d08;
|
||||
/* MapleDeploy branding: coolgray remapped to stone (coolgray-200 interpolated, see COOLIFY_FORK.md) */
|
||||
--color-coolgray-100: #1c1917;
|
||||
--color-coolgray-200: #35322f;
|
||||
--color-coolgray-300: #44403c;
|
||||
--color-coolgray-400: #57534e;
|
||||
--color-coolgray-500: #78716c;
|
||||
|
||||
/* Graphite design language (ported from ref/frontend). Layered neutral
|
||||
surfaces + translucent hairlines. See DESIGN.md. */
|
||||
--color-app: #0c0c0d;
|
||||
/* Canvas: neutral near-black (oklch), not pure black */
|
||||
--color-panel: oklch(10% 0 0);
|
||||
--color-surface: #161618;
|
||||
--color-raised: #1c1c1e;
|
||||
--color-selected: #26262a;
|
||||
--color-fg: #f2f2f2;
|
||||
--color-fg-dim: #b4b4b8;
|
||||
--color-fg-faint: #6e6e74;
|
||||
--color-accent: #6b16ed;
|
||||
surfaces + translucent hairlines. See DESIGN.md.
|
||||
MapleDeploy branding: every Graphite grey below is re-tinted to the warm
|
||||
stone hue at matched OKLCH lightness (see COOLIFY_FORK.md). */
|
||||
--color-app: #0e0c0b; /* MapleDeploy branding: stone remap (was #0c0c0d) */
|
||||
/* Canvas: warm near-black (oklch), not pure black */
|
||||
--color-panel: oklch(10% 0.0027 49.25); /* MapleDeploy branding: stone remap (was oklch(10% 0 0)) */
|
||||
--color-surface: #181614; /* MapleDeploy branding: stone remap (was #161618) */
|
||||
--color-raised: #1f1b1a; /* MapleDeploy branding: stone remap (was #1c1c1e) */
|
||||
--color-selected: #2a2524; /* MapleDeploy branding: stone remap (was #26262a) */
|
||||
--color-fg: #f2f2f1; /* MapleDeploy branding: stone remap (was #f2f2f2) */
|
||||
--color-fg-dim: #b9b3b0; /* MapleDeploy branding: stone remap (was #b4b4b8) */
|
||||
--color-fg-faint: #756d67; /* MapleDeploy branding: stone remap (was #6e6e74) */
|
||||
--color-accent: #d52b1f; /* MapleDeploy branding: accent → red-600 */
|
||||
--color-accent-foreground: #ffffff;
|
||||
--color-hairline: rgba(255, 255, 255, 0.08);
|
||||
--color-nav-text: #525252;
|
||||
--color-nav-muted: #666666;
|
||||
--color-nav-active: #171717;
|
||||
--color-log: #0d0d0d;
|
||||
--color-nav-text: #56514c; /* MapleDeploy branding: stone remap (was #525252) */
|
||||
--color-nav-muted: #6b655f; /* MapleDeploy branding: stone remap (was #666666) */
|
||||
--color-nav-active: #191615; /* MapleDeploy branding: stone remap (was #171717) */
|
||||
--color-log: #0f0d0b; /* MapleDeploy branding: stone remap (was #0d0d0d) */
|
||||
|
||||
--shadow-modal: 0 24px 64px rgba(0, 0, 0, 0.55), 0 4px 16px rgba(0, 0, 0, 0.4);
|
||||
|
||||
/* MapleDeploy branding: remap neutral and gray → stone for warm tone consistency with marketing/dashboard.
|
||||
Upstream uses neutral for text/borders and gray for backgrounds/surfaces. Remapping both to stone
|
||||
warms the entire UI to match our design system, covering ~1000 class references without touching
|
||||
any Blade templates. */
|
||||
--color-neutral-50: oklch(98.5% 0.001 106.423);
|
||||
--color-neutral-100: oklch(97% 0.001 106.424);
|
||||
--color-neutral-200: oklch(92.3% 0.003 48.717);
|
||||
--color-neutral-300: oklch(86.9% 0.005 56.366);
|
||||
--color-neutral-400: oklch(70.9% 0.01 56.259);
|
||||
--color-neutral-500: oklch(55.3% 0.013 58.071);
|
||||
--color-neutral-600: oklch(44.4% 0.011 73.639);
|
||||
--color-neutral-700: oklch(37.4% 0.01 67.558);
|
||||
--color-neutral-800: oklch(26.8% 0.007 34.298);
|
||||
--color-neutral-900: oklch(21.6% 0.006 56.043);
|
||||
--color-neutral-950: oklch(14.7% 0.004 49.25);
|
||||
--color-gray-50: oklch(98.5% 0.001 106.423);
|
||||
--color-gray-100: oklch(97% 0.001 106.424);
|
||||
--color-gray-200: oklch(92.3% 0.003 48.717);
|
||||
--color-gray-300: oklch(86.9% 0.005 56.366);
|
||||
--color-gray-400: oklch(70.9% 0.01 56.259);
|
||||
--color-gray-500: oklch(55.3% 0.013 58.071);
|
||||
--color-gray-600: oklch(44.4% 0.011 73.639);
|
||||
--color-gray-700: oklch(37.4% 0.01 67.558);
|
||||
--color-gray-800: oklch(26.8% 0.007 34.298);
|
||||
--color-gray-900: oklch(21.6% 0.006 56.043);
|
||||
--color-gray-950: oklch(14.7% 0.004 49.25);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -258,7 +302,8 @@ @layer components {
|
|||
*/
|
||||
html,
|
||||
body {
|
||||
@apply w-full min-h-full bg-gray-50 dark:bg-app dark:text-fg-dim;
|
||||
/* MapleDeploy branding: text-stone-800 body text matches marketing/dashboard */
|
||||
@apply w-full min-h-full text-stone-800 bg-gray-50 dark:bg-app dark:text-fg-dim;
|
||||
}
|
||||
|
||||
body {
|
||||
|
|
@ -293,19 +338,20 @@ button[isHighlighted]:not(:disabled) {
|
|||
}
|
||||
|
||||
h1 {
|
||||
@apply text-[24px] leading-7 font-semibold tracking-tight dark:text-white;
|
||||
/* MapleDeploy branding: font-display (Overlock) on semantic headings */
|
||||
@apply text-[24px] leading-7 font-semibold tracking-tight font-display dark:text-white;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-xl font-bold dark:text-white;
|
||||
@apply text-xl font-bold font-display dark:text-white;
|
||||
}
|
||||
|
||||
h3 {
|
||||
@apply text-lg font-bold dark:text-white;
|
||||
@apply text-lg font-bold font-display dark:text-white;
|
||||
}
|
||||
|
||||
h4 {
|
||||
@apply text-base font-bold dark:text-white;
|
||||
@apply text-base font-bold font-display dark:text-white;
|
||||
}
|
||||
|
||||
a {
|
||||
|
|
@ -473,8 +519,8 @@ .application-console-shell,
|
|||
.terminal-fullscreen-shell {
|
||||
position: relative;
|
||||
isolation: isolate;
|
||||
color: #f2f2f2;
|
||||
background-color: #121214;
|
||||
color: #f2f2f1; /* MapleDeploy branding: stone remap (was #f2f2f2) */
|
||||
background-color: #141210; /* MapleDeploy branding: stone remap (was #121214) */
|
||||
}
|
||||
|
||||
.application-console-shell {
|
||||
|
|
@ -523,7 +569,7 @@ html:not(.dark) .application-console-shell[data-console-theme="system"] .applica
|
|||
|
||||
html.dark .application-console-shell[data-console-theme="system"],
|
||||
html.dark .terminal-fullscreen-shell[data-console-theme="system"] {
|
||||
--console-theme-background: #121214;
|
||||
--console-theme-background: #141210; /* MapleDeploy branding: stone remap (was #121214) */
|
||||
--console-theme-border: rgb(255 255 255 / 0.08);
|
||||
}
|
||||
|
||||
|
|
@ -935,26 +981,26 @@ :root {
|
|||
}
|
||||
|
||||
.dark {
|
||||
--color-accent: #fcd452;
|
||||
--coollabs-canvas: oklch(10% 0 0);
|
||||
--color-accent: #fde047; /* MapleDeploy branding: dark-mode accent → warning */
|
||||
--coollabs-canvas: oklch(10% 0.0027 49.25); /* MapleDeploy branding: stone remap */
|
||||
/* elevated (card shells/headers) and recessed (input fills) sit a touch
|
||||
above the canvas so they read lighter than near-black */
|
||||
--coollabs-elevated: oklch(15% 0 0);
|
||||
--coollabs-recessed: oklch(20% 0 0);
|
||||
--coollabs-base: oklch(17% 0 0);
|
||||
--coollabs-fill: oklch(26.9% 0 0);
|
||||
--coollabs-line: oklch(32% 0 0);
|
||||
--coollabs-hairline: oklch(26.9% 0 0);
|
||||
--coollabs-subtle: oklch(70.8% 0 0);
|
||||
--color-nav-text: #a8a8b0;
|
||||
--color-nav-muted: #7a7a84;
|
||||
--color-nav-active: #f2f2f2;
|
||||
--coollabs-elevated: oklch(15% 0.0041 49.55); /* MapleDeploy branding: stone remap */
|
||||
--coollabs-recessed: oklch(20% 0.0055 54.47); /* MapleDeploy branding: stone remap */
|
||||
--coollabs-base: oklch(17% 0.0047 51.51); /* MapleDeploy branding: stone remap */
|
||||
--coollabs-fill: oklch(26.9% 0.007 34.3); /* MapleDeploy branding: stone remap (≈ stone-800) */
|
||||
--coollabs-line: oklch(32% 0.0085 50.61); /* MapleDeploy branding: stone remap */
|
||||
--coollabs-hairline: oklch(26.9% 0.007 34.3); /* MapleDeploy branding: stone remap (≈ stone-800) */
|
||||
--coollabs-subtle: oklch(70.8% 0.01 56.27); /* MapleDeploy branding: stone remap (≈ stone-400) */
|
||||
--color-nav-text: #aea8a3; /* MapleDeploy branding: stone remap (was #a8a8b0) */
|
||||
--color-nav-muted: #817974; /* MapleDeploy branding: stone remap (was #7a7a84) */
|
||||
--color-nav-active: #f2f2f1; /* MapleDeploy branding: stone remap (was #f2f2f2) */
|
||||
}
|
||||
|
||||
/* Theme surfaces are derived from one brand color. Changing
|
||||
--theme-base-color is enough to generate a complete dark surface ladder. */
|
||||
html[data-theme="custom"] {
|
||||
--theme-base-color: #6b16ed;
|
||||
--theme-base-color: #d52b1f; /* MapleDeploy branding: default custom-theme base → red-600 */
|
||||
--theme-bright-color: color-mix(in srgb, var(--theme-base-color) 85%, white);
|
||||
--theme-scrollbar-thumb: color-mix(in srgb, var(--theme-bright-color) 70%, var(--theme-accent-foreground));
|
||||
--theme-border-color: color-mix(in oklab, var(--theme-base-color) 42%, #52525b);
|
||||
|
|
@ -1608,7 +1654,7 @@ .resource-heading-tabs-scroller {
|
|||
|
||||
.dark .resource-heading-tabs-scroller {
|
||||
/* Matches dark:bg-white/[0.035] pill track + panel so fade blends */
|
||||
--resource-heading-tabs-fade: color-mix(in srgb, var(--color-panel, #0a0a0a) 96.5%, white);
|
||||
--resource-heading-tabs-fade: color-mix(in srgb, var(--color-panel, #0b0a09) 96.5%, white); /* MapleDeploy branding: stone remap */
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control {
|
||||
|
|
@ -1673,8 +1719,8 @@ .resource-heading-tabs-control-icon {
|
|||
}
|
||||
|
||||
.dark .resource-heading-tabs-control-icon {
|
||||
color: var(--color-fg-dim, #a3a3a3);
|
||||
background: var(--color-raised, #171717);
|
||||
color: var(--color-fg-dim, #a8a29e); /* MapleDeploy branding: stone remap */
|
||||
background: var(--color-raised, #191615); /* MapleDeploy branding: stone remap */
|
||||
box-shadow:
|
||||
0 1px 2px rgba(0, 0, 0, 0.35),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.1);
|
||||
|
|
@ -1688,8 +1734,8 @@ .resource-heading-tabs-control:focus-visible .resource-heading-tabs-control-icon
|
|||
|
||||
.dark .resource-heading-tabs-control:hover .resource-heading-tabs-control-icon,
|
||||
.dark .resource-heading-tabs-control:focus-visible .resource-heading-tabs-control-icon {
|
||||
color: var(--color-fg, #fafafa);
|
||||
background: var(--color-raised, #171717);
|
||||
color: var(--color-fg, #fafaf9); /* MapleDeploy branding: stone remap */
|
||||
background: var(--color-raised, #191615); /* MapleDeploy branding: stone remap */
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control:focus {
|
||||
|
|
@ -1698,7 +1744,7 @@ .resource-heading-tabs-control:focus {
|
|||
|
||||
.resource-heading-tabs-control:focus-visible .resource-heading-tabs-control-icon {
|
||||
box-shadow:
|
||||
0 0 0 2px color-mix(in srgb, var(--color-coollabs, #6b16ed) 45%, transparent),
|
||||
0 0 0 2px color-mix(in srgb, var(--color-coollabs, #d52b1f) 45%, transparent), /* MapleDeploy branding */
|
||||
0 0 0 1px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
|
|
@ -2034,7 +2080,7 @@ .dark .searchable-listbox-search-input {
|
|||
}
|
||||
|
||||
.searchable-listbox-search-input::placeholder {
|
||||
color: var(--color-fg-faint, #737373);
|
||||
color: var(--color-fg-faint, #78716c); /* MapleDeploy branding: stone remap */
|
||||
}
|
||||
|
||||
.searchable-listbox-search-input:focus {
|
||||
|
|
@ -2067,7 +2113,7 @@ .searchable-listbox-empty {
|
|||
padding: 0.75rem 0.5rem;
|
||||
text-align: center;
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-fg-dim, #737373);
|
||||
color: var(--color-fg-dim, #78716c); /* MapleDeploy branding: stone remap */
|
||||
}
|
||||
|
||||
/* Flush layer-card body (tables and other full-bleed content) */
|
||||
|
|
@ -2995,7 +3041,7 @@ .logs-viewer {
|
|||
|
||||
.dark .logs-viewer {
|
||||
background: var(--color-log);
|
||||
color: #f5f5f5;
|
||||
color: #f5f5f4; /* MapleDeploy branding: stone remap (stone-100) */
|
||||
}
|
||||
|
||||
.logs-viewer-toolbar {
|
||||
|
|
@ -3077,7 +3123,7 @@ .logs-viewer-lines-label {
|
|||
}
|
||||
|
||||
.dark .logs-viewer-lines-label {
|
||||
color: var(--color-fg-faint, #6e6e74);
|
||||
color: var(--color-fg-faint, #756d67); /* MapleDeploy branding: stone remap */
|
||||
}
|
||||
|
||||
.logs-viewer-lines-input {
|
||||
|
|
@ -3114,7 +3160,7 @@ .logs-viewer-status-badge {
|
|||
.dark .logs-viewer-status-badge {
|
||||
border-color: rgba(255, 255, 255, 0.1) !important;
|
||||
background: rgba(255, 255, 255, 0.05) !important;
|
||||
color: #d4d4d4 !important;
|
||||
color: #d6d3d1 !important; /* MapleDeploy branding: stone remap (stone-300) */
|
||||
}
|
||||
|
||||
/* Section header status (proxy/sentinel) stays inline with title on mobile */
|
||||
|
|
@ -3239,12 +3285,12 @@ .logs-viewer-btn:hover {
|
|||
}
|
||||
|
||||
.dark .logs-viewer-btn {
|
||||
color: #a3a3a3;
|
||||
color: #a8a29e; /* MapleDeploy branding: stone remap (stone-400) */
|
||||
}
|
||||
|
||||
.dark .logs-viewer-btn:hover {
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
color: #f5f5f5;
|
||||
color: #f5f5f4; /* MapleDeploy branding: stone remap (stone-100) */
|
||||
}
|
||||
|
||||
.logs-viewer-btn-active {
|
||||
|
|
|
|||
|
|
@ -70,18 +70,12 @@ @font-face {
|
|||
src: url('../fonts/inter-v13-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-regular.woff2') format('woff2');
|
||||
}
|
||||
|
||||
/* MapleDeploy branding: Overlock for headings */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: 'Geist Mono';
|
||||
font-family: 'Overlock';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
src: url('../fonts/geist-mono-variable.woff2') format('woff2');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: 'Geist Sans';
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
src: url('../fonts/geist-sans-variable.woff2') format('woff2');
|
||||
font-weight: 900;
|
||||
src: url('../fonts/overlock-v19-latin-900.woff2') format('woff2'),
|
||||
url('../fonts/overlock-v19-latin-900.ttf') format('truetype');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,15 +36,15 @@ @utility input-sticky {
|
|||
box-shadow: inset 4px 0 0 transparent, inset 0 0 0 1px #e5e5e5;
|
||||
|
||||
&:where(.dark, .dark *) {
|
||||
box-shadow: inset 4px 0 0 transparent, inset 0 0 0 1px #242424;
|
||||
box-shadow: inset 4px 0 0 transparent, inset 0 0 0 1px #272322; /* MapleDeploy branding: stone remap (was #242424) */
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
box-shadow: inset 4px 0 0 #6b16ed, inset 0 0 0 1px #e5e5e5;
|
||||
box-shadow: inset 4px 0 0 #d52b1f, inset 0 0 0 1px #e5e5e5;
|
||||
}
|
||||
|
||||
&:where(.dark, .dark *):focus-visible {
|
||||
box-shadow: inset 4px 0 0 #fcd452, inset 0 0 0 1px #242424;
|
||||
box-shadow: inset 4px 0 0 #fde047, inset 0 0 0 1px #272322; /* MapleDeploy branding: stone remap (was #242424) */
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -178,7 +178,7 @@ @utility tag {
|
|||
}
|
||||
|
||||
@utility add-tag {
|
||||
@apply flex items-center px-2 text-xs cursor-pointer dark:text-neutral-500/20 text-neutral-500 group-hover:text-neutral-700 dark:group-hover:text-white dark:hover:bg-coolgray-300 hover:bg-neutral-200;
|
||||
@apply flex items-center px-2 text-xs cursor-pointer dark:text-neutral-500 text-neutral-500 group-hover:text-neutral-700 dark:group-hover:text-white dark:hover:bg-coolgray-300 hover:bg-neutral-200;
|
||||
}
|
||||
|
||||
@utility user-menu-item {
|
||||
|
|
@ -272,7 +272,8 @@ @utility icon {
|
|||
}
|
||||
|
||||
@utility scrollbar {
|
||||
@apply scrollbar-thumb-coollabs-100 scrollbar-track-neutral-200 dark:scrollbar-thumb-coollabs-100 dark:scrollbar-track-coolgray-200 scrollbar-thin;
|
||||
/* MapleDeploy branding: yellow scrollbar thumb instead of Coolify brand color */
|
||||
@apply scrollbar-thumb-warning scrollbar-track-neutral-200 dark:scrollbar-thumb-warning dark:scrollbar-track-coolgray-200 scrollbar-thin;
|
||||
}
|
||||
|
||||
@utility main {
|
||||
|
|
@ -332,7 +333,8 @@ @utility description {
|
|||
}
|
||||
|
||||
@utility bg-coollabs-gradient {
|
||||
@apply from-purple-500 via-pink-500 to-red-500 bg-linear-to-r;
|
||||
/* MapleDeploy branding */
|
||||
@apply from-red-700 via-red-500 to-red-400 bg-linear-to-r;
|
||||
}
|
||||
|
||||
@utility text-helper {
|
||||
|
|
@ -396,7 +398,7 @@ @utility log-warning {
|
|||
}
|
||||
|
||||
@utility log-debug {
|
||||
@apply bg-purple-500/10 dark:bg-purple-500/15;
|
||||
@apply bg-stone-500/10 dark:bg-stone-500/15;
|
||||
}
|
||||
|
||||
@utility log-info {
|
||||
|
|
|
|||
BIN
resources/fonts/overlock-v19-latin-900.ttf
Normal file
BIN
resources/fonts/overlock-v19-latin-900.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/overlock-v19-latin-900.woff2
Normal file
BIN
resources/fonts/overlock-v19-latin-900.woff2
Normal file
Binary file not shown.
|
|
@ -43,7 +43,7 @@ function createApplicationTerminalTheme(accent, colors = {}) {
|
|||
return {
|
||||
...baseApplicationTerminalTheme,
|
||||
cursor: accent,
|
||||
cursorAccent: '#101012',
|
||||
cursorAccent: '#12100e', // MapleDeploy branding: stone remap (was #101012)
|
||||
selectionBackground: `${accent}66`,
|
||||
...colors,
|
||||
};
|
||||
|
|
@ -69,7 +69,7 @@ function createSystemTerminalTheme() {
|
|||
}
|
||||
|
||||
if (document.documentElement.classList.contains('dark')) {
|
||||
return createApplicationTerminalTheme('#8C8E9C');
|
||||
return createApplicationTerminalTheme('#958D89'); // MapleDeploy branding: stone remap (was #8C8E9C)
|
||||
}
|
||||
|
||||
return createApplicationTerminalTheme('#52525b', {
|
||||
|
|
@ -143,7 +143,7 @@ const applicationTerminalThemes = {
|
|||
cyan: '#51d5d5',
|
||||
brightMagenta: '#ffa1d4',
|
||||
}),
|
||||
'shadows-transparent': createApplicationTerminalTheme('#8C8E9C'),
|
||||
'shadows-transparent': createApplicationTerminalTheme('#958D89'), // MapleDeploy branding: stone remap (was #8C8E9C)
|
||||
};
|
||||
|
||||
function logTerminal(level, message, ...context) {
|
||||
|
|
|
|||
|
|
@ -99,10 +99,11 @@
|
|||
{{-- Unified Input Container with Tags Inside --}}
|
||||
<div @click="$refs.searchInput.focus()" x-data="{ focused: false }" @focusin="focused = true" @focusout="focused = false"
|
||||
class="flex flex-wrap gap-1.5 max-h-40 overflow-y-auto scrollbar py-1.5 px-2 w-full text-sm rounded-sm border-0 bg-white dark:bg-coolgray-100 cursor-text px-1 text-black dark:text-white"
|
||||
{{-- MapleDeploy branding: red accent instead of Coolify purple; dark border #272322 stone remap (was #242424) --}}
|
||||
:style="(() => {
|
||||
const isDark = document.documentElement.classList.contains('dark');
|
||||
const accent = isDark ? '#fcd452' : '#6b16ed';
|
||||
const border = isDark ? '#242424' : '#e5e5e5';
|
||||
const accent = isDark ? '#fde047' : '#d52b1f';
|
||||
const border = isDark ? '#272322' : '#e5e5e5';
|
||||
return focused
|
||||
? 'box-shadow: inset 4px 0 0 ' + accent + ', inset 0 0 0 2px ' + border + ';'
|
||||
: 'box-shadow: inset 4px 0 0 transparent, inset 0 0 0 2px ' + border + ';';
|
||||
|
|
@ -110,7 +111,7 @@ class="flex flex-wrap gap-1.5 max-h-40 overflow-y-auto scrollbar py-1.5 px-2 w-
|
|||
:class="{
|
||||
'opacity-50': {{ $disabled ? 'true' : 'false' }}
|
||||
}" wire:loading.class="opacity-50"
|
||||
wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]">
|
||||
wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]">
|
||||
|
||||
{{-- Selected Tags Inside Input --}}
|
||||
<template x-for="value in selected" :key="value">
|
||||
|
|
@ -240,17 +241,18 @@ class="pointer-events-none absolute inset-0 rounded-[5px] border border-neutral-
|
|||
{{-- Input Container --}}
|
||||
<div @click="openDropdown()" x-data="{ focused: false }" @focusin="focused = true" @focusout="focused = false"
|
||||
class="flex items-center gap-2 py-1.5 w-full text-sm rounded-sm border-0 bg-white dark:bg-coolgray-100 cursor-text text-black dark:text-white"
|
||||
{{-- MapleDeploy branding: red accent instead of Coolify purple; dark border #272322 stone remap (was #242424) --}}
|
||||
:style="(() => {
|
||||
const isDark = document.documentElement.classList.contains('dark');
|
||||
const accent = isDark ? '#fcd452' : '#6b16ed';
|
||||
const border = isDark ? '#242424' : '#e5e5e5';
|
||||
const accent = isDark ? '#fde047' : '#d52b1f';
|
||||
const border = isDark ? '#272322' : '#e5e5e5';
|
||||
return focused
|
||||
? 'box-shadow: inset 4px 0 0 ' + accent + ', inset 0 0 0 2px ' + border + ';'
|
||||
: 'box-shadow: inset 4px 0 0 transparent, inset 0 0 0 2px ' + border + ';';
|
||||
})()"
|
||||
:class="{
|
||||
'opacity-50': {{ $disabled ? 'true' : 'false' }}
|
||||
}" wire:loading.class="opacity-50" wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]">
|
||||
}" wire:loading.class="opacity-50" wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]">
|
||||
|
||||
{{-- Display Selected Value or Search Input --}}
|
||||
<div class="flex-1 flex items-center min-w-0 px-1">
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@
|
|||
@readonly($readonly)
|
||||
@if ($modelBinding !== 'null')
|
||||
wire:model="{{ $modelBinding }}"
|
||||
wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#242424]"
|
||||
wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]"
|
||||
@endif
|
||||
wire:loading.attr="disabled"
|
||||
@disabled($disabled)
|
||||
|
|
|
|||
|
|
@ -28,16 +28,6 @@
|
|||
</div>
|
||||
@elseif ($type === 'password')
|
||||
<div class="relative" x-data="{ type: 'password' }" @success.window="type = 'password'">
|
||||
<input autocomplete="{{ $autocomplete }}" value="{{ $value }}"
|
||||
x-bind:type="type"
|
||||
x-bind:class="{ 'truncate': type === 'text' && ! $el.disabled }"
|
||||
{{ $attributes->merge(['class' => $defaultClass]) }} @required($required)
|
||||
@if ($modelBinding !== 'null') wire:model={{ $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]" @endif
|
||||
wire:loading.attr="disabled"
|
||||
@readonly($readonly) @disabled($disabled) id="{{ $htmlId }}"
|
||||
name="{{ $name }}" placeholder="{{ $attributes->get('placeholder') }}"
|
||||
aria-placeholder="{{ $attributes->get('placeholder') }}"
|
||||
@if ($autofocus) x-ref="autofocusInput" @endif>
|
||||
@if ($allowToPeak)
|
||||
<button type="button" x-on:click="type = type === 'password' ? 'text' : 'password'"
|
||||
class="password-toggle flex absolute inset-y-0 right-0 z-10 items-center pr-2 cursor-pointer text-neutral-500 hover:text-black dark:text-neutral-400 dark:hover:text-white"
|
||||
|
|
@ -48,12 +38,22 @@ class="password-toggle flex absolute inset-y-0 right-0 z-10 items-center pr-2 cu
|
|||
<x-reicon name="eye-off2" x-cloak x-show="type === 'text'" class="size-[18px]" />
|
||||
</button>
|
||||
@endif
|
||||
<input autocomplete="{{ $autocomplete }}" value="{{ $value }}"
|
||||
x-bind:type="type"
|
||||
x-bind:class="{ 'truncate': type === 'text' && ! $el.disabled }"
|
||||
{{ $attributes->merge(['class' => $defaultClass]) }} @required($required)
|
||||
@if ($modelBinding !== 'null') wire:model={{ $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]" @endif
|
||||
wire:loading.attr="disabled"
|
||||
@readonly($readonly) @disabled($disabled) id="{{ $htmlId }}"
|
||||
name="{{ $name }}" placeholder="{{ $attributes->get('placeholder') }}"
|
||||
aria-placeholder="{{ $attributes->get('placeholder') }}"
|
||||
@if ($autofocus) x-ref="autofocusInput" @endif>
|
||||
|
||||
</div>
|
||||
@else
|
||||
<input autocomplete="{{ $autocomplete }}" @if ($value) value="{{ $value }}" @endif
|
||||
{{ $attributes->merge(['class' => $defaultClass]) }} @required($required) @readonly($readonly)
|
||||
@if ($modelBinding !== 'null') wire:model={{ $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]" @endif
|
||||
@if ($modelBinding !== 'null') wire:model={{ $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]" @endif
|
||||
wire:loading.attr="disabled"
|
||||
type="{{ $type }}" @disabled($disabled) min="{{ $attributes->get('min') }}"
|
||||
max="{{ $attributes->get('max') }}" minlength="{{ $attributes->get('minlength') }}"
|
||||
|
|
|
|||
|
|
@ -46,10 +46,11 @@
|
|||
inherit: true,
|
||||
rules: [],
|
||||
colors: {
|
||||
'editor.background': '#0b0b0c',
|
||||
'editorGutter.background': '#0b0b0c',
|
||||
'editorStickyScroll.background': '#0b0b0c',
|
||||
'minimap.background': '#0b0b0c',
|
||||
// MapleDeploy branding: stone remap (was #0b0b0c)
|
||||
'editor.background': '#0d0b0a',
|
||||
'editorGutter.background': '#0d0b0a',
|
||||
'editorStickyScroll.background': '#0d0b0a',
|
||||
'minimap.background': '#0d0b0a',
|
||||
'scrollbarSlider.background': '#ffffff1a',
|
||||
'scrollbarSlider.hoverBackground': '#ffffff2e',
|
||||
'scrollbarSlider.activeBackground': '#ffffff40',
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class="mb-0! flex items-center gap-1 text-sm font-medium leading-4 {{ $disabled
|
|||
@endif
|
||||
<select {{ $attributes->merge(['class' => $defaultClass]) }} @disabled($disabled) @required($required)
|
||||
wire:loading.attr="disabled" name={{ $modelBinding }} id="{{ $htmlId }}"
|
||||
@if ($attributes->whereStartsWith('wire:model')->first()) {{ $attributes->whereStartsWith('wire:model')->first() }} wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]" @else wire:model={{ $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]" @endif>
|
||||
@if ($attributes->whereStartsWith('wire:model')->first()) {{ $attributes->whereStartsWith('wire:model')->first() }} wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]" @else wire:model={{ $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]" @endif>
|
||||
{{ $slot }}
|
||||
</select>
|
||||
@error($modelBinding)
|
||||
|
|
|
|||
|
|
@ -36,21 +36,6 @@ function handleKeydown(e) {
|
|||
@else
|
||||
@if ($type === 'password')
|
||||
<div class="relative" x-data="{ type: 'password' }" @success.window="type = 'password'">
|
||||
<input x-cloak x-show="type === 'password'" value="{{ $value }}"
|
||||
{{ $attributes->merge(['class' => $defaultClassInput]) }} @required($required)
|
||||
@if ($modelBinding !== 'null') wire:model={{ $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]" @endif
|
||||
wire:loading.attr="disabled"
|
||||
type="{{ $type }}" @readonly($readonly) @disabled($disabled) id="{{ $htmlId }}"
|
||||
name="{{ $name }}" placeholder="{{ $attributes->get('placeholder') }}"
|
||||
aria-placeholder="{{ $attributes->get('placeholder') }}">
|
||||
<textarea minlength="{{ $minlength }}" maxlength="{{ $maxlength }}" x-cloak x-show="type !== 'password'"
|
||||
placeholder="{{ $placeholder }}" {{ $attributes->merge(['class' => $defaultClass]) }}
|
||||
@if ($realtimeValidation) wire:model.debounce.200ms="{{ $modelBinding }}" wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]"
|
||||
@else
|
||||
wire:model={{ $value ?? $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]" @endif
|
||||
@disabled($disabled) @readonly($readonly) @required($required) id="{{ $htmlId }}"
|
||||
name="{{ $name }}" name={{ $modelBinding }}
|
||||
@if ($autofocus) x-ref="autofocusInput" @endif></textarea>
|
||||
@if ($allowToPeak)
|
||||
<button type="button" x-on:click="type = type === 'password' ? 'text' : 'password'"
|
||||
class="absolute inset-y-0 right-0 flex items-center h-6 pt-2 pr-2 cursor-pointer dark:hover:text-white"
|
||||
|
|
@ -71,15 +56,30 @@ class="absolute inset-y-0 right-0 flex items-center h-6 pt-2 pr-2 cursor-pointer
|
|||
</svg>
|
||||
</button>
|
||||
@endif
|
||||
<input x-cloak x-show="type === 'password'" value="{{ $value }}"
|
||||
{{ $attributes->merge(['class' => $defaultClassInput]) }} @required($required)
|
||||
@if ($modelBinding !== 'null') wire:model={{ $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]" @endif
|
||||
wire:loading.attr="disabled"
|
||||
type="{{ $type }}" @readonly($readonly) @disabled($disabled) id="{{ $htmlId }}"
|
||||
name="{{ $name }}" placeholder="{{ $attributes->get('placeholder') }}"
|
||||
aria-placeholder="{{ $attributes->get('placeholder') }}">
|
||||
<textarea minlength="{{ $minlength }}" maxlength="{{ $maxlength }}" x-cloak x-show="type !== 'password'"
|
||||
placeholder="{{ $placeholder }}" {{ $attributes->merge(['class' => $defaultClass]) }}
|
||||
@if ($realtimeValidation) wire:model.debounce.200ms="{{ $modelBinding }}" wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]"
|
||||
@else
|
||||
wire:model={{ $value ?? $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]" @endif
|
||||
@disabled($disabled) @readonly($readonly) @required($required) id="{{ $htmlId }}"
|
||||
name="{{ $name }}" name={{ $modelBinding }}
|
||||
@if ($autofocus) x-ref="autofocusInput" @endif></textarea>
|
||||
|
||||
</div>
|
||||
@else
|
||||
<textarea minlength="{{ $minlength }}" maxlength="{{ $maxlength }}"
|
||||
{{ $allowTab ? '@keydown.tab=handleKeydown' : '' }} placeholder="{{ $placeholder }}"
|
||||
{{ !$spellcheck ? 'spellcheck=false' : '' }} {{ $attributes->merge(['class' => $defaultClass]) }}
|
||||
@if ($realtimeValidation) wire:model.debounce.200ms="{{ $modelBinding }}" wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]"
|
||||
@if ($realtimeValidation) wire:model.debounce.200ms="{{ $modelBinding }}" wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]"
|
||||
@else
|
||||
wire:model={{ $value ?? $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#6b16ed,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fcd452,inset_0_0_0_2px_#242424]" @endif
|
||||
wire:model={{ $value ?? $modelBinding }} wire:dirty.class="[box-shadow:inset_4px_0_0_#d52b1f,inset_0_0_0_2px_#e5e5e5] dark:[box-shadow:inset_4px_0_0_#fde047,inset_0_0_0_2px_#272322]" @endif
|
||||
@disabled($disabled) @readonly($readonly) @required($required) id="{{ $htmlId }}"
|
||||
name="{{ $name }}" name={{ $modelBinding }}
|
||||
@if ($autofocus) x-ref="autofocusInput" @endif></textarea>
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
document.documentElement.classList.remove('dark');
|
||||
}
|
||||
document.documentElement.dataset.theme = userSettings === 'custom' ? 'custom' : (isDark ? 'dark' : 'light');
|
||||
document.querySelector('meta[name=theme-color]')?.setAttribute('content', isDark ? '#101010' : '#ffffff');
|
||||
document.querySelector('meta[name=theme-color]')?.setAttribute('content', isDark ? '#12100e' : '#ffffff'); // MapleDeploy branding: stone remap (was #101010)
|
||||
}
|
||||
}">
|
||||
{{-- Search is only useful when workspace resources are available --}}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class="terminal-theme-trigger flex h-8 items-center gap-2 rounded-md px-2.5 text
|
|||
</button>
|
||||
|
||||
<div x-cloak x-show="themeOpen" x-transition.origin.top.right
|
||||
class="console-theme-selector absolute top-11 right-0 z-50 max-h-80 w-56 overflow-y-auto rounded-lg border border-neutral-200 bg-white p-1 shadow-[0_18px_50px_rgba(0,0,0,0.18)] dark:border-white/[0.1] dark:bg-[#111113] dark:shadow-[0_18px_50px_rgba(0,0,0,0.55)]">
|
||||
class="console-theme-selector absolute top-11 right-0 z-50 max-h-80 w-56 overflow-y-auto rounded-lg border border-neutral-200 bg-white p-1 shadow-[0_18px_50px_rgba(0,0,0,0.18)] dark:border-white/[0.1] dark:bg-[#13110f] dark:shadow-[0_18px_50px_rgba(0,0,0,0.55)]"> {{-- MapleDeploy branding: stone remap (was #111113) --}}
|
||||
@foreach ($themes as $theme)
|
||||
<button type="button"
|
||||
class="flex h-8 w-full items-center gap-2 rounded-md px-2 text-left text-[11px] text-neutral-600 transition-colors hover:bg-neutral-100 hover:text-neutral-950 dark:text-white/65 dark:hover:bg-white/[0.07] dark:hover:text-white"
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
document.documentElement.dataset.theme = type === 'custom' ? 'custom' : (isDark ? 'dark' : 'light');
|
||||
document.documentElement.style.setProperty('--theme-base-color', localStorage.themeColor || '#d52b1f');
|
||||
document.documentElement.style.setProperty('--theme-accent-foreground', window.themeAccentForeground(this.themeColor));
|
||||
document.querySelector('meta[name=theme-color]')?.setAttribute('content', isDark ? '#101010' : '#ffffff');
|
||||
document.querySelector('meta[name=theme-color]')?.setAttribute('content', isDark ? '#12100e' : '#ffffff'); // MapleDeploy branding: stone remap (was #101010)
|
||||
},
|
||||
setWidth(width) {
|
||||
this.pageWidth = width;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
document.documentElement.dataset.theme = theme === 'custom' ? 'custom' : (isDark ? 'dark' : 'light');
|
||||
document.documentElement.style.setProperty('--theme-base-color', themeColor);
|
||||
document.documentElement.style.setProperty('--theme-accent-foreground', window.themeAccentForeground(themeColor));
|
||||
document.querySelector('meta[name=theme-color]')?.setAttribute('content', isDark ? '#101010' : '#ffffff');
|
||||
document.querySelector('meta[name=theme-color]')?.setAttribute('content', isDark ? '#12100e' : '#ffffff'); // MapleDeploy branding: stone remap (was #101010)
|
||||
};
|
||||
|
||||
document.addEventListener('livewire:navigated', window.applyStoredTheme);
|
||||
|
|
@ -34,7 +34,8 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta name="theme-color" content="#101010" id="theme-color-meta" />
|
||||
{{-- MapleDeploy branding: stone remap (was #101010) --}}
|
||||
<meta name="theme-color" content="#12100e" id="theme-color-meta" />
|
||||
<meta name="color-scheme" content="dark light" />
|
||||
{{-- MapleDeploy branding --}}
|
||||
<meta name="Description" content="MapleDeploy: Managed Coolify hosting on Canadian infrastructure" />
|
||||
|
|
@ -70,7 +71,7 @@
|
|||
// Update theme-color meta tag (non-critical, can run async)
|
||||
const t = localStorage.theme || 'dark';
|
||||
const isDark = t === 'dark' || t === 'custom' || (t === 'system' && matchMedia('(prefers-color-scheme: dark)').matches);
|
||||
document.getElementById('theme-color-meta')?.setAttribute('content', isDark ? '#101010' : '#ffffff');
|
||||
document.getElementById('theme-color-meta')?.setAttribute('content', isDark ? '#12100e' : '#ffffff'); // MapleDeploy branding: stone remap (was #101010)
|
||||
</script>
|
||||
<style>
|
||||
[x-cloak] {
|
||||
|
|
@ -162,7 +163,7 @@
|
|||
let ramColor = '#00ced1'
|
||||
let textColor = '#ffffff'
|
||||
let gridColor = '#44403c'
|
||||
let editorBackground = '#181818'
|
||||
let editorBackground = '#1a1716' // MapleDeploy branding: stone remap (was #181818)
|
||||
let editorTheme = 'blackboard'
|
||||
|
||||
function checkTheme() {
|
||||
|
|
@ -175,7 +176,7 @@ function checkTheme() {
|
|||
ramColor = '#00ced1'
|
||||
textColor = '#ffffff'
|
||||
gridColor = '#44403c'
|
||||
editorBackground = '#181818'
|
||||
editorBackground = '#1a1716' // MapleDeploy branding: stone remap (was #181818)
|
||||
editorTheme = 'blackboard'
|
||||
} else {
|
||||
cpuColor = '#1e90ff'
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
document.documentElement.dataset.theme = this.theme === 'custom' ? 'custom' : (isDark ? 'dark' : 'light');
|
||||
document.documentElement.style.setProperty('--theme-base-color', this.themeColor);
|
||||
document.documentElement.style.setProperty('--theme-accent-foreground', window.themeAccentForeground(this.themeColor));
|
||||
document.querySelector('meta[name=theme-color]')?.setAttribute('content', isDark ? '#101010' : '#ffffff');
|
||||
document.querySelector('meta[name=theme-color]')?.setAttribute('content', isDark ? '#12100e' : '#ffffff'); // MapleDeploy branding: stone remap (was #101010)
|
||||
},
|
||||
}" class="mt-8 flex w-full max-w-none flex-col gap-6 lg:mt-3">
|
||||
<section class="application-settings-section">
|
||||
|
|
@ -63,8 +63,9 @@
|
|||
<div class="application-settings-section-body grid gap-3 sm:grid-cols-2 lg:grid-cols-4">
|
||||
@foreach ([
|
||||
['value' => 'light', 'label' => 'Light', 'description' => 'Bright surfaces and dark text.', 'preview' => 'bg-white'],
|
||||
['value' => 'system', 'label' => 'System', 'description' => 'Follow your operating system.', 'preview' => 'bg-gradient-to-r from-white via-neutral-400 to-[#050505]'],
|
||||
['value' => 'dark', 'label' => 'Dark', 'description' => 'Dark surfaces and soft contrast.', 'preview' => 'bg-[#181818]'],
|
||||
{{-- MapleDeploy branding: stone remap (was #050505 / #181818) --}}
|
||||
['value' => 'system', 'label' => 'System', 'description' => 'Follow your operating system.', 'preview' => 'bg-gradient-to-r from-white via-neutral-400 to-[#060504]'],
|
||||
['value' => 'dark', 'label' => 'Dark', 'description' => 'Dark surfaces and soft contrast.', 'preview' => 'bg-[#1a1716]'],
|
||||
['value' => 'custom', 'label' => 'Custom', 'description' => 'Choose any color for dark surfaces.', 'preview' => ''],
|
||||
] as $option)
|
||||
<div role="button" tabindex="0"
|
||||
|
|
@ -131,7 +132,7 @@ class="group overflow-hidden rounded-[10px] border border-neutral-200 bg-white t
|
|||
? 'ring-1 ring-coollabs/30 border-coollabs/40 dark:ring-warning/30 dark:border-warning/40'
|
||||
: ''">
|
||||
<div class="flex h-20 items-center border-b border-neutral-200 bg-neutral-50 px-4 dark:border-white/[0.07] dark:bg-black/15">
|
||||
<div class="flex h-11 w-full gap-1.5 rounded-md border border-neutral-300 bg-white p-1.5 dark:border-white/15 dark:bg-[#181818]">
|
||||
<div class="flex h-11 w-full gap-1.5 rounded-md border border-neutral-300 bg-white p-1.5 dark:border-white/15 dark:bg-[#1a1716]"> {{-- MapleDeploy branding: stone remap (was #181818) --}}
|
||||
<div class="w-3 shrink-0 rounded-sm bg-neutral-200 dark:bg-white/10"></div>
|
||||
<div @class([
|
||||
'h-full rounded-sm bg-neutral-200 dark:bg-white/10',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<div>
|
||||
@unless ($embedded)
|
||||
<x-slot:title>{{ data_get_str($application, 'name')->limit(10) }} > Deployments | Coolify</x-slot>
|
||||
<x-slot:title>{{ data_get_str($application, 'name')->limit(10) }} > Deployments | MapleDeploy</x-slot>
|
||||
<livewire:project.shared.configuration-checker :resource="$application" />
|
||||
<livewire:project.application.heading :application="$application" wire:key="application-heading-deployment-index" />
|
||||
@endunless
|
||||
|
|
|
|||
|
|
@ -367,7 +367,7 @@ class="logs-viewer-btn">
|
|||
x-transition:leave="transition ease-in duration-75"
|
||||
x-transition:leave-start="transform opacity-100 scale-100"
|
||||
x-transition:leave-end="transform opacity-0 scale-95"
|
||||
class="absolute right-0 z-50 mt-2 w-max origin-top-right rounded-lg border border-neutral-200 bg-white p-1 shadow-modal focus:outline-none dark:border-white/[0.1] dark:bg-[#181818]">
|
||||
class="absolute right-0 z-50 mt-2 w-max origin-top-right rounded-lg border border-neutral-200 bg-white p-1 shadow-modal focus:outline-none dark:border-white/[0.1] dark:bg-[#1a1716]"> {{-- MapleDeploy branding: stone remap (was #181818) --}}
|
||||
<div>
|
||||
<button x-on:click="downloadLogs(); downloadMenuOpen = false"
|
||||
class="listbox-option text-neutral-700! hover:bg-neutral-100! dark:text-neutral-200! dark:hover:bg-white/[0.07]!">
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ class="flex min-h-0 flex-col gap-3">
|
|||
Volume names are prefixed with the service UUID when you save to prevent collisions.
|
||||
</x-callout>
|
||||
|
||||
<div class="compose-editor-container min-h-[24rem] overflow-hidden rounded-lg border border-neutral-200 bg-white dark:border-white/[0.10] dark:bg-[#0b0b0c]"
|
||||
{{-- MapleDeploy branding: stone remap (was #0b0b0c, matches Monaco editor.background) --}}
|
||||
<div class="compose-editor-container min-h-[24rem] overflow-hidden rounded-lg border border-neutral-200 bg-white dark:border-white/[0.10] dark:bg-[#0d0b0a]"
|
||||
style="--editor-height: clamp(24rem, calc(100dvh - 25rem), 48rem)">
|
||||
<div x-cloak x-show="raw" class="font-mono">
|
||||
<div x-cloak x-show="showNormalTextarea">
|
||||
|
|
|
|||
|
|
@ -18,7 +18,8 @@
|
|||
$consoleUnavailable = ($type === 'server' && (! $servers->first()->isTerminalEnabled() || ! $servers->first()->isFunctional()))
|
||||
|| ($type !== 'server' && $containersLoaded && $containers->isEmpty());
|
||||
$consoleThemes = [
|
||||
['key' => 'system', 'name' => 'System', 'background' => 'linear-gradient(135deg, #ffffff 0 50%, #121214 50% 100%)', 'accent' => '#8C8E9C'],
|
||||
// MapleDeploy branding: stone remap (system/blur-black swatches: was #121214 / #8C8E9C)
|
||||
['key' => 'system', 'name' => 'System', 'background' => 'linear-gradient(135deg, #ffffff 0 50%, #141210 50% 100%)', 'accent' => '#958D89'],
|
||||
['key' => 'shadows-midnight', 'name' => 'Midnight', 'background' => 'linear-gradient(135deg, #2a3b4c, rgba(42, 59, 76, 0.4))', 'accent' => '#6d7a7c'],
|
||||
['key' => 'shadows-golden-hour', 'name' => 'Golden Hour', 'background' => 'linear-gradient(135deg, #d58a42, rgba(213, 138, 66, 0.4))', 'accent' => '#bf8c3c'],
|
||||
['key' => 'shadows-cosmic-purple', 'name' => 'Cosmic Purple', 'background' => 'linear-gradient(135deg, #5d3e66, rgba(93, 62, 102, 0.4))', 'accent' => '#A76DBE'],
|
||||
|
|
@ -28,7 +29,7 @@
|
|||
['key' => 'shadows-golden-nebula', 'name' => 'Golden Nebula', 'background' => 'linear-gradient(135deg, #ffd700, #ff6347, #d4a20e, #ffcc00, #1f3d6f)', 'accent' => '#d4a20e'],
|
||||
['key' => 'shadows-cosmic-lagoon', 'name' => 'Cosmic Lagoon', 'background' => 'linear-gradient(135deg, #1d2b64, #2f4f96, #00b5b8, #9c27b0, #8e24aa)', 'accent' => '#00b5b8'],
|
||||
['key' => 'shadows-neon-nebula', 'name' => 'Neon Nebula', 'background' => 'linear-gradient(135deg, #00d9d9, #ff55aa, #1e1e2f, #2f3b57, #ff99ff)', 'accent' => '#ff55aa'],
|
||||
['key' => 'shadows-transparent', 'name' => 'Blur Black', 'background' => 'rgba(0, 0, 0, 0.7)', 'accent' => '#8C8E9C'],
|
||||
['key' => 'shadows-transparent', 'name' => 'Blur Black', 'background' => 'rgba(0, 0, 0, 0.7)', 'accent' => '#958D89'],
|
||||
];
|
||||
$consoleThemeKeys = collect($consoleThemes)->pluck('key')->values();
|
||||
$consoleThemeNames = collect($consoleThemes)->pluck('name', 'key');
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@
|
|||
enabled: false,
|
||||
},
|
||||
grid: {
|
||||
borderColor: 'rgba(128, 128, 128, 0.14)',
|
||||
borderColor: gridColor, // MapleDeploy branding
|
||||
strokeDashArray: 4,
|
||||
},
|
||||
legend: {
|
||||
|
|
@ -175,6 +175,9 @@
|
|||
name: 'CPU',
|
||||
data: chartData[0].seriesData,
|
||||
}],
|
||||
grid: {
|
||||
borderColor: gridColor, // MapleDeploy branding
|
||||
},
|
||||
xaxis: {
|
||||
type: 'datetime',
|
||||
labels: {
|
||||
|
|
@ -257,7 +260,7 @@
|
|||
enabled: false,
|
||||
},
|
||||
grid: {
|
||||
borderColor: 'rgba(128, 128, 128, 0.14)',
|
||||
borderColor: gridColor, // MapleDeploy branding
|
||||
strokeDashArray: 4,
|
||||
},
|
||||
legend: {
|
||||
|
|
@ -322,6 +325,9 @@
|
|||
name: 'Memory',
|
||||
data: chartData[0].seriesData,
|
||||
}],
|
||||
grid: {
|
||||
borderColor: gridColor, // MapleDeploy branding
|
||||
},
|
||||
xaxis: {
|
||||
type: 'datetime',
|
||||
labels: {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<div>
|
||||
<x-slot:title>
|
||||
{{ data_get_str($server, 'name')->limit(10) }} > Metrics | Coolify
|
||||
{{ data_get_str($server, 'name')->limit(10) }} > Metrics | MapleDeploy
|
||||
</x-slot>
|
||||
|
||||
<livewire:server.navbar :server="$server" />
|
||||
|
|
@ -109,7 +109,7 @@ class="server-settings-workspace application-settings-workspace mt-4 grid w-full
|
|||
enabled: false,
|
||||
},
|
||||
grid: {
|
||||
borderColor: 'rgba(128, 128, 128, 0.14)',
|
||||
borderColor: gridColor, // MapleDeploy branding
|
||||
strokeDashArray: 4,
|
||||
},
|
||||
legend: {
|
||||
|
|
@ -189,6 +189,9 @@ class="server-settings-workspace application-settings-workspace mt-4 grid w-full
|
|||
name: 'CPU',
|
||||
data: chartData[0].seriesData,
|
||||
}],
|
||||
grid: {
|
||||
borderColor: gridColor, // MapleDeploy branding
|
||||
},
|
||||
xaxis: {
|
||||
type: 'datetime',
|
||||
labels: {
|
||||
|
|
@ -227,6 +230,9 @@ class="server-settings-workspace application-settings-workspace mt-4 grid w-full
|
|||
name: 'Memory',
|
||||
data: chartData[0].seriesData,
|
||||
}],
|
||||
grid: {
|
||||
borderColor: gridColor, // MapleDeploy branding
|
||||
},
|
||||
xaxis: {
|
||||
type: 'datetime',
|
||||
labels: {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@php
|
||||
$consoleThemes = [
|
||||
['key' => 'system', 'name' => 'System', 'background' => 'linear-gradient(135deg, #ffffff 0 50%, #121214 50% 100%)', 'accent' => '#8C8E9C'],
|
||||
// MapleDeploy branding: stone remap (system/blur-black swatches: was #121214 / #8C8E9C)
|
||||
['key' => 'system', 'name' => 'System', 'background' => 'linear-gradient(135deg, #ffffff 0 50%, #141210 50% 100%)', 'accent' => '#958D89'],
|
||||
['key' => 'shadows-midnight', 'name' => 'Midnight', 'background' => 'linear-gradient(135deg, #2a3b4c, rgba(42, 59, 76, 0.4))', 'accent' => '#6d7a7c'],
|
||||
['key' => 'shadows-golden-hour', 'name' => 'Golden Hour', 'background' => 'linear-gradient(135deg, #d58a42, rgba(213, 138, 66, 0.4))', 'accent' => '#bf8c3c'],
|
||||
['key' => 'shadows-cosmic-purple', 'name' => 'Cosmic Purple', 'background' => 'linear-gradient(135deg, #5d3e66, rgba(93, 62, 102, 0.4))', 'accent' => '#A76DBE'],
|
||||
|
|
@ -10,7 +11,7 @@
|
|||
['key' => 'shadows-golden-nebula', 'name' => 'Golden Nebula', 'background' => 'linear-gradient(135deg, #ffd700, #ff6347, #d4a20e, #ffcc00, #1f3d6f)', 'accent' => '#d4a20e'],
|
||||
['key' => 'shadows-cosmic-lagoon', 'name' => 'Cosmic Lagoon', 'background' => 'linear-gradient(135deg, #1d2b64, #2f4f96, #00b5b8, #9c27b0, #8e24aa)', 'accent' => '#00b5b8'],
|
||||
['key' => 'shadows-neon-nebula', 'name' => 'Neon Nebula', 'background' => 'linear-gradient(135deg, #00d9d9, #ff55aa, #1e1e2f, #2f3b57, #ff99ff)', 'accent' => '#ff55aa'],
|
||||
['key' => 'shadows-transparent', 'name' => 'Blur Black', 'background' => 'rgba(0, 0, 0, 0.7)', 'accent' => '#8C8E9C'],
|
||||
['key' => 'shadows-transparent', 'name' => 'Blur Black', 'background' => 'rgba(0, 0, 0, 0.7)', 'accent' => '#958D89'],
|
||||
];
|
||||
$consoleThemeKeys = collect($consoleThemes)->pluck('key')->values();
|
||||
$consoleThemeNames = collect($consoleThemes)->pluck('name', 'key');
|
||||
|
|
@ -279,7 +280,8 @@ class="px-2 py-5 text-center text-[11px] text-white/35">
|
|||
</div>
|
||||
</div>
|
||||
@elseif ($servers->isEmpty())
|
||||
<div class="flex h-full min-h-0 items-center justify-center bg-[#141414] px-4">
|
||||
{{-- MapleDeploy branding: stone remap (was #141414) --}}
|
||||
<div class="flex h-full min-h-0 items-center justify-center bg-[#161312] px-4">
|
||||
<x-empty size="lg" title="No terminal targets available"
|
||||
description="Connect a reachable server and enable terminal access to start a session."
|
||||
icon-name="browser-terminal" />
|
||||
|
|
|
|||
Loading…
Reference in a new issue