bolt.diy/app/styles/variables.scss
google-labs-jules[bot] 090c5119dc feat: Add LLM planning display and new purple theme
This commit introduces two new features:

1.  LLM Planning Transparency:
    - I am now prompted to first generate a detailed, multi-step plan in Markdown format before providing code or artifacts.
    - Each plan step is prefixed with "g: " which allows the frontend to render it within a collapsible "ThoughtBox".
    - This enhances transparency by allowing you to see my intended approach before I proceed with implementation.

2.  New 'Purple & White' Theme:
    - A new theme named 'purple' has been added to the application.
    - This theme uses a palette of purple shades for text and accents, with white and light lavender for backgrounds.
    - The theme switching logic has been updated to support three themes (light, dark, purple), and the theme switch UI component now cycles icons accordingly.
    - All necessary CSS variables have been defined for the new theme to ensure a consistent look and feel across the application.
2025-06-02 11:05:07 +00:00

363 lines
18 KiB
SCSS

/* Color Tokens Light Theme */
:root,
:root[data-theme='light'] {
--bolt-elements-borderColor: theme('colors.alpha.gray.10');
--bolt-elements-borderColorActive: theme('colors.accent.600');
--bolt-elements-bg-depth-1: theme('colors.white');
--bolt-elements-bg-depth-2: theme('colors.gray.50');
--bolt-elements-bg-depth-3: theme('colors.gray.200');
--bolt-elements-bg-depth-4: theme('colors.alpha.gray.5');
--bolt-elements-textPrimary: theme('colors.gray.950');
--bolt-elements-textSecondary: theme('colors.gray.600');
--bolt-elements-textTertiary: theme('colors.gray.500');
--bolt-elements-code-background: theme('colors.gray.100');
--bolt-elements-code-text: theme('colors.gray.950');
--bolt-elements-button-primary-background: theme('colors.alpha.accent.10');
--bolt-elements-button-primary-backgroundHover: theme('colors.alpha.accent.20');
--bolt-elements-button-primary-text: theme('colors.accent.500');
--bolt-elements-button-secondary-background: theme('colors.alpha.gray.5');
--bolt-elements-button-secondary-backgroundHover: theme('colors.alpha.gray.10');
--bolt-elements-button-secondary-text: theme('colors.gray.950');
--bolt-elements-button-danger-background: theme('colors.alpha.red.10');
--bolt-elements-button-danger-backgroundHover: theme('colors.alpha.red.20');
--bolt-elements-button-danger-text: theme('colors.red.500');
--bolt-elements-item-contentDefault: theme('colors.alpha.gray.50');
--bolt-elements-item-contentActive: theme('colors.gray.950');
--bolt-elements-item-contentAccent: theme('colors.accent.700');
--bolt-elements-item-contentDanger: theme('colors.red.500');
--bolt-elements-item-backgroundDefault: rgba(0, 0, 0, 0);
--bolt-elements-item-backgroundActive: theme('colors.alpha.gray.5');
--bolt-elements-item-backgroundAccent: theme('colors.alpha.accent.10');
--bolt-elements-item-backgroundDanger: theme('colors.alpha.red.10');
--bolt-elements-loader-background: theme('colors.alpha.gray.10');
--bolt-elements-loader-progress: theme('colors.accent.500');
--bolt-elements-artifacts-background: theme('colors.white');
--bolt-elements-artifacts-backgroundHover: theme('colors.alpha.gray.2');
--bolt-elements-artifacts-borderColor: var(--bolt-elements-borderColor);
--bolt-elements-artifacts-inlineCode-background: theme('colors.gray.100');
--bolt-elements-artifacts-inlineCode-text: var(--bolt-elements-textPrimary);
--bolt-elements-actions-background: theme('colors.white');
--bolt-elements-actions-code-background: theme('colors.gray.800');
--bolt-elements-messages-background: theme('colors.gray.100');
--bolt-elements-messages-linkColor: theme('colors.accent.500');
--bolt-elements-messages-code-background: theme('colors.gray.800');
--bolt-elements-messages-inlineCode-background: theme('colors.gray.200');
--bolt-elements-messages-inlineCode-text: theme('colors.gray.800');
--bolt-elements-icon-success: theme('colors.green.500');
--bolt-elements-icon-error: theme('colors.red.500');
--bolt-elements-icon-primary: theme('colors.gray.950');
--bolt-elements-icon-secondary: theme('colors.gray.600');
--bolt-elements-icon-tertiary: theme('colors.gray.500');
--bolt-elements-dividerColor: theme('colors.gray.100');
--bolt-elements-prompt-background: theme('colors.alpha.white.80');
--bolt-elements-sidebar-dropdownShadow: theme('colors.alpha.gray.10');
--bolt-elements-sidebar-buttonBackgroundDefault: theme('colors.alpha.accent.10');
--bolt-elements-sidebar-buttonBackgroundHover: theme('colors.alpha.accent.20');
--bolt-elements-sidebar-buttonText: theme('colors.accent.700');
--bolt-elements-preview-addressBar-background: theme('colors.gray.100');
--bolt-elements-preview-addressBar-backgroundHover: theme('colors.alpha.gray.5');
--bolt-elements-preview-addressBar-backgroundActive: theme('colors.white');
--bolt-elements-preview-addressBar-text: var(--bolt-elements-textSecondary);
--bolt-elements-preview-addressBar-textActive: var(--bolt-elements-textPrimary);
--bolt-elements-terminals-background: theme('colors.white');
--bolt-elements-terminals-buttonBackground: var(--bolt-elements-bg-depth-4);
--bolt-elements-cta-background: theme('colors.gray.100');
--bolt-elements-cta-text: theme('colors.gray.950');
/* Terminal Colors */
--bolt-terminal-background: var(--bolt-elements-terminals-background);
--bolt-terminal-foreground: #333333;
--bolt-terminal-selection-background: #00000040;
--bolt-terminal-black: #000000;
--bolt-terminal-red: #cd3131;
--bolt-terminal-green: #00bc00;
--bolt-terminal-yellow: #949800;
--bolt-terminal-blue: #0451a5;
--bolt-terminal-magenta: #bc05bc;
--bolt-terminal-cyan: #0598bc;
--bolt-terminal-white: #555555;
--bolt-terminal-brightBlack: #686868;
--bolt-terminal-brightRed: #cd3131;
--bolt-terminal-brightGreen: #00bc00;
--bolt-terminal-brightYellow: #949800;
--bolt-terminal-brightBlue: #0451a5;
--bolt-terminal-brightMagenta: #bc05bc;
--bolt-terminal-brightCyan: #0598bc;
--bolt-terminal-brightWhite: #a5a5a5;
--modern-scrollbar-thumb-background: rgba(100, 100, 100, 0.3); // Example light theme color
--modern-scrollbar-thumb-backgroundHover: rgba(74, 74, 74, 0.8);
}
/* Color Tokens Dark Theme */
:root,
:root[data-theme='dark'] {
--bolt-elements-borderColor: theme('colors.alpha.white.10');
--bolt-elements-borderColorActive: theme('colors.accent.500');
--bolt-elements-bg-depth-1: theme('colors.gray.950');
--bolt-elements-bg-depth-2: theme('colors.gray.900');
--bolt-elements-bg-depth-3: theme('colors.gray.800');
--bolt-elements-bg-depth-4: theme('colors.alpha.white.5');
--bolt-elements-textPrimary: theme('colors.white');
--bolt-elements-textSecondary: theme('colors.gray.400');
--bolt-elements-textTertiary: theme('colors.gray.500');
--bolt-elements-code-background: theme('colors.gray.800');
--bolt-elements-code-text: theme('colors.white');
--bolt-elements-button-primary-background: theme('colors.alpha.accent.10');
--bolt-elements-button-primary-backgroundHover: theme('colors.alpha.accent.20');
--bolt-elements-button-primary-text: theme('colors.accent.500');
--bolt-elements-button-secondary-background: theme('colors.alpha.white.5');
--bolt-elements-button-secondary-backgroundHover: theme('colors.alpha.white.10');
--bolt-elements-button-secondary-text: theme('colors.white');
--bolt-elements-button-danger-background: theme('colors.alpha.red.10');
--bolt-elements-button-danger-backgroundHover: theme('colors.alpha.red.20');
--bolt-elements-button-danger-text: theme('colors.red.500');
--bolt-elements-item-contentDefault: theme('colors.alpha.white.50');
--bolt-elements-item-contentActive: theme('colors.white');
--bolt-elements-item-contentAccent: theme('colors.accent.500');
--bolt-elements-item-contentDanger: theme('colors.red.500');
--bolt-elements-item-backgroundDefault: rgba(255, 255, 255, 0);
--bolt-elements-item-backgroundActive: theme('colors.alpha.white.10');
--bolt-elements-item-backgroundAccent: theme('colors.alpha.accent.10');
--bolt-elements-item-backgroundDanger: theme('colors.alpha.red.10');
--bolt-elements-loader-background: theme('colors.alpha.gray.10');
--bolt-elements-loader-progress: theme('colors.accent.500');
--bolt-elements-artifacts-background: theme('colors.gray.900');
--bolt-elements-artifacts-backgroundHover: theme('colors.alpha.white.5');
--bolt-elements-artifacts-borderColor: var(--bolt-elements-borderColor);
--bolt-elements-artifacts-inlineCode-background: theme('colors.gray.800');
--bolt-elements-artifacts-inlineCode-text: theme('colors.white');
--bolt-elements-actions-background: theme('colors.gray.900');
--bolt-elements-actions-code-background: theme('colors.gray.800');
--bolt-elements-messages-background: theme('colors.gray.800');
--bolt-elements-messages-linkColor: theme('colors.accent.500');
--bolt-elements-messages-code-background: theme('colors.gray.900');
--bolt-elements-messages-inlineCode-background: theme('colors.gray.700');
--bolt-elements-messages-inlineCode-text: var(--bolt-elements-textPrimary);
--bolt-elements-icon-success: theme('colors.green.400');
--bolt-elements-icon-error: theme('colors.red.400');
--bolt-elements-icon-primary: theme('colors.gray.950');
--bolt-elements-icon-secondary: theme('colors.gray.600');
--bolt-elements-icon-tertiary: theme('colors.gray.500');
--bolt-elements-dividerColor: theme('colors.gray.100');
--bolt-elements-prompt-background: theme('colors.alpha.gray.80');
--bolt-elements-sidebar-dropdownShadow: theme('colors.alpha.gray.30');
--bolt-elements-sidebar-buttonBackgroundDefault: theme('colors.alpha.accent.10');
--bolt-elements-sidebar-buttonBackgroundHover: theme('colors.alpha.accent.20');
--bolt-elements-sidebar-buttonText: theme('colors.accent.500');
--bolt-elements-preview-addressBar-background: var(--bolt-elements-bg-depth-1);
--bolt-elements-preview-addressBar-backgroundHover: theme('colors.alpha.white.5');
--bolt-elements-preview-addressBar-backgroundActive: var(--bolt-elements-bg-depth-1);
--bolt-elements-preview-addressBar-text: var(--bolt-elements-textSecondary);
--bolt-elements-preview-addressBar-textActive: var(--bolt-elements-textPrimary);
--bolt-elements-terminals-background: var(--bolt-elements-bg-depth-1);
--bolt-elements-terminals-buttonBackground: var(--bolt-elements-bg-depth-3);
--bolt-elements-cta-background: theme('colors.alpha.white.10');
--bolt-elements-cta-text: theme('colors.white');
/* Terminal Colors */
--bolt-terminal-background: var(--bolt-elements-terminals-background);
--bolt-terminal-foreground: #eff0eb;
--bolt-terminal-selection-background: #97979b33;
--bolt-terminal-black: #000000;
--bolt-terminal-red: #ff5c57;
--bolt-terminal-green: #5af78e;
--bolt-terminal-yellow: #f3f99d;
--bolt-terminal-blue: #57c7ff;
--bolt-terminal-magenta: #ff6ac1;
--bolt-terminal-cyan: #9aedfe;
--bolt-terminal-white: #f1f1f0;
--bolt-terminal-brightBlack: #686868;
--bolt-terminal-brightRed: #ff5c57;
--bolt-terminal-brightGreen: #5af78e;
--bolt-terminal-brightYellow: #f3f99d;
--bolt-terminal-brightBlue: #57c7ff;
--bolt-terminal-brightMagenta: #ff6ac1;
--bolt-terminal-brightCyan: #9aedfe;
--bolt-terminal-brightWhite: #f1f1f0;
--modern-scrollbar-thumb-background: rgba(100, 100, 100, 0.3); // Example dark theme color (adjust as needed)
--modern-scrollbar-thumb-backgroundHover: rgba(10, 10, 10, 0.8);
}
/* Color Tokens Purple Theme */
:root[data-theme='purple'] {
--bolt-elements-borderColor: #B39DDB; /* Light purple for borders */
--bolt-elements-borderColorActive: #673AB7; /* Primary purple for active borders */
--bolt-elements-bg-depth-1: #F8F7FC; /* Very light purple/off-white */
--bolt-elements-bg-depth-2: #EDE7F6; /* Light lavender */
--bolt-elements-bg-depth-3: #D1C4E9; /* Lavender */
--bolt-elements-bg-depth-4: #F8F7FC; /* Very light purple/off-white */
--bolt-elements-textPrimary: #311B92; /* Deep purple */
--bolt-elements-textSecondary: #5E35B1; /* Medium purple */
--bolt-elements-textTertiary: #7E57C2; /* Lighter purple */
--bolt-elements-code-background: #EDE7F6; /* Light lavender */
--bolt-elements-code-text: #311B92; /* Deep purple */
--bolt-elements-button-primary-background: #673AB7; /* Primary purple */
--bolt-elements-button-primary-backgroundHover: #512DA8; /* Darker purple for hover */
--bolt-elements-button-primary-text: #FFFFFF; /* White text */
--bolt-elements-button-secondary-background: #EDE7F6; /* Light lavender */
--bolt-elements-button-secondary-backgroundHover: #D1C4E9; /* Lavender for hover */
--bolt-elements-button-secondary-text: #4527A0; /* Dark purple text */
--bolt-elements-button-danger-background: #E91E63; /* Pink for danger */
--bolt-elements-button-danger-backgroundHover: #C2185B; /* Darker pink for hover */
--bolt-elements-button-danger-text: #FFFFFF; /* White text */
--bolt-elements-item-contentDefault: #5E35B1; /* Medium purple */
--bolt-elements-item-contentActive: #311B92; /* Deep purple */
--bolt-elements-item-contentAccent: #673AB7; /* Primary purple for accents */
--bolt-elements-item-contentDanger: #E91E63; /* Pink for danger */
--bolt-elements-item-backgroundDefault: rgba(0, 0, 0, 0);
--bolt-elements-item-backgroundActive: rgba(103, 58, 183, 0.05); /* Very light purple transparent */
--bolt-elements-item-backgroundAccent: rgba(103, 58, 183, 0.1); /* Light purple transparent */
--bolt-elements-item-backgroundDanger: rgba(233, 30, 99, 0.1); /* Light pink transparent */
--bolt-elements-loader-background: #D1C4E9; /* Lavender */
--bolt-elements-loader-progress: #673AB7; /* Primary purple */
--bolt-elements-artifacts-background: #FFFFFF; /* White */
--bolt-elements-artifacts-backgroundHover: #F8F7FC; /* Very light purple/off-white */
--bolt-elements-artifacts-borderColor: var(--bolt-elements-borderColor);
--bolt-elements-artifacts-inlineCode-background: #EDE7F6; /* Light lavender */
--bolt-elements-artifacts-inlineCode-text: var(--bolt-elements-textPrimary);
--bolt-elements-actions-background: #FFFFFF; /* White */
--bolt-elements-actions-code-background: #4A148C; /* Darker purple for code bg */
--bolt-elements-messages-background: #EDE7F6; /* Light lavender */
--bolt-elements-messages-linkColor: #673AB7; /* Primary purple */
--bolt-elements-messages-code-background: #4A148C; /* Darker purple for code bg */
--bolt-elements-messages-inlineCode-background: #D1C4E9; /* Lavender */
--bolt-elements-messages-inlineCode-text: #311B92; /* Deep purple */
--bolt-elements-icon-success: #4CAF50; /* Green for success */
--bolt-elements-icon-error: #F44336; /* Red for error */
--bolt-elements-icon-primary: #311B92; /* Deep purple */
--bolt-elements-icon-secondary: #5E35B1; /* Medium purple */
--bolt-elements-icon-tertiary: #7E57C2; /* Lighter purple */
--bolt-elements-dividerColor: #D1C4E9; /* Lavender */
--bolt-elements-prompt-background: rgba(248, 247, 252, 0.8); /* Translucent light bg */
--bolt-elements-sidebar-dropdownShadow: rgba(103, 58, 183, 0.2); /* Purple shadow */
--bolt-elements-sidebar-buttonBackgroundDefault: rgba(103, 58, 183, 0.1); /* Light purple transparent */
--bolt-elements-sidebar-buttonBackgroundHover: rgba(103, 58, 183, 0.2); /* Slightly darker purple transparent */
--bolt-elements-sidebar-buttonText: #673AB7; /* Primary purple */
--bolt-elements-preview-addressBar-background: #EDE7F6; /* Light lavender */
--bolt-elements-preview-addressBar-backgroundHover: #D1C4E9; /* Lavender */
--bolt-elements-preview-addressBar-backgroundActive: #F8F7FC; /* Very light purple/off-white */
--bolt-elements-preview-addressBar-text: var(--bolt-elements-textSecondary);
--bolt-elements-preview-addressBar-textActive: var(--bolt-elements-textPrimary);
--bolt-elements-terminals-background: #F8F7FC; /* Very light purple/off-white */
--bolt-elements-terminals-buttonBackground: #D1C4E9; /* Lavender */
--bolt-elements-cta-background: #EDE7F6; /* Light lavender */
--bolt-elements-cta-text: #311B92; /* Deep purple */
/* Terminal Colors */
--bolt-terminal-background: var(--bolt-elements-terminals-background);
--bolt-terminal-foreground: #311B92; /* Deep purple */
--bolt-terminal-selection-background: rgba(103, 58, 183, 0.25); /* Purple selection */
--bolt-terminal-black: #311B92; /* Deep purple (adjusted for readability) */
--bolt-terminal-red: #C51162; /* Dark Pink */
--bolt-terminal-green: #673AB7; /* Primary purple */
--bolt-terminal-yellow: #7E57C2; /* Lighter purple */
--bolt-terminal-blue: #5E35B1; /* Medium purple */
--bolt-terminal-magenta: #9C27B0; /* Another shade of purple */
--bolt-terminal-cyan: #7E57C2; /* Lighter purple */
--bolt-terminal-white: #EDE7F6; /* Light lavender (for contrast) */
--bolt-terminal-brightBlack: #5E35B1; /* Medium purple */
--bolt-terminal-brightRed: #E91E63; /* Pink */
--bolt-terminal-brightGreen: #7E57C2; /* Lighter purple */
--bolt-terminal-brightYellow: #B39DDB; /* Light purple */
--bolt-terminal-brightBlue: #673AB7; /* Primary purple */
--bolt-terminal-brightMagenta: #AB47BC; /* Lighter Magenta */
--bolt-terminal-brightCyan: #B39DDB; /* Light purple */
--bolt-terminal-brightWhite: #F8F7FC; /* Very light purple/off-white */
--modern-scrollbar-thumb-background: rgba(103, 58, 183, 0.3);
--modern-scrollbar-thumb-backgroundHover: rgba(103, 58, 183, 0.5);
}
/*
* Element Tokens
*
* Hierarchy: Element Token -> (Element Token | Color Tokens) -> Primitives
*/
:root {
--header-height: 54px;
--chat-max-width: 35rem;
--chat-min-width: 575px;
--workbench-width: min(calc(100% - var(--chat-min-width)), 2536px);
--workbench-inner-width: var(--workbench-width);
--workbench-left: calc(100% - var(--workbench-width));
/* Toasts */
--toastify-color-progress-success: var(--bolt-elements-icon-success);
--toastify-color-progress-error: var(--bolt-elements-icon-error);
/* Terminal */
--bolt-elements-terminal-backgroundColor: var(--bolt-terminal-background);
--bolt-elements-terminal-textColor: var(--bolt-terminal-foreground);
--bolt-elements-terminal-cursorColor: var(--bolt-terminal-foreground);
--bolt-elements-terminal-selection-backgroundColor: var(--bolt-terminal-selection-background);
--bolt-elements-terminal-color-black: var(--bolt-terminal-black);
--bolt-elements-terminal-color-red: var(--bolt-terminal-red);
--bolt-elements-terminal-color-green: var(--bolt-terminal-green);
--bolt-elements-terminal-color-yellow: var(--bolt-terminal-yellow);
--bolt-elements-terminal-color-blue: var(--bolt-terminal-blue);
--bolt-elements-terminal-color-magenta: var(--bolt-terminal-magenta);
--bolt-elements-terminal-color-cyan: var(--bolt-terminal-cyan);
--bolt-elements-terminal-color-white: var(--bolt-terminal-white);
--bolt-elements-terminal-color-brightBlack: var(--bolt-terminal-brightBlack);
--bolt-elements-terminal-color-brightRed: var(--bolt-terminal-brightRed);
--bolt-elements-terminal-color-brightGreen: var(--bolt-terminal-brightGreen);
--bolt-elements-terminal-color-brightYellow: var(--bolt-terminal-brightYellow);
--bolt-elements-terminal-color-brightBlue: var(--bolt-terminal-brightBlue);
--bolt-elements-terminal-color-brightMagenta: var(--bolt-terminal-brightMagenta);
--bolt-elements-terminal-color-brightCyan: var(--bolt-terminal-brightCyan);
--bolt-elements-terminal-color-brightWhite: var(--bolt-terminal-brightWhite);
}