diff --git a/frontend/src/lib/assets/tokens/tokens.json b/frontend/src/lib/assets/tokens/tokens.json index 61ada10cac..de71a8beaf 100644 --- a/frontend/src/lib/assets/tokens/tokens.json +++ b/frontend/src/lib/assets/tokens/tokens.json @@ -12,7 +12,7 @@ "surface-selected": "#ffffff", "surface-disabled": "#d8d8e433", "surface-secondary": "#efeff4", - "surface-hover": "#eeeef4", + "surface-hover": "#cfcfe233", "surface-primary": "#fbfbfd", "border-light": "#e5e7eb", "border-normal": "#9ca3af", @@ -82,7 +82,7 @@ "surface-selected": "#434c5e", "surface-disabled": "#212732", "surface-secondary": "#272c35", - "surface-hover": "#454f64", + "surface-hover": "#7784a119", "surface-primary": "#2e3441", "border-light": "#374457", "border-normal": "#a9b0ba", @@ -100,7 +100,7 @@ "reserved-ai": "#f0c6fb", "component-virtual-node": "#4c566a", "text-accent": "#c7cefc", - "border-selected": "#758ff8", + "border-selected": "#6475b7", "surface-sunken": "#242832", "text-tertiary": "#a8aeb7", "surface-input": "#292e38" diff --git a/frontend/src/lib/components/ConnectionSection.svelte b/frontend/src/lib/components/ConnectionSection.svelte index bdc43f354e..8f42e08f05 100644 --- a/frontend/src/lib/components/ConnectionSection.svelte +++ b/frontend/src/lib/components/ConnectionSection.svelte @@ -134,7 +134,7 @@
Script or flow to run on /windmill command
{#if !teamName || (!$enterpriseLicense && platform === 'teams')} -
+
{/if} > = { diff --git a/frontend/src/lib/components/common/button/Button.svelte b/frontend/src/lib/components/common/button/Button.svelte index 45748724f5..4e5f0de70b 100644 --- a/frontend/src/lib/components/common/button/Button.svelte +++ b/frontend/src/lib/components/common/button/Button.svelte @@ -247,11 +247,11 @@ disabled ? ['default', 'subtle'].includes(variant) ? '!text-disabled' - : '!bg-surface-disabled/20 !text-disabled' + : '!bg-surface-disabled !text-disabled' : '', loading ? 'cursor-wait' : '', selected && ['default', 'subtle'].includes(variant) - ? '!bg-surface-accent-selected/30 !text-accent !border-border-selected' + ? '!bg-surface-accent-selected !text-accent !border-border-selected' : '', btnClasses ) diff --git a/frontend/src/lib/components/copilot/MetadataGen.svelte b/frontend/src/lib/components/copilot/MetadataGen.svelte index b76bb0d7b3..666b50bf64 100644 --- a/frontend/src/lib/components/copilot/MetadataGen.svelte +++ b/frontend/src/lib/components/copilot/MetadataGen.svelte @@ -262,15 +262,15 @@ Generate a tool name for the script below: }} >
{#if active} 0 ? 'green' : 'default') + 'rounded-md px-1', + flowAIBtnClasses(!loading && generatedContent.length > 0 ? 'green' : 'selected') )} > @@ -291,7 +291,7 @@ Generate a tool name for the script below:
{/key} {:else} -
{flowModule.mock?.return_value
 					? JSON.stringify(flowModule.mock?.return_value, null, 2)
 					: ''}
diff --git a/frontend/src/lib/components/text_input/TextInput.svelte b/frontend/src/lib/components/text_input/TextInput.svelte index a4b4679873..76d8a4fe27 100644 --- a/frontend/src/lib/components/text_input/TextInput.svelte +++ b/frontend/src/lib/components/text_input/TextInput.svelte @@ -18,14 +18,23 @@ } export const inputBaseClass = - 'rounded-md focus:ring-0 no-default-style text-xs text-primary font-normal !bg-surface-input disabled:!bg-surface-disabled/20 disabled:!border-transparent disabled:!text-disabled disabled:cursor-not-allowed shadow-none !placeholder-hint' + 'rounded-md focus:ring-0 no-default-style text-xs text-primary font-normal !bg-surface-input disabled:!bg-surface-disabled disabled:!border-transparent disabled:!text-disabled disabled:cursor-not-allowed shadow-none !placeholder-hint' import { ButtonType } from '$lib/components/common/button/model' export const inputSizeClasses = { - sm: `${ButtonType.UnifiedSizingClasses.sm} ${ButtonType.UnifiedMinHeightClasses.sm} !py-0.5`, - md: `${ButtonType.UnifiedSizingClasses.md} ${ButtonType.UnifiedMinHeightClasses.md}`, - lg: `${ButtonType.UnifiedSizingClasses.lg} ${ButtonType.UnifiedMinHeightClasses.lg}` + sm: twMerge( + `${ButtonType.UnifiedSizingClasses.sm} ${ButtonType.UnifiedMinHeightClasses.sm} !py-0.5`, + 'px-2' + ), + md: twMerge( + `${ButtonType.UnifiedSizingClasses.md} ${ButtonType.UnifiedMinHeightClasses.md}`, + 'px-2' + ), + lg: twMerge( + `${ButtonType.UnifiedSizingClasses.lg} ${ButtonType.UnifiedMinHeightClasses.lg}`, + 'px-2' + ) } diff --git a/frontend/tailwind.config.cjs b/frontend/tailwind.config.cjs index bb9d2ee3a3..1504b7f801 100644 --- a/frontend/tailwind.config.cjs +++ b/frontend/tailwind.config.cjs @@ -10,6 +10,19 @@ const { darkModeName, lightModeName } = require('./src/lib/assets/tokens/colorTo const tokens = { dark: figmaTokens.tokens[darkModeName], light: figmaTokens.tokens[lightModeName] } const primitives = figmaTokens.primitives.light +// Helper function to create color definition based on whether the value contains alpha +function createColorDefinition(colorName) { + // Check a sample value to see if it contains alpha (using light theme as reference) + const sampleValue = tokens.light[colorName] + if (sampleValue && sampleValue.includes('/')) { + // Alpha is already included, use as-is without allowing override + return `rgb(var(--color-${colorName}))` + } else { + // No alpha, allow Tailwind's alpha-value placeholder + return `rgb(var(--color-${colorName}) / )` + } +} + /** @type {import('tailwindcss').Config} */ const config = { //to generatd tailwind full, only include ./src/lib/components/apps/editor/componentsPanel/tailwindUtils.ts and run: @@ -41,60 +54,58 @@ const config = { black: '#000000', // Surface colors (semantic) - surface: 'rgb(var(--color-surface-primary) / )', - 'surface-secondary': 'rgb(var(--color-surface-secondary) / )', - 'surface-sunken': 'rgb(var(--color-surface-sunken) / )', - 'surface-tertiary': 'rgb(var(--color-surface-tertiary) / )', - 'surface-hover': 'rgb(var(--color-surface-hover) / )', - 'surface-disabled': 'rgb(var(--color-surface-disabled) / )', - 'surface-selected': 'rgb(var(--color-surface-selected) / )', - 'surface-accent-primary': 'rgb(var(--color-surface-accent-primary) / )', - 'surface-accent-hover': 'rgb(var(--color-surface-accent-hover) / )', - 'surface-accent-clicked': 'rgb(var(--color-surface-accent-clicked) / )', - 'surface-accent-secondary': 'rgb(var(--color-surface-accent-secondary) / )', - 'surface-accent-secondary-hover': - 'rgb(var(--color-surface-accent-secondary-hover) / )', - 'surface-accent-secondary-clicked': - 'rgb(var(--color-surface-accent-secondary-clicked) / )', - 'surface-accent-selected': 'rgb(var(--color-surface-accent-selected))', - 'surface-input': 'rgb(var(--color-surface-input))', + surface: createColorDefinition('surface-primary'), + 'surface-secondary': createColorDefinition('surface-secondary'), + 'surface-sunken': createColorDefinition('surface-sunken'), + 'surface-tertiary': createColorDefinition('surface-tertiary'), + 'surface-hover': createColorDefinition('surface-hover'), + 'surface-disabled': createColorDefinition('surface-disabled'), + 'surface-selected': createColorDefinition('surface-selected'), + 'surface-accent-primary': createColorDefinition('surface-accent-primary'), + 'surface-accent-hover': createColorDefinition('surface-accent-hover'), + 'surface-accent-clicked': createColorDefinition('surface-accent-clicked'), + 'surface-accent-secondary': createColorDefinition('surface-accent-secondary'), + 'surface-accent-secondary-hover': createColorDefinition('surface-accent-secondary-hover'), + 'surface-accent-secondary-clicked': createColorDefinition('surface-accent-secondary-clicked'), + 'surface-accent-selected': createColorDefinition('surface-accent-selected'), + 'surface-input': createColorDefinition('surface-input'), // Text colors (semantic) - primary: 'rgb(var(--color-text-primary) / )', - secondary: 'rgb(var(--color-text-secondary) / )', - tertiary: 'rgb(var(--color-text-tertiary) / )', - hint: 'rgb(var(--color-text-hint) / )', - disabled: 'rgb(var(--color-text-disabled) / )', - emphasis: 'rgb(var(--color-text-emphasis) / )', - accent: 'rgb(var(--color-text-accent) / )', + primary: createColorDefinition('text-primary'), + secondary: createColorDefinition('text-secondary'), + tertiary: createColorDefinition('text-tertiary'), + hint: createColorDefinition('text-hint'), + disabled: createColorDefinition('text-disabled'), + emphasis: createColorDefinition('text-emphasis'), + accent: createColorDefinition('text-accent'), // Inverse colors (computed from opposite theme) - 'primary-inverse': 'rgb(var(--color-text-primary-inverse) / )', - 'secondary-inverse': 'rgb(var(--color-text-secondary-inverse) / )', - 'tertiary-inverse': 'rgb(var(--color-text-tertiary-inverse) / )', - 'emphasis-inverse': 'rgb(var(--color-text-emphasis-inverse) / )', - 'hint-inverse': 'rgb(var(--color-text-hint-inverse) / )', - 'disabled-inverse': 'rgb(var(--color-text-disabled-inverse) / )', + 'primary-inverse': createColorDefinition('text-primary-inverse'), + 'secondary-inverse': createColorDefinition('text-secondary-inverse'), + 'tertiary-inverse': createColorDefinition('text-tertiary-inverse'), + 'emphasis-inverse': createColorDefinition('text-emphasis-inverse'), + 'hint-inverse': createColorDefinition('text-hint-inverse'), + 'disabled-inverse': createColorDefinition('text-disabled-inverse'), // Border colors (semantic) - 'border-light': 'rgb(var(--color-border-light) / )', - 'border-normal': 'rgb(var(--color-border-normal) / )', - 'border-accent': 'rgb(var(--color-border-accent) / )', - 'border-selected': 'rgb(var(--color-border-selected) / )', + 'border-light': createColorDefinition('border-light'), + 'border-normal': createColorDefinition('border-normal'), + 'border-accent': createColorDefinition('border-accent'), + 'border-selected': createColorDefinition('border-selected'), // Reserved colors (semantic) - ai: 'rgb(var(--color-reserved-ai) / )', - 'ai-inverse': 'rgb(var(--color-reserved-ai-inverse) / )', + ai: createColorDefinition('reserved-ai'), + 'ai-inverse': createColorDefinition('reserved-ai-inverse'), // Surface inverse colors (computed from opposite theme) - 'surface-inverse': 'rgb(var(--color-surface-primary-inverse) / )', - 'surface-secondary-inverse': 'rgb(var(--color-surface-secondary-inverse) / )', - 'surface-hover-inverse': 'rgb(var(--color-surface-hover-inverse) / )', - 'surface-disabled-inverse': 'rgb(var(--color-surface-disabled-inverse) / )', - 'surface-selected-inverse': 'rgb(var(--color-surface-selected-inverse) / )', + 'surface-inverse': createColorDefinition('surface-primary-inverse'), + 'surface-secondary-inverse': createColorDefinition('surface-secondary-inverse'), + 'surface-hover-inverse': createColorDefinition('surface-hover-inverse'), + 'surface-disabled-inverse': createColorDefinition('surface-disabled-inverse'), + 'surface-selected-inverse': createColorDefinition('surface-selected-inverse'), // Component colors - 'component-virtual-node': 'rgb(var(--color-component-virtual-node) / )', + 'component-virtual-node': createColorDefinition('component-virtual-node'), // Design token colors 'light-blue': `rgb(${primitives['light-blue']})`, @@ -919,6 +930,13 @@ function hexToRgb(hex) { const g = parseInt(hex.substring(2, 4), 16) const b = parseInt(hex.substring(4, 6), 16) - // Return the RGB string format + // Check if hex has alpha channel (8 characters) + if (hex.length === 8) { + const a = parseInt(hex.substring(6, 8), 16) / 255 + // Return RGB with alpha as decimal value for CSS + return `${r} ${g} ${b} / ${a.toFixed(3)}` + } + + // Return the RGB string format without alpha return `${r} ${g} ${b}` }