diff --git a/Cargo.lock b/Cargo.lock index a110aef25c..e39df99668 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8997,6 +8997,7 @@ dependencies = [ "settings2", "toml 0.5.11", "util", + "uuid 1.4.1", ] [[package]] diff --git a/crates/client2/src/client2.rs b/crates/client2/src/client2.rs index 6494e0350b..4a1c5f321c 100644 --- a/crates/client2/src/client2.rs +++ b/crates/client2/src/client2.rs @@ -15,8 +15,8 @@ use futures::{ TryStreamExt, }; use gpui::{ - serde_json, AnyModel, AnyWeakModel, AppContext, AsyncAppContext, Model, SemanticVersion, Task, - WeakModel, + actions, serde_json, AnyModel, AnyWeakModel, AppContext, AsyncAppContext, Model, + SemanticVersion, Task, WeakModel, }; use lazy_static::lazy_static; use parking_lot::RwLock; @@ -70,14 +70,7 @@ pub const ZED_SECRET_CLIENT_TOKEN: &str = "618033988749894"; pub const INITIAL_RECONNECTION_DELAY: Duration = Duration::from_millis(100); pub const CONNECTION_TIMEOUT: Duration = Duration::from_secs(5); -#[derive(Clone, Default, PartialEq, Deserialize)] -pub struct SignIn; - -#[derive(Clone, Default, PartialEq, Deserialize)] -pub struct SignOut; - -#[derive(Clone, Default, PartialEq, Deserialize)] -pub struct Reconnect; +actions!(SignIn, SignOut, Reconnect); pub fn init_settings(cx: &mut AppContext) { TelemetrySettings::register(cx); diff --git a/crates/editor2/src/display_map.rs b/crates/editor2/src/display_map.rs index 51f5b0a192..93ceb4f9df 100644 --- a/crates/editor2/src/display_map.rs +++ b/crates/editor2/src/display_map.rs @@ -21,7 +21,7 @@ use lsp::DiagnosticSeverity; use std::{any::TypeId, borrow::Cow, fmt::Debug, num::NonZeroU32, ops::Range, sync::Arc}; use sum_tree::{Bias, TreeMap}; use tab_map::TabMap; -use theme::ThemeVariant; +use theme::Theme; use wrap_map::WrapMap; pub use block_map::{ @@ -505,7 +505,7 @@ impl DisplaySnapshot { &'a self, display_rows: Range, language_aware: bool, - theme: &'a ThemeVariant, + theme: &'a Theme, ) -> impl Iterator> { self.chunks( display_rows, diff --git a/crates/editor2/src/editor.rs b/crates/editor2/src/editor.rs index 78cbbd9101..716fdcd488 100644 --- a/crates/editor2/src/editor.rs +++ b/crates/editor2/src/editor.rs @@ -82,7 +82,7 @@ use std::{ pub use sum_tree::Bias; use sum_tree::TreeMap; use text::Rope; -use theme::{ActiveTheme, PlayerColor, ThemeColors, ThemeSettings, ThemeVariant}; +use theme::{ActiveTheme, PlayerColor, Theme, ThemeColors, ThemeSettings}; use util::{post_inc, RangeExt, ResultExt, TryFutureExt}; use workspace::{ItemNavHistory, SplitDirection, ViewId, Workspace}; @@ -9982,7 +9982,7 @@ pub fn highlight_diagnostic_message( (message_without_backticks, highlights) } -pub fn diagnostic_style(severity: DiagnosticSeverity, valid: bool, theme: &ThemeVariant) -> Hsla { +pub fn diagnostic_style(severity: DiagnosticSeverity, valid: bool, theme: &Theme) -> Hsla { match (severity, valid) { (DiagnosticSeverity::ERROR, true) => theme.status().error, (DiagnosticSeverity::ERROR, false) => theme.status().error, diff --git a/crates/editor2/src/items.rs b/crates/editor2/src/items.rs index e0b4423f82..9c49e5f143 100644 --- a/crates/editor2/src/items.rs +++ b/crates/editor2/src/items.rs @@ -27,7 +27,7 @@ use std::{ sync::Arc, }; use text::Selection; -use theme::{ActiveTheme, ThemeVariant}; +use theme::{ActiveTheme, Theme}; use util::{paths::PathExt, ResultExt, TryFutureExt}; use workspace::item::{BreadcrumbText, FollowableItemHandle}; use workspace::{ @@ -777,7 +777,7 @@ impl Item for Editor { ToolbarItemLocation::PrimaryLeft { flex: None } } - fn breadcrumbs(&self, variant: &ThemeVariant, cx: &AppContext) -> Option> { + fn breadcrumbs(&self, variant: &Theme, cx: &AppContext) -> Option> { todo!(); // let cursor = self.selections.newest_anchor().head(); // let multibuffer = &self.buffer().read(cx); diff --git a/crates/gpui2/src/action.rs b/crates/gpui2/src/action.rs index 2139fdedcb..393a3feda6 100644 --- a/crates/gpui2/src/action.rs +++ b/crates/gpui2/src/action.rs @@ -4,7 +4,7 @@ use collections::{HashMap, HashSet}; use serde::Deserialize; use std::any::{type_name, Any}; -pub trait Action: 'static { +pub trait Action: std::fmt::Debug + 'static { fn qualified_name() -> SharedString where Self: Sized; @@ -17,12 +17,38 @@ pub trait Action: 'static { fn as_any(&self) -> &dyn Any; } +// actions defines structs that can be used as actions. +#[macro_export] +macro_rules! actions { + () => {}; + + ( $name:ident ) => { + #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug, ::std::cmp::PartialEq, $crate::serde::Deserialize)] + struct $name; + }; + + ( $name:ident { $($token:tt)* } ) => { + #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug, ::std::cmp::PartialEq, $crate::serde::Deserialize)] + struct $name { $($token)* } + }; + + ( $name:ident, $($rest:tt)* ) => { + actions!($name); + actions!($($rest)*); + }; + + ( $name:ident { $($token:tt)* }, $($rest:tt)* ) => { + actions!($name { $($token)* }); + actions!($($rest)*); + }; +} + impl Action for A where - A: for<'a> Deserialize<'a> + PartialEq + Clone + Default + 'static, + A: for<'a> Deserialize<'a> + PartialEq + Clone + Default + std::fmt::Debug + 'static, { fn qualified_name() -> SharedString { - // todo!() remove this + // todo!() remove the 2 replacement when migration is done type_name::().replace("2::", "::").into() } @@ -293,6 +319,25 @@ mod tests { use super::*; use DispatchContextPredicate::*; + #[test] + fn test_actions_definition() { + { + actions!(A, B { field: i32 }, C, D, E, F {}, G); + } + + { + actions!( + A, + B { field: i32 }, + C, + D, + E, + F {}, + G, // Don't wrap, test the trailing comma + ); + } + } + #[test] fn test_parse_context() { let mut expected = DispatchContext::default(); diff --git a/crates/gpui2/src/app/test_context.rs b/crates/gpui2/src/app/test_context.rs index 856fce75b4..530138e21e 100644 --- a/crates/gpui2/src/app/test_context.rs +++ b/crates/gpui2/src/app/test_context.rs @@ -1,7 +1,7 @@ use crate::{ AnyView, AnyWindowHandle, AppCell, AppContext, AsyncAppContext, BackgroundExecutor, Context, - EventEmitter, ForegroundExecutor, Model, ModelContext, Result, Task, TestDispatcher, - TestPlatform, WindowContext, + EventEmitter, ForegroundExecutor, InputEvent, KeyDownEvent, Keystroke, Model, ModelContext, + Result, Task, TestDispatcher, TestPlatform, WindowContext, }; use anyhow::{anyhow, bail}; use futures::{Stream, StreamExt}; @@ -129,6 +129,23 @@ impl TestAppContext { } } + pub fn dispatch_keystroke( + &mut self, + window: AnyWindowHandle, + keystroke: Keystroke, + is_held: bool, + ) { + let handled = window + .update(self, |_, cx| { + cx.dispatch_event(InputEvent::KeyDown(KeyDownEvent { keystroke, is_held })) + }) + .is_ok_and(|handled| handled); + + if !handled { + // todo!() simluate input here + } + } + pub fn notifications(&mut self, entity: &Model) -> impl Stream { let (tx, rx) = futures::channel::mpsc::unbounded(); diff --git a/crates/gpui2/src/elements/div.rs b/crates/gpui2/src/elements/div.rs index e011041bae..061ec095f8 100644 --- a/crates/gpui2/src/elements/div.rs +++ b/crates/gpui2/src/elements/div.rs @@ -209,15 +209,15 @@ where cx: &mut ViewContext, ) -> Self::ElementState { let mut element_state = element_state.unwrap_or_default(); - self.focus - .initialize(element_state.focus_handle.take(), cx, |focus_handle, cx| { - element_state.focus_handle = focus_handle; - self.interaction.initialize(cx, |cx| { + self.interaction.initialize(cx, |cx| { + self.focus + .initialize(element_state.focus_handle.take(), cx, |focus_handle, cx| { + element_state.focus_handle = focus_handle; for child in &mut self.children { child.initialize(view_state, cx); } }) - }); + }); element_state } diff --git a/crates/gpui2/src/geometry.rs b/crates/gpui2/src/geometry.rs index 41f594ade2..e16635be36 100644 --- a/crates/gpui2/src/geometry.rs +++ b/crates/gpui2/src/geometry.rs @@ -25,6 +25,10 @@ impl Point { Self { x, y } } + pub fn zero() -> Self { + Self::new(T::default(), T::default()) + } + pub fn map(&self, f: impl Fn(T) -> U) -> Point { Point { x: f(self.x.clone()), diff --git a/crates/gpui2/src/gpui2.rs b/crates/gpui2/src/gpui2.rs index 49cc3cebc2..348da17356 100644 --- a/crates/gpui2/src/gpui2.rs +++ b/crates/gpui2/src/gpui2.rs @@ -1,3 +1,4 @@ +#[macro_use] mod action; mod app; mod assets; diff --git a/crates/gpui2/src/interactive.rs b/crates/gpui2/src/interactive.rs index da208b3813..0725a10aca 100644 --- a/crates/gpui2/src/interactive.rs +++ b/crates/gpui2/src/interactive.rs @@ -1230,3 +1230,70 @@ pub type KeyListener = Box< ) -> Option> + 'static, >; + +#[cfg(test)] +mod test { + use crate::{ + self as gpui, div, Div, FocusHandle, KeyBinding, Keystroke, ParentElement, Render, + StatefulInteraction, StatelessInteractive, TestAppContext, VisualContext, + }; + + struct TestView { + saw_key_down: bool, + saw_action: bool, + focus_handle: FocusHandle, + } + + actions!(TestAction); + + impl Render for TestView { + type Element = Div>; + + fn render(&mut self, _: &mut gpui::ViewContext) -> Self::Element { + div().id("testview").child( + div() + .on_key_down(|this: &mut TestView, _, _, _| { + dbg!("ola!"); + this.saw_key_down = true + }) + .on_action(|this: &mut TestView, _: &TestAction, _, _| { + dbg!("ola!"); + this.saw_action = true + }) + .track_focus(&self.focus_handle), + ) + } + } + + #[gpui::test] + fn test_on_events(cx: &mut TestAppContext) { + let window = cx.update(|cx| { + cx.open_window(Default::default(), |cx| { + cx.build_view(|cx| TestView { + saw_key_down: false, + saw_action: false, + focus_handle: cx.focus_handle(), + }) + }) + }); + + cx.update(|cx| { + cx.bind_keys(vec![KeyBinding::new("ctrl-g", TestAction, None)]); + }); + + window + .update(cx, |test_view, cx| cx.focus(&test_view.focus_handle)) + .unwrap(); + + cx.dispatch_keystroke(*window, Keystroke::parse("space").unwrap(), false); + cx.dispatch_keystroke(*window, Keystroke::parse("ctrl-g").unwrap(), false); + + window + .update(cx, |test_view, _| { + assert!(test_view.saw_key_down || test_view.saw_action); + assert!(test_view.saw_key_down); + assert!(test_view.saw_action); + }) + .unwrap(); + } +} diff --git a/crates/gpui2/src/platform/test.rs b/crates/gpui2/src/platform/test.rs index 7e59ced730..acc8ffe41c 100644 --- a/crates/gpui2/src/platform/test.rs +++ b/crates/gpui2/src/platform/test.rs @@ -1,5 +1,9 @@ mod dispatcher; +mod display; mod platform; +mod window; pub use dispatcher::*; +pub use display::*; pub use platform::*; +pub use window::*; diff --git a/crates/gpui2/src/platform/test/display.rs b/crates/gpui2/src/platform/test/display.rs new file mode 100644 index 0000000000..78d75296e6 --- /dev/null +++ b/crates/gpui2/src/platform/test/display.rs @@ -0,0 +1,41 @@ +use anyhow::{Ok, Result}; + +use crate::{Bounds, DisplayId, GlobalPixels, PlatformDisplay, Point}; + +#[derive(Debug)] +pub struct TestDisplay { + id: DisplayId, + uuid: uuid::Uuid, + bounds: Bounds, +} + +impl TestDisplay { + pub fn new() -> Self { + TestDisplay { + id: DisplayId(1), + uuid: uuid::Uuid::new_v4(), + bounds: Bounds::from_corners( + Point::zero(), + Point::new(GlobalPixels(1920.), GlobalPixels(1080.)), + ), + } + } +} + +impl PlatformDisplay for TestDisplay { + fn id(&self) -> crate::DisplayId { + self.id + } + + fn uuid(&self) -> Result { + Ok(self.uuid) + } + + fn as_any(&self) -> &dyn std::any::Any { + todo!() + } + + fn bounds(&self) -> crate::Bounds { + self.bounds + } +} diff --git a/crates/gpui2/src/platform/test/platform.rs b/crates/gpui2/src/platform/test/platform.rs index b4f3c739e6..37978e7ad7 100644 --- a/crates/gpui2/src/platform/test/platform.rs +++ b/crates/gpui2/src/platform/test/platform.rs @@ -1,10 +1,18 @@ -use crate::{BackgroundExecutor, DisplayId, ForegroundExecutor, Platform, PlatformTextSystem}; +use crate::{ + AnyWindowHandle, BackgroundExecutor, CursorStyle, DisplayId, ForegroundExecutor, Platform, + PlatformDisplay, PlatformTextSystem, TestDisplay, TestWindow, WindowOptions, +}; use anyhow::{anyhow, Result}; -use std::sync::Arc; +use parking_lot::Mutex; +use std::{rc::Rc, sync::Arc}; pub struct TestPlatform { background_executor: BackgroundExecutor, foreground_executor: ForegroundExecutor, + + active_window: Arc>>, + active_display: Rc, + active_cursor: Mutex, } impl TestPlatform { @@ -12,6 +20,10 @@ impl TestPlatform { TestPlatform { background_executor: executor, foreground_executor, + + active_cursor: Default::default(), + active_display: Rc::new(TestDisplay::new()), + active_window: Default::default(), } } } @@ -59,11 +71,11 @@ impl Platform for TestPlatform { } fn displays(&self) -> Vec> { - unimplemented!() + vec![self.active_display.clone()] } - fn display(&self, _id: DisplayId) -> Option> { - unimplemented!() + fn display(&self, id: DisplayId) -> Option> { + self.displays().iter().find(|d| d.id() == id).cloned() } fn main_window(&self) -> Option { @@ -72,10 +84,11 @@ impl Platform for TestPlatform { fn open_window( &self, - _handle: crate::AnyWindowHandle, - _options: crate::WindowOptions, + handle: AnyWindowHandle, + options: WindowOptions, ) -> Box { - unimplemented!() + *self.active_window.lock() = Some(handle); + Box::new(TestWindow::new(options, self.active_display.clone())) } fn set_display_link_output_callback( @@ -164,8 +177,8 @@ impl Platform for TestPlatform { unimplemented!() } - fn set_cursor_style(&self, _style: crate::CursorStyle) { - unimplemented!() + fn set_cursor_style(&self, style: crate::CursorStyle) { + *self.active_cursor.lock() = style; } fn should_auto_hide_scrollbars(&self) -> bool { diff --git a/crates/gpui2/src/platform/test/window.rs b/crates/gpui2/src/platform/test/window.rs new file mode 100644 index 0000000000..f132719655 --- /dev/null +++ b/crates/gpui2/src/platform/test/window.rs @@ -0,0 +1,179 @@ +use std::{rc::Rc, sync::Arc}; + +use parking_lot::Mutex; + +use crate::{ + px, Pixels, PlatformAtlas, PlatformDisplay, PlatformWindow, Point, Scene, Size, + WindowAppearance, WindowBounds, WindowOptions, +}; + +#[derive(Default)] +struct Handlers { + active_status_change: Vec>, + input: Vec bool>>, + moved: Vec>, + resize: Vec, f32)>>, +} + +pub struct TestWindow { + bounds: WindowBounds, + current_scene: Mutex>, + display: Rc, + + handlers: Mutex, + sprite_atlas: Arc, +} +impl TestWindow { + pub fn new(options: WindowOptions, display: Rc) -> Self { + Self { + bounds: options.bounds, + current_scene: Default::default(), + display, + + sprite_atlas: Arc::new(TestAtlas), + handlers: Default::default(), + } + } +} + +impl PlatformWindow for TestWindow { + fn bounds(&self) -> WindowBounds { + self.bounds + } + + fn content_size(&self) -> Size { + let bounds = match self.bounds { + WindowBounds::Fixed(bounds) => bounds, + WindowBounds::Maximized | WindowBounds::Fullscreen => self.display().bounds(), + }; + bounds.size.map(|p| px(p.0)) + } + + fn scale_factor(&self) -> f32 { + 2.0 + } + + fn titlebar_height(&self) -> Pixels { + todo!() + } + + fn appearance(&self) -> WindowAppearance { + todo!() + } + + fn display(&self) -> std::rc::Rc { + self.display.clone() + } + + fn mouse_position(&self) -> Point { + Point::zero() + } + + fn as_any_mut(&mut self) -> &mut dyn std::any::Any { + todo!() + } + + fn set_input_handler(&mut self, _input_handler: Box) { + todo!() + } + + fn prompt( + &self, + _level: crate::PromptLevel, + _msg: &str, + _answers: &[&str], + ) -> futures::channel::oneshot::Receiver { + todo!() + } + + fn activate(&self) { + todo!() + } + + fn set_title(&mut self, _title: &str) { + todo!() + } + + fn set_edited(&mut self, _edited: bool) { + todo!() + } + + fn show_character_palette(&self) { + todo!() + } + + fn minimize(&self) { + todo!() + } + + fn zoom(&self) { + todo!() + } + + fn toggle_full_screen(&self) { + todo!() + } + + fn on_input(&self, callback: Box bool>) { + self.handlers.lock().input.push(callback) + } + + fn on_active_status_change(&self, callback: Box) { + self.handlers.lock().active_status_change.push(callback) + } + + fn on_resize(&self, callback: Box, f32)>) { + self.handlers.lock().resize.push(callback) + } + + fn on_fullscreen(&self, _callback: Box) { + todo!() + } + + fn on_moved(&self, callback: Box) { + self.handlers.lock().moved.push(callback) + } + + fn on_should_close(&self, _callback: Box bool>) { + todo!() + } + + fn on_close(&self, _callback: Box) { + todo!() + } + + fn on_appearance_changed(&self, _callback: Box) { + todo!() + } + + fn is_topmost_for_position(&self, _position: crate::Point) -> bool { + todo!() + } + + fn draw(&self, scene: crate::Scene) { + self.current_scene.lock().replace(scene); + } + + fn sprite_atlas(&self) -> std::sync::Arc { + self.sprite_atlas.clone() + } +} + +pub struct TestAtlas; + +impl PlatformAtlas for TestAtlas { + fn get_or_insert_with<'a>( + &self, + _key: &crate::AtlasKey, + _build: &mut dyn FnMut() -> anyhow::Result<( + Size, + std::borrow::Cow<'a, [u8]>, + )>, + ) -> anyhow::Result { + todo!() + } + + fn clear(&self) { + todo!() + } +} diff --git a/crates/gpui2/src/window.rs b/crates/gpui2/src/window.rs index 0b3bcd1d76..cc5d25627e 100644 --- a/crates/gpui2/src/window.rs +++ b/crates/gpui2/src/window.rs @@ -1047,7 +1047,7 @@ impl<'a> WindowContext<'a> { } /// Dispatch a mouse or keyboard event on the window. - fn dispatch_event(&mut self, event: InputEvent) -> bool { + pub fn dispatch_event(&mut self, event: InputEvent) -> bool { let event = match event { // Track the mouse position with our own state, since accessing the platform // API for the mouse position can only occur on the main thread. diff --git a/crates/language2/src/language2.rs b/crates/language2/src/language2.rs index 826817c99a..bdea440c08 100644 --- a/crates/language2/src/language2.rs +++ b/crates/language2/src/language2.rs @@ -43,7 +43,7 @@ use std::{ }, }; use syntax_map::SyntaxSnapshot; -use theme::{SyntaxTheme, ThemeVariant}; +use theme::{SyntaxTheme, Theme}; use tree_sitter::{self, Query}; use unicase::UniCase; use util::{http::HttpClient, paths::PathExt}; @@ -643,7 +643,7 @@ struct LanguageRegistryState { next_available_language_id: AvailableLanguageId, loading_languages: HashMap>>>>, subscription: (watch::Sender<()>, watch::Receiver<()>), - theme: Option>, + theme: Option>, version: usize, reload_count: usize, } @@ -744,7 +744,7 @@ impl LanguageRegistry { self.state.read().reload_count } - pub fn set_theme(&self, theme: Arc) { + pub fn set_theme(&self, theme: Arc) { let mut state = self.state.write(); state.theme = Some(theme.clone()); for language in &state.languages { diff --git a/crates/storybook2/src/stories/focus.rs b/crates/storybook2/src/stories/focus.rs index 16c03f87d5..0f580d0cbf 100644 --- a/crates/storybook2/src/stories/focus.rs +++ b/crates/storybook2/src/stories/focus.rs @@ -1,18 +1,10 @@ use gpui::{ - div, Div, FocusEnabled, Focusable, KeyBinding, ParentElement, Render, StatefulInteraction, - StatelessInteractive, Styled, View, VisualContext, WindowContext, + actions, div, Div, FocusEnabled, Focusable, KeyBinding, ParentElement, Render, + StatefulInteraction, StatelessInteractive, Styled, View, VisualContext, WindowContext, }; -use serde::Deserialize; use theme2::ActiveTheme; -#[derive(Clone, Default, PartialEq, Deserialize)] -struct ActionA; - -#[derive(Clone, Default, PartialEq, Deserialize)] -struct ActionB; - -#[derive(Clone, Default, PartialEq, Deserialize)] -struct ActionC; +actions!(ActionA, ActionB, ActionC); pub struct FocusStory {} diff --git a/crates/theme2/Cargo.toml b/crates/theme2/Cargo.toml index 5a8448372c..d57c22ede7 100644 --- a/crates/theme2/Cargo.toml +++ b/crates/theme2/Cargo.toml @@ -28,6 +28,7 @@ serde_derive.workspace = true serde_json.workspace = true settings = { package = "settings2", path = "../settings2" } toml.workspace = true +uuid.workspace = true util = { path = "../util" } [dev-dependencies] diff --git a/crates/theme2/src/default_theme.rs b/crates/theme2/src/default_theme.rs index d7360b6f71..dacd26be3e 100644 --- a/crates/theme2/src/default_theme.rs +++ b/crates/theme2/src/default_theme.rs @@ -1,10 +1,10 @@ use crate::{ colors::{GitStatusColors, PlayerColors, StatusColors, SystemColors, ThemeColors, ThemeStyles}, - default_color_scales, Appearance, SyntaxTheme, ThemeFamily, ThemeVariant, + default_color_scales, Appearance, SyntaxTheme, Theme, ThemeFamily, }; -fn zed_pro_daylight() -> ThemeVariant { - ThemeVariant { +fn zed_pro_daylight() -> Theme { + Theme { id: "zed_pro_daylight".to_string(), name: "Zed Pro Daylight".into(), appearance: Appearance::Light, @@ -19,8 +19,8 @@ fn zed_pro_daylight() -> ThemeVariant { } } -pub(crate) fn zed_pro_moonlight() -> ThemeVariant { - ThemeVariant { +pub(crate) fn zed_pro_moonlight() -> Theme { + Theme { id: "zed_pro_moonlight".to_string(), name: "Zed Pro Moonlight".into(), appearance: Appearance::Dark, @@ -51,7 +51,7 @@ impl Default for ThemeFamily { } } -impl Default for ThemeVariant { +impl Default for Theme { fn default() -> Self { zed_pro_daylight() } diff --git a/crates/theme2/src/registry.rs b/crates/theme2/src/registry.rs index 98797e2cad..37055da361 100644 --- a/crates/theme2/src/registry.rs +++ b/crates/theme2/src/registry.rs @@ -1,10 +1,17 @@ -use crate::{zed_pro_family, ThemeFamily, ThemeVariant}; +use std::collections::HashMap; +use std::sync::Arc; + use anyhow::{anyhow, Result}; use gpui::SharedString; -use std::{collections::HashMap, sync::Arc}; +use refineable::Refineable; + +use crate::{ + zed_pro_family, Appearance, GitStatusColors, PlayerColors, StatusColors, SyntaxTheme, + SystemColors, Theme, ThemeColors, ThemeFamily, ThemeStyles, UserTheme, UserThemeFamily, +}; pub struct ThemeRegistry { - themes: HashMap>, + themes: HashMap>, } impl ThemeRegistry { @@ -14,12 +21,43 @@ impl ThemeRegistry { } } - fn insert_themes(&mut self, themes: impl IntoIterator) { + fn insert_themes(&mut self, themes: impl IntoIterator) { for theme in themes.into_iter() { self.themes.insert(theme.name.clone(), Arc::new(theme)); } } + fn insert_user_theme_familes(&mut self, families: impl IntoIterator) { + for family in families.into_iter() { + self.insert_user_themes(family.themes); + } + } + + fn insert_user_themes(&mut self, themes: impl IntoIterator) { + self.insert_themes(themes.into_iter().map(|user_theme| { + let mut theme_colors = match user_theme.appearance { + Appearance::Light => ThemeColors::default_light(), + Appearance::Dark => ThemeColors::default_dark(), + }; + + theme_colors.refine(&user_theme.styles.colors); + + Theme { + id: uuid::Uuid::new_v4().to_string(), + name: user_theme.name.into(), + appearance: user_theme.appearance, + styles: ThemeStyles { + system: SystemColors::default(), + colors: theme_colors, + status: StatusColors::default(), + git: GitStatusColors::default(), + player: PlayerColors::default(), + syntax: SyntaxTheme::default_dark(), + }, + } + })); + } + pub fn list_names(&self, _staff: bool) -> impl Iterator + '_ { self.themes.keys().cloned() } @@ -28,7 +66,7 @@ impl ThemeRegistry { self.themes.values().map(|theme| theme.name.clone()) } - pub fn get(&self, name: &str) -> Result> { + pub fn get(&self, name: &str) -> Result> { self.themes .get(name) .ok_or_else(|| anyhow!("theme not found: {}", name)) @@ -43,7 +81,7 @@ impl Default for ThemeRegistry { }; this.insert_theme_families([zed_pro_family()]); - this.insert_theme_families(crate::all_imported_themes()); + this.insert_user_theme_familes(crate::all_imported_themes()); this } diff --git a/crates/theme2/src/settings.rs b/crates/theme2/src/settings.rs index 5e8f9de873..c575768401 100644 --- a/crates/theme2/src/settings.rs +++ b/crates/theme2/src/settings.rs @@ -1,4 +1,4 @@ -use crate::{ThemeRegistry, ThemeVariant}; +use crate::{Theme, ThemeRegistry}; use anyhow::Result; use gpui::{px, AppContext, Font, FontFeatures, FontStyle, FontWeight, Pixels}; use schemars::{ @@ -21,7 +21,7 @@ pub struct ThemeSettings { pub buffer_font: Font, pub buffer_font_size: Pixels, pub buffer_line_height: BufferLineHeight, - pub active_theme: Arc, + pub active_theme: Arc, } #[derive(Default)] diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index 40e782c617..0a9b9821f6 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -6,6 +6,7 @@ mod scale; mod settings; mod syntax; mod themes; +mod user_theme; use std::sync::Arc; @@ -18,10 +19,12 @@ pub use scale::*; pub use settings::*; pub use syntax::*; pub use themes::*; +pub use user_theme::*; use gpui::{AppContext, Hsla, SharedString}; +use serde::Deserialize; -#[derive(Debug, PartialEq, Clone, Copy)] +#[derive(Debug, PartialEq, Clone, Copy, Deserialize)] pub enum Appearance { Light, Dark, @@ -33,11 +36,11 @@ pub fn init(cx: &mut AppContext) { } pub trait ActiveTheme { - fn theme(&self) -> &Arc; + fn theme(&self) -> &Arc; } impl ActiveTheme for AppContext { - fn theme(&self) -> &Arc { + fn theme(&self) -> &Arc { &ThemeSettings::get_global(self).active_theme } } @@ -46,20 +49,20 @@ pub struct ThemeFamily { pub id: String, pub name: SharedString, pub author: SharedString, - pub themes: Vec, + pub themes: Vec, pub scales: ColorScales, } impl ThemeFamily {} -pub struct ThemeVariant { +pub struct Theme { pub id: String, pub name: SharedString, pub appearance: Appearance, pub styles: ThemeStyles, } -impl ThemeVariant { +impl Theme { /// Returns the [`ThemeColors`] for the theme. #[inline(always)] pub fn players(&self) -> &PlayerColors { diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index b0400a8c4b..0d58dc9d56 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -1,351 +1,82 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn andromeda() -> ThemeFamily { - ThemeFamily { - id: "ecd46547-a042-424d-99ca-5f56c060f798".into(), +pub fn andromeda() -> UserThemeFamily { + UserThemeFamily { name: "Andromeda".into(), author: "Eliver Lara (EliverLara)".into(), themes: vec![ - ThemeVariant { - id: "3bfb3b6e-365a-4cd2-9a80-2d2c81434729".into(), + UserTheme { name: "Andromeda".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x1b1d23ff).into(), - border_variant: rgba(0x1b1d23ff).into(), - border_focused: rgba(0x1b1d23ff).into(), - border_selected: rgba(0x1b1d23ff).into(), - border_transparent: rgba(0x1b1d23ff).into(), - border_disabled: rgba(0x1b1d23ff).into(), - elevated_surface_background: rgba(0x23262eff).into(), - surface_background: rgba(0x23262eff).into(), - background: rgba(0x23262eff).into(), - element_background: rgba(0x00e8c5cc).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xd4cdd8ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x23262eff).into(), - tab_active_background: rgba(0x23262eff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x000000e6).into(), - terminal_ansi_bright_red: rgba(0xee5d42ff).into(), - terminal_ansi_bright_green: rgba(0x95e072ff).into(), - terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), - terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), - terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), - terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), - terminal_ansi_bright_white: rgba(0xb0b4baff).into(), - terminal_ansi_black: rgba(0x000000f2).into(), - terminal_ansi_red: rgba(0xee5d42ff).into(), - terminal_ansi_green: rgba(0x95e072ff).into(), - terminal_ansi_yellow: rgba(0xffe66dff).into(), - terminal_ansi_blue: rgba(0x7bb7ffff).into(), - terminal_ansi_magenta: rgba(0xff00a9ff).into(), - terminal_ansi_cyan: rgba(0x00e8c6ff).into(), - terminal_ansi_white: rgba(0xedeef0ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x1b1d23ff).into()), + border_variant: Some(rgba(0x1b1d23ff).into()), + border_focused: Some(rgba(0x1b1d23ff).into()), + border_selected: Some(rgba(0x1b1d23ff).into()), + border_transparent: Some(rgba(0x1b1d23ff).into()), + border_disabled: Some(rgba(0x1b1d23ff).into()), + elevated_surface_background: Some(rgba(0x23262eff).into()), + surface_background: Some(rgba(0x23262eff).into()), + background: Some(rgba(0x23262eff).into()), + element_background: Some(rgba(0x00e8c5cc).into()), + text: Some(rgba(0xd4cdd8ff).into()), + tab_inactive_background: Some(rgba(0x23262eff).into()), + tab_active_background: Some(rgba(0x23262eff).into()), + terminal_ansi_bright_red: Some(rgba(0xee5d42ff).into()), + terminal_ansi_bright_green: Some(rgba(0x95e072ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffe66dff).into()), + terminal_ansi_bright_blue: Some(rgba(0x7bb7ffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xff00a9ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x00e8c6ff).into()), + terminal_ansi_red: Some(rgba(0xee5d42ff).into()), + terminal_ansi_green: Some(rgba(0x95e072ff).into()), + terminal_ansi_yellow: Some(rgba(0xffe66dff).into()), + terminal_ansi_blue: Some(rgba(0x7bb7ffff).into()), + terminal_ansi_magenta: Some(rgba(0xff00a9ff).into()), + terminal_ansi_cyan: Some(rgba(0x00e8c6ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "7bc92ac8-152c-46d5-b346-df68e4db2e7c".into(), + UserTheme { name: "Andromeda Bordered".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x1b1d23ff).into(), - border_variant: rgba(0x1b1d23ff).into(), - border_focused: rgba(0x1b1d23ff).into(), - border_selected: rgba(0x1b1d23ff).into(), - border_transparent: rgba(0x1b1d23ff).into(), - border_disabled: rgba(0x1b1d23ff).into(), - elevated_surface_background: rgba(0x23262eff).into(), - surface_background: rgba(0x23262eff).into(), - background: rgba(0x262933ff).into(), - element_background: rgba(0x00e8c5cc).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xd4cdd8ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x23262eff).into(), - tab_active_background: rgba(0x262933ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x000000e6).into(), - terminal_ansi_bright_red: rgba(0xee5d42ff).into(), - terminal_ansi_bright_green: rgba(0x95e072ff).into(), - terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), - terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), - terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), - terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), - terminal_ansi_bright_white: rgba(0xb0b4baff).into(), - terminal_ansi_black: rgba(0x000000f2).into(), - terminal_ansi_red: rgba(0xee5d42ff).into(), - terminal_ansi_green: rgba(0x95e072ff).into(), - terminal_ansi_yellow: rgba(0xffe66dff).into(), - terminal_ansi_blue: rgba(0x7bb7ffff).into(), - terminal_ansi_magenta: rgba(0xff00a9ff).into(), - terminal_ansi_cyan: rgba(0x00e8c6ff).into(), - terminal_ansi_white: rgba(0xedeef0ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x1b1d23ff).into()), + border_variant: Some(rgba(0x1b1d23ff).into()), + border_focused: Some(rgba(0x1b1d23ff).into()), + border_selected: Some(rgba(0x1b1d23ff).into()), + border_transparent: Some(rgba(0x1b1d23ff).into()), + border_disabled: Some(rgba(0x1b1d23ff).into()), + elevated_surface_background: Some(rgba(0x23262eff).into()), + surface_background: Some(rgba(0x23262eff).into()), + background: Some(rgba(0x262933ff).into()), + element_background: Some(rgba(0x00e8c5cc).into()), + text: Some(rgba(0xd4cdd8ff).into()), + tab_inactive_background: Some(rgba(0x23262eff).into()), + tab_active_background: Some(rgba(0x262933ff).into()), + terminal_ansi_bright_red: Some(rgba(0xee5d42ff).into()), + terminal_ansi_bright_green: Some(rgba(0x95e072ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffe66dff).into()), + terminal_ansi_bright_blue: Some(rgba(0x7bb7ffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xff00a9ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x00e8c6ff).into()), + terminal_ansi_red: Some(rgba(0xee5d42ff).into()), + terminal_ansi_green: Some(rgba(0x95e072ff).into()), + terminal_ansi_yellow: Some(rgba(0xffe66dff).into()), + terminal_ansi_blue: Some(rgba(0x7bb7ffff).into()), + terminal_ansi_magenta: Some(rgba(0xff00a9ff).into()), + terminal_ansi_cyan: Some(rgba(0x00e8c6ff).into()), + ..Default::default() }, }, }, ], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index a2c054ac28..6298de40ee 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -1,518 +1,131 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn ayu() -> ThemeFamily { - ThemeFamily { - id: "4faecf44-837e-4034-9197-7da909668498".into(), +pub fn ayu() -> UserThemeFamily { + UserThemeFamily { name: "Ayu".into(), author: "dempfi (Ike Ku)".into(), themes: vec![ - ThemeVariant { - id: "733aeb9b-98fd-4492-984e-d71540daf72e".into(), + UserTheme { name: "Ayu Light".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x6b7d8f1f).into(), - border_variant: rgba(0x6b7d8f1f).into(), - border_focused: rgba(0x6b7d8f1f).into(), - border_selected: rgba(0x6b7d8f1f).into(), - border_transparent: rgba(0x6b7d8f1f).into(), - border_disabled: rgba(0x6b7d8f1f).into(), - elevated_surface_background: rgba(0xf8f9faff).into(), - surface_background: rgba(0xf8f9faff).into(), - background: rgba(0xf8f9faff).into(), - element_background: rgba(0xffaa32ff).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x8a9199ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0xf8f9faff).into(), - tab_active_background: rgba(0xf8f9faff).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xf8f9faff).into(), - terminal_ansi_bright_black: rgba(0x686868ff).into(), - terminal_ansi_bright_red: rgba(0xef7070ff).into(), - terminal_ansi_bright_green: rgba(0x86b300ff).into(), - terminal_ansi_bright_yellow: rgba(0xf2ad48ff).into(), - terminal_ansi_bright_blue: rgba(0x389ee6ff).into(), - terminal_ansi_bright_magenta: rgba(0xa37accff).into(), - terminal_ansi_bright_cyan: rgba(0x4bbf98ff).into(), - terminal_ansi_bright_white: rgba(0xd1d1d1ff).into(), - terminal_ansi_black: rgba(0x000000ff).into(), - terminal_ansi_red: rgba(0xea6c6dff).into(), - terminal_ansi_green: rgba(0x6cbf43ff).into(), - terminal_ansi_yellow: rgba(0xeca944ff).into(), - terminal_ansi_blue: rgba(0x3198e1ff).into(), - terminal_ansi_magenta: rgba(0x9e75c7ff).into(), - terminal_ansi_cyan: rgba(0x46ba94ff).into(), - terminal_ansi_white: rgba(0xc7c7c7ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x6b7d8f1f).into()), + border_variant: Some(rgba(0x6b7d8f1f).into()), + border_focused: Some(rgba(0x6b7d8f1f).into()), + border_selected: Some(rgba(0x6b7d8f1f).into()), + border_transparent: Some(rgba(0x6b7d8f1f).into()), + border_disabled: Some(rgba(0x6b7d8f1f).into()), + elevated_surface_background: Some(rgba(0xf8f9faff).into()), + surface_background: Some(rgba(0xf8f9faff).into()), + background: Some(rgba(0xf8f9faff).into()), + element_background: Some(rgba(0xffaa32ff).into()), + text: Some(rgba(0x8a9199ff).into()), + tab_inactive_background: Some(rgba(0xf8f9faff).into()), + tab_active_background: Some(rgba(0xf8f9faff).into()), + terminal_background: Some(rgba(0xf8f9faff).into()), + terminal_ansi_bright_black: Some(rgba(0x686868ff).into()), + terminal_ansi_bright_red: Some(rgba(0xef7070ff).into()), + terminal_ansi_bright_green: Some(rgba(0x86b300ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xf2ad48ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x389ee6ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xa37accff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x4bbf98ff).into()), + terminal_ansi_bright_white: Some(rgba(0xd1d1d1ff).into()), + terminal_ansi_black: Some(rgba(0x000000ff).into()), + terminal_ansi_red: Some(rgba(0xea6c6dff).into()), + terminal_ansi_green: Some(rgba(0x6cbf43ff).into()), + terminal_ansi_yellow: Some(rgba(0xeca944ff).into()), + terminal_ansi_blue: Some(rgba(0x3198e1ff).into()), + terminal_ansi_magenta: Some(rgba(0x9e75c7ff).into()), + terminal_ansi_cyan: Some(rgba(0x46ba94ff).into()), + terminal_ansi_white: Some(rgba(0xc7c7c7ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "50f68427-2e1d-4bf1-981a-d08c6b38e846".into(), + UserTheme { name: "Ayu Mirage".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x171a24ff).into(), - border_variant: rgba(0x171a24ff).into(), - border_focused: rgba(0x171a24ff).into(), - border_selected: rgba(0x171a24ff).into(), - border_transparent: rgba(0x171a24ff).into(), - border_disabled: rgba(0x171a24ff).into(), - elevated_surface_background: rgba(0x1f2430ff).into(), - surface_background: rgba(0x1f2430ff).into(), - background: rgba(0x1f2430ff).into(), - element_background: rgba(0xffcb65ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0x707a8cff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x1f2430ff).into(), - tab_active_background: rgba(0x1f2430ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x1f2430ff).into(), - terminal_ansi_bright_black: rgba(0x686868ff).into(), - terminal_ansi_bright_red: rgba(0xf18678ff).into(), - terminal_ansi_bright_green: rgba(0xd4fe7fff).into(), - terminal_ansi_bright_yellow: rgba(0xffd173ff).into(), - terminal_ansi_bright_blue: rgba(0x73cfffff).into(), - terminal_ansi_bright_magenta: rgba(0xdfbfffff).into(), - terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), - terminal_ansi_bright_white: rgba(0xffffffff).into(), - terminal_ansi_black: rgba(0x171a24ff).into(), - terminal_ansi_red: rgba(0xed8173ff).into(), - terminal_ansi_green: rgba(0x86d96bff).into(), - terminal_ansi_yellow: rgba(0xfacc6eff).into(), - terminal_ansi_blue: rgba(0x6ccafaff).into(), - terminal_ansi_magenta: rgba(0xdabafaff).into(), - terminal_ansi_cyan: rgba(0x90e1c6ff).into(), - terminal_ansi_white: rgba(0xc7c7c7ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x171a24ff).into()), + border_variant: Some(rgba(0x171a24ff).into()), + border_focused: Some(rgba(0x171a24ff).into()), + border_selected: Some(rgba(0x171a24ff).into()), + border_transparent: Some(rgba(0x171a24ff).into()), + border_disabled: Some(rgba(0x171a24ff).into()), + elevated_surface_background: Some(rgba(0x1f2430ff).into()), + surface_background: Some(rgba(0x1f2430ff).into()), + background: Some(rgba(0x1f2430ff).into()), + element_background: Some(rgba(0xffcb65ff).into()), + text: Some(rgba(0x707a8cff).into()), + tab_inactive_background: Some(rgba(0x1f2430ff).into()), + tab_active_background: Some(rgba(0x1f2430ff).into()), + terminal_background: Some(rgba(0x1f2430ff).into()), + terminal_ansi_bright_black: Some(rgba(0x686868ff).into()), + terminal_ansi_bright_red: Some(rgba(0xf18678ff).into()), + terminal_ansi_bright_green: Some(rgba(0xd4fe7fff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffd173ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x73cfffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xdfbfffff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x95e6cbff).into()), + terminal_ansi_bright_white: Some(rgba(0xffffffff).into()), + terminal_ansi_black: Some(rgba(0x171a24ff).into()), + terminal_ansi_red: Some(rgba(0xed8173ff).into()), + terminal_ansi_green: Some(rgba(0x86d96bff).into()), + terminal_ansi_yellow: Some(rgba(0xfacc6eff).into()), + terminal_ansi_blue: Some(rgba(0x6ccafaff).into()), + terminal_ansi_magenta: Some(rgba(0xdabafaff).into()), + terminal_ansi_cyan: Some(rgba(0x90e1c6ff).into()), + terminal_ansi_white: Some(rgba(0xc7c7c7ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "22d8dede-57da-46e1-946a-16876679b4d2".into(), + UserTheme { name: "Ayu Dark".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x1e232bff).into(), - border_variant: rgba(0x1e232bff).into(), - border_focused: rgba(0x1e232bff).into(), - border_selected: rgba(0x1e232bff).into(), - border_transparent: rgba(0x1e232bff).into(), - border_disabled: rgba(0x1e232bff).into(), - elevated_surface_background: rgba(0x0b0e14ff).into(), - surface_background: rgba(0x0b0e14ff).into(), - background: rgba(0x0b0e14ff).into(), - element_background: rgba(0xe6b450ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0x565b66ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x0b0e14ff).into(), - tab_active_background: rgba(0x0b0e14ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x0b0e14ff).into(), - terminal_ansi_bright_black: rgba(0x686868ff).into(), - terminal_ansi_bright_red: rgba(0xef7077ff).into(), - terminal_ansi_bright_green: rgba(0xa9d94bff).into(), - terminal_ansi_bright_yellow: rgba(0xffb353ff).into(), - terminal_ansi_bright_blue: rgba(0x59c2ffff).into(), - terminal_ansi_bright_magenta: rgba(0xd2a6ffff).into(), - terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), - terminal_ansi_bright_white: rgba(0xffffffff).into(), - terminal_ansi_black: rgba(0x1e232bff).into(), - terminal_ansi_red: rgba(0xea6c72ff).into(), - terminal_ansi_green: rgba(0x7ed962ff).into(), - terminal_ansi_yellow: rgba(0xf9af4fff).into(), - terminal_ansi_blue: rgba(0x52bdfaff).into(), - terminal_ansi_magenta: rgba(0xcca1faff).into(), - terminal_ansi_cyan: rgba(0x90e1c6ff).into(), - terminal_ansi_white: rgba(0xc7c7c7ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x1e232bff).into()), + border_variant: Some(rgba(0x1e232bff).into()), + border_focused: Some(rgba(0x1e232bff).into()), + border_selected: Some(rgba(0x1e232bff).into()), + border_transparent: Some(rgba(0x1e232bff).into()), + border_disabled: Some(rgba(0x1e232bff).into()), + elevated_surface_background: Some(rgba(0x0b0e14ff).into()), + surface_background: Some(rgba(0x0b0e14ff).into()), + background: Some(rgba(0x0b0e14ff).into()), + element_background: Some(rgba(0xe6b450ff).into()), + text: Some(rgba(0x565b66ff).into()), + tab_inactive_background: Some(rgba(0x0b0e14ff).into()), + tab_active_background: Some(rgba(0x0b0e14ff).into()), + terminal_background: Some(rgba(0x0b0e14ff).into()), + terminal_ansi_bright_black: Some(rgba(0x686868ff).into()), + terminal_ansi_bright_red: Some(rgba(0xef7077ff).into()), + terminal_ansi_bright_green: Some(rgba(0xa9d94bff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffb353ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x59c2ffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xd2a6ffff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x95e6cbff).into()), + terminal_ansi_bright_white: Some(rgba(0xffffffff).into()), + terminal_ansi_black: Some(rgba(0x1e232bff).into()), + terminal_ansi_red: Some(rgba(0xea6c72ff).into()), + terminal_ansi_green: Some(rgba(0x7ed962ff).into()), + terminal_ansi_yellow: Some(rgba(0xf9af4fff).into()), + terminal_ansi_blue: Some(rgba(0x52bdfaff).into()), + terminal_ansi_magenta: Some(rgba(0xcca1faff).into()), + terminal_ansi_cyan: Some(rgba(0x90e1c6ff).into()), + terminal_ansi_white: Some(rgba(0xc7c7c7ff).into()), + ..Default::default() }, }, }, ], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 7318057c53..ea0e185e05 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -1,182 +1,51 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn dracula() -> ThemeFamily { - ThemeFamily { - id: "0abb0e55-f034-45d9-a84d-e880dfd65711".into(), +pub fn dracula() -> UserThemeFamily { + UserThemeFamily { name: "Dracula".into(), author: "Zeno Rocha".into(), - themes: vec![ThemeVariant { - id: "d20497ef-85be-4ea2-9070-a182d03aac73".into(), + themes: vec![UserTheme { name: "Dracula".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0xbd93f9ff).into(), - border_variant: rgba(0xbd93f9ff).into(), - border_focused: rgba(0xbd93f9ff).into(), - border_selected: rgba(0xbd93f9ff).into(), - border_transparent: rgba(0xbd93f9ff).into(), - border_disabled: rgba(0xbd93f9ff).into(), - elevated_surface_background: rgba(0x282a35ff).into(), - surface_background: rgba(0x282a35ff).into(), - background: rgba(0x282a35ff).into(), - element_background: rgba(0x44475aff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xf8f8f2ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x21222cff).into(), - tab_active_background: rgba(0x282a35ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x282a35ff).into(), - terminal_ansi_bright_black: rgba(0x6272a4ff).into(), - terminal_ansi_bright_red: rgba(0xff6d6dff).into(), - terminal_ansi_bright_green: rgba(0x69ff94ff).into(), - terminal_ansi_bright_yellow: rgba(0xffffa5ff).into(), - terminal_ansi_bright_blue: rgba(0xd6abfeff).into(), - terminal_ansi_bright_magenta: rgba(0xff92dfff).into(), - terminal_ansi_bright_cyan: rgba(0xa3fefeff).into(), - terminal_ansi_bright_white: rgba(0xffffffff).into(), - terminal_ansi_black: rgba(0x21222cff).into(), - terminal_ansi_red: rgba(0xff5555ff).into(), - terminal_ansi_green: rgba(0x50fa7bff).into(), - terminal_ansi_yellow: rgba(0xf1fa8cff).into(), - terminal_ansi_blue: rgba(0xbd93f9ff).into(), - terminal_ansi_magenta: rgba(0xff79c6ff).into(), - terminal_ansi_cyan: rgba(0x8be9fdff).into(), - terminal_ansi_white: rgba(0xf8f8f2ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0xbd93f9ff).into()), + border_variant: Some(rgba(0xbd93f9ff).into()), + border_focused: Some(rgba(0xbd93f9ff).into()), + border_selected: Some(rgba(0xbd93f9ff).into()), + border_transparent: Some(rgba(0xbd93f9ff).into()), + border_disabled: Some(rgba(0xbd93f9ff).into()), + elevated_surface_background: Some(rgba(0x282a35ff).into()), + surface_background: Some(rgba(0x282a35ff).into()), + background: Some(rgba(0x282a35ff).into()), + element_background: Some(rgba(0x44475aff).into()), + text: Some(rgba(0xf8f8f2ff).into()), + tab_inactive_background: Some(rgba(0x21222cff).into()), + tab_active_background: Some(rgba(0x282a35ff).into()), + terminal_background: Some(rgba(0x282a35ff).into()), + terminal_ansi_bright_black: Some(rgba(0x6272a4ff).into()), + terminal_ansi_bright_red: Some(rgba(0xff6d6dff).into()), + terminal_ansi_bright_green: Some(rgba(0x69ff94ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffffa5ff).into()), + terminal_ansi_bright_blue: Some(rgba(0xd6abfeff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xff92dfff).into()), + terminal_ansi_bright_cyan: Some(rgba(0xa3fefeff).into()), + terminal_ansi_bright_white: Some(rgba(0xffffffff).into()), + terminal_ansi_black: Some(rgba(0x21222cff).into()), + terminal_ansi_red: Some(rgba(0xff5555ff).into()), + terminal_ansi_green: Some(rgba(0x50fa7bff).into()), + terminal_ansi_yellow: Some(rgba(0xf1fa8cff).into()), + terminal_ansi_blue: Some(rgba(0xbd93f9ff).into()), + terminal_ansi_magenta: Some(rgba(0xff79c6ff).into()), + terminal_ansi_cyan: Some(rgba(0x8be9fdff).into()), + terminal_ansi_white: Some(rgba(0xf8f8f2ff).into()), + ..Default::default() }, }, }], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 756a0b658b..d06f53da67 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -1,1019 +1,236 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn gruvbox() -> ThemeFamily { - ThemeFamily { - id: "000a3e50-ccf1-430d-84e4-910583bd1064".into(), +pub fn gruvbox() -> UserThemeFamily { + UserThemeFamily { name: "Gruvbox".into(), author: "morhetz".into(), themes: vec![ - ThemeVariant { - id: "0db938b2-2267-453b-af84-f82c5f3400e7".into(), + UserTheme { name: "Gruvbox Dark Hard".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x3c3836ff).into(), - border_variant: rgba(0x3c3836ff).into(), - border_focused: rgba(0x3c3836ff).into(), - border_selected: rgba(0x3c3836ff).into(), - border_transparent: rgba(0x3c3836ff).into(), - border_disabled: rgba(0x3c3836ff).into(), - elevated_surface_background: rgba(0x18191bff).into(), - surface_background: rgba(0x18191bff).into(), - background: rgba(0x1d2021ff).into(), - element_background: rgba(0x44858780).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xebdbb2ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x1d2021ff).into(), - tab_active_background: rgba(0x32302fff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x1d2021ff).into(), - terminal_ansi_bright_black: rgba(0x928374ff).into(), - terminal_ansi_bright_red: rgba(0xfb4833ff).into(), - terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), - terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), - terminal_ansi_bright_blue: rgba(0x83a598ff).into(), - terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), - terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), - terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), - terminal_ansi_black: rgba(0x3c3836ff).into(), - terminal_ansi_red: rgba(0xcc241cff).into(), - terminal_ansi_green: rgba(0x989719ff).into(), - terminal_ansi_yellow: rgba(0xd79920ff).into(), - terminal_ansi_blue: rgba(0x448587ff).into(), - terminal_ansi_magenta: rgba(0xb16185ff).into(), - terminal_ansi_cyan: rgba(0x679d6aff).into(), - terminal_ansi_white: rgba(0xa89984ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x3c3836ff).into()), + border_variant: Some(rgba(0x3c3836ff).into()), + border_focused: Some(rgba(0x3c3836ff).into()), + border_selected: Some(rgba(0x3c3836ff).into()), + border_transparent: Some(rgba(0x3c3836ff).into()), + border_disabled: Some(rgba(0x3c3836ff).into()), + background: Some(rgba(0x1d2021ff).into()), + element_background: Some(rgba(0x44858780).into()), + text: Some(rgba(0xebdbb2ff).into()), + tab_inactive_background: Some(rgba(0x1d2021ff).into()), + tab_active_background: Some(rgba(0x32302fff).into()), + terminal_background: Some(rgba(0x1d2021ff).into()), + terminal_ansi_bright_black: Some(rgba(0x928374ff).into()), + terminal_ansi_bright_red: Some(rgba(0xfb4833ff).into()), + terminal_ansi_bright_green: Some(rgba(0xb8bb25ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xfabd2eff).into()), + terminal_ansi_bright_blue: Some(rgba(0x83a598ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xd3869bff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x8ec07cff).into()), + terminal_ansi_bright_white: Some(rgba(0xebdbb2ff).into()), + terminal_ansi_black: Some(rgba(0x3c3836ff).into()), + terminal_ansi_red: Some(rgba(0xcc241cff).into()), + terminal_ansi_green: Some(rgba(0x989719ff).into()), + terminal_ansi_yellow: Some(rgba(0xd79920ff).into()), + terminal_ansi_blue: Some(rgba(0x448587ff).into()), + terminal_ansi_magenta: Some(rgba(0xb16185ff).into()), + terminal_ansi_cyan: Some(rgba(0x679d6aff).into()), + terminal_ansi_white: Some(rgba(0xa89984ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "8e1a1896-ed0f-40be-b127-6c389eacc9f1".into(), + UserTheme { name: "Gruvbox Dark Medium".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x3c3836ff).into(), - border_variant: rgba(0x3c3836ff).into(), - border_focused: rgba(0x3c3836ff).into(), - border_selected: rgba(0x3c3836ff).into(), - border_transparent: rgba(0x3c3836ff).into(), - border_disabled: rgba(0x3c3836ff).into(), - elevated_surface_background: rgba(0x18191bff).into(), - surface_background: rgba(0x18191bff).into(), - background: rgba(0x282828ff).into(), - element_background: rgba(0x44858780).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xebdbb2ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x282828ff).into(), - tab_active_background: rgba(0x3c3836ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x282828ff).into(), - terminal_ansi_bright_black: rgba(0x928374ff).into(), - terminal_ansi_bright_red: rgba(0xfb4833ff).into(), - terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), - terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), - terminal_ansi_bright_blue: rgba(0x83a598ff).into(), - terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), - terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), - terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), - terminal_ansi_black: rgba(0x3c3836ff).into(), - terminal_ansi_red: rgba(0xcc241cff).into(), - terminal_ansi_green: rgba(0x989719ff).into(), - terminal_ansi_yellow: rgba(0xd79920ff).into(), - terminal_ansi_blue: rgba(0x448587ff).into(), - terminal_ansi_magenta: rgba(0xb16185ff).into(), - terminal_ansi_cyan: rgba(0x679d6aff).into(), - terminal_ansi_white: rgba(0xa89984ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x3c3836ff).into()), + border_variant: Some(rgba(0x3c3836ff).into()), + border_focused: Some(rgba(0x3c3836ff).into()), + border_selected: Some(rgba(0x3c3836ff).into()), + border_transparent: Some(rgba(0x3c3836ff).into()), + border_disabled: Some(rgba(0x3c3836ff).into()), + background: Some(rgba(0x282828ff).into()), + element_background: Some(rgba(0x44858780).into()), + text: Some(rgba(0xebdbb2ff).into()), + tab_inactive_background: Some(rgba(0x282828ff).into()), + tab_active_background: Some(rgba(0x3c3836ff).into()), + terminal_background: Some(rgba(0x282828ff).into()), + terminal_ansi_bright_black: Some(rgba(0x928374ff).into()), + terminal_ansi_bright_red: Some(rgba(0xfb4833ff).into()), + terminal_ansi_bright_green: Some(rgba(0xb8bb25ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xfabd2eff).into()), + terminal_ansi_bright_blue: Some(rgba(0x83a598ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xd3869bff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x8ec07cff).into()), + terminal_ansi_bright_white: Some(rgba(0xebdbb2ff).into()), + terminal_ansi_black: Some(rgba(0x3c3836ff).into()), + terminal_ansi_red: Some(rgba(0xcc241cff).into()), + terminal_ansi_green: Some(rgba(0x989719ff).into()), + terminal_ansi_yellow: Some(rgba(0xd79920ff).into()), + terminal_ansi_blue: Some(rgba(0x448587ff).into()), + terminal_ansi_magenta: Some(rgba(0xb16185ff).into()), + terminal_ansi_cyan: Some(rgba(0x679d6aff).into()), + terminal_ansi_white: Some(rgba(0xa89984ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "94410e6f-f4c4-4669-bb4d-5a20b4e4b1f3".into(), + UserTheme { name: "Gruvbox Dark Soft".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x3c3836ff).into(), - border_variant: rgba(0x3c3836ff).into(), - border_focused: rgba(0x3c3836ff).into(), - border_selected: rgba(0x3c3836ff).into(), - border_transparent: rgba(0x3c3836ff).into(), - border_disabled: rgba(0x3c3836ff).into(), - elevated_surface_background: rgba(0x18191bff).into(), - surface_background: rgba(0x18191bff).into(), - background: rgba(0x32302fff).into(), - element_background: rgba(0x44858780).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xebdbb2ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x32302fff).into(), - tab_active_background: rgba(0x504945ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x32302fff).into(), - terminal_ansi_bright_black: rgba(0x928374ff).into(), - terminal_ansi_bright_red: rgba(0xfb4833ff).into(), - terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), - terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), - terminal_ansi_bright_blue: rgba(0x83a598ff).into(), - terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), - terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), - terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), - terminal_ansi_black: rgba(0x3c3836ff).into(), - terminal_ansi_red: rgba(0xcc241cff).into(), - terminal_ansi_green: rgba(0x989719ff).into(), - terminal_ansi_yellow: rgba(0xd79920ff).into(), - terminal_ansi_blue: rgba(0x448587ff).into(), - terminal_ansi_magenta: rgba(0xb16185ff).into(), - terminal_ansi_cyan: rgba(0x679d6aff).into(), - terminal_ansi_white: rgba(0xa89984ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x3c3836ff).into()), + border_variant: Some(rgba(0x3c3836ff).into()), + border_focused: Some(rgba(0x3c3836ff).into()), + border_selected: Some(rgba(0x3c3836ff).into()), + border_transparent: Some(rgba(0x3c3836ff).into()), + border_disabled: Some(rgba(0x3c3836ff).into()), + background: Some(rgba(0x32302fff).into()), + element_background: Some(rgba(0x44858780).into()), + text: Some(rgba(0xebdbb2ff).into()), + tab_inactive_background: Some(rgba(0x32302fff).into()), + tab_active_background: Some(rgba(0x504945ff).into()), + terminal_background: Some(rgba(0x32302fff).into()), + terminal_ansi_bright_black: Some(rgba(0x928374ff).into()), + terminal_ansi_bright_red: Some(rgba(0xfb4833ff).into()), + terminal_ansi_bright_green: Some(rgba(0xb8bb25ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xfabd2eff).into()), + terminal_ansi_bright_blue: Some(rgba(0x83a598ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xd3869bff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x8ec07cff).into()), + terminal_ansi_bright_white: Some(rgba(0xebdbb2ff).into()), + terminal_ansi_black: Some(rgba(0x3c3836ff).into()), + terminal_ansi_red: Some(rgba(0xcc241cff).into()), + terminal_ansi_green: Some(rgba(0x989719ff).into()), + terminal_ansi_yellow: Some(rgba(0xd79920ff).into()), + terminal_ansi_blue: Some(rgba(0x448587ff).into()), + terminal_ansi_magenta: Some(rgba(0xb16185ff).into()), + terminal_ansi_cyan: Some(rgba(0x679d6aff).into()), + terminal_ansi_white: Some(rgba(0xa89984ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "e4a58582-478a-4934-ad73-135e23a0d66e".into(), + UserTheme { name: "Gruvbox Light Hard".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0xebdbb2ff).into(), - border_variant: rgba(0xebdbb2ff).into(), - border_focused: rgba(0xebdbb2ff).into(), - border_selected: rgba(0xebdbb2ff).into(), - border_transparent: rgba(0xebdbb2ff).into(), - border_disabled: rgba(0xebdbb2ff).into(), - elevated_surface_background: rgba(0xf9f9fbff).into(), - surface_background: rgba(0xf9f9fbff).into(), - background: rgba(0xf9f5d7ff).into(), - element_background: rgba(0x44858780).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x3c3836ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0xf9f5d7ff).into(), - tab_active_background: rgba(0xf2e5bcff).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xf9f5d7ff).into(), - terminal_ansi_bright_black: rgba(0x928374ff).into(), - terminal_ansi_bright_red: rgba(0x9d0006ff).into(), - terminal_ansi_bright_green: rgba(0x79740eff).into(), - terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), - terminal_ansi_bright_blue: rgba(0x066578ff).into(), - terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), - terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), - terminal_ansi_bright_white: rgba(0x3c3836ff).into(), - terminal_ansi_black: rgba(0xebdbb2ff).into(), - terminal_ansi_red: rgba(0xcc241cff).into(), - terminal_ansi_green: rgba(0x989719ff).into(), - terminal_ansi_yellow: rgba(0xd79920ff).into(), - terminal_ansi_blue: rgba(0x448587ff).into(), - terminal_ansi_magenta: rgba(0xb16185ff).into(), - terminal_ansi_cyan: rgba(0x679d6aff).into(), - terminal_ansi_white: rgba(0x7c6f64ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0xebdbb2ff).into()), + border_variant: Some(rgba(0xebdbb2ff).into()), + border_focused: Some(rgba(0xebdbb2ff).into()), + border_selected: Some(rgba(0xebdbb2ff).into()), + border_transparent: Some(rgba(0xebdbb2ff).into()), + border_disabled: Some(rgba(0xebdbb2ff).into()), + background: Some(rgba(0xf9f5d7ff).into()), + element_background: Some(rgba(0x44858780).into()), + text: Some(rgba(0x3c3836ff).into()), + tab_inactive_background: Some(rgba(0xf9f5d7ff).into()), + tab_active_background: Some(rgba(0xf2e5bcff).into()), + terminal_background: Some(rgba(0xf9f5d7ff).into()), + terminal_ansi_bright_black: Some(rgba(0x928374ff).into()), + terminal_ansi_bright_red: Some(rgba(0x9d0006ff).into()), + terminal_ansi_bright_green: Some(rgba(0x79740eff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xb57613ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x066578ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0x8f3e71ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x427b58ff).into()), + terminal_ansi_bright_white: Some(rgba(0x3c3836ff).into()), + terminal_ansi_black: Some(rgba(0xebdbb2ff).into()), + terminal_ansi_red: Some(rgba(0xcc241cff).into()), + terminal_ansi_green: Some(rgba(0x989719ff).into()), + terminal_ansi_yellow: Some(rgba(0xd79920ff).into()), + terminal_ansi_blue: Some(rgba(0x448587ff).into()), + terminal_ansi_magenta: Some(rgba(0xb16185ff).into()), + terminal_ansi_cyan: Some(rgba(0x679d6aff).into()), + terminal_ansi_white: Some(rgba(0x7c6f64ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "0e875280-93fa-4c76-8874-f858c7d985c1".into(), + UserTheme { name: "Gruvbox Light Medium".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0xebdbb2ff).into(), - border_variant: rgba(0xebdbb2ff).into(), - border_focused: rgba(0xebdbb2ff).into(), - border_selected: rgba(0xebdbb2ff).into(), - border_transparent: rgba(0xebdbb2ff).into(), - border_disabled: rgba(0xebdbb2ff).into(), - elevated_surface_background: rgba(0xf9f9fbff).into(), - surface_background: rgba(0xf9f9fbff).into(), - background: rgba(0xfbf1c7ff).into(), - element_background: rgba(0x44858780).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x3c3836ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0xfbf1c7ff).into(), - tab_active_background: rgba(0xebdbb2ff).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xfbf1c7ff).into(), - terminal_ansi_bright_black: rgba(0x928374ff).into(), - terminal_ansi_bright_red: rgba(0x9d0006ff).into(), - terminal_ansi_bright_green: rgba(0x79740eff).into(), - terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), - terminal_ansi_bright_blue: rgba(0x066578ff).into(), - terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), - terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), - terminal_ansi_bright_white: rgba(0x3c3836ff).into(), - terminal_ansi_black: rgba(0xebdbb2ff).into(), - terminal_ansi_red: rgba(0xcc241cff).into(), - terminal_ansi_green: rgba(0x989719ff).into(), - terminal_ansi_yellow: rgba(0xd79920ff).into(), - terminal_ansi_blue: rgba(0x448587ff).into(), - terminal_ansi_magenta: rgba(0xb16185ff).into(), - terminal_ansi_cyan: rgba(0x679d6aff).into(), - terminal_ansi_white: rgba(0x7c6f64ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0xebdbb2ff).into()), + border_variant: Some(rgba(0xebdbb2ff).into()), + border_focused: Some(rgba(0xebdbb2ff).into()), + border_selected: Some(rgba(0xebdbb2ff).into()), + border_transparent: Some(rgba(0xebdbb2ff).into()), + border_disabled: Some(rgba(0xebdbb2ff).into()), + background: Some(rgba(0xfbf1c7ff).into()), + element_background: Some(rgba(0x44858780).into()), + text: Some(rgba(0x3c3836ff).into()), + tab_inactive_background: Some(rgba(0xfbf1c7ff).into()), + tab_active_background: Some(rgba(0xebdbb2ff).into()), + terminal_background: Some(rgba(0xfbf1c7ff).into()), + terminal_ansi_bright_black: Some(rgba(0x928374ff).into()), + terminal_ansi_bright_red: Some(rgba(0x9d0006ff).into()), + terminal_ansi_bright_green: Some(rgba(0x79740eff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xb57613ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x066578ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0x8f3e71ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x427b58ff).into()), + terminal_ansi_bright_white: Some(rgba(0x3c3836ff).into()), + terminal_ansi_black: Some(rgba(0xebdbb2ff).into()), + terminal_ansi_red: Some(rgba(0xcc241cff).into()), + terminal_ansi_green: Some(rgba(0x989719ff).into()), + terminal_ansi_yellow: Some(rgba(0xd79920ff).into()), + terminal_ansi_blue: Some(rgba(0x448587ff).into()), + terminal_ansi_magenta: Some(rgba(0xb16185ff).into()), + terminal_ansi_cyan: Some(rgba(0x679d6aff).into()), + terminal_ansi_white: Some(rgba(0x7c6f64ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "914dbe6f-bc0f-4e6f-8d8c-5f4cabc1ca2d".into(), + UserTheme { name: "Gruvbox Light Soft".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0xebdbb2ff).into(), - border_variant: rgba(0xebdbb2ff).into(), - border_focused: rgba(0xebdbb2ff).into(), - border_selected: rgba(0xebdbb2ff).into(), - border_transparent: rgba(0xebdbb2ff).into(), - border_disabled: rgba(0xebdbb2ff).into(), - elevated_surface_background: rgba(0xf9f9fbff).into(), - surface_background: rgba(0xf9f9fbff).into(), - background: rgba(0xf2e5bcff).into(), - element_background: rgba(0x44858780).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x3c3836ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0xf2e5bcff).into(), - tab_active_background: rgba(0xd5c4a1ff).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xf2e5bcff).into(), - terminal_ansi_bright_black: rgba(0x928374ff).into(), - terminal_ansi_bright_red: rgba(0x9d0006ff).into(), - terminal_ansi_bright_green: rgba(0x79740eff).into(), - terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), - terminal_ansi_bright_blue: rgba(0x066578ff).into(), - terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), - terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), - terminal_ansi_bright_white: rgba(0x3c3836ff).into(), - terminal_ansi_black: rgba(0xebdbb2ff).into(), - terminal_ansi_red: rgba(0xcc241cff).into(), - terminal_ansi_green: rgba(0x989719ff).into(), - terminal_ansi_yellow: rgba(0xd79920ff).into(), - terminal_ansi_blue: rgba(0x448587ff).into(), - terminal_ansi_magenta: rgba(0xb16185ff).into(), - terminal_ansi_cyan: rgba(0x679d6aff).into(), - terminal_ansi_white: rgba(0x7c6f64ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0xebdbb2ff).into()), + border_variant: Some(rgba(0xebdbb2ff).into()), + border_focused: Some(rgba(0xebdbb2ff).into()), + border_selected: Some(rgba(0xebdbb2ff).into()), + border_transparent: Some(rgba(0xebdbb2ff).into()), + border_disabled: Some(rgba(0xebdbb2ff).into()), + background: Some(rgba(0xf2e5bcff).into()), + element_background: Some(rgba(0x44858780).into()), + text: Some(rgba(0x3c3836ff).into()), + tab_inactive_background: Some(rgba(0xf2e5bcff).into()), + tab_active_background: Some(rgba(0xd5c4a1ff).into()), + terminal_background: Some(rgba(0xf2e5bcff).into()), + terminal_ansi_bright_black: Some(rgba(0x928374ff).into()), + terminal_ansi_bright_red: Some(rgba(0x9d0006ff).into()), + terminal_ansi_bright_green: Some(rgba(0x79740eff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xb57613ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x066578ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0x8f3e71ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x427b58ff).into()), + terminal_ansi_bright_white: Some(rgba(0x3c3836ff).into()), + terminal_ansi_black: Some(rgba(0xebdbb2ff).into()), + terminal_ansi_red: Some(rgba(0xcc241cff).into()), + terminal_ansi_green: Some(rgba(0x989719ff).into()), + terminal_ansi_yellow: Some(rgba(0xd79920ff).into()), + terminal_ansi_blue: Some(rgba(0x448587ff).into()), + terminal_ansi_magenta: Some(rgba(0xb16185ff).into()), + terminal_ansi_cyan: Some(rgba(0x679d6aff).into()), + terminal_ansi_white: Some(rgba(0x7c6f64ff).into()), + ..Default::default() }, }, }, ], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/mod.rs b/crates/theme2/src/themes/mod.rs index 2a00b49785..b013a86989 100644 --- a/crates/theme2/src/themes/mod.rs +++ b/crates/theme2/src/themes/mod.rs @@ -22,9 +22,9 @@ pub use rose_pine::*; pub use solarized::*; pub use synthwave_84::*; -use crate::ThemeFamily; +use crate::UserThemeFamily; -pub(crate) fn all_imported_themes() -> Vec { +pub(crate) fn all_imported_themes() -> Vec { vec![ rose_pine(), night_owl(), diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index ed727127bd..4227c53b7a 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -1,351 +1,91 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn night_owl() -> ThemeFamily { - ThemeFamily { - id: "19498197-1091-409d-b37a-a282998e5c31".into(), +pub fn night_owl() -> UserThemeFamily { + UserThemeFamily { name: "Night Owl".into(), author: "Sarah Drasner (sdras)".into(), themes: vec![ - ThemeVariant { - id: "e5de91ed-fc95-46fb-a60b-ebd0602d04c7".into(), + UserTheme { name: "Night Owl".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x5f7e97ff).into(), - border_variant: rgba(0x5f7e97ff).into(), - border_focused: rgba(0x5f7e97ff).into(), - border_selected: rgba(0x5f7e97ff).into(), - border_transparent: rgba(0x5f7e97ff).into(), - border_disabled: rgba(0x5f7e97ff).into(), - elevated_surface_background: rgba(0x011526ff).into(), - surface_background: rgba(0x011526ff).into(), - background: rgba(0x011526ff).into(), - element_background: rgba(0x7d56c1cc).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xd6deebff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x01101cff).into(), - tab_active_background: rgba(0x0a2842ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x575656ff).into(), - terminal_ansi_bright_red: rgba(0xef524fff).into(), - terminal_ansi_bright_green: rgba(0x21da6eff).into(), - terminal_ansi_bright_yellow: rgba(0xffeb95ff).into(), - terminal_ansi_bright_blue: rgba(0x82aaffff).into(), - terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), - terminal_ansi_bright_cyan: rgba(0x7fdbcaff).into(), - terminal_ansi_bright_white: rgba(0xffffffff).into(), - terminal_ansi_black: rgba(0x011526ff).into(), - terminal_ansi_red: rgba(0xef524fff).into(), - terminal_ansi_green: rgba(0x21da6eff).into(), - terminal_ansi_yellow: rgba(0xc5e478ff).into(), - terminal_ansi_blue: rgba(0x82aaffff).into(), - terminal_ansi_magenta: rgba(0xc792eaff).into(), - terminal_ansi_cyan: rgba(0x20c7a7ff).into(), - terminal_ansi_white: rgba(0xffffffff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x5f7e97ff).into()), + border_variant: Some(rgba(0x5f7e97ff).into()), + border_focused: Some(rgba(0x5f7e97ff).into()), + border_selected: Some(rgba(0x5f7e97ff).into()), + border_transparent: Some(rgba(0x5f7e97ff).into()), + border_disabled: Some(rgba(0x5f7e97ff).into()), + elevated_surface_background: Some(rgba(0x011526ff).into()), + surface_background: Some(rgba(0x011526ff).into()), + background: Some(rgba(0x011526ff).into()), + element_background: Some(rgba(0x7d56c1cc).into()), + text: Some(rgba(0xd6deebff).into()), + tab_inactive_background: Some(rgba(0x01101cff).into()), + tab_active_background: Some(rgba(0x0a2842ff).into()), + terminal_ansi_bright_black: Some(rgba(0x575656ff).into()), + terminal_ansi_bright_red: Some(rgba(0xef524fff).into()), + terminal_ansi_bright_green: Some(rgba(0x21da6eff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffeb95ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x82aaffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xc792eaff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x7fdbcaff).into()), + terminal_ansi_bright_white: Some(rgba(0xffffffff).into()), + terminal_ansi_black: Some(rgba(0x011526ff).into()), + terminal_ansi_red: Some(rgba(0xef524fff).into()), + terminal_ansi_green: Some(rgba(0x21da6eff).into()), + terminal_ansi_yellow: Some(rgba(0xc5e478ff).into()), + terminal_ansi_blue: Some(rgba(0x82aaffff).into()), + terminal_ansi_magenta: Some(rgba(0xc792eaff).into()), + terminal_ansi_cyan: Some(rgba(0x20c7a7ff).into()), + terminal_ansi_white: Some(rgba(0xffffffff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "998fc053-40c1-4a32-a31f-a17c9c07949a".into(), + UserTheme { name: "Night Owl Light".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0xd9d9d9ff).into(), - border_variant: rgba(0xd9d9d9ff).into(), - border_focused: rgba(0xd9d9d9ff).into(), - border_selected: rgba(0xd9d9d9ff).into(), - border_transparent: rgba(0xd9d9d9ff).into(), - border_disabled: rgba(0xd9d9d9ff).into(), - elevated_surface_background: rgba(0xf0f0f0ff).into(), - surface_background: rgba(0xf0f0f0ff).into(), - background: rgba(0xfbfbfbff).into(), - element_background: rgba(0x29a298ff).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x403f53ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0xf0f0f0ff).into(), - tab_active_background: rgba(0xf6f6f6ff).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xf6f6f6ff).into(), - terminal_ansi_bright_black: rgba(0x403f53ff).into(), - terminal_ansi_bright_red: rgba(0xde3c3aff).into(), - terminal_ansi_bright_green: rgba(0x07916aff).into(), - terminal_ansi_bright_yellow: rgba(0xdaa900ff).into(), - terminal_ansi_bright_blue: rgba(0x278dd7ff).into(), - terminal_ansi_bright_magenta: rgba(0xd64289ff).into(), - terminal_ansi_bright_cyan: rgba(0x29a298ff).into(), - terminal_ansi_bright_white: rgba(0xf0f0f0ff).into(), - terminal_ansi_black: rgba(0x403f53ff).into(), - terminal_ansi_red: rgba(0xde3c3aff).into(), - terminal_ansi_green: rgba(0x07916aff).into(), - terminal_ansi_yellow: rgba(0xe0ae01ff).into(), - terminal_ansi_blue: rgba(0x278dd7ff).into(), - terminal_ansi_magenta: rgba(0xd64289ff).into(), - terminal_ansi_cyan: rgba(0x29a298ff).into(), - terminal_ansi_white: rgba(0xf0f0f0ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0xd9d9d9ff).into()), + border_variant: Some(rgba(0xd9d9d9ff).into()), + border_focused: Some(rgba(0xd9d9d9ff).into()), + border_selected: Some(rgba(0xd9d9d9ff).into()), + border_transparent: Some(rgba(0xd9d9d9ff).into()), + border_disabled: Some(rgba(0xd9d9d9ff).into()), + elevated_surface_background: Some(rgba(0xf0f0f0ff).into()), + surface_background: Some(rgba(0xf0f0f0ff).into()), + background: Some(rgba(0xfbfbfbff).into()), + element_background: Some(rgba(0x29a298ff).into()), + text: Some(rgba(0x403f53ff).into()), + tab_inactive_background: Some(rgba(0xf0f0f0ff).into()), + tab_active_background: Some(rgba(0xf6f6f6ff).into()), + terminal_background: Some(rgba(0xf6f6f6ff).into()), + terminal_ansi_bright_black: Some(rgba(0x403f53ff).into()), + terminal_ansi_bright_red: Some(rgba(0xde3c3aff).into()), + terminal_ansi_bright_green: Some(rgba(0x07916aff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xdaa900ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x278dd7ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xd64289ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x29a298ff).into()), + terminal_ansi_bright_white: Some(rgba(0xf0f0f0ff).into()), + terminal_ansi_black: Some(rgba(0x403f53ff).into()), + terminal_ansi_red: Some(rgba(0xde3c3aff).into()), + terminal_ansi_green: Some(rgba(0x07916aff).into()), + terminal_ansi_yellow: Some(rgba(0xe0ae01ff).into()), + terminal_ansi_blue: Some(rgba(0x278dd7ff).into()), + terminal_ansi_magenta: Some(rgba(0xd64289ff).into()), + terminal_ansi_cyan: Some(rgba(0x29a298ff).into()), + terminal_ansi_white: Some(rgba(0xf0f0f0ff).into()), + ..Default::default() }, }, }, ], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index 25e6da2c5e..981b460d10 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -1,182 +1,51 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn nord() -> ThemeFamily { - ThemeFamily { - id: "3295b94b-731f-41a8-8d5e-ad02638f8e0d".into(), +pub fn nord() -> UserThemeFamily { + UserThemeFamily { name: "Nord".into(), author: "Sven Greb (svengreb)".into(), - themes: vec![ThemeVariant { - id: "dfdfd9f6-bc57-46dd-b919-42b18df35bdd".into(), + themes: vec![UserTheme { name: "Nord".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x3b4252ff).into(), - border_variant: rgba(0x3b4252ff).into(), - border_focused: rgba(0x3b4252ff).into(), - border_selected: rgba(0x3b4252ff).into(), - border_transparent: rgba(0x3b4252ff).into(), - border_disabled: rgba(0x3b4252ff).into(), - elevated_surface_background: rgba(0x2e3440ff).into(), - surface_background: rgba(0x2e3440ff).into(), - background: rgba(0x2e3440ff).into(), - element_background: rgba(0x88bfd0ee).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xd8dee9ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x2e3440ff).into(), - tab_active_background: rgba(0x3b4252ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x2e3440ff).into(), - terminal_ansi_bright_black: rgba(0x4c566aff).into(), - terminal_ansi_bright_red: rgba(0xbf616aff).into(), - terminal_ansi_bright_green: rgba(0xa3be8cff).into(), - terminal_ansi_bright_yellow: rgba(0xebcb8bff).into(), - terminal_ansi_bright_blue: rgba(0x81a1c1ff).into(), - terminal_ansi_bright_magenta: rgba(0xb48eacff).into(), - terminal_ansi_bright_cyan: rgba(0x8fbcbbff).into(), - terminal_ansi_bright_white: rgba(0xeceff4ff).into(), - terminal_ansi_black: rgba(0x3b4252ff).into(), - terminal_ansi_red: rgba(0xbf616aff).into(), - terminal_ansi_green: rgba(0xa3be8cff).into(), - terminal_ansi_yellow: rgba(0xebcb8bff).into(), - terminal_ansi_blue: rgba(0x81a1c1ff).into(), - terminal_ansi_magenta: rgba(0xb48eacff).into(), - terminal_ansi_cyan: rgba(0x88bfd0ff).into(), - terminal_ansi_white: rgba(0xe5e9f0ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x3b4252ff).into()), + border_variant: Some(rgba(0x3b4252ff).into()), + border_focused: Some(rgba(0x3b4252ff).into()), + border_selected: Some(rgba(0x3b4252ff).into()), + border_transparent: Some(rgba(0x3b4252ff).into()), + border_disabled: Some(rgba(0x3b4252ff).into()), + elevated_surface_background: Some(rgba(0x2e3440ff).into()), + surface_background: Some(rgba(0x2e3440ff).into()), + background: Some(rgba(0x2e3440ff).into()), + element_background: Some(rgba(0x88bfd0ee).into()), + text: Some(rgba(0xd8dee9ff).into()), + tab_inactive_background: Some(rgba(0x2e3440ff).into()), + tab_active_background: Some(rgba(0x3b4252ff).into()), + terminal_background: Some(rgba(0x2e3440ff).into()), + terminal_ansi_bright_black: Some(rgba(0x4c566aff).into()), + terminal_ansi_bright_red: Some(rgba(0xbf616aff).into()), + terminal_ansi_bright_green: Some(rgba(0xa3be8cff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xebcb8bff).into()), + terminal_ansi_bright_blue: Some(rgba(0x81a1c1ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xb48eacff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x8fbcbbff).into()), + terminal_ansi_bright_white: Some(rgba(0xeceff4ff).into()), + terminal_ansi_black: Some(rgba(0x3b4252ff).into()), + terminal_ansi_red: Some(rgba(0xbf616aff).into()), + terminal_ansi_green: Some(rgba(0xa3be8cff).into()), + terminal_ansi_yellow: Some(rgba(0xebcb8bff).into()), + terminal_ansi_blue: Some(rgba(0x81a1c1ff).into()), + terminal_ansi_magenta: Some(rgba(0xb48eacff).into()), + terminal_ansi_cyan: Some(rgba(0x88bfd0ff).into()), + terminal_ansi_white: Some(rgba(0xe5e9f0ff).into()), + ..Default::default() }, }, }], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/notctis.rs b/crates/theme2/src/themes/notctis.rs index 70c57bac57..d8673824db 100644 --- a/crates/theme2/src/themes/notctis.rs +++ b/crates/theme2/src/themes/notctis.rs @@ -1,1854 +1,443 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn notctis() -> ThemeFamily { - ThemeFamily { - id: "7fbf6904-517c-42e1-8eb3-a64b1e9218b9".into(), +pub fn notctis() -> UserThemeFamily { + UserThemeFamily { name: "Notctis".into(), author: "Liviu Schera (liviuschera)".into(), themes: vec![ - ThemeVariant { - id: "2dc5fee8-30ff-4a50-bfae-c13bd19c9f89".into(), + UserTheme { name: "Noctis Azureus".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x1579b6ff).into(), - border_variant: rgba(0x1579b6ff).into(), - border_focused: rgba(0x1579b6ff).into(), - border_selected: rgba(0x1579b6ff).into(), - border_transparent: rgba(0x1579b6ff).into(), - border_disabled: rgba(0x1579b6ff).into(), - elevated_surface_background: rgba(0x051b28ff).into(), - surface_background: rgba(0x051b28ff).into(), - background: rgba(0x07263aff).into(), - element_background: rgba(0x007e99ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xbecfdaff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x08324eff).into(), - tab_active_background: rgba(0x07263aff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x051b28ff).into(), - terminal_ansi_bright_black: rgba(0x475e6cff).into(), - terminal_ansi_bright_red: rgba(0xe97749ff).into(), - terminal_ansi_bright_green: rgba(0x5febb1ff).into(), - terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), - terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), - terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), - terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), - terminal_ansi_bright_white: rgba(0xbecfdaff).into(), - terminal_ansi_black: rgba(0x28343dff).into(), - terminal_ansi_red: rgba(0xe66432ff).into(), - terminal_ansi_green: rgba(0x49e9a6ff).into(), - terminal_ansi_yellow: rgba(0xe4b781ff).into(), - terminal_ansi_blue: rgba(0x49ace9ff).into(), - terminal_ansi_magenta: rgba(0xdf759aff).into(), - terminal_ansi_cyan: rgba(0x49d5e9ff).into(), - terminal_ansi_white: rgba(0xaec3d0ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x1579b6ff).into()), + border_variant: Some(rgba(0x1579b6ff).into()), + border_focused: Some(rgba(0x1579b6ff).into()), + border_selected: Some(rgba(0x1579b6ff).into()), + border_transparent: Some(rgba(0x1579b6ff).into()), + border_disabled: Some(rgba(0x1579b6ff).into()), + elevated_surface_background: Some(rgba(0x051b28ff).into()), + surface_background: Some(rgba(0x051b28ff).into()), + background: Some(rgba(0x07263aff).into()), + element_background: Some(rgba(0x007e99ff).into()), + text: Some(rgba(0xbecfdaff).into()), + tab_inactive_background: Some(rgba(0x08324eff).into()), + tab_active_background: Some(rgba(0x07263aff).into()), + terminal_background: Some(rgba(0x051b28ff).into()), + terminal_ansi_bright_black: Some(rgba(0x475e6cff).into()), + terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()), + terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()), + terminal_ansi_bright_white: Some(rgba(0xbecfdaff).into()), + terminal_ansi_black: Some(rgba(0x28343dff).into()), + terminal_ansi_red: Some(rgba(0xe66432ff).into()), + terminal_ansi_green: Some(rgba(0x49e9a6ff).into()), + terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()), + terminal_ansi_blue: Some(rgba(0x49ace9ff).into()), + terminal_ansi_magenta: Some(rgba(0xdf759aff).into()), + terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()), + terminal_ansi_white: Some(rgba(0xaec3d0ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "ba4f5a34-987a-4e2c-939c-7f1b02d0e432".into(), + UserTheme { name: "Noctis Bordo".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x997582ff).into(), - border_variant: rgba(0x997582ff).into(), - border_focused: rgba(0x997582ff).into(), - border_selected: rgba(0x997582ff).into(), - border_transparent: rgba(0x997582ff).into(), - border_disabled: rgba(0x997582ff).into(), - elevated_surface_background: rgba(0x272022ff).into(), - surface_background: rgba(0x272022ff).into(), - background: rgba(0x322a2dff).into(), - element_background: rgba(0x007e99ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xcbbec2ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x413036ff).into(), - tab_active_background: rgba(0x322a2dff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x272022ff).into(), - terminal_ansi_bright_black: rgba(0x69545bff).into(), - terminal_ansi_bright_red: rgba(0xe97749ff).into(), - terminal_ansi_bright_green: rgba(0x5febb1ff).into(), - terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), - terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), - terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), - terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), - terminal_ansi_bright_white: rgba(0xcbbec2ff).into(), - terminal_ansi_black: rgba(0x47393eff).into(), - terminal_ansi_red: rgba(0xe66432ff).into(), - terminal_ansi_green: rgba(0x49e9a6ff).into(), - terminal_ansi_yellow: rgba(0xe4b781ff).into(), - terminal_ansi_blue: rgba(0x49ace9ff).into(), - terminal_ansi_magenta: rgba(0xdf759aff).into(), - terminal_ansi_cyan: rgba(0x49d5e9ff).into(), - terminal_ansi_white: rgba(0xb9acb0ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x997582ff).into()), + border_variant: Some(rgba(0x997582ff).into()), + border_focused: Some(rgba(0x997582ff).into()), + border_selected: Some(rgba(0x997582ff).into()), + border_transparent: Some(rgba(0x997582ff).into()), + border_disabled: Some(rgba(0x997582ff).into()), + elevated_surface_background: Some(rgba(0x272022ff).into()), + surface_background: Some(rgba(0x272022ff).into()), + background: Some(rgba(0x322a2dff).into()), + element_background: Some(rgba(0x007e99ff).into()), + text: Some(rgba(0xcbbec2ff).into()), + tab_inactive_background: Some(rgba(0x413036ff).into()), + tab_active_background: Some(rgba(0x322a2dff).into()), + terminal_background: Some(rgba(0x272022ff).into()), + terminal_ansi_bright_black: Some(rgba(0x69545bff).into()), + terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()), + terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()), + terminal_ansi_bright_white: Some(rgba(0xcbbec2ff).into()), + terminal_ansi_black: Some(rgba(0x47393eff).into()), + terminal_ansi_red: Some(rgba(0xe66432ff).into()), + terminal_ansi_green: Some(rgba(0x49e9a6ff).into()), + terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()), + terminal_ansi_blue: Some(rgba(0x49ace9ff).into()), + terminal_ansi_magenta: Some(rgba(0xdf759aff).into()), + terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()), + terminal_ansi_white: Some(rgba(0xb9acb0ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "a2e4f327-82e8-41c1-a66f-bc7f27419c2e".into(), + UserTheme { name: "Noctus Hibernus".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x00c6e0ff).into(), - border_variant: rgba(0x00c6e0ff).into(), - border_focused: rgba(0x00c6e0ff).into(), - border_selected: rgba(0x00c6e0ff).into(), - border_transparent: rgba(0x00c6e0ff).into(), - border_disabled: rgba(0x00c6e0ff).into(), - elevated_surface_background: rgba(0xe1eeefff).into(), - surface_background: rgba(0xe1eeefff).into(), - background: rgba(0xf4f6f6ff).into(), - element_background: rgba(0x089099ff).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x005661ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0xcaedf2ff).into(), - tab_active_background: rgba(0xf4f6f6ff).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xe1eeefff).into(), - terminal_ansi_bright_black: rgba(0x004d57ff).into(), - terminal_ansi_bright_red: rgba(0xff3f00ff).into(), - terminal_ansi_bright_green: rgba(0x00d17aff).into(), - terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), - terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), - terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), - terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), - terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), - terminal_ansi_black: rgba(0x003b41ff).into(), - terminal_ansi_red: rgba(0xe34d1bff).into(), - terminal_ansi_green: rgba(0x00b368ff).into(), - terminal_ansi_yellow: rgba(0xf49724ff).into(), - terminal_ansi_blue: rgba(0x0094f0ff).into(), - terminal_ansi_magenta: rgba(0xff5792ff).into(), - terminal_ansi_cyan: rgba(0x00bdd6ff).into(), - terminal_ansi_white: rgba(0x8ca6a6ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x00c6e0ff).into()), + border_variant: Some(rgba(0x00c6e0ff).into()), + border_focused: Some(rgba(0x00c6e0ff).into()), + border_selected: Some(rgba(0x00c6e0ff).into()), + border_transparent: Some(rgba(0x00c6e0ff).into()), + border_disabled: Some(rgba(0x00c6e0ff).into()), + elevated_surface_background: Some(rgba(0xe1eeefff).into()), + surface_background: Some(rgba(0xe1eeefff).into()), + background: Some(rgba(0xf4f6f6ff).into()), + element_background: Some(rgba(0x089099ff).into()), + text: Some(rgba(0x005661ff).into()), + tab_inactive_background: Some(rgba(0xcaedf2ff).into()), + tab_active_background: Some(rgba(0xf4f6f6ff).into()), + terminal_background: Some(rgba(0xe1eeefff).into()), + terminal_ansi_bright_black: Some(rgba(0x004d57ff).into()), + terminal_ansi_bright_red: Some(rgba(0xff3f00ff).into()), + terminal_ansi_bright_green: Some(rgba(0x00d17aff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xff8c00ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x0ea3ffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xff6b9eff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x00cae6ff).into()), + terminal_ansi_bright_white: Some(rgba(0xbbc3c4ff).into()), + terminal_ansi_black: Some(rgba(0x003b41ff).into()), + terminal_ansi_red: Some(rgba(0xe34d1bff).into()), + terminal_ansi_green: Some(rgba(0x00b368ff).into()), + terminal_ansi_yellow: Some(rgba(0xf49724ff).into()), + terminal_ansi_blue: Some(rgba(0x0094f0ff).into()), + terminal_ansi_magenta: Some(rgba(0xff5792ff).into()), + terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()), + terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "2fde44fb-e5b2-4cc2-962f-f1c77a4eb12a".into(), + UserTheme { name: "Noctis Lilac".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0xaea4f4ff).into(), - border_variant: rgba(0xaea4f4ff).into(), - border_focused: rgba(0xaea4f4ff).into(), - border_selected: rgba(0xaea4f4ff).into(), - border_transparent: rgba(0xaea4f4ff).into(), - border_disabled: rgba(0xaea4f4ff).into(), - elevated_surface_background: rgba(0xe9e7f3ff).into(), - surface_background: rgba(0xe9e7f3ff).into(), - background: rgba(0xf2f1f8ff).into(), - element_background: rgba(0x8d7ffeff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0x0c006bff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0xe2dff6ff).into(), - tab_active_background: rgba(0xf2f1f8ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0xe9e7f3ff).into(), - terminal_ansi_bright_black: rgba(0x0f0080ff).into(), - terminal_ansi_bright_red: rgba(0xff3f00ff).into(), - terminal_ansi_bright_green: rgba(0x00d17aff).into(), - terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), - terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), - terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), - terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), - terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), - terminal_ansi_black: rgba(0x0c006bff).into(), - terminal_ansi_red: rgba(0xe34d1bff).into(), - terminal_ansi_green: rgba(0x00b368ff).into(), - terminal_ansi_yellow: rgba(0xf49724ff).into(), - terminal_ansi_blue: rgba(0x0094f0ff).into(), - terminal_ansi_magenta: rgba(0xff5792ff).into(), - terminal_ansi_cyan: rgba(0x00bdd6ff).into(), - terminal_ansi_white: rgba(0x8ca6a6ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0xaea4f4ff).into()), + border_variant: Some(rgba(0xaea4f4ff).into()), + border_focused: Some(rgba(0xaea4f4ff).into()), + border_selected: Some(rgba(0xaea4f4ff).into()), + border_transparent: Some(rgba(0xaea4f4ff).into()), + border_disabled: Some(rgba(0xaea4f4ff).into()), + elevated_surface_background: Some(rgba(0xe9e7f3ff).into()), + surface_background: Some(rgba(0xe9e7f3ff).into()), + background: Some(rgba(0xf2f1f8ff).into()), + element_background: Some(rgba(0x8d7ffeff).into()), + text: Some(rgba(0x0c006bff).into()), + tab_inactive_background: Some(rgba(0xe2dff6ff).into()), + tab_active_background: Some(rgba(0xf2f1f8ff).into()), + terminal_background: Some(rgba(0xe9e7f3ff).into()), + terminal_ansi_bright_black: Some(rgba(0x0f0080ff).into()), + terminal_ansi_bright_red: Some(rgba(0xff3f00ff).into()), + terminal_ansi_bright_green: Some(rgba(0x00d17aff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xff8c00ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x0ea3ffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xff6b9eff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x00cae6ff).into()), + terminal_ansi_bright_white: Some(rgba(0xbbc3c4ff).into()), + terminal_ansi_black: Some(rgba(0x0c006bff).into()), + terminal_ansi_red: Some(rgba(0xe34d1bff).into()), + terminal_ansi_green: Some(rgba(0x00b368ff).into()), + terminal_ansi_yellow: Some(rgba(0xf49724ff).into()), + terminal_ansi_blue: Some(rgba(0x0094f0ff).into()), + terminal_ansi_magenta: Some(rgba(0xff5792ff).into()), + terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()), + terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "2b89f218-c238-4905-9578-674d6995d2e0".into(), + UserTheme { name: "Noctis Lux".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x00c6e0ff).into(), - border_variant: rgba(0x00c6e0ff).into(), - border_focused: rgba(0x00c6e0ff).into(), - border_selected: rgba(0x00c6e0ff).into(), - border_transparent: rgba(0x00c6e0ff).into(), - border_disabled: rgba(0x00c6e0ff).into(), - elevated_surface_background: rgba(0xf6eddaff).into(), - surface_background: rgba(0xf6eddaff).into(), - background: rgba(0xfef8ecff).into(), - element_background: rgba(0x089099ff).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x005661ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0xf0e9d6ff).into(), - tab_active_background: rgba(0xfef8ecff).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xf6eddaff).into(), - terminal_ansi_bright_black: rgba(0x004d57ff).into(), - terminal_ansi_bright_red: rgba(0xff3f00ff).into(), - terminal_ansi_bright_green: rgba(0x00d17aff).into(), - terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), - terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), - terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), - terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), - terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), - terminal_ansi_black: rgba(0x003b41ff).into(), - terminal_ansi_red: rgba(0xe34d1bff).into(), - terminal_ansi_green: rgba(0x00b368ff).into(), - terminal_ansi_yellow: rgba(0xf49724ff).into(), - terminal_ansi_blue: rgba(0x0094f0ff).into(), - terminal_ansi_magenta: rgba(0xff5792ff).into(), - terminal_ansi_cyan: rgba(0x00bdd6ff).into(), - terminal_ansi_white: rgba(0x8ca6a6ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x00c6e0ff).into()), + border_variant: Some(rgba(0x00c6e0ff).into()), + border_focused: Some(rgba(0x00c6e0ff).into()), + border_selected: Some(rgba(0x00c6e0ff).into()), + border_transparent: Some(rgba(0x00c6e0ff).into()), + border_disabled: Some(rgba(0x00c6e0ff).into()), + elevated_surface_background: Some(rgba(0xf6eddaff).into()), + surface_background: Some(rgba(0xf6eddaff).into()), + background: Some(rgba(0xfef8ecff).into()), + element_background: Some(rgba(0x089099ff).into()), + text: Some(rgba(0x005661ff).into()), + tab_inactive_background: Some(rgba(0xf0e9d6ff).into()), + tab_active_background: Some(rgba(0xfef8ecff).into()), + terminal_background: Some(rgba(0xf6eddaff).into()), + terminal_ansi_bright_black: Some(rgba(0x004d57ff).into()), + terminal_ansi_bright_red: Some(rgba(0xff3f00ff).into()), + terminal_ansi_bright_green: Some(rgba(0x00d17aff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xff8c00ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x0ea3ffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xff6b9eff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x00cae6ff).into()), + terminal_ansi_bright_white: Some(rgba(0xbbc3c4ff).into()), + terminal_ansi_black: Some(rgba(0x003b41ff).into()), + terminal_ansi_red: Some(rgba(0xe34d1bff).into()), + terminal_ansi_green: Some(rgba(0x00b368ff).into()), + terminal_ansi_yellow: Some(rgba(0xf49724ff).into()), + terminal_ansi_blue: Some(rgba(0x0094f0ff).into()), + terminal_ansi_magenta: Some(rgba(0xff5792ff).into()), + terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()), + terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "f88e2cd7-2415-4118-a638-5cfd3132ecf8".into(), + UserTheme { name: "Noctis Minimus".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x496c83ff).into(), - border_variant: rgba(0x496c83ff).into(), - border_focused: rgba(0x496c83ff).into(), - border_selected: rgba(0x496c83ff).into(), - border_transparent: rgba(0x496c83ff).into(), - border_disabled: rgba(0x496c83ff).into(), - elevated_surface_background: rgba(0x0e1920ff).into(), - surface_background: rgba(0x0e1920ff).into(), - background: rgba(0x1b2932ff).into(), - element_background: rgba(0x2e616bff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xc5cdd3ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x202d37ff).into(), - tab_active_background: rgba(0x1b2932ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x0e1920ff).into(), - terminal_ansi_bright_black: rgba(0x425866ff).into(), - terminal_ansi_bright_red: rgba(0xca8468ff).into(), - terminal_ansi_bright_green: rgba(0x84c8abff).into(), - terminal_ansi_bright_yellow: rgba(0xd1aa7bff).into(), - terminal_ansi_bright_blue: rgba(0x68a4caff).into(), - terminal_ansi_bright_magenta: rgba(0xc88da2ff).into(), - terminal_ansi_bright_cyan: rgba(0x84bfc8ff).into(), - terminal_ansi_bright_white: rgba(0xc5d1d3ff).into(), - terminal_ansi_black: rgba(0x182935ff).into(), - terminal_ansi_red: rgba(0xc08872ff).into(), - terminal_ansi_green: rgba(0x72c09fff).into(), - terminal_ansi_yellow: rgba(0xc8a984ff).into(), - terminal_ansi_blue: rgba(0x6095b7ff).into(), - terminal_ansi_magenta: rgba(0xc28097ff).into(), - terminal_ansi_cyan: rgba(0x72b7c0ff).into(), - terminal_ansi_white: rgba(0xc5cdd3ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x496c83ff).into()), + border_variant: Some(rgba(0x496c83ff).into()), + border_focused: Some(rgba(0x496c83ff).into()), + border_selected: Some(rgba(0x496c83ff).into()), + border_transparent: Some(rgba(0x496c83ff).into()), + border_disabled: Some(rgba(0x496c83ff).into()), + elevated_surface_background: Some(rgba(0x0e1920ff).into()), + surface_background: Some(rgba(0x0e1920ff).into()), + background: Some(rgba(0x1b2932ff).into()), + element_background: Some(rgba(0x2e616bff).into()), + text: Some(rgba(0xc5cdd3ff).into()), + tab_inactive_background: Some(rgba(0x202d37ff).into()), + tab_active_background: Some(rgba(0x1b2932ff).into()), + terminal_background: Some(rgba(0x0e1920ff).into()), + terminal_ansi_bright_black: Some(rgba(0x425866ff).into()), + terminal_ansi_bright_red: Some(rgba(0xca8468ff).into()), + terminal_ansi_bright_green: Some(rgba(0x84c8abff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xd1aa7bff).into()), + terminal_ansi_bright_blue: Some(rgba(0x68a4caff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xc88da2ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x84bfc8ff).into()), + terminal_ansi_bright_white: Some(rgba(0xc5d1d3ff).into()), + terminal_ansi_black: Some(rgba(0x182935ff).into()), + terminal_ansi_red: Some(rgba(0xc08872ff).into()), + terminal_ansi_green: Some(rgba(0x72c09fff).into()), + terminal_ansi_yellow: Some(rgba(0xc8a984ff).into()), + terminal_ansi_blue: Some(rgba(0x6095b7ff).into()), + terminal_ansi_magenta: Some(rgba(0xc28097ff).into()), + terminal_ansi_cyan: Some(rgba(0x72b7c0ff).into()), + terminal_ansi_white: Some(rgba(0xc5cdd3ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "c4d43fc2-6166-47b7-8c5c-dd24afd4b735".into(), + UserTheme { name: "Noctis".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x0d6571ff).into(), - border_variant: rgba(0x0d6571ff).into(), - border_focused: rgba(0x0d6571ff).into(), - border_selected: rgba(0x0d6571ff).into(), - border_transparent: rgba(0x0d6571ff).into(), - border_disabled: rgba(0x0d6571ff).into(), - elevated_surface_background: rgba(0x03181aff).into(), - surface_background: rgba(0x03181aff).into(), - background: rgba(0x052428ff).into(), - element_background: rgba(0x089099ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xb1c9ccff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x052e32ff).into(), - tab_active_background: rgba(0x052428ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x03181aff).into(), - terminal_ansi_bright_black: rgba(0x47686cff).into(), - terminal_ansi_bright_red: rgba(0xe97749ff).into(), - terminal_ansi_bright_green: rgba(0x5febb1ff).into(), - terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), - terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), - terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), - terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), - terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), - terminal_ansi_black: rgba(0x324a4dff).into(), - terminal_ansi_red: rgba(0xe66432ff).into(), - terminal_ansi_green: rgba(0x49e9a6ff).into(), - terminal_ansi_yellow: rgba(0xe4b781ff).into(), - terminal_ansi_blue: rgba(0x49ace9ff).into(), - terminal_ansi_magenta: rgba(0xdf759aff).into(), - terminal_ansi_cyan: rgba(0x49d5e9ff).into(), - terminal_ansi_white: rgba(0xb1c9ccff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x0d6571ff).into()), + border_variant: Some(rgba(0x0d6571ff).into()), + border_focused: Some(rgba(0x0d6571ff).into()), + border_selected: Some(rgba(0x0d6571ff).into()), + border_transparent: Some(rgba(0x0d6571ff).into()), + border_disabled: Some(rgba(0x0d6571ff).into()), + elevated_surface_background: Some(rgba(0x03181aff).into()), + surface_background: Some(rgba(0x03181aff).into()), + background: Some(rgba(0x052428ff).into()), + element_background: Some(rgba(0x089099ff).into()), + text: Some(rgba(0xb1c9ccff).into()), + tab_inactive_background: Some(rgba(0x052e32ff).into()), + tab_active_background: Some(rgba(0x052428ff).into()), + terminal_background: Some(rgba(0x03181aff).into()), + terminal_ansi_bright_black: Some(rgba(0x47686cff).into()), + terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()), + terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()), + terminal_ansi_bright_white: Some(rgba(0xc1d4d7ff).into()), + terminal_ansi_black: Some(rgba(0x324a4dff).into()), + terminal_ansi_red: Some(rgba(0xe66432ff).into()), + terminal_ansi_green: Some(rgba(0x49e9a6ff).into()), + terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()), + terminal_ansi_blue: Some(rgba(0x49ace9ff).into()), + terminal_ansi_magenta: Some(rgba(0xdf759aff).into()), + terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()), + terminal_ansi_white: Some(rgba(0xb1c9ccff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "7253a515-c612-403c-89de-5b62dc5cbac7".into(), + UserTheme { name: "Noctis Obscuro".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x0d6571ff).into(), - border_variant: rgba(0x0d6571ff).into(), - border_focused: rgba(0x0d6571ff).into(), - border_selected: rgba(0x0d6571ff).into(), - border_transparent: rgba(0x0d6571ff).into(), - border_disabled: rgba(0x0d6571ff).into(), - elevated_surface_background: rgba(0x020c0eff).into(), - surface_background: rgba(0x020c0eff).into(), - background: rgba(0x031316ff).into(), - element_background: rgba(0x089099ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xb1c9ccff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x052e32ff).into(), - tab_active_background: rgba(0x031316ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x020c0eff).into(), - terminal_ansi_bright_black: rgba(0x47686cff).into(), - terminal_ansi_bright_red: rgba(0xe97749ff).into(), - terminal_ansi_bright_green: rgba(0x5febb1ff).into(), - terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), - terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), - terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), - terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), - terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), - terminal_ansi_black: rgba(0x324a4dff).into(), - terminal_ansi_red: rgba(0xe66432ff).into(), - terminal_ansi_green: rgba(0x49e9a6ff).into(), - terminal_ansi_yellow: rgba(0xe4b781ff).into(), - terminal_ansi_blue: rgba(0x49ace9ff).into(), - terminal_ansi_magenta: rgba(0xdf759aff).into(), - terminal_ansi_cyan: rgba(0x49d5e9ff).into(), - terminal_ansi_white: rgba(0xb1c9ccff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x0d6571ff).into()), + border_variant: Some(rgba(0x0d6571ff).into()), + border_focused: Some(rgba(0x0d6571ff).into()), + border_selected: Some(rgba(0x0d6571ff).into()), + border_transparent: Some(rgba(0x0d6571ff).into()), + border_disabled: Some(rgba(0x0d6571ff).into()), + elevated_surface_background: Some(rgba(0x020c0eff).into()), + surface_background: Some(rgba(0x020c0eff).into()), + background: Some(rgba(0x031316ff).into()), + element_background: Some(rgba(0x089099ff).into()), + text: Some(rgba(0xb1c9ccff).into()), + tab_inactive_background: Some(rgba(0x052e32ff).into()), + tab_active_background: Some(rgba(0x031316ff).into()), + terminal_background: Some(rgba(0x020c0eff).into()), + terminal_ansi_bright_black: Some(rgba(0x47686cff).into()), + terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()), + terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()), + terminal_ansi_bright_white: Some(rgba(0xc1d4d7ff).into()), + terminal_ansi_black: Some(rgba(0x324a4dff).into()), + terminal_ansi_red: Some(rgba(0xe66432ff).into()), + terminal_ansi_green: Some(rgba(0x49e9a6ff).into()), + terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()), + terminal_ansi_blue: Some(rgba(0x49ace9ff).into()), + terminal_ansi_magenta: Some(rgba(0xdf759aff).into()), + terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()), + terminal_ansi_white: Some(rgba(0xb1c9ccff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "b0f2d7b8-ac5f-466f-9bbf-e7cac242149c".into(), + UserTheme { name: "Noctis Sereno".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x0d6571ff).into(), - border_variant: rgba(0x0d6571ff).into(), - border_focused: rgba(0x0d6571ff).into(), - border_selected: rgba(0x0d6571ff).into(), - border_transparent: rgba(0x0d6571ff).into(), - border_disabled: rgba(0x0d6571ff).into(), - elevated_surface_background: rgba(0x020c0eff).into(), - surface_background: rgba(0x020c0eff).into(), - background: rgba(0x031316ff).into(), - element_background: rgba(0x089099ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xb1c9ccff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x052e32ff).into(), - tab_active_background: rgba(0x031316ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x020c0eff).into(), - terminal_ansi_bright_black: rgba(0x47686cff).into(), - terminal_ansi_bright_red: rgba(0xe97749ff).into(), - terminal_ansi_bright_green: rgba(0x5febb1ff).into(), - terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), - terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), - terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), - terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), - terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), - terminal_ansi_black: rgba(0x324a4dff).into(), - terminal_ansi_red: rgba(0xe66432ff).into(), - terminal_ansi_green: rgba(0x49e9a6ff).into(), - terminal_ansi_yellow: rgba(0xe4b781ff).into(), - terminal_ansi_blue: rgba(0x49ace9ff).into(), - terminal_ansi_magenta: rgba(0xdf759aff).into(), - terminal_ansi_cyan: rgba(0x49d5e9ff).into(), - terminal_ansi_white: rgba(0xb1c9ccff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x0d6571ff).into()), + border_variant: Some(rgba(0x0d6571ff).into()), + border_focused: Some(rgba(0x0d6571ff).into()), + border_selected: Some(rgba(0x0d6571ff).into()), + border_transparent: Some(rgba(0x0d6571ff).into()), + border_disabled: Some(rgba(0x0d6571ff).into()), + elevated_surface_background: Some(rgba(0x020c0eff).into()), + surface_background: Some(rgba(0x020c0eff).into()), + background: Some(rgba(0x031316ff).into()), + element_background: Some(rgba(0x089099ff).into()), + text: Some(rgba(0xb1c9ccff).into()), + tab_inactive_background: Some(rgba(0x052e32ff).into()), + tab_active_background: Some(rgba(0x031316ff).into()), + terminal_background: Some(rgba(0x020c0eff).into()), + terminal_ansi_bright_black: Some(rgba(0x47686cff).into()), + terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()), + terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()), + terminal_ansi_bright_white: Some(rgba(0xc1d4d7ff).into()), + terminal_ansi_black: Some(rgba(0x324a4dff).into()), + terminal_ansi_red: Some(rgba(0xe66432ff).into()), + terminal_ansi_green: Some(rgba(0x49e9a6ff).into()), + terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()), + terminal_ansi_blue: Some(rgba(0x49ace9ff).into()), + terminal_ansi_magenta: Some(rgba(0xdf759aff).into()), + terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()), + terminal_ansi_white: Some(rgba(0xb1c9ccff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "331ce3fd-8faf-4a46-ad89-2c678abc4cd3".into(), + UserTheme { name: "Noctis Uva".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x6d66a7ff).into(), - border_variant: rgba(0x6d66a7ff).into(), - border_focused: rgba(0x6d66a7ff).into(), - border_selected: rgba(0x6d66a7ff).into(), - border_transparent: rgba(0x6d66a7ff).into(), - border_disabled: rgba(0x6d66a7ff).into(), - elevated_surface_background: rgba(0x1f1d30ff).into(), - surface_background: rgba(0x1f1d30ff).into(), - background: rgba(0x292640ff).into(), - element_background: rgba(0x007e99ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xc5c2d6ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x2f2c49ff).into(), - tab_active_background: rgba(0x292640ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x1f1d30ff).into(), - terminal_ansi_bright_black: rgba(0x504e65ff).into(), - terminal_ansi_bright_red: rgba(0xe97749ff).into(), - terminal_ansi_bright_green: rgba(0x5febb1ff).into(), - terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), - terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), - terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), - terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), - terminal_ansi_bright_white: rgba(0xc5c2d6ff).into(), - terminal_ansi_black: rgba(0x302f3dff).into(), - terminal_ansi_red: rgba(0xe66432ff).into(), - terminal_ansi_green: rgba(0x49e9a6ff).into(), - terminal_ansi_yellow: rgba(0xe4b781ff).into(), - terminal_ansi_blue: rgba(0x49ace9ff).into(), - terminal_ansi_magenta: rgba(0xdf759aff).into(), - terminal_ansi_cyan: rgba(0x49d5e9ff).into(), - terminal_ansi_white: rgba(0xb6b3ccff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x6d66a7ff).into()), + border_variant: Some(rgba(0x6d66a7ff).into()), + border_focused: Some(rgba(0x6d66a7ff).into()), + border_selected: Some(rgba(0x6d66a7ff).into()), + border_transparent: Some(rgba(0x6d66a7ff).into()), + border_disabled: Some(rgba(0x6d66a7ff).into()), + elevated_surface_background: Some(rgba(0x1f1d30ff).into()), + surface_background: Some(rgba(0x1f1d30ff).into()), + background: Some(rgba(0x292640ff).into()), + element_background: Some(rgba(0x007e99ff).into()), + text: Some(rgba(0xc5c2d6ff).into()), + tab_inactive_background: Some(rgba(0x2f2c49ff).into()), + tab_active_background: Some(rgba(0x292640ff).into()), + terminal_background: Some(rgba(0x1f1d30ff).into()), + terminal_ansi_bright_black: Some(rgba(0x504e65ff).into()), + terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()), + terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()), + terminal_ansi_bright_white: Some(rgba(0xc5c2d6ff).into()), + terminal_ansi_black: Some(rgba(0x302f3dff).into()), + terminal_ansi_red: Some(rgba(0xe66432ff).into()), + terminal_ansi_green: Some(rgba(0x49e9a6ff).into()), + terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()), + terminal_ansi_blue: Some(rgba(0x49ace9ff).into()), + terminal_ansi_magenta: Some(rgba(0xdf759aff).into()), + terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()), + terminal_ansi_white: Some(rgba(0xb6b3ccff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "209964f1-6a61-4e40-a605-be245555c493".into(), + UserTheme { name: "Noctis Viola".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x8666a7ff).into(), - border_variant: rgba(0x8666a7ff).into(), - border_focused: rgba(0x8666a7ff).into(), - border_selected: rgba(0x8666a7ff).into(), - border_transparent: rgba(0x8666a7ff).into(), - border_disabled: rgba(0x8666a7ff).into(), - elevated_surface_background: rgba(0x291d35ff).into(), - surface_background: rgba(0x291d35ff).into(), - background: rgba(0x30243dff).into(), - element_background: rgba(0x007e99ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xccbfd9ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x3d2e4dff).into(), - tab_active_background: rgba(0x30243dff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x291d35ff).into(), - terminal_ansi_bright_black: rgba(0x594e65ff).into(), - terminal_ansi_bright_red: rgba(0xe97749ff).into(), - terminal_ansi_bright_green: rgba(0x5febb1ff).into(), - terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), - terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), - terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), - terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), - terminal_ansi_bright_white: rgba(0xccbfd9ff).into(), - terminal_ansi_black: rgba(0x362f3dff).into(), - terminal_ansi_red: rgba(0xe66432ff).into(), - terminal_ansi_green: rgba(0x49e9a6ff).into(), - terminal_ansi_yellow: rgba(0xe4b781ff).into(), - terminal_ansi_blue: rgba(0x49ace9ff).into(), - terminal_ansi_magenta: rgba(0xdf759aff).into(), - terminal_ansi_cyan: rgba(0x49d5e9ff).into(), - terminal_ansi_white: rgba(0xbfafcfff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x8666a7ff).into()), + border_variant: Some(rgba(0x8666a7ff).into()), + border_focused: Some(rgba(0x8666a7ff).into()), + border_selected: Some(rgba(0x8666a7ff).into()), + border_transparent: Some(rgba(0x8666a7ff).into()), + border_disabled: Some(rgba(0x8666a7ff).into()), + elevated_surface_background: Some(rgba(0x291d35ff).into()), + surface_background: Some(rgba(0x291d35ff).into()), + background: Some(rgba(0x30243dff).into()), + element_background: Some(rgba(0x007e99ff).into()), + text: Some(rgba(0xccbfd9ff).into()), + tab_inactive_background: Some(rgba(0x3d2e4dff).into()), + tab_active_background: Some(rgba(0x30243dff).into()), + terminal_background: Some(rgba(0x291d35ff).into()), + terminal_ansi_bright_black: Some(rgba(0x594e65ff).into()), + terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()), + terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()), + terminal_ansi_bright_white: Some(rgba(0xccbfd9ff).into()), + terminal_ansi_black: Some(rgba(0x362f3dff).into()), + terminal_ansi_red: Some(rgba(0xe66432ff).into()), + terminal_ansi_green: Some(rgba(0x49e9a6ff).into()), + terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()), + terminal_ansi_blue: Some(rgba(0x49ace9ff).into()), + terminal_ansi_magenta: Some(rgba(0xdf759aff).into()), + terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()), + terminal_ansi_white: Some(rgba(0xbfafcfff).into()), + ..Default::default() }, }, }, ], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 8ad0a86eb8..64df5d7ecb 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -1,518 +1,128 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn palenight() -> ThemeFamily { - ThemeFamily { - id: "16313d66-dab6-468a-82f6-e69759fdd8cf".into(), +pub fn palenight() -> UserThemeFamily { + UserThemeFamily { name: "Palenight".into(), author: "Olaolu Olawuyi (whizkydee)".into(), themes: vec![ - ThemeVariant { - id: "39fdf216-2c76-4b3d-b368-7c31f479d524".into(), + UserTheme { name: "Palenight".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x282b3bff).into(), - border_variant: rgba(0x282b3bff).into(), - border_focused: rgba(0x282b3bff).into(), - border_selected: rgba(0x282b3bff).into(), - border_transparent: rgba(0x282b3bff).into(), - border_disabled: rgba(0x282b3bff).into(), - elevated_surface_background: rgba(0x292c3eff).into(), - surface_background: rgba(0x292c3eff).into(), - background: rgba(0x292c3eff).into(), - element_background: rgba(0x7d56c1cc).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xffffffff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x31364aff).into(), - tab_active_background: rgba(0x292c3eff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x676e95ff).into(), - terminal_ansi_bright_red: rgba(0xff5571ff).into(), - terminal_ansi_bright_green: rgba(0xc3e88dff).into(), - terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), - terminal_ansi_bright_blue: rgba(0x82aaffff).into(), - terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), - terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), - terminal_ansi_bright_white: rgba(0xffffffff).into(), - terminal_ansi_black: rgba(0x676e95ff).into(), - terminal_ansi_red: rgba(0xff5571ff).into(), - terminal_ansi_green: rgba(0xa9c77dff).into(), - terminal_ansi_yellow: rgba(0xffcb6bff).into(), - terminal_ansi_blue: rgba(0x82aaffff).into(), - terminal_ansi_magenta: rgba(0xc792eaff).into(), - terminal_ansi_cyan: rgba(0x89ddffff).into(), - terminal_ansi_white: rgba(0xffffffff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x282b3bff).into()), + border_variant: Some(rgba(0x282b3bff).into()), + border_focused: Some(rgba(0x282b3bff).into()), + border_selected: Some(rgba(0x282b3bff).into()), + border_transparent: Some(rgba(0x282b3bff).into()), + border_disabled: Some(rgba(0x282b3bff).into()), + elevated_surface_background: Some(rgba(0x292c3eff).into()), + surface_background: Some(rgba(0x292c3eff).into()), + background: Some(rgba(0x292c3eff).into()), + element_background: Some(rgba(0x7d56c1cc).into()), + text: Some(rgba(0xffffffff).into()), + tab_inactive_background: Some(rgba(0x31364aff).into()), + tab_active_background: Some(rgba(0x292c3eff).into()), + terminal_ansi_bright_black: Some(rgba(0x676e95ff).into()), + terminal_ansi_bright_red: Some(rgba(0xff5571ff).into()), + terminal_ansi_bright_green: Some(rgba(0xc3e88dff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffcb6bff).into()), + terminal_ansi_bright_blue: Some(rgba(0x82aaffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xc792eaff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x89ddffff).into()), + terminal_ansi_bright_white: Some(rgba(0xffffffff).into()), + terminal_ansi_black: Some(rgba(0x676e95ff).into()), + terminal_ansi_red: Some(rgba(0xff5571ff).into()), + terminal_ansi_green: Some(rgba(0xa9c77dff).into()), + terminal_ansi_yellow: Some(rgba(0xffcb6bff).into()), + terminal_ansi_blue: Some(rgba(0x82aaffff).into()), + terminal_ansi_magenta: Some(rgba(0xc792eaff).into()), + terminal_ansi_cyan: Some(rgba(0x89ddffff).into()), + terminal_ansi_white: Some(rgba(0xffffffff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "5ff8120f-37e9-4ad3-8bd0-c3e449ff1aa1".into(), + UserTheme { name: "Palenight Operator".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x282b3bff).into(), - border_variant: rgba(0x282b3bff).into(), - border_focused: rgba(0x282b3bff).into(), - border_selected: rgba(0x282b3bff).into(), - border_transparent: rgba(0x282b3bff).into(), - border_disabled: rgba(0x282b3bff).into(), - elevated_surface_background: rgba(0x292c3eff).into(), - surface_background: rgba(0x292c3eff).into(), - background: rgba(0x292c3eff).into(), - element_background: rgba(0x7d56c1cc).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xffffffff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x31364aff).into(), - tab_active_background: rgba(0x292c3eff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x676e95ff).into(), - terminal_ansi_bright_red: rgba(0xff5571ff).into(), - terminal_ansi_bright_green: rgba(0xc3e88dff).into(), - terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), - terminal_ansi_bright_blue: rgba(0x82aaffff).into(), - terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), - terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), - terminal_ansi_bright_white: rgba(0xffffffff).into(), - terminal_ansi_black: rgba(0x676e95ff).into(), - terminal_ansi_red: rgba(0xff5571ff).into(), - terminal_ansi_green: rgba(0xa9c77dff).into(), - terminal_ansi_yellow: rgba(0xffcb6bff).into(), - terminal_ansi_blue: rgba(0x82aaffff).into(), - terminal_ansi_magenta: rgba(0xc792eaff).into(), - terminal_ansi_cyan: rgba(0x89ddffff).into(), - terminal_ansi_white: rgba(0xffffffff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x282b3bff).into()), + border_variant: Some(rgba(0x282b3bff).into()), + border_focused: Some(rgba(0x282b3bff).into()), + border_selected: Some(rgba(0x282b3bff).into()), + border_transparent: Some(rgba(0x282b3bff).into()), + border_disabled: Some(rgba(0x282b3bff).into()), + elevated_surface_background: Some(rgba(0x292c3eff).into()), + surface_background: Some(rgba(0x292c3eff).into()), + background: Some(rgba(0x292c3eff).into()), + element_background: Some(rgba(0x7d56c1cc).into()), + text: Some(rgba(0xffffffff).into()), + tab_inactive_background: Some(rgba(0x31364aff).into()), + tab_active_background: Some(rgba(0x292c3eff).into()), + terminal_ansi_bright_black: Some(rgba(0x676e95ff).into()), + terminal_ansi_bright_red: Some(rgba(0xff5571ff).into()), + terminal_ansi_bright_green: Some(rgba(0xc3e88dff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffcb6bff).into()), + terminal_ansi_bright_blue: Some(rgba(0x82aaffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xc792eaff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x89ddffff).into()), + terminal_ansi_bright_white: Some(rgba(0xffffffff).into()), + terminal_ansi_black: Some(rgba(0x676e95ff).into()), + terminal_ansi_red: Some(rgba(0xff5571ff).into()), + terminal_ansi_green: Some(rgba(0xa9c77dff).into()), + terminal_ansi_yellow: Some(rgba(0xffcb6bff).into()), + terminal_ansi_blue: Some(rgba(0x82aaffff).into()), + terminal_ansi_magenta: Some(rgba(0xc792eaff).into()), + terminal_ansi_cyan: Some(rgba(0x89ddffff).into()), + terminal_ansi_white: Some(rgba(0xffffffff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "cff26efb-72f8-4496-b33b-991080a47f1c".into(), + UserTheme { name: "Palenight (Mild Contrast)".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x2c2f40ff).into(), - border_variant: rgba(0x2c2f40ff).into(), - border_focused: rgba(0x2c2f40ff).into(), - border_selected: rgba(0x2c2f40ff).into(), - border_transparent: rgba(0x2c2f40ff).into(), - border_disabled: rgba(0x2c2f40ff).into(), - elevated_surface_background: rgba(0x25283aff).into(), - surface_background: rgba(0x25283aff).into(), - background: rgba(0x292c3eff).into(), - element_background: rgba(0x7d56c1cc).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xffffffff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x31364aff).into(), - tab_active_background: rgba(0x25283aff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x676e95ff).into(), - terminal_ansi_bright_red: rgba(0xff5571ff).into(), - terminal_ansi_bright_green: rgba(0xc3e88dff).into(), - terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), - terminal_ansi_bright_blue: rgba(0x82aaffff).into(), - terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), - terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), - terminal_ansi_bright_white: rgba(0xffffffff).into(), - terminal_ansi_black: rgba(0x676e95ff).into(), - terminal_ansi_red: rgba(0xff5571ff).into(), - terminal_ansi_green: rgba(0xa9c77dff).into(), - terminal_ansi_yellow: rgba(0xffcb6bff).into(), - terminal_ansi_blue: rgba(0x82aaffff).into(), - terminal_ansi_magenta: rgba(0xc792eaff).into(), - terminal_ansi_cyan: rgba(0x89ddffff).into(), - terminal_ansi_white: rgba(0xffffffff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x2c2f40ff).into()), + border_variant: Some(rgba(0x2c2f40ff).into()), + border_focused: Some(rgba(0x2c2f40ff).into()), + border_selected: Some(rgba(0x2c2f40ff).into()), + border_transparent: Some(rgba(0x2c2f40ff).into()), + border_disabled: Some(rgba(0x2c2f40ff).into()), + elevated_surface_background: Some(rgba(0x25283aff).into()), + surface_background: Some(rgba(0x25283aff).into()), + background: Some(rgba(0x292c3eff).into()), + element_background: Some(rgba(0x7d56c1cc).into()), + text: Some(rgba(0xffffffff).into()), + tab_inactive_background: Some(rgba(0x31364aff).into()), + tab_active_background: Some(rgba(0x25283aff).into()), + terminal_ansi_bright_black: Some(rgba(0x676e95ff).into()), + terminal_ansi_bright_red: Some(rgba(0xff5571ff).into()), + terminal_ansi_bright_green: Some(rgba(0xc3e88dff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xffcb6bff).into()), + terminal_ansi_bright_blue: Some(rgba(0x82aaffff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xc792eaff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x89ddffff).into()), + terminal_ansi_bright_white: Some(rgba(0xffffffff).into()), + terminal_ansi_black: Some(rgba(0x676e95ff).into()), + terminal_ansi_red: Some(rgba(0xff5571ff).into()), + terminal_ansi_green: Some(rgba(0xa9c77dff).into()), + terminal_ansi_yellow: Some(rgba(0xffcb6bff).into()), + terminal_ansi_blue: Some(rgba(0x82aaffff).into()), + terminal_ansi_magenta: Some(rgba(0xc792eaff).into()), + terminal_ansi_cyan: Some(rgba(0x89ddffff).into()), + terminal_ansi_white: Some(rgba(0xffffffff).into()), + ..Default::default() }, }, }, ], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index d022d645cf..6fd641861a 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -1,518 +1,128 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn rose_pine() -> ThemeFamily { - ThemeFamily { - id: "9cf70eba-1185-4f3e-adb7-74f61c45c9dc".into(), +pub fn rose_pine() -> UserThemeFamily { + UserThemeFamily { name: "Rose Pine".into(), author: "Rosé Pine".into(), themes: vec![ - ThemeVariant { - id: "80a8f5dd-2ab5-4ee7-9b25-a60c8513234e".into(), + UserTheme { name: "Rose Pine".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x000000ff).into(), - border_variant: rgba(0x000000ff).into(), - border_focused: rgba(0x000000ff).into(), - border_selected: rgba(0x000000ff).into(), - border_transparent: rgba(0x000000ff).into(), - border_disabled: rgba(0x000000ff).into(), - elevated_surface_background: rgba(0x1f1d2eff).into(), - surface_background: rgba(0x1f1d2eff).into(), - background: rgba(0x191724ff).into(), - element_background: rgba(0xebbcbaff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xe0def4ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x000000ff).into(), - tab_active_background: rgba(0x6e6a861a).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x908caaff).into(), - terminal_ansi_bright_red: rgba(0xeb6f92ff).into(), - terminal_ansi_bright_green: rgba(0x30738fff).into(), - terminal_ansi_bright_yellow: rgba(0xf5c177ff).into(), - terminal_ansi_bright_blue: rgba(0x9ccfd8ff).into(), - terminal_ansi_bright_magenta: rgba(0xc4a7e7ff).into(), - terminal_ansi_bright_cyan: rgba(0xebbcbaff).into(), - terminal_ansi_bright_white: rgba(0xe0def4ff).into(), - terminal_ansi_black: rgba(0x26233aff).into(), - terminal_ansi_red: rgba(0xeb6f92ff).into(), - terminal_ansi_green: rgba(0x30738fff).into(), - terminal_ansi_yellow: rgba(0xf5c177ff).into(), - terminal_ansi_blue: rgba(0x9ccfd8ff).into(), - terminal_ansi_magenta: rgba(0xc4a7e7ff).into(), - terminal_ansi_cyan: rgba(0xebbcbaff).into(), - terminal_ansi_white: rgba(0xe0def4ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x000000ff).into()), + border_variant: Some(rgba(0x000000ff).into()), + border_focused: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x000000ff).into()), + border_transparent: Some(rgba(0x000000ff).into()), + border_disabled: Some(rgba(0x000000ff).into()), + elevated_surface_background: Some(rgba(0x1f1d2eff).into()), + surface_background: Some(rgba(0x1f1d2eff).into()), + background: Some(rgba(0x191724ff).into()), + element_background: Some(rgba(0xebbcbaff).into()), + text: Some(rgba(0xe0def4ff).into()), + tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_active_background: Some(rgba(0x6e6a861a).into()), + terminal_ansi_bright_black: Some(rgba(0x908caaff).into()), + terminal_ansi_bright_red: Some(rgba(0xeb6f92ff).into()), + terminal_ansi_bright_green: Some(rgba(0x30738fff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xf5c177ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x9ccfd8ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xc4a7e7ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0xebbcbaff).into()), + terminal_ansi_bright_white: Some(rgba(0xe0def4ff).into()), + terminal_ansi_black: Some(rgba(0x26233aff).into()), + terminal_ansi_red: Some(rgba(0xeb6f92ff).into()), + terminal_ansi_green: Some(rgba(0x30738fff).into()), + terminal_ansi_yellow: Some(rgba(0xf5c177ff).into()), + terminal_ansi_blue: Some(rgba(0x9ccfd8ff).into()), + terminal_ansi_magenta: Some(rgba(0xc4a7e7ff).into()), + terminal_ansi_cyan: Some(rgba(0xebbcbaff).into()), + terminal_ansi_white: Some(rgba(0xe0def4ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "fe9e3c9e-954e-4f8e-849e-451ba5f6ceca".into(), + UserTheme { name: "Rose Moon".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x000000ff).into(), - border_variant: rgba(0x000000ff).into(), - border_focused: rgba(0x000000ff).into(), - border_selected: rgba(0x000000ff).into(), - border_transparent: rgba(0x000000ff).into(), - border_disabled: rgba(0x000000ff).into(), - elevated_surface_background: rgba(0x2a273eff).into(), - surface_background: rgba(0x2a273eff).into(), - background: rgba(0x232136ff).into(), - element_background: rgba(0xea9a97ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xe0def4ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x000000ff).into(), - tab_active_background: rgba(0x817c9c14).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x908caaff).into(), - terminal_ansi_bright_red: rgba(0xeb6f92ff).into(), - terminal_ansi_bright_green: rgba(0x3d8fb0ff).into(), - terminal_ansi_bright_yellow: rgba(0xf5c177ff).into(), - terminal_ansi_bright_blue: rgba(0x9ccfd8ff).into(), - terminal_ansi_bright_magenta: rgba(0xc4a7e7ff).into(), - terminal_ansi_bright_cyan: rgba(0xea9a97ff).into(), - terminal_ansi_bright_white: rgba(0xe0def4ff).into(), - terminal_ansi_black: rgba(0x393552ff).into(), - terminal_ansi_red: rgba(0xeb6f92ff).into(), - terminal_ansi_green: rgba(0x3d8fb0ff).into(), - terminal_ansi_yellow: rgba(0xf5c177ff).into(), - terminal_ansi_blue: rgba(0x9ccfd8ff).into(), - terminal_ansi_magenta: rgba(0xc4a7e7ff).into(), - terminal_ansi_cyan: rgba(0xea9a97ff).into(), - terminal_ansi_white: rgba(0xe0def4ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x000000ff).into()), + border_variant: Some(rgba(0x000000ff).into()), + border_focused: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x000000ff).into()), + border_transparent: Some(rgba(0x000000ff).into()), + border_disabled: Some(rgba(0x000000ff).into()), + elevated_surface_background: Some(rgba(0x2a273eff).into()), + surface_background: Some(rgba(0x2a273eff).into()), + background: Some(rgba(0x232136ff).into()), + element_background: Some(rgba(0xea9a97ff).into()), + text: Some(rgba(0xe0def4ff).into()), + tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_active_background: Some(rgba(0x817c9c14).into()), + terminal_ansi_bright_black: Some(rgba(0x908caaff).into()), + terminal_ansi_bright_red: Some(rgba(0xeb6f92ff).into()), + terminal_ansi_bright_green: Some(rgba(0x3d8fb0ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xf5c177ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x9ccfd8ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xc4a7e7ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0xea9a97ff).into()), + terminal_ansi_bright_white: Some(rgba(0xe0def4ff).into()), + terminal_ansi_black: Some(rgba(0x393552ff).into()), + terminal_ansi_red: Some(rgba(0xeb6f92ff).into()), + terminal_ansi_green: Some(rgba(0x3d8fb0ff).into()), + terminal_ansi_yellow: Some(rgba(0xf5c177ff).into()), + terminal_ansi_blue: Some(rgba(0x9ccfd8ff).into()), + terminal_ansi_magenta: Some(rgba(0xc4a7e7ff).into()), + terminal_ansi_cyan: Some(rgba(0xea9a97ff).into()), + terminal_ansi_white: Some(rgba(0xe0def4ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "00cc7f69-9658-443e-b643-1c8dbffa047d".into(), + UserTheme { name: "Rose Pine Dawn".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x000000ff).into(), - border_variant: rgba(0x000000ff).into(), - border_focused: rgba(0x000000ff).into(), - border_selected: rgba(0x000000ff).into(), - border_transparent: rgba(0x000000ff).into(), - border_disabled: rgba(0x000000ff).into(), - elevated_surface_background: rgba(0xfffaf3ff).into(), - surface_background: rgba(0xfffaf3ff).into(), - background: rgba(0xfaf4edff).into(), - element_background: rgba(0xd7827dff).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x575279ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0x000000ff).into(), - tab_active_background: rgba(0x6e6a860d).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xfcfcfdff).into(), - terminal_ansi_bright_black: rgba(0x797593ff).into(), - terminal_ansi_bright_red: rgba(0xb3627aff).into(), - terminal_ansi_bright_green: rgba(0x276983ff).into(), - terminal_ansi_bright_yellow: rgba(0xea9d34ff).into(), - terminal_ansi_bright_blue: rgba(0x55949fff).into(), - terminal_ansi_bright_magenta: rgba(0x9079a9ff).into(), - terminal_ansi_bright_cyan: rgba(0xd7827dff).into(), - terminal_ansi_bright_white: rgba(0x575279ff).into(), - terminal_ansi_black: rgba(0xf2e9e1ff).into(), - terminal_ansi_red: rgba(0xb3627aff).into(), - terminal_ansi_green: rgba(0x276983ff).into(), - terminal_ansi_yellow: rgba(0xea9d34ff).into(), - terminal_ansi_blue: rgba(0x55949fff).into(), - terminal_ansi_magenta: rgba(0x9079a9ff).into(), - terminal_ansi_cyan: rgba(0xd7827dff).into(), - terminal_ansi_white: rgba(0x575279ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x000000ff).into()), + border_variant: Some(rgba(0x000000ff).into()), + border_focused: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x000000ff).into()), + border_transparent: Some(rgba(0x000000ff).into()), + border_disabled: Some(rgba(0x000000ff).into()), + elevated_surface_background: Some(rgba(0xfffaf3ff).into()), + surface_background: Some(rgba(0xfffaf3ff).into()), + background: Some(rgba(0xfaf4edff).into()), + element_background: Some(rgba(0xd7827dff).into()), + text: Some(rgba(0x575279ff).into()), + tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_active_background: Some(rgba(0x6e6a860d).into()), + terminal_ansi_bright_black: Some(rgba(0x797593ff).into()), + terminal_ansi_bright_red: Some(rgba(0xb3627aff).into()), + terminal_ansi_bright_green: Some(rgba(0x276983ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xea9d34ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x55949fff).into()), + terminal_ansi_bright_magenta: Some(rgba(0x9079a9ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0xd7827dff).into()), + terminal_ansi_bright_white: Some(rgba(0x575279ff).into()), + terminal_ansi_black: Some(rgba(0xf2e9e1ff).into()), + terminal_ansi_red: Some(rgba(0xb3627aff).into()), + terminal_ansi_green: Some(rgba(0x276983ff).into()), + terminal_ansi_yellow: Some(rgba(0xea9d34ff).into()), + terminal_ansi_blue: Some(rgba(0x55949fff).into()), + terminal_ansi_magenta: Some(rgba(0x9079a9ff).into()), + terminal_ansi_cyan: Some(rgba(0xd7827dff).into()), + terminal_ansi_white: Some(rgba(0x575279ff).into()), + ..Default::default() }, }, }, ], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index cca669479a..1f1c55f081 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -1,351 +1,84 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn solarized() -> ThemeFamily { - ThemeFamily { - id: "96299b3e-c749-478c-bfc9-c96cdaea8630".into(), +pub fn solarized() -> UserThemeFamily { + UserThemeFamily { name: "Solarized".into(), author: "Ethan Schoonover (altercation)".into(), themes: vec![ - ThemeVariant { - id: "265f93c5-c8e7-4962-b083-8550f4b5c2ff".into(), + UserTheme { name: "Solarized Dark".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x003847ff).into(), - border_variant: rgba(0x003847ff).into(), - border_focused: rgba(0x003847ff).into(), - border_selected: rgba(0x003847ff).into(), - border_transparent: rgba(0x003847ff).into(), - border_disabled: rgba(0x003847ff).into(), - elevated_surface_background: rgba(0x18191bff).into(), - surface_background: rgba(0x18191bff).into(), - background: rgba(0x002a35ff).into(), - element_background: rgba(0x29a19899).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xedeef0ff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x003f51ff).into(), - tab_active_background: rgba(0x002a36ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x586e75ff).into(), - terminal_ansi_bright_red: rgba(0xcb4b15ff).into(), - terminal_ansi_bright_green: rgba(0x859900ff).into(), - terminal_ansi_bright_yellow: rgba(0x657b83ff).into(), - terminal_ansi_bright_blue: rgba(0x839496ff).into(), - terminal_ansi_bright_magenta: rgba(0x6c71c4ff).into(), - terminal_ansi_bright_cyan: rgba(0x93a1a1ff).into(), - terminal_ansi_bright_white: rgba(0x839496ff).into(), - terminal_ansi_black: rgba(0x063642ff).into(), - terminal_ansi_red: rgba(0xdc312eff).into(), - terminal_ansi_green: rgba(0x859900ff).into(), - terminal_ansi_yellow: rgba(0xb58800ff).into(), - terminal_ansi_blue: rgba(0x258ad2ff).into(), - terminal_ansi_magenta: rgba(0xd33582ff).into(), - terminal_ansi_cyan: rgba(0x29a198ff).into(), - terminal_ansi_white: rgba(0x839496ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0x003847ff).into()), + border_variant: Some(rgba(0x003847ff).into()), + border_focused: Some(rgba(0x003847ff).into()), + border_selected: Some(rgba(0x003847ff).into()), + border_transparent: Some(rgba(0x003847ff).into()), + border_disabled: Some(rgba(0x003847ff).into()), + background: Some(rgba(0x002a35ff).into()), + element_background: Some(rgba(0x29a19899).into()), + tab_inactive_background: Some(rgba(0x003f51ff).into()), + tab_active_background: Some(rgba(0x002a36ff).into()), + terminal_ansi_bright_black: Some(rgba(0x586e75ff).into()), + terminal_ansi_bright_red: Some(rgba(0xcb4b15ff).into()), + terminal_ansi_bright_green: Some(rgba(0x859900ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0x657b83ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x839496ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0x6c71c4ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x93a1a1ff).into()), + terminal_ansi_bright_white: Some(rgba(0x839496ff).into()), + terminal_ansi_black: Some(rgba(0x063642ff).into()), + terminal_ansi_red: Some(rgba(0xdc312eff).into()), + terminal_ansi_green: Some(rgba(0x859900ff).into()), + terminal_ansi_yellow: Some(rgba(0xb58800ff).into()), + terminal_ansi_blue: Some(rgba(0x258ad2ff).into()), + terminal_ansi_magenta: Some(rgba(0xd33582ff).into()), + terminal_ansi_cyan: Some(rgba(0x29a198ff).into()), + terminal_ansi_white: Some(rgba(0x839496ff).into()), + ..Default::default() }, }, }, - ThemeVariant { - id: "40e2070d-5846-4182-9dc9-bf56badf019f".into(), + UserTheme { name: "Solarized Light".into(), appearance: Appearance::Light, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0xddd6c1ff).into(), - border_variant: rgba(0xddd6c1ff).into(), - border_focused: rgba(0xddd6c1ff).into(), - border_selected: rgba(0xddd6c1ff).into(), - border_transparent: rgba(0xddd6c1ff).into(), - border_disabled: rgba(0xddd6c1ff).into(), - elevated_surface_background: rgba(0xf9f9fbff).into(), - surface_background: rgba(0xf9f9fbff).into(), - background: rgba(0xfdf6e3ff).into(), - element_background: rgba(0xab9d56ff).into(), - element_hover: rgba(0xe8e8ecff).into(), - element_active: rgba(0xe0e1e6ff).into(), - element_selected: rgba(0xe0e1e6ff).into(), - element_disabled: rgba(0x0000320f).into(), - element_placeholder: rgba(0x60646cff).into(), - element_drop_target: rgba(0x008bff0b).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0xe8e8ecff).into(), - ghost_element_active: rgba(0xe0e1e6ff).into(), - ghost_element_selected: rgba(0xe0e1e6ff).into(), - ghost_element_disabled: rgba(0x0000320f).into(), - text: rgba(0x1c2024ff).into(), - text_muted: rgba(0x60646cff).into(), - text_placeholder: rgba(0x80838dff).into(), - text_disabled: rgba(0x8b8d98ff).into(), - text_accent: rgba(0x0c73ceff).into(), - icon: rgba(0x60646cff).into(), - icon_muted: rgba(0x80838dff).into(), - icon_disabled: rgba(0x8b8d98ff).into(), - icon_placeholder: rgba(0x80838dff).into(), - icon_accent: rgba(0x0c73ceff).into(), - status_bar_background: rgba(0xf9f9fbff).into(), - title_bar_background: rgba(0xf9f9fbff).into(), - toolbar_background: rgba(0xfcfcfdff).into(), - tab_bar_background: rgba(0xf9f9fbff).into(), - tab_inactive_background: rgba(0xd3cbb7ff).into(), - tab_active_background: rgba(0xfdf6e3ff).into(), - editor_background: rgba(0xfcfcfdff).into(), - editor_gutter_background: rgba(0xfcfcfdff).into(), - editor_subheader_background: rgba(0xf9f9fbff).into(), - editor_active_line_background: rgba(0x0000320f).into(), - editor_highlighted_line_background: rgba(0x00002c17).into(), - editor_line_number: rgba(0x0000320f).into(), - editor_active_line_number: rgba(0x0000320f).into(), - editor_invisible: rgba(0x00002c17).into(), - editor_wrap_guide: rgba(0x00002c17).into(), - editor_active_wrap_guide: rgba(0x00002c17).into(), - editor_document_highlight_read_background: rgba(0x00002c17).into(), - editor_document_highlight_write_background: rgba(0x00002c17).into(), - terminal_background: rgba(0xfcfcfdff).into(), - terminal_ansi_bright_black: rgba(0x657b83ff).into(), - terminal_ansi_bright_red: rgba(0xcb4b15ff).into(), - terminal_ansi_bright_green: rgba(0x859900ff).into(), - terminal_ansi_bright_yellow: rgba(0x657b83ff).into(), - terminal_ansi_bright_blue: rgba(0x839496ff).into(), - terminal_ansi_bright_magenta: rgba(0x6c71c4ff).into(), - terminal_ansi_bright_cyan: rgba(0x93a1a1ff).into(), - terminal_ansi_bright_white: rgba(0xeee8d5ff).into(), - terminal_ansi_black: rgba(0x657b83ff).into(), - terminal_ansi_red: rgba(0xdc312eff).into(), - terminal_ansi_green: rgba(0x859900ff).into(), - terminal_ansi_yellow: rgba(0xb58800ff).into(), - terminal_ansi_blue: rgba(0x258ad2ff).into(), - terminal_ansi_magenta: rgba(0xd33582ff).into(), - terminal_ansi_cyan: rgba(0x29a198ff).into(), - terminal_ansi_white: rgba(0xeee8d5ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + border: Some(rgba(0xddd6c1ff).into()), + border_variant: Some(rgba(0xddd6c1ff).into()), + border_focused: Some(rgba(0xddd6c1ff).into()), + border_selected: Some(rgba(0xddd6c1ff).into()), + border_transparent: Some(rgba(0xddd6c1ff).into()), + border_disabled: Some(rgba(0xddd6c1ff).into()), + background: Some(rgba(0xfdf6e3ff).into()), + element_background: Some(rgba(0xab9d56ff).into()), + tab_inactive_background: Some(rgba(0xd3cbb7ff).into()), + tab_active_background: Some(rgba(0xfdf6e3ff).into()), + terminal_ansi_bright_black: Some(rgba(0x657b83ff).into()), + terminal_ansi_bright_red: Some(rgba(0xcb4b15ff).into()), + terminal_ansi_bright_green: Some(rgba(0x859900ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0x657b83ff).into()), + terminal_ansi_bright_blue: Some(rgba(0x839496ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0x6c71c4ff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x93a1a1ff).into()), + terminal_ansi_bright_white: Some(rgba(0xeee8d5ff).into()), + terminal_ansi_black: Some(rgba(0x657b83ff).into()), + terminal_ansi_red: Some(rgba(0xdc312eff).into()), + terminal_ansi_green: Some(rgba(0x859900ff).into()), + terminal_ansi_yellow: Some(rgba(0xb58800ff).into()), + terminal_ansi_blue: Some(rgba(0x258ad2ff).into()), + terminal_ansi_magenta: Some(rgba(0xd33582ff).into()), + terminal_ansi_cyan: Some(rgba(0x29a198ff).into()), + terminal_ansi_white: Some(rgba(0xeee8d5ff).into()), + ..Default::default() }, }, }, ], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 8920037253..a512c087ff 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -1,182 +1,37 @@ use gpui::rgba; use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; -pub fn synthwave_84() -> ThemeFamily { - ThemeFamily { - id: "161a14a0-533c-4df1-b909-2bac37ac807d".into(), +pub fn synthwave_84() -> UserThemeFamily { + UserThemeFamily { name: "Synthwave 84".into(), author: "Robb Owen (robb0wen)".into(), - themes: vec![ThemeVariant { - id: "7a7102b7-8778-4c24-ba79-7407857b4f8c".into(), + themes: vec![UserTheme { name: "Synthwave 84".into(), appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors { - transparent: rgba(0x00000000).into(), - mac_os_traffic_light_red: rgba(0xec6b5fff).into(), - mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), - mac_os_traffic_light_green: rgba(0x61c454ff).into(), - }, - colors: ThemeColors { - border: rgba(0x363a3fff).into(), - border_variant: rgba(0x2e3135ff).into(), - border_focused: rgba(0x004073ff).into(), - border_selected: rgba(0x004073ff).into(), - border_transparent: rgba(0x00000000).into(), - border_disabled: rgba(0x212225ff).into(), - elevated_surface_background: rgba(0x18191bff).into(), - surface_background: rgba(0x18191bff).into(), - background: rgba(0x252334ff).into(), - element_background: rgba(0x614d85ff).into(), - element_hover: rgba(0x272a2dff).into(), - element_active: rgba(0x2e3135ff).into(), - element_selected: rgba(0x2e3135ff).into(), - element_disabled: rgba(0xddeaf814).into(), - element_placeholder: rgba(0xb0b4baff).into(), - element_drop_target: rgba(0x1166fb18).into(), - ghost_element_background: rgba(0x00000000).into(), - ghost_element_hover: rgba(0x272a2dff).into(), - ghost_element_active: rgba(0x2e3135ff).into(), - ghost_element_selected: rgba(0x2e3135ff).into(), - ghost_element_disabled: rgba(0xddeaf814).into(), - text: rgba(0xffffffff).into(), - text_muted: rgba(0xb0b4baff).into(), - text_placeholder: rgba(0x767a83ff).into(), - text_disabled: rgba(0x696e77ff).into(), - text_accent: rgba(0x6fb8ffff).into(), - icon: rgba(0xb0b4baff).into(), - icon_muted: rgba(0x767a83ff).into(), - icon_disabled: rgba(0x696e77ff).into(), - icon_placeholder: rgba(0x767a83ff).into(), - icon_accent: rgba(0x6fb8ffff).into(), - status_bar_background: rgba(0x18191bff).into(), - title_bar_background: rgba(0x18191bff).into(), - toolbar_background: rgba(0x111113ff).into(), - tab_bar_background: rgba(0x18191bff).into(), - tab_inactive_background: rgba(0x252334ff).into(), - tab_active_background: rgba(0x111113ff).into(), - editor_background: rgba(0x111113ff).into(), - editor_gutter_background: rgba(0x111113ff).into(), - editor_subheader_background: rgba(0x18191bff).into(), - editor_active_line_background: rgba(0xddeaf814).into(), - editor_highlighted_line_background: rgba(0xd3edf81d).into(), - editor_line_number: rgba(0xddeaf814).into(), - editor_active_line_number: rgba(0xddeaf814).into(), - editor_invisible: rgba(0xd3edf81d).into(), - editor_wrap_guide: rgba(0xd3edf81d).into(), - editor_active_wrap_guide: rgba(0xd3edf81d).into(), - editor_document_highlight_read_background: rgba(0xd3edf81d).into(), - editor_document_highlight_write_background: rgba(0xd3edf81d).into(), - terminal_background: rgba(0x111113ff).into(), - terminal_ansi_bright_black: rgba(0x000000e6).into(), - terminal_ansi_bright_red: rgba(0xfe444fff).into(), - terminal_ansi_bright_green: rgba(0x71f1b7ff).into(), - terminal_ansi_bright_yellow: rgba(0xfede5cff).into(), - terminal_ansi_bright_blue: rgba(0x02edf9ff).into(), - terminal_ansi_bright_magenta: rgba(0xff7ddaff).into(), - terminal_ansi_bright_cyan: rgba(0x02edf9ff).into(), - terminal_ansi_bright_white: rgba(0xb0b4baff).into(), - terminal_ansi_black: rgba(0x000000f2).into(), - terminal_ansi_red: rgba(0xfe444fff).into(), - terminal_ansi_green: rgba(0x71f1b7ff).into(), - terminal_ansi_yellow: rgba(0xf3e70fff).into(), - terminal_ansi_blue: rgba(0x02edf9ff).into(), - terminal_ansi_magenta: rgba(0xff7ddaff).into(), - terminal_ansi_cyan: rgba(0x02edf9ff).into(), - terminal_ansi_white: rgba(0xedeef0ff).into(), - }, - status: StatusColors { - conflict: rgba(0xff9592ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - error: rgba(0xff9592ff).into(), - hidden: rgba(0xb0b4baff).into(), - ignored: rgba(0xb0b4baff).into(), - info: rgba(0x6fb8ffff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - success: rgba(0x70cf82ff).into(), - warning: rgba(0xf5e147ff).into(), - }, - git: GitStatusColors { - conflict: rgba(0xffa057ff).into(), - created: rgba(0x70cf82ff).into(), - deleted: rgba(0xff9592ff).into(), - ignored: rgba(0xb0b4baff).into(), - modified: rgba(0xf5e147ff).into(), - renamed: rgba(0x6fb8ffff).into(), - }, - player: PlayerColors(vec![ - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - PlayerColor { - cursor: rgba(0x000000ff).into(), - background: rgba(0x000000ff).into(), - selection: rgba(0x000000ff).into(), - }, - ]), - syntax: SyntaxTheme { - highlights: vec![ - ("attribute".into(), rgba(0x4ccce6ff).into()), - ("boolean".into(), rgba(0xff977dff).into()), - ("comment".into(), rgba(0xb0b4baff).into()), - ("comment.doc".into(), rgba(0xe0dffeff).into()), - ("constant".into(), rgba(0x8c323aff).into()), - ("constructor".into(), rgba(0x8c323aff).into()), - ("embedded".into(), rgba(0x8c323aff).into()), - ("emphasis".into(), rgba(0x8c323aff).into()), - ("emphasis.strong".into(), rgba(0x8c323aff).into()), - ("enum".into(), rgba(0x8c323aff).into()), - ("function".into(), rgba(0x8c323aff).into()), - ("hint".into(), rgba(0x8c323aff).into()), - ("keyword".into(), rgba(0xffa057ff).into()), - ("label".into(), rgba(0x8c323aff).into()), - ("link_text".into(), rgba(0x8c323aff).into()), - ("link_uri".into(), rgba(0x8c323aff).into()), - ("number".into(), rgba(0x8c323aff).into()), - ("operator".into(), rgba(0x8c323aff).into()), - ("predictive".into(), rgba(0x8c323aff).into()), - ("preproc".into(), rgba(0x8c323aff).into()), - ("primary".into(), rgba(0x8c323aff).into()), - ("property".into(), rgba(0x8c323aff).into()), - ("punctuation".into(), rgba(0xb0b4baff).into()), - ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), - ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), - ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), - ("punctuation.special".into(), rgba(0x8c323aff).into()), - ("string".into(), rgba(0x1ed8a3ff).into()), - ("string.escape".into(), rgba(0x8c323aff).into()), - ("string.regex".into(), rgba(0xff977dff).into()), - ("string.special".into(), rgba(0x8c323aff).into()), - ("string.special.symbol".into(), rgba(0x8c323aff).into()), - ("tag".into(), rgba(0x8c323aff).into()), - ("text.literal".into(), rgba(0x8c323aff).into()), - ("title".into(), rgba(0x8c323aff).into()), - ("type".into(), rgba(0x8c323aff).into()), - ("variable".into(), rgba(0x8c323aff).into()), - ("variable.special".into(), rgba(0x8c323aff).into()), - ("variant".into(), rgba(0x8c323aff).into()), - ], + styles: UserThemeStylesRefinement { + colors: ThemeColorsRefinement { + background: Some(rgba(0x252334ff).into()), + element_background: Some(rgba(0x614d85ff).into()), + text: Some(rgba(0xffffffff).into()), + tab_inactive_background: Some(rgba(0x252334ff).into()), + terminal_ansi_bright_red: Some(rgba(0xfe444fff).into()), + terminal_ansi_bright_green: Some(rgba(0x71f1b7ff).into()), + terminal_ansi_bright_yellow: Some(rgba(0xfede5cff).into()), + terminal_ansi_bright_blue: Some(rgba(0x02edf9ff).into()), + terminal_ansi_bright_magenta: Some(rgba(0xff7ddaff).into()), + terminal_ansi_bright_cyan: Some(rgba(0x02edf9ff).into()), + terminal_ansi_red: Some(rgba(0xfe444fff).into()), + terminal_ansi_green: Some(rgba(0x71f1b7ff).into()), + terminal_ansi_yellow: Some(rgba(0xf3e70fff).into()), + terminal_ansi_blue: Some(rgba(0x02edf9ff).into()), + terminal_ansi_magenta: Some(rgba(0xff7ddaff).into()), + terminal_ansi_cyan: Some(rgba(0x02edf9ff).into()), + ..Default::default() }, }, }], - scales: default_color_scales(), } } diff --git a/crates/theme2/src/user_theme.rs b/crates/theme2/src/user_theme.rs new file mode 100644 index 0000000000..87ba9a76d1 --- /dev/null +++ b/crates/theme2/src/user_theme.rs @@ -0,0 +1,25 @@ +use refineable::Refineable; +use serde::Deserialize; + +use crate::{Appearance, ThemeColors, ThemeColorsRefinement}; + +#[derive(Deserialize)] +pub struct UserThemeFamily { + pub name: String, + pub author: String, + pub themes: Vec, +} + +#[derive(Deserialize)] +pub struct UserTheme { + pub name: String, + pub appearance: Appearance, + pub styles: UserThemeStylesRefinement, +} + +#[derive(Refineable, Clone)] +#[refineable(deserialize)] +pub struct UserThemeStyles { + #[refineable] + pub colors: ThemeColors, +} diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index bd264bcb55..e2ece76b12 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -13,10 +13,10 @@ use gpui::serde_json; use log::LevelFilter; use serde::Deserialize; use simplelog::SimpleLogger; -use theme::{default_color_scales, Appearance, ThemeFamily}; +use theme::{Appearance, UserThemeFamily}; use vscode::VsCodeThemeConverter; -use crate::theme_printer::ThemeFamilyPrinter; +use crate::theme_printer::UserThemeFamilyPrinter; use crate::vscode::VsCodeTheme; #[derive(Debug, Deserialize)] @@ -120,12 +120,10 @@ fn main() -> Result<()> { themes.push(theme); } - let theme_family = ThemeFamily { - id: uuid::Uuid::new_v4().to_string(), + let theme_family = UserThemeFamily { name: family_metadata.name.into(), author: family_metadata.author.into(), themes, - scales: default_color_scales(), }; theme_families.push(theme_family); @@ -157,15 +155,14 @@ fn main() -> Result<()> { use gpui::rgba; use crate::{{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }}; - pub fn {theme_family_slug}() -> ThemeFamily {{ + pub fn {theme_family_slug}() -> UserThemeFamily {{ {theme_family_definition} }} "#, - theme_family_definition = format!("{:#?}", ThemeFamilyPrinter::new(theme_family)) + theme_family_definition = format!("{:#?}", UserThemeFamilyPrinter::new(theme_family)) ); output_file.write_all(theme_module.as_bytes())?; @@ -175,9 +172,9 @@ fn main() -> Result<()> { let themes_vector_contents = format!( r#" - use crate::ThemeFamily; + use crate::UserThemeFamily; - pub(crate) fn all_imported_themes() -> Vec {{ + pub(crate) fn all_imported_themes() -> Vec {{ vec![{all_themes}] }} "#, diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs index f638694be8..aa74692164 100644 --- a/crates/theme_importer/src/theme_printer.rs +++ b/crates/theme_importer/src/theme_printer.rs @@ -3,7 +3,7 @@ use std::fmt::{self, Debug}; use gpui::{Hsla, Rgba}; use theme::{ Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, SyntaxTheme, - SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + SystemColors, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement, }; struct RawSyntaxPrinter<'a>(&'a str); @@ -38,18 +38,17 @@ impl<'a, T: Debug> Debug for VecPrinter<'a, T> { } } -pub struct ThemeFamilyPrinter(ThemeFamily); +pub struct UserThemeFamilyPrinter(UserThemeFamily); -impl ThemeFamilyPrinter { - pub fn new(theme_family: ThemeFamily) -> Self { +impl UserThemeFamilyPrinter { + pub fn new(theme_family: UserThemeFamily) -> Self { Self(theme_family) } } -impl Debug for ThemeFamilyPrinter { +impl Debug for UserThemeFamilyPrinter { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("ThemeFamily") - .field("id", &IntoPrinter(&self.0.id)) + f.debug_struct("UserThemeFamily") .field("name", &IntoPrinter(&self.0.name)) .field("author", &IntoPrinter(&self.0.author)) .field( @@ -59,24 +58,22 @@ impl Debug for ThemeFamilyPrinter { .0 .themes .iter() - .map(|theme| ThemeVariantPrinter(theme)) + .map(|theme| UserThemePrinter(theme)) .collect(), ), ) - .field("scales", &RawSyntaxPrinter("default_color_scales()")) .finish() } } -pub struct ThemeVariantPrinter<'a>(&'a ThemeVariant); +pub struct UserThemePrinter<'a>(&'a UserTheme); -impl<'a> Debug for ThemeVariantPrinter<'a> { +impl<'a> Debug for UserThemePrinter<'a> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("ThemeVariant") - .field("id", &IntoPrinter(&self.0.id)) + f.debug_struct("UserTheme") .field("name", &IntoPrinter(&self.0.name)) .field("appearance", &AppearancePrinter(self.0.appearance)) - .field("styles", &ThemeStylesPrinter(&self.0.styles)) + .field("styles", &UserThemeStylesRefinementPrinter(&self.0.styles)) .finish() } } @@ -89,17 +86,12 @@ impl Debug for AppearancePrinter { } } -pub struct ThemeStylesPrinter<'a>(&'a ThemeStyles); +pub struct UserThemeStylesRefinementPrinter<'a>(&'a UserThemeStylesRefinement); -impl<'a> Debug for ThemeStylesPrinter<'a> { +impl<'a> Debug for UserThemeStylesRefinementPrinter<'a> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("ThemeStyles") - .field("system", &SystemColorsPrinter(&self.0.system)) - .field("colors", &ThemeColorsPrinter(&self.0.colors)) - .field("status", &StatusColorsPrinter(&self.0.status)) - .field("git", &GitStatusColorsPrinter(&self.0.git)) - .field("player", &PlayerColorsPrinter(&self.0.player)) - .field("syntax", &SyntaxThemePrinter(&self.0.syntax)) + f.debug_struct("UserThemeStylesRefinement") + .field("colors", &ThemeColorsRefinementPrinter(&self.0.colors)) .finish() } } @@ -126,204 +118,136 @@ impl<'a> Debug for SystemColorsPrinter<'a> { } } -pub struct ThemeColorsPrinter<'a>(&'a ThemeColors); +pub struct ThemeColorsRefinementPrinter<'a>(&'a ThemeColorsRefinement); -impl<'a> Debug for ThemeColorsPrinter<'a> { +impl<'a> Debug for ThemeColorsRefinementPrinter<'a> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("ThemeColors") - .field("border", &HslaPrinter(self.0.border)) - .field("border_variant", &HslaPrinter(self.0.border_variant)) - .field("border_focused", &HslaPrinter(self.0.border_focused)) - .field("border_selected", &HslaPrinter(self.0.border_selected)) - .field( - "border_transparent", - &HslaPrinter(self.0.border_transparent), - ) - .field("border_disabled", &HslaPrinter(self.0.border_disabled)) - .field( + let theme_colors = vec![ + ("border", self.0.border), + ("border_variant", self.0.border_variant), + ("border_focused", self.0.border_focused), + ("border_selected", self.0.border_selected), + ("border_transparent", self.0.border_transparent), + ("border_disabled", self.0.border_disabled), + ( "elevated_surface_background", - &HslaPrinter(self.0.elevated_surface_background), - ) - .field( - "surface_background", - &HslaPrinter(self.0.surface_background), - ) - .field("background", &HslaPrinter(self.0.background)) - .field( - "element_background", - &HslaPrinter(self.0.element_background), - ) - .field("element_hover", &HslaPrinter(self.0.element_hover)) - .field("element_active", &HslaPrinter(self.0.element_active)) - .field("element_selected", &HslaPrinter(self.0.element_selected)) - .field("element_disabled", &HslaPrinter(self.0.element_disabled)) - .field( - "element_placeholder", - &HslaPrinter(self.0.element_placeholder), - ) - .field( - "element_drop_target", - &HslaPrinter(self.0.element_drop_target), - ) - .field( - "ghost_element_background", - &HslaPrinter(self.0.ghost_element_background), - ) - .field( - "ghost_element_hover", - &HslaPrinter(self.0.ghost_element_hover), - ) - .field( - "ghost_element_active", - &HslaPrinter(self.0.ghost_element_active), - ) - .field( - "ghost_element_selected", - &HslaPrinter(self.0.ghost_element_selected), - ) - .field( - "ghost_element_disabled", - &HslaPrinter(self.0.ghost_element_disabled), - ) - .field("text", &HslaPrinter(self.0.text)) - .field("text_muted", &HslaPrinter(self.0.text_muted)) - .field("text_placeholder", &HslaPrinter(self.0.text_placeholder)) - .field("text_disabled", &HslaPrinter(self.0.text_disabled)) - .field("text_accent", &HslaPrinter(self.0.text_accent)) - .field("icon", &HslaPrinter(self.0.icon)) - .field("icon_muted", &HslaPrinter(self.0.icon_muted)) - .field("icon_disabled", &HslaPrinter(self.0.icon_disabled)) - .field("icon_placeholder", &HslaPrinter(self.0.icon_placeholder)) - .field("icon_accent", &HslaPrinter(self.0.icon_accent)) - .field( - "status_bar_background", - &HslaPrinter(self.0.status_bar_background), - ) - .field( - "title_bar_background", - &HslaPrinter(self.0.title_bar_background), - ) - .field( - "toolbar_background", - &HslaPrinter(self.0.toolbar_background), - ) - .field( - "tab_bar_background", - &HslaPrinter(self.0.tab_bar_background), - ) - .field( - "tab_inactive_background", - &HslaPrinter(self.0.tab_inactive_background), - ) - .field( - "tab_active_background", - &HslaPrinter(self.0.tab_active_background), - ) - .field("editor_background", &HslaPrinter(self.0.editor_background)) - .field( - "editor_gutter_background", - &HslaPrinter(self.0.editor_gutter_background), - ) - .field( + self.0.elevated_surface_background, + ), + ("surface_background", self.0.surface_background), + ("background", self.0.background), + ("element_background", self.0.element_background), + ("element_hover", self.0.element_hover), + ("element_active", self.0.element_active), + ("element_selected", self.0.element_selected), + ("element_disabled", self.0.element_disabled), + ("element_placeholder", self.0.element_placeholder), + ("element_drop_target", self.0.element_drop_target), + ("ghost_element_background", self.0.ghost_element_background), + ("ghost_element_hover", self.0.ghost_element_hover), + ("ghost_element_active", self.0.ghost_element_active), + ("ghost_element_selected", self.0.ghost_element_selected), + ("ghost_element_disabled", self.0.ghost_element_disabled), + ("text", self.0.text), + ("text_muted", self.0.text_muted), + ("text_placeholder", self.0.text_placeholder), + ("text_disabled", self.0.text_disabled), + ("text_accent", self.0.text_accent), + ("icon", self.0.icon), + ("icon_muted", self.0.icon_muted), + ("icon_disabled", self.0.icon_disabled), + ("icon_placeholder", self.0.icon_placeholder), + ("icon_accent", self.0.icon_accent), + ("status_bar_background", self.0.status_bar_background), + ("title_bar_background", self.0.title_bar_background), + ("toolbar_background", self.0.toolbar_background), + ("tab_bar_background", self.0.tab_bar_background), + ("tab_inactive_background", self.0.tab_inactive_background), + ("tab_active_background", self.0.tab_active_background), + ("editor_background", self.0.editor_background), + ("editor_gutter_background", self.0.editor_gutter_background), + ( "editor_subheader_background", - &HslaPrinter(self.0.editor_subheader_background), - ) - .field( + self.0.editor_subheader_background, + ), + ( "editor_active_line_background", - &HslaPrinter(self.0.editor_active_line_background), - ) - .field( + self.0.editor_active_line_background, + ), + ( "editor_highlighted_line_background", - &HslaPrinter(self.0.editor_highlighted_line_background), - ) - .field( - "editor_line_number", - &HslaPrinter(self.0.editor_line_number), - ) - .field( + self.0.editor_highlighted_line_background, + ), + ("editor_line_number", self.0.editor_line_number), + ( "editor_active_line_number", - &HslaPrinter(self.0.editor_active_line_number), - ) - .field("editor_invisible", &HslaPrinter(self.0.editor_invisible)) - .field("editor_wrap_guide", &HslaPrinter(self.0.editor_wrap_guide)) - .field( - "editor_active_wrap_guide", - &HslaPrinter(self.0.editor_active_wrap_guide), - ) - .field( + self.0.editor_active_line_number, + ), + ("editor_invisible", self.0.editor_invisible), + ("editor_wrap_guide", self.0.editor_wrap_guide), + ("editor_active_wrap_guide", self.0.editor_active_wrap_guide), + ( "editor_document_highlight_read_background", - &HslaPrinter(self.0.editor_document_highlight_read_background), - ) - .field( + self.0.editor_document_highlight_read_background, + ), + ( "editor_document_highlight_write_background", - &HslaPrinter(self.0.editor_document_highlight_write_background), - ) - .field( - "terminal_background", - &HslaPrinter(self.0.terminal_background), - ) - .field( + self.0.editor_document_highlight_write_background, + ), + ("terminal_background", self.0.terminal_background), + ( "terminal_ansi_bright_black", - &HslaPrinter(self.0.terminal_ansi_bright_black), - ) - .field( - "terminal_ansi_bright_red", - &HslaPrinter(self.0.terminal_ansi_bright_red), - ) - .field( + self.0.terminal_ansi_bright_black, + ), + ("terminal_ansi_bright_red", self.0.terminal_ansi_bright_red), + ( "terminal_ansi_bright_green", - &HslaPrinter(self.0.terminal_ansi_bright_green), - ) - .field( + self.0.terminal_ansi_bright_green, + ), + ( "terminal_ansi_bright_yellow", - &HslaPrinter(self.0.terminal_ansi_bright_yellow), - ) - .field( + self.0.terminal_ansi_bright_yellow, + ), + ( "terminal_ansi_bright_blue", - &HslaPrinter(self.0.terminal_ansi_bright_blue), - ) - .field( + self.0.terminal_ansi_bright_blue, + ), + ( "terminal_ansi_bright_magenta", - &HslaPrinter(self.0.terminal_ansi_bright_magenta), - ) - .field( + self.0.terminal_ansi_bright_magenta, + ), + ( "terminal_ansi_bright_cyan", - &HslaPrinter(self.0.terminal_ansi_bright_cyan), - ) - .field( + self.0.terminal_ansi_bright_cyan, + ), + ( "terminal_ansi_bright_white", - &HslaPrinter(self.0.terminal_ansi_bright_white), - ) - .field( - "terminal_ansi_black", - &HslaPrinter(self.0.terminal_ansi_black), - ) - .field("terminal_ansi_red", &HslaPrinter(self.0.terminal_ansi_red)) - .field( - "terminal_ansi_green", - &HslaPrinter(self.0.terminal_ansi_green), - ) - .field( - "terminal_ansi_yellow", - &HslaPrinter(self.0.terminal_ansi_yellow), - ) - .field( - "terminal_ansi_blue", - &HslaPrinter(self.0.terminal_ansi_blue), - ) - .field( - "terminal_ansi_magenta", - &HslaPrinter(self.0.terminal_ansi_magenta), - ) - .field( - "terminal_ansi_cyan", - &HslaPrinter(self.0.terminal_ansi_cyan), - ) - .field( - "terminal_ansi_white", - &HslaPrinter(self.0.terminal_ansi_white), - ) - .finish() + self.0.terminal_ansi_bright_white, + ), + ("terminal_ansi_black", self.0.terminal_ansi_black), + ("terminal_ansi_red", self.0.terminal_ansi_red), + ("terminal_ansi_green", self.0.terminal_ansi_green), + ("terminal_ansi_yellow", self.0.terminal_ansi_yellow), + ("terminal_ansi_blue", self.0.terminal_ansi_blue), + ("terminal_ansi_magenta", self.0.terminal_ansi_magenta), + ("terminal_ansi_cyan", self.0.terminal_ansi_cyan), + ("terminal_ansi_white", self.0.terminal_ansi_white), + ]; + + f.write_str("ThemeColorsRefinement {")?; + + for (color_name, color) in theme_colors { + if let Some(color) = color { + f.write_str(color_name)?; + f.write_str(": ")?; + f.write_str("Some(")?; + HslaPrinter(color).fmt(f)?; + f.write_str(")")?; + f.write_str(",")?; + } + } + + f.write_str("..Default::default()")?; + f.write_str("}") } } diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index f63766b6a5..5a09870dc8 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -1,10 +1,7 @@ use anyhow::Result; -use gpui::{Hsla, Refineable, Rgba}; +use gpui::{Hsla, Rgba}; use serde::Deserialize; -use theme::{ - Appearance, GitStatusColors, PlayerColors, StatusColors, SyntaxTheme, SystemColors, - ThemeColors, ThemeColorsRefinement, ThemeStyles, ThemeVariant, -}; +use theme::{ThemeColorsRefinement, UserTheme, UserThemeStylesRefinement}; use crate::util::Traverse; use crate::ThemeMetadata; @@ -433,14 +430,9 @@ impl VsCodeThemeConverter { } } - pub fn convert(self) -> Result { + pub fn convert(self) -> Result { let appearance = self.theme_metadata.appearance.into(); - let mut theme_colors = match appearance { - Appearance::Light => ThemeColors::default_light(), - Appearance::Dark => ThemeColors::default_dark(), - }; - let vscode_colors = &self.theme.colors; let theme_colors_refinements = ThemeColorsRefinement { @@ -567,40 +559,12 @@ impl VsCodeThemeConverter { ..Default::default() }; - theme_colors.refine(&theme_colors_refinements); - - Ok(ThemeVariant { - id: uuid::Uuid::new_v4().to_string(), + Ok(UserTheme { name: self.theme_metadata.name.into(), appearance, - styles: ThemeStyles { - system: SystemColors::default(), - colors: theme_colors, - status: StatusColors::default(), - git: GitStatusColors::default(), - player: PlayerColors::default(), - syntax: SyntaxTheme::default_dark(), + styles: UserThemeStylesRefinement { + colors: theme_colors_refinements, }, }) } } - -// #[cfg(test)] -// mod tests { -// use super::*; -// use std::path::PathBuf; - -// #[test] -// fn test_deserialize_theme() { -// let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); -// let root_dir = manifest_dir.parent().unwrap().parent().unwrap(); - -// let mut d = root_dir.to_path_buf(); -// d.push("assets/themes/src/vsc/dracula/dracula.json"); - -// let data = std::fs::read_to_string(d).expect("Unable to read file"); - -// let result: Theme = serde_json::from_str(&data).unwrap(); -// println!("{:#?}", result); -// } -// } diff --git a/crates/workspace2/src/item.rs b/crates/workspace2/src/item.rs index e933f373d4..1a7f30646d 100644 --- a/crates/workspace2/src/item.rs +++ b/crates/workspace2/src/item.rs @@ -32,7 +32,7 @@ use std::{ }, time::Duration, }; -use theme2::ThemeVariant; +use theme2::Theme; #[derive(Deserialize)] pub struct ItemSettings { @@ -184,7 +184,7 @@ pub trait Item: Render + EventEmitter { ToolbarItemLocation::Hidden } - fn breadcrumbs(&self, _theme: &ThemeVariant, _cx: &AppContext) -> Option> { + fn breadcrumbs(&self, _theme: &Theme, _cx: &AppContext) -> Option> { None } @@ -270,7 +270,7 @@ pub trait ItemHandle: 'static + Send { ) -> gpui::Subscription; fn to_searchable_item_handle(&self, cx: &AppContext) -> Option>; fn breadcrumb_location(&self, cx: &AppContext) -> ToolbarItemLocation; - fn breadcrumbs(&self, theme: &ThemeVariant, cx: &AppContext) -> Option>; + fn breadcrumbs(&self, theme: &Theme, cx: &AppContext) -> Option>; fn serialized_item_kind(&self) -> Option<&'static str>; fn show_toolbar(&self, cx: &AppContext) -> bool; fn pixel_position_of_cursor(&self, cx: &AppContext) -> Option>; @@ -603,7 +603,7 @@ impl ItemHandle for View { self.read(cx).breadcrumb_location() } - fn breadcrumbs(&self, theme: &ThemeVariant, cx: &AppContext) -> Option> { + fn breadcrumbs(&self, theme: &Theme, cx: &AppContext) -> Option> { self.read(cx).breadcrumbs(theme, cx) } diff --git a/script/bundle b/script/bundle index b8e64b53ce..8c0b3fef87 100755 --- a/script/bundle +++ b/script/bundle @@ -86,14 +86,8 @@ if [ "$local_arch" = true ]; then cargo build ${build_flag} --package zed cargo build ${build_flag} --package cli else - echo "Compiling zed binary for aarch64-apple-darwin" - cargo build ${build_flag} --package zed --target aarch64-apple-darwin - echo "Compiling zed binary for x86_64-apple-darwin" - cargo build ${build_flag} --package zed --target x86_64-apple-darwin - echo "Compiling cli binary for aarch64-apple-darwin" - cargo build ${build_flag} --package cli --target aarch64-apple-darwin - echo "Compiling cli binary for x86_64-apple-darwin" - cargo build ${build_flag} --package cli --target x86_64-apple-darwin + echo "Compiling zed binaries" + cargo build ${build_flag} --package zed --package cli --target aarch64-apple-darwin --target x86_64-apple-darwin fi echo "Creating application bundle"