fix: decode sync accent as opaque RGB
This commit is contained in:
@@ -159,5 +159,7 @@ the trigger to ungate clipboard/geolocation/notification/webrtc prefs.
|
|||||||
- Red-green: reproduce with a failing test before fixing.
|
- Red-green: reproduce with a failing test before fixing.
|
||||||
- Files stay under 500 lines (CI-enforced); split like
|
- Files stay under 500 lines (CI-enforced); split like
|
||||||
`runtime.rs`/`runtime_paint.rs` or `state/local_visibility.rs`.
|
`runtime.rs`/`runtime_paint.rs` or `state/local_visibility.rs`.
|
||||||
|
- GPUI color encoding is explicit: pass 24-bit `RRGGBB` tokens to `rgb()` and
|
||||||
|
32-bit `RRGGBBAA` tokens to `rgba()`.
|
||||||
- Tracing targets: `ely::sync`, `ely::local_state` — add spans/fields on
|
- Tracing targets: `ely::sync`, `ely::local_state` — add spans/fields on
|
||||||
every new failure path so field issues are diagnosable.
|
every new failure path so field issues are diagnosable.
|
||||||
|
|||||||
@@ -11,9 +11,10 @@ use gpui_component::{input::Input, scroll::ScrollableElement};
|
|||||||
use crate::shell::auth::AuthFlowPhase;
|
use crate::shell::auth::AuthFlowPhase;
|
||||||
|
|
||||||
use super::sync_controls::{
|
use super::sync_controls::{
|
||||||
button_bg, render_card_heading, render_dual_button_row, render_field_label,
|
button_bg, primary_control_background, render_card_heading, render_dual_button_row,
|
||||||
render_inline_error, render_input, render_policy_toggle, render_primary_button,
|
render_field_label, render_inline_error, render_input, render_policy_toggle,
|
||||||
render_reset_button, render_secondary_button, render_sign_out_button, render_sync_now_button,
|
render_primary_button, render_reset_button, render_secondary_button, render_sign_out_button,
|
||||||
|
render_sync_now_button,
|
||||||
};
|
};
|
||||||
use super::{ElyShell, render_canvas_surface};
|
use super::{ElyShell, render_canvas_surface};
|
||||||
impl ElyShell {
|
impl ElyShell {
|
||||||
@@ -291,7 +292,7 @@ fn render_device_approve_button(
|
|||||||
.px(px(12.0))
|
.px(px(12.0))
|
||||||
.py(px(8.0))
|
.py(px(8.0))
|
||||||
.rounded(px(8.0))
|
.rounded(px(8.0))
|
||||||
.bg(rgba(colors::accent()))
|
.bg(primary_control_background())
|
||||||
.text_size(px(12.0))
|
.text_size(px(12.0))
|
||||||
.font_weight(FontWeight(500.0))
|
.font_weight(FontWeight(500.0))
|
||||||
.text_color(rgb(0xfff5e6))
|
.text_color(rgb(0xfff5e6))
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
use ely_design_system::colors;
|
use ely_design_system::colors;
|
||||||
use ely_domain::{SyncObjectPolicy, SyncObjectStatus};
|
use ely_domain::{SyncObjectPolicy, SyncObjectStatus};
|
||||||
use gpui::{
|
use gpui::{
|
||||||
AnyElement, Context, FontWeight, InteractiveElement, IntoElement, ParentElement, SharedString,
|
AnyElement, Context, FontWeight, InteractiveElement, IntoElement, ParentElement, Rgba,
|
||||||
StatefulInteractiveElement, Styled, div, prelude::FluentBuilder, px, rgb, rgba,
|
SharedString, StatefulInteractiveElement, Styled, div, prelude::FluentBuilder, px, rgb, rgba,
|
||||||
};
|
};
|
||||||
use gpui_component::{
|
use gpui_component::{
|
||||||
Disableable, IconName, Sizable,
|
Disableable, IconName, Sizable,
|
||||||
@@ -13,6 +13,10 @@ use gpui_component::{
|
|||||||
use crate::shell::ElyShell;
|
use crate::shell::ElyShell;
|
||||||
use crate::shell::chrome::animations::{chrome_motion_feedback, toggle_thumb_motion};
|
use crate::shell::chrome::animations::{chrome_motion_feedback, toggle_thumb_motion};
|
||||||
|
|
||||||
|
pub(super) fn primary_control_background() -> Rgba {
|
||||||
|
rgb(colors::accent())
|
||||||
|
}
|
||||||
|
|
||||||
pub(super) fn render_primary_button<F>(
|
pub(super) fn render_primary_button<F>(
|
||||||
shell: &ElyShell,
|
shell: &ElyShell,
|
||||||
id: &'static str,
|
id: &'static str,
|
||||||
@@ -30,7 +34,7 @@ where
|
|||||||
.px(px(14.0))
|
.px(px(14.0))
|
||||||
.py(px(8.0))
|
.py(px(8.0))
|
||||||
.rounded(px(8.0))
|
.rounded(px(8.0))
|
||||||
.bg(rgba(colors::accent()))
|
.bg(primary_control_background())
|
||||||
.text_size(px(12.5))
|
.text_size(px(12.5))
|
||||||
.font_weight(FontWeight(500.0))
|
.font_weight(FontWeight(500.0))
|
||||||
.text_color(rgb(0xfff5e6))
|
.text_color(rgb(0xfff5e6))
|
||||||
@@ -155,7 +159,7 @@ pub(super) fn render_policy_toggle(
|
|||||||
let enabled = status.policy() == SyncObjectPolicy::Enabled;
|
let enabled = status.policy() == SyncObjectPolicy::Enabled;
|
||||||
let next_policy = if enabled { SyncObjectPolicy::Paused } else { SyncObjectPolicy::Enabled };
|
let next_policy = if enabled { SyncObjectPolicy::Paused } else { SyncObjectPolicy::Enabled };
|
||||||
let kind = status.kind();
|
let kind = status.kind();
|
||||||
let track_color = if enabled { colors::accent() } else { 0x281e1426 };
|
let track_color = if enabled { primary_control_background() } else { rgba(0x281e1426) };
|
||||||
let id = SharedString::from(format!("sync-policy-{index}"));
|
let id = SharedString::from(format!("sync-policy-{index}"));
|
||||||
let press_id = shell.chrome_motion_animation_id(id.as_str());
|
let press_id = shell.chrome_motion_animation_id(id.as_str());
|
||||||
let thumb_press_id = press_id.clone();
|
let thumb_press_id = press_id.clone();
|
||||||
@@ -166,7 +170,7 @@ pub(super) fn render_policy_toggle(
|
|||||||
.w(px(34.0))
|
.w(px(34.0))
|
||||||
.h(px(20.0))
|
.h(px(20.0))
|
||||||
.rounded_full()
|
.rounded_full()
|
||||||
.bg(rgba(track_color))
|
.bg(track_color)
|
||||||
.p(px(2.0))
|
.p(px(2.0))
|
||||||
.cursor_pointer()
|
.cursor_pointer()
|
||||||
.hover(|style| style.opacity(0.9))
|
.hover(|style| style.opacity(0.9))
|
||||||
@@ -227,3 +231,13 @@ pub(super) fn button_bg() -> u32 {
|
|||||||
fn button_bg_hover() -> u32 {
|
fn button_bg_hover() -> u32 {
|
||||||
colors::pick(0xffffffeb, 0x1f1d1beb)
|
colors::pick(0xffffffeb, 0x1f1d1beb)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::primary_control_background;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn primary_control_background_is_opaque_brand_accent() {
|
||||||
|
assert_eq!(u32::from(primary_control_background()), 0xc96442ff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user