From 8798d95d7a4a350f163f899dcc3877822a70c95c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Fri, 25 Sep 2026 19:08:08 -0400 Subject: [PATCH] T12c Data Display: Carousel, Gallery, BeforeAfter, Watermark (review pending: codex 401) --- TASKS.md | 4 +- assets/icons/chevrons-left-right.svg | 16 ++ examples/gallery/assets/atrium-before.jpg | Bin 0 -> 75551 bytes examples/gallery/assets/atrium-olive.jpg | Bin 0 -> 33618 bytes examples/gallery/assets/atrium-stair.jpg | Bin 0 -> 32408 bytes examples/gallery/assets/dunes-grass.jpg | Bin 0 -> 40740 bytes examples/gallery/assets/dunes-sun.jpg | Bin 0 -> 32956 bytes examples/gallery/pages/data/media.rs | 152 +++++++++++ examples/gallery/pages/data/mod.rs | 23 ++ src/data_display/before_after.rs | 205 +++++++++++++++ src/data_display/carousel.rs | 302 ++++++++++++++++++++++ src/data_display/gallery.rs | 112 ++++++++ src/data_display/mod.rs | 8 + src/data_display/tests.rs | 79 +++++- src/data_display/watermark.rs | 88 +++++++ src/overlays/lightbox.rs | 4 +- src/primitives/icon.rs | 1 + src/theme/tokens.rs | 5 + tasks/ch11-20.md | 17 +- 19 files changed, 1004 insertions(+), 12 deletions(-) create mode 100644 assets/icons/chevrons-left-right.svg create mode 100644 examples/gallery/assets/atrium-before.jpg create mode 100644 examples/gallery/assets/atrium-olive.jpg create mode 100644 examples/gallery/assets/atrium-stair.jpg create mode 100644 examples/gallery/assets/dunes-grass.jpg create mode 100644 examples/gallery/assets/dunes-sun.jpg create mode 100644 examples/gallery/pages/data/media.rs create mode 100644 src/data_display/before_after.rs create mode 100644 src/data_display/carousel.rs create mode 100644 src/data_display/gallery.rs create mode 100644 src/data_display/watermark.rs diff --git a/TASKS.md b/TASKS.md index 4e6e5d2..0ac6d00 100644 --- a/TASKS.md +++ b/TASKS.md @@ -44,7 +44,8 @@ Per-component lines live in `tasks/`. Tags there: - [x] T11d Motion · Effects - [ ] T12a Data Display · People & numbers - [ ] T12b Data Display · Records -- [ ] T12c Data Display · Media & measures +- [ ] T12c Data Display · Media +- [ ] T12d Data Display · Codes & measures - [ ] T13 Lists & Trees - [ ] T14 Tables - [ ] T15 Charts @@ -183,3 +184,4 @@ Per-component lines live in `tasks/`. Tags there: | T11d | 3 | PASS | | | T12a | 1 | — | pending: codex answered 401 on every request; committed unreviewed, reviewed from its commit once codex logs in | | T12b | 1 | — | pending: codex still logged out | +| T12c | 1 | — | pending: codex still logged out | diff --git a/assets/icons/chevrons-left-right.svg b/assets/icons/chevrons-left-right.svg new file mode 100644 index 0000000..2025a3b --- /dev/null +++ b/assets/icons/chevrons-left-right.svg @@ -0,0 +1,16 @@ + + + + + diff --git a/examples/gallery/assets/atrium-before.jpg b/examples/gallery/assets/atrium-before.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f89b728481e8a77ac44f1aef34b88ba81396e727 GIT binary patch literal 75551 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 z�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 literal 0 HcmV?d00001 diff --git a/examples/gallery/assets/atrium-olive.jpg b/examples/gallery/assets/atrium-olive.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7d757aaf24efbb04c8c77ef1378d149d4e813378 GIT binary patch literal 33618 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 W4k0R?!WU5hdYUZmJmM8KKmXbI)W_HW literal 0 HcmV?d00001 diff --git a/examples/gallery/assets/atrium-stair.jpg b/examples/gallery/assets/atrium-stair.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24a54a47dd5cd577d33bc5a2c34e7c759567c945 GIT binary patch literal 32408 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 literal 0 HcmV?d00001 diff --git a/examples/gallery/assets/dunes-grass.jpg b/examples/gallery/assets/dunes-grass.jpg new file mode 100644 index 0000000000000000000000000000000000000000..563b161ac142f54636a2fbd68cf40403ef16d86f GIT binary patch literal 40740 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
ShuP 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 z

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 a37AFAizC4-vEhddN~D;HGypixS^wD`HsezO literal 0 HcmV?d00001 diff --git a/examples/gallery/assets/dunes-sun.jpg b/examples/gallery/assets/dunes-sun.jpg new file mode 100644 index 0000000000000000000000000000000000000000..28221eed1b7d80cfbab61b7c31b9cdd61855316a GIT binary patch literal 32956 zcmb5UbwFG(^C-HwyGx@m3 zu+Y#@QPFTQG10N`aR~_Uaq;m8i7815iO7lY@JVUO$f>Aay?RAJ`kJ1Wnx2yS74<(R z2q-8hXsBp7XlOXpg!qKi|G(j706>6_kc?=6gg_5KBtSqSKzJDfPyqmlNC^MB`#*qy z2tYzcK}CZj$>E6q3kM$*A`RA^2R943xn@U^GyuPe%O| zNl1?Pu09s^ttp2i)0jOFE z?1~I^GW$))l!!p|cXTPJ3W~4ag?x%c1kxb@!Wrq2-va57!;ul+5}+v1z5bVwVUj_V zd5w%ImyRxj0Kf*If35+blaiy`_$amFWTGpCf#}#}5iqnA(XqqBQ56*4)%T$SA`vNo z_<%ly&sAF*vl@K}MXVNY@i~+6KPduUSD?RsP52hESuVQpQ++4~24h{8;b5^0DhDb% z_)`iZ#cPF-6q#ggnb&F1x5)#TOz--T?Hl6(?~w6dzr%c+uJHOTf))Z}AtT^*Y@f!! z=TFIUDTs*dhyZlt*Mzc#q#j56jG{mZpeT@67LSx;I4pZ?OXhP(C@Lp7jx{X=fJ3Ye zAPDU*3KWD^bZM`XiKVUs@VK+F_eMa)e zdC%>zn`E;U*XZh8*Foi&TZdGj)`vSw-*Amj-}X4vu*I{~nF8iHUs+^nYUevNQkbWz z&9~f;Xjo?z*`J(UrlZl4K?Tk$`S)*u%TeS8ehix36u7w4zt6Nlb?r2evf+xA3SoQNBT#*;m%(I|0u5* zR2j9hzH&C0A4){QA&`wV=tq77m_Sbc^eG0BF@%v4odBf-KLx#(6!~o=K)^u2z%d0d zLQLL>M2KHMreNKuP#?z0XQytXnwXfZp(Qxk$Ner8#@L96FN;W58vYuUP*F<({T;~w z;2pxJP}J9rFda@3#QWTg+;K+=jc;$lzqb)~Xs6-U>3+4ecqLK+YKCKv5>_oyM z5>kaCUdJd}v1cyGC=m0uD}YiADpF34ZR#{KLQ}0M_D>jnb(RSs0V5V2gE?X+U0F+3 z$zs>kYn_r%QiJ4qJ`r|VRgqF|Hxhz=&rdqudy@#En{1>n^0G;F z)uQ~>y18eGh8*lhS;9TC<*7;eW;6Vf5Rm3+t=XVj$(liw=lJE|@*H*kcg&_QV3F*E zKQn`~nCqF^CawA)d<{>cvek)2L5br#coGj%5qvi(J&S z?59X$%}lvcSj^=Sel7|_eywP-hH;W&o}qdaG3j&a!*UX+_?JwCt#H@Z4j+E<1P)ls~7#v^bkMmvNbcw-Tv;f=;|DzT~Ip@G=)q_w=_)ax86oi}7uB;>i`4 zXE7~mgG==maDE!Cku;{C>~FH4jWG4tZ|yQJcsh3rk6In!K}$eb$~K6m}~aqSY;-dQIqm|2lCcYWiu z0-NJ8Rzq2Q70moifU#zk+te2NHNwfsx|^T=bjD_GVEE@z_O{(`J->vY8qFv*6^9>l zeGLJ(ew(BpW>|den+oc3!N7N+jAgH}OW%!w!skb$;+x((n;80MO@8Ckvw zw&^(t39OkYA^t|(tT&r>RDWo5y6k5X+)3Qyb7PtQ9L4;~C6`KjsqOH1{>!Vf>;>MQ zd>_6W{y#^FJu~8Sjla5Z3+t>RTsJztpeZ)_-dt6%iykFhg<1Z{sv38#?|U!k^<@>J z(1=rwlk!71iBvhOTMl&35x&BKnZY4bU&JJF{Kd@MAK*yW5}AhT1|T6 zpH*7*!0fX^Uduh`h-;4BM+w4rTV)R%NKz1Sw(2g%$Z&%K`>{$wnj`+wORIyS-n z7*2Nn){P*QQ=QY#yg(_VN2aEg≈}$G;r{(^(iuyfx%tl?BR0@yRY=kpoEahhJ&Z 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 jJZs|MY { + concat!( + env!("CARGO_MANIFEST_DIR"), + "/examples/gallery/assets/", + $name + ) + }; +} + +const PICTURES: [(&str, &str); 6] = [ + (asset!("dunes-sun.jpg"), "Sunset over the dunes"), + (asset!("atrium-stair.jpg"), "A stair that turns"), + (asset!("dunes-grass.jpg"), "Marram grass"), + (asset!("atrium-olive.jpg"), "An olive by the glass"), + (asset!("dunes.jpg"), "Dunes at first light"), + (asset!("atrium.jpg"), "An atrium, noon"), +]; + +pub fn carousel(cx: &mut App) -> impl IntoElement + use<> { + let theme = cx.theme(); + let colors = &theme.colors; + let slides = PICTURES[..4] + .iter() + .enumerate() + .map(|(ix, (path, caption))| { + div() + .relative() + .size_full() + .child( + Image::new(("carousel-picture", ix), Path::new(*path)) + .fit(ObjectFit::Cover) + .size_full(), + ) + .child( + div() + .absolute() + .left_4() + .bottom_4() + .px_2() + .py_1() + .rounded(theme.radius(Radius::Sm)) + .bg(colors.media_backdrop.opacity(0.5)) + .text_color(colors.on_media) + .text_size(theme.text_size(TextSize::Sm)) + .child(*caption), + ) + }); + section( + "Carousel", + "Slides one at a time, gliding between them; past the last comes the first. Arrows show on hover, the dots stretch toward where it goes, and Left and Right step it. With autoplay it turns on its own and holds while pointed at.", + cx, + ) + .child(div().flex().child(probe( + "carousel", + Carousel::new("carousel").w(px(560.)).h_72().children(slides), + ))) +} + +pub fn gallery(cx: &mut App) -> impl IntoElement + use<> { + section( + "Gallery", + "Pictures in square tiles. Press one, or Enter on a focused tile, to open the lightbox there.", + cx, + ) + .child(div().flex().child(probe( + "gallery", + div().w(px(420.)).child(Gallery::new( + "gallery", + PICTURES.map(|(path, caption)| Slide::new(Path::new(path), caption)), + )), + ))) +} + +pub fn before_after(cx: &mut App) -> impl IntoElement + use<> { + let picture = |id: &'static str, path: &'static str| { + Image::new(id, Path::new(path)) + .fit(ObjectFit::Cover) + .size_full() + }; + section( + "BeforeAfter", + "One picture twice: flat as it came, and graded. Drag the divider, press anywhere on the picture, or use Left and Right.", + cx, + ) + .child(div().flex().child(probe( + "before-after", + BeforeAfter::new( + "before-after", + picture("before-flat", asset!("atrium-before.jpg")), + picture("before-graded", asset!("atrium.jpg")), + ) + .w(px(480.)) + .h(px(320.)), + ))) +} + +pub fn watermark(window: &mut Window, cx: &mut App) -> impl IntoElement + use<> { + let read = keep("watermark-read", || false, window, cx); + let (done, mark) = (*read.read(cx), read.clone()); + let theme = cx.theme(); + section( + "Watermark", + "Faint text over a page, for drafts and shared screens. The rows run level, and presses reach the page below.", + cx, + ) + .child( + Watermark::new("watermark", "Confidential · Ada Lovelace") + .w(px(560.)) + .p_6() + .rounded(theme.radius(Radius::Lg)) + .border_1() + .border_color(theme.colors.border) + .bg(theme.colors.surface) + .child(Title::new("Plan for the fourth quarter")) + .child( + div().mt_3().child(Paragraph::new( + "Three launches, one migration, and a quieter support queue. The launches share a date so the notes can go out once; the migration waits for the new year.", + )), + ) + .child( + div() + .mt_4() + .flex() + .items_center() + .gap_3() + .child( + Button::new("watermark-read", "Mark as read") + .variant(ButtonVariant::Secondary) + .on_click(move |_, _, cx| set(&mark, true, cx)), + ) + .child(Caption::new(if done { "Read." } else { "Unread." })), + ), + ) +} diff --git a/examples/gallery/pages/data/mod.rs b/examples/gallery/pages/data/mod.rs index 4da35e3..63b913c 100644 --- a/examples/gallery/pages/data/mod.rs +++ b/examples/gallery/pages/data/mod.rs @@ -1,3 +1,4 @@ +mod media; mod people; mod records; @@ -29,6 +30,24 @@ const SCRIPT: &[Step] = &[ Step::Click("feed-post"), Step::Wait(300), Step::Shot("feed-arrival"), + Step::Hover("carousel"), + Step::Wait(300), + Step::Shot("carousel-hover"), + Step::DownAt("carousel", 530.0, 133.0), + Step::UpAt("carousel", 530.0, 133.0), + Step::Wait(600), + Step::Shot("carousel-next"), + Step::DownAt("gallery", 60.0, 60.0), + Step::UpAt("gallery", 60.0, 60.0), + Step::Wait(400), + Step::Shot("gallery-lightbox"), + Step::Key("escape"), + Step::Wait(300), + Step::DownAt("before-after", 240.0, 160.0), + Step::DragTo("before-after", 390.0, 160.0), + Step::UpAt("before-after", 390.0, 160.0), + Step::Wait(200), + Step::Shot("before-after-drag"), Step::Rest, ]; @@ -44,5 +63,9 @@ fn render(window: &mut Window, cx: &mut App) -> AnyElement { .child(records::timelines(cx)) .child(records::feed(window, cx)) .child(records::changelog(cx)) + .child(media::carousel(cx)) + .child(media::gallery(cx)) + .child(media::before_after(cx)) + .child(media::watermark(window, cx)) .into_any_element() } diff --git a/src/data_display/before_after.rs b/src/data_display/before_after.rs new file mode 100644 index 0000000..ccb7591 --- /dev/null +++ b/src/data_display/before_after.rs @@ -0,0 +1,205 @@ +use gpui::{ + AnyElement, App, Bounds, Div, DragMoveEvent, ElementId, EmptyView, EntityId, + InteractiveElement, IntoElement, MouseButton, ParentElement, Pixels, Point, RenderOnce, + StatefulInteractiveElement, StyleRefinement, Styled, Window, canvas, div, prelude::*, relative, +}; + +use crate::{ + primitives::{FocusRing, Icon, IconName, tab_stop}, + theme::{ActiveTheme, ControlSize, Elevation, IconSize}, +}; + +/// A drag of one comparison's divider. +struct Divider { + owner: EntityId, +} + +/// Where the divider stands, as a share of its travel, and the box it travels in. +#[derive(Clone, Copy)] +struct Split { + share: f32, + bounds: Bounds, +} + +/// The share of the travel under `at`; the travel stops `inset` short of each side. None when the box is narrower than the handle. +fn share_at(at: Point, bounds: Bounds, inset: Pixels) -> Option { + let travel = bounds.size.width - inset * 2.0; + (travel > Pixels::ZERO).then(|| ((at.x - bounds.left() - inset) / travel).clamp(0.0, 1.0)) +} + +/// Two versions of a picture, one over the other: `before` shows left of the divider, `after` right of it. Drag the divider, press anywhere, or use Left and Right. Give it a size. +#[derive(IntoElement)] +pub struct BeforeAfter { + id: ElementId, + base: Div, + before: AnyElement, + after: AnyElement, +} + +impl BeforeAfter { + pub fn new( + id: impl Into, + before: impl IntoElement, + after: impl IntoElement, + ) -> Self { + Self { + id: id.into(), + base: div(), + before: before.into_any_element(), + after: after.into_any_element(), + } + } +} + +impl Styled for BeforeAfter { + fn style(&mut self) -> &mut StyleRefinement { + self.base.style() + } +} + +impl RenderOnce for BeforeAfter { + fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement { + let focus = tab_stop((self.id.clone(), "focus").into(), true, window, cx); + let split = window.use_keyed_state((self.id.clone(), "split"), cx, |_, _| Split { + share: 0.5, + bounds: Bounds::default(), + }); + let Split { share, bounds } = *split.read(cx); + let owner = split.entity_id(); + let theme = cx.theme(); + let colors = &theme.colors; + let handle = theme.control_height(ControlSize::Lg); + let inset = handle.to_pixels(window.rem_size()) / 2.0; + let width = bounds.size.width; + let x = inset + (width - inset * 2.0) * share; + let set = { + let (split, id) = (split.clone(), self.id.clone()); + move |share: f32, cx: &mut App| { + split.update(cx, |split, cx| { + split.share = share; + log::debug!("before-after {id:?}: divider at {share:.2}"); + cx.notify(); + }) + } + }; + let (press, drag, keys, measured) = (set.clone(), set.clone(), set, split.clone()); + let overlay = (width > Pixels::ZERO).then(|| { + [ + div() + .absolute() + .top_0() + .bottom_0() + .left_0() + .w(x) + .overflow_hidden() + .child( + div() + .absolute() + .top_0() + .bottom_0() + .left_0() + .w(width) + .child(self.before), + ) + .into_any_element(), + div() + .absolute() + .top_0() + .bottom_0() + .left(x) + .border_l_1() + .border_color(colors.on_media) + .into_any_element(), + div() + .absolute() + .top(relative(0.5)) + .mt(handle * -0.5) + .left(x - inset) + .flex() + .items_center() + .justify_center() + .size(handle) + .rounded_full() + .bg(colors.on_media) + .shadow(theme.elevation(Elevation::Raised)) + .child( + Icon::new(IconName::ChevronsLeftRight) + .size(IconSize::Sm) + .color(colors.media_backdrop), + ) + .into_any_element(), + ] + }); + self.base + .id(self.id) + .relative() + .overflow_hidden() + .border_1() + .border_color(gpui::transparent_black()) + .track_focus(&focus) + .focus_ring(cx) + .cursor_ew_resize() + .on_mouse_down(MouseButton::Left, move |event, _, cx| { + let bounds = measured.read(cx).bounds; + if let Some(share) = share_at(event.position, bounds, inset) { + press(share, cx); + } + }) + .on_drag(Divider { owner }, |_, _, _, cx| cx.new(|_| EmptyView)) + .on_drag_move(move |event: &DragMoveEvent, _, cx| { + if event.drag(cx).owner != owner { + return; + } + if let Some(share) = share_at(event.event.position, bounds, inset) { + drag(share, cx); + } + }) + .on_key_down(move |event, _, cx| { + let to = match event.keystroke.key.as_str() { + "left" => share - 0.05, + "right" => share + 0.05, + _ => return, + }; + cx.stop_propagation(); + keys(to.clamp(0.0, 1.0), cx); + }) + .child(div().absolute().inset_0().child(self.after)) + .children(overlay.into_iter().flatten()) + .child( + canvas( + move |bounds, window, cx| { + if split.read(cx).bounds != bounds { + split.update(cx, |split, cx| { + split.bounds = bounds; + cx.notify(); + }); + window.request_animation_frame(); + } + }, + |_, _, _, _| {}, + ) + .absolute() + .inset_0(), + ) + } +} + +#[cfg(test)] +mod tests { + use gpui::{Bounds, point, px, size}; + + use super::share_at; + + #[test] + fn the_divider_travels_inside_the_handle_inset() { + let bounds = Bounds::new(point(px(100.0), px(0.0)), size(px(240.0), px(100.0))); + let at = |x: f32| share_at(point(px(x), px(50.0)), bounds, px(20.0)); + assert_eq!(at(120.0), Some(0.0)); + assert_eq!(at(220.0), Some(0.5)); + assert_eq!(at(320.0), Some(1.0)); + assert_eq!(at(90.0), Some(0.0), "left of the box holds at the start"); + assert_eq!(at(400.0), Some(1.0)); + let narrow = Bounds::new(point(px(0.0), px(0.0)), size(px(30.0), px(30.0))); + assert_eq!(share_at(point(px(10.0), px(10.0)), narrow, px(20.0)), None); + } +} diff --git a/src/data_display/carousel.rs b/src/data_display/carousel.rs new file mode 100644 index 0000000..9bf049a --- /dev/null +++ b/src/data_display/carousel.rs @@ -0,0 +1,302 @@ +use std::{ + rc::Rc, + time::{Duration, Instant}, +}; + +use gpui::{ + AnyElement, App, Div, ElementId, InteractiveElement, IntoElement, MouseButton, ParentElement, + RenderOnce, StatefulInteractiveElement, StyleRefinement, Styled, Task, Window, div, prelude::*, + relative, +}; + +use crate::{ + motion, + primitives::{FocusRing, Icon, IconName, tab_stop}, + theme::{ActiveTheme, ControlSize, IconSize, Mix}, +}; + +/// Where the deck heads, counted past the ends so a wrap glides one step, where the glide began, and when. +struct Deck { + at: isize, + from: f32, + since: Instant, + length: Duration, + hovered: bool, + focused: bool, + shown: bool, + shown_since: Instant, + every: Option, + _ticker: Option>, +} + +impl Deck { + fn place(&self) -> f32 { + let share = (self.since.elapsed().as_secs_f32() / self.length.as_secs_f32()).min(1.0); + self.from + (self.at as f32 - self.from) * motion::ease_in_out_cubic(share) + } + + fn go(&mut self, to: isize) { + self.from = self.place(); + self.at = to; + self.since = Instant::now(); + } +} + +/// How far slide `ix` sits from `place`, in slides, on the nearer side of a ring of `count`. +fn offset(ix: usize, place: f32, count: usize) -> f32 { + let count = count as f32; + let ahead = (ix as f32 - place).rem_euclid(count); + if ahead > count / 2.0 { + ahead - count + } else { + ahead + } +} + +type Step = Rc; + +/// Slides one at a time, gliding between them. Arrows show on hover, dots below say where you are, and Left and Right step when it has focus. Past the last slide comes the first. Give it a height. +#[derive(IntoElement)] +pub struct Carousel { + id: ElementId, + base: Div, + slides: Vec, + autoplay: Option, +} + +impl Carousel { + pub fn new(id: impl Into) -> Self { + Self { + id: id.into(), + base: div(), + slides: Vec::new(), + autoplay: None, + } + } + + /// Steps on its own every `every`, holding while pointed at or focused. + pub fn autoplay(mut self, every: Duration) -> Self { + self.autoplay = Some(every); + self + } +} + +impl Styled for Carousel { + fn style(&mut self) -> &mut StyleRefinement { + self.base.style() + } +} + +impl ParentElement for Carousel { + fn extend(&mut self, elements: impl IntoIterator) { + self.slides.extend(elements); + } +} + +impl RenderOnce for Carousel { + fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement { + let count = self.slides.len(); + assert!(count > 0, "carousel {:?} has no slides", self.id); + let focus = tab_stop((self.id.clone(), "focus").into(), true, window, cx); + let deck = window.use_keyed_state((self.id.clone(), "deck"), cx, |_, _| Deck { + at: 0, + from: 0.0, + since: Instant::now(), + length: motion::SLOW, + hovered: false, + focused: false, + shown: false, + shown_since: Instant::now(), + every: None, + _ticker: None, + }); + let (length, fade) = ( + motion::duration(motion::SLOW, cx), + motion::duration(motion::FAST, cx), + ); + let focused = focus.contains_focused(window, cx); + let every = self.autoplay.filter(|_| count > 1); + let name = self.id.clone(); + deck.update(cx, |deck, cx| { + deck.length = length; + deck.focused = focused; + let shown = deck.hovered || focused; + if deck.shown != shown { + deck.shown = shown; + deck.shown_since = Instant::now(); + } + if deck.every != every { + deck.every = every; + deck._ticker = every.map(|every| { + cx.spawn(async move |deck, cx| { + loop { + cx.background_executor().timer(every).await; + let turned = deck.update(cx, |deck, cx| { + if !deck.hovered && !deck.focused { + deck.go(deck.at + 1); + log::debug!("carousel {name:?}: autoplay to {}", deck.at); + cx.notify(); + } + }); + if turned.is_err() { + return; + } + } + }) + }); + } + }); + let (place, current, arrows, moving) = { + let deck = deck.read(cx); + let fading = (deck.shown_since.elapsed().as_secs_f32() / fade.as_secs_f32()).min(1.0); + let arrows = if deck.shown { fading } else { 1.0 - fading }; + let moving = deck.since.elapsed() < length || fading < 1.0; + ( + deck.place(), + deck.at.rem_euclid(count as isize) as usize, + arrows, + moving, + ) + }; + if moving { + window.request_animation_frame(); + } + let step: Step = { + let (deck, id) = (deck.clone(), self.id.clone()); + Rc::new(move |delta, cx| { + deck.update(cx, |deck, cx| { + deck.go(deck.at + delta); + log::info!( + "carousel {id:?}: slide {}", + deck.at.rem_euclid(count as isize) + ); + cx.notify(); + }) + }) + }; + let theme = cx.theme(); + let colors = &theme.colors; + let button = theme.control_height(ControlSize::Lg); + let dot = theme.status_dot(); + let arrow = |name: &'static str, icon: IconName, delta: isize| { + let step = step.clone(); + div() + .id((self.id.clone(), name)) + .absolute() + .top(relative(0.5)) + .mt(button * -0.5) + .flex() + .items_center() + .justify_center() + .size(button) + .rounded_full() + .border_1() + .border_color(colors.border) + .bg(colors.surface) + .opacity(arrows) + .when(arrows > 0.0, |arrow| { + arrow + .cursor_pointer() + .hover(|style| style.bg(colors.hover)) + .on_mouse_down(MouseButton::Left, |_, window, cx| { + window.prevent_default(); + cx.stop_propagation(); + }) + .on_click(move |_, _, cx| step(delta, cx)) + }) + .child(Icon::new(icon).size(IconSize::Sm).color(colors.fg)) + }; + let keys = step.clone(); + let viewport = div() + .id((self.id.clone(), "viewport")) + .relative() + .flex_1() + .min_h_0() + .w_full() + .overflow_hidden() + .border_1() + .border_color(gpui::transparent_black()) + .track_focus(&focus) + .focus_ring(cx) + .when(count > 1, |viewport| { + viewport.on_key_down(move |event, _, cx| { + let delta = match event.keystroke.key.as_str() { + "left" => -1, + "right" => 1, + _ => return, + }; + cx.stop_propagation(); + keys(delta, cx); + }) + }) + .children(self.slides.into_iter().enumerate().map(|(ix, slide)| { + div() + .absolute() + .top_0() + .bottom_0() + .w_full() + .left(relative(offset(ix, place, count))) + .child(slide) + })) + .when(count > 1, |viewport| { + viewport + .child(arrow("back", IconName::ChevronLeft, -1).left_3()) + .child(arrow("next", IconName::ChevronRight, 1).right_3()) + }); + let dots: Vec<_> = (0..count) + .map(|ix| { + let near = (1.0 - offset(ix, place, count).abs()).max(0.0); + let step = step.clone(); + div() + .id((self.id.clone(), format!("dot-{ix}"))) + .py_1() + .cursor_pointer() + .on_mouse_down(MouseButton::Left, |_, window, _| window.prevent_default()) + .on_click(move |_, _, cx| step(ix as isize - current as isize, cx)) + .child( + div() + .h(dot) + .w(dot + dot * 2.0 * near) + .rounded_full() + .bg(colors.fg_subtle.mix(&colors.fg, near)), + ) + }) + .collect(); + let hover = deck.clone(); + self.base + .id(self.id) + .flex() + .flex_col() + .gap_2() + .on_hover(move |hovered, _, cx| { + hover.update(cx, |deck, cx| { + deck.hovered = *hovered; + cx.notify(); + }) + }) + .child(viewport) + .when(count > 1, |carousel| { + carousel.child(div().flex().justify_center().gap_1p5().children(dots)) + }) + } +} + +#[cfg(test)] +mod tests { + use super::offset; + + #[test] + fn slides_sit_on_the_nearer_side_of_the_ring() { + assert_eq!(offset(0, 0.0, 3), 0.0); + assert_eq!(offset(1, 0.0, 3), 1.0); + assert_eq!(offset(2, 0.0, 3), -1.0); + assert_eq!( + offset(0, 2.5, 3), + 0.5, + "past the last, the first enters from the right" + ); + assert_eq!(offset(2, 2.5, 3), -0.5); + assert_eq!(offset(1, 0.5, 2), 0.5); + assert_eq!(offset(0, 0.5, 2), -0.5); + } +} diff --git a/src/data_display/gallery.rs b/src/data_display/gallery.rs new file mode 100644 index 0000000..e8d2512 --- /dev/null +++ b/src/data_display/gallery.rs @@ -0,0 +1,112 @@ +use gpui::{ + App, ElementId, InteractiveElement, IntoElement, MouseButton, ObjectFit, ParentElement, + RenderOnce, StatefulInteractiveElement, Styled, Window, div, +}; + +use crate::{ + layout::AspectRatio, + overlays::{Lightbox, Slide}, + primitives::{FocusRing, Image, tab_stop}, +}; + +/// Pictures in square tiles. A press, or Enter on a focused tile, opens the lightbox at that picture. +#[derive(IntoElement)] +pub struct Gallery { + id: ElementId, + slides: Vec, + columns: u16, +} + +impl Gallery { + pub fn new(id: impl Into, slides: impl IntoIterator) -> Self { + Self { + id: id.into(), + slides: slides.into_iter().collect(), + columns: 3, + } + } + + pub fn columns(mut self, columns: u16) -> Self { + assert!(columns > 0, "a gallery needs a column"); + self.columns = columns; + self + } +} + +impl RenderOnce for Gallery { + fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement { + let open = window.use_keyed_state((self.id.clone(), "open"), cx, |_, _| None::); + let show = |at: Option| { + let (open, id) = (open.clone(), self.id.clone()); + move |cx: &mut App| { + log::info!( + "gallery {id:?}: {}", + at.map_or("closed".into(), |at| format!("opened {at}")) + ); + open.update(cx, |open, cx| { + *open = at; + cx.notify(); + }) + } + }; + let mut tiles = Vec::with_capacity(self.slides.len()); + for (ix, slide) in self.slides.iter().enumerate() { + let focus = tab_stop( + (self.id.clone(), format!("focus-{ix}")).into(), + true, + window, + cx, + ); + let (press, keys) = (show(Some(ix)), show(Some(ix))); + tiles.push( + div() + .id((self.id.clone(), format!("tile-{ix}"))) + .border_1() + .border_color(gpui::transparent_black()) + .track_focus(&focus) + .focus_ring(cx) + .cursor_pointer() + .hover(|style| style.opacity(0.85)) + .on_mouse_down(MouseButton::Left, |_, window, _| window.prevent_default()) + .on_click(move |_, _, cx| press(cx)) + .on_key_down(move |event, _, cx| { + if matches!(event.keystroke.key.as_str(), "enter" | "space") { + cx.stop_propagation(); + keys(cx); + } + }) + .child( + AspectRatio::new(1.0).child( + Image::new( + (self.id.clone(), format!("thumb-{ix}")), + slide.source.clone(), + ) + .fit(ObjectFit::Cover) + .size_full(), + ), + ), + ); + } + let lightbox = (*open.read(cx)).map(|at| { + let (close, step) = (show(None), open.clone()); + Lightbox::new( + (self.id.clone(), "lightbox"), + self.slides, + at, + move |_, cx| close(cx), + ) + .on_step(move |to, _, cx| { + step.update(cx, |open, cx| { + *open = Some(to); + cx.notify(); + }) + }) + }); + div() + .grid() + .grid_cols(self.columns) + .gap_1() + .children(tiles) + .children(lightbox) + } +} diff --git a/src/data_display/mod.rs b/src/data_display/mod.rs index 847864a..eb14e83 100644 --- a/src/data_display/mod.rs +++ b/src/data_display/mod.rs @@ -1,17 +1,25 @@ mod avatar; mod badge; +mod before_after; +mod carousel; mod changelog; mod feed; +mod gallery; mod records; mod stat; #[cfg(test)] mod tests; mod timeline; +mod watermark; pub use avatar::{Avatar, AvatarGroup, Presence, UserChip}; pub use badge::{Badge, CountBadge, DotBadge, Tag, Tone}; +pub use before_after::BeforeAfter; +pub use carousel::Carousel; pub use changelog::{Change, Changelog, Release}; pub use feed::{Activity, ActivityFeed}; +pub use gallery::Gallery; pub use records::{DescriptionList, PropertyGrid, PropertyGroup}; pub use stat::{KpiCard, Statistic, TrendIndicator}; pub use timeline::{Timeline, TimelineItem}; +pub use watermark::Watermark; diff --git a/src/data_display/tests.rs b/src/data_display/tests.rs index a1b8ea1..6fb551c 100644 --- a/src/data_display/tests.rs +++ b/src/data_display/tests.rs @@ -1,11 +1,15 @@ -use std::{cell::Cell, rc::Rc}; +use std::{ + cell::{Cell, RefCell}, + rc::Rc, + time::Duration, +}; use gpui::{ Context, IntoElement, Modifiers, ParentElement, Pixels, Render, Styled, TestAppContext, VisualTestContext, Window, div, point, px, }; -use super::{PropertyGrid, PropertyGroup}; +use super::{Carousel, PropertyGrid, PropertyGroup}; use crate::{primitives::Measure, theme::Theme}; /// A property grid whose drawn height the test reads. @@ -63,3 +67,74 @@ fn a_property_group_folds_from_its_header_and_stays_folded(cx: &mut TestAppConte settle(cx); assert_eq!(height.get(), open, "a second press opens it"); } + +/// A three-slide carousel, 200 wide, that turns every five seconds; each slide reports where it sits. +struct Deck(Rc>); + +impl Render for Deck { + fn render(&mut self, _: &mut Window, _: &mut Context) -> impl IntoElement { + let slides = (0..3).map(|ix| { + let seen = self.0.clone(); + Measure::new(("slide", ix), move |bounds, _, _| { + seen.borrow_mut()[ix] = bounds.origin.x + }) + .size_full() + }); + Carousel::new("deck") + .autoplay(Duration::from_secs(5)) + .w(px(200.0)) + .h(px(100.0)) + .children(slides) + } +} + +fn deck(cx: &mut TestAppContext) -> (Rc>, &mut VisualTestContext) { + cx.update(|cx| { + Theme::init(cx); + Theme::update(cx, |theme| theme.reduced_motion = true); + }); + let places = Rc::new(RefCell::new([Pixels::ZERO; 3])); + let seen = places.clone(); + let (_, cx) = cx.add_window_view(|_, _| Deck(seen)); + settle(cx); + (places, cx) +} + +/// The slide in view: the one at the viewport's left edge, inside its border. +fn front(places: &Rc>) -> Option { + places.borrow().iter().position(|x| *x == px(1.0)) +} + +fn wait(time: Duration, cx: &mut VisualTestContext) { + cx.executor().advance_clock(time); + settle(cx); +} + +#[gpui::test] +fn autoplay_turns_the_carousel_and_holds_while_pointed_at(cx: &mut TestAppContext) { + let (places, cx) = deck(cx); + assert_eq!(front(&places), Some(0)); + wait(Duration::from_secs(5), cx); + assert_eq!(front(&places), Some(1), "five seconds turn it once"); + cx.simulate_mouse_move(point(px(100.0), px(50.0)), None, Modifiers::none()); + settle(cx); + wait(Duration::from_secs(12), cx); + assert_eq!(front(&places), Some(1), "held while pointed at"); + cx.simulate_mouse_move(point(px(600.0), px(400.0)), None, Modifiers::none()); + settle(cx); + wait(Duration::from_secs(5), cx); + assert_eq!(front(&places), Some(2)); +} + +#[gpui::test] +fn left_from_the_first_slide_wraps_to_the_last(cx: &mut TestAppContext) { + let (places, cx) = deck(cx); + cx.simulate_click(point(px(100.0), px(50.0)), Modifiers::none()); + settle(cx); + cx.simulate_keystrokes("left"); + settle(cx); + assert_eq!(front(&places), Some(2)); + cx.simulate_keystrokes("right"); + settle(cx); + assert_eq!(front(&places), Some(0)); +} diff --git a/src/data_display/watermark.rs b/src/data_display/watermark.rs new file mode 100644 index 0000000..aa1f799 --- /dev/null +++ b/src/data_display/watermark.rs @@ -0,0 +1,88 @@ +use gpui::{ + AnyElement, App, Div, ElementId, IntoElement, ParentElement, Pixels, RenderOnce, SharedString, + Size, StyleRefinement, Styled, Window, canvas, div, prelude::*, +}; + +use crate::theme::{ActiveTheme, TextSize}; + +/// Faint text over its content, repeated in level rows, every other row shifted half a tile. gpui draws text upright, so the tiles do not tilt. Presses pass through to the content. +#[derive(IntoElement)] +pub struct Watermark { + id: ElementId, + text: SharedString, + base: Div, +} + +impl Watermark { + pub fn new(id: impl Into, text: impl Into) -> Self { + Self { + id: id.into(), + text: text.into(), + base: div(), + } + } +} + +impl Styled for Watermark { + fn style(&mut self) -> &mut StyleRefinement { + self.base.style() + } +} + +impl ParentElement for Watermark { + fn extend(&mut self, elements: impl IntoIterator) { + self.base.extend(elements); + } +} + +impl RenderOnce for Watermark { + fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement { + let area = window.use_keyed_state(self.id, cx, |_, _| Size::::default()); + let room = *area.read(cx); + let theme = cx.theme(); + let rem = window.rem_size(); + let tile = theme.watermark_tile(); + let (wide, tall) = (tile.width.to_pixels(rem), tile.height.to_pixels(rem)); + let columns = (room.width / wide).ceil() as usize + 1; + let rows = (room.height / tall).ceil() as usize; + let text = self.text; + let layer = div() + .absolute() + .inset_0() + .overflow_hidden() + .text_size(theme.text_size(TextSize::Sm)) + .text_color(theme.colors.fg.opacity(0.07)) + .children((0..rows).map(|row| { + div() + .flex() + .when(row % 2 == 1, |row| row.ml(wide * -0.5)) + .children((0..columns).map(|_| { + div() + .flex_none() + .flex() + .items_center() + .justify_center() + .w(wide) + .h(tall) + .whitespace_nowrap() + .child(text.clone()) + })) + })); + self.base.relative().child(layer).child( + canvas( + move |bounds, window, cx| { + if *area.read(cx) != bounds.size { + area.update(cx, |area, cx| { + *area = bounds.size; + cx.notify(); + }); + window.request_animation_frame(); + } + }, + |_, _, _, _| {}, + ) + .absolute() + .inset_0(), + ) + } +} diff --git a/src/overlays/lightbox.rs b/src/overlays/lightbox.rs index 15e4646..18e102e 100644 --- a/src/overlays/lightbox.rs +++ b/src/overlays/lightbox.rs @@ -16,8 +16,8 @@ use crate::{ /// One picture in a lightbox, and the line under it. #[derive(Clone)] pub struct Slide { - source: ImageSource, - caption: SharedString, + pub(crate) source: ImageSource, + pub(crate) caption: SharedString, } impl Slide { diff --git a/src/primitives/icon.rs b/src/primitives/icon.rs index 9f600d9..a0fea02 100644 --- a/src/primitives/icon.rs +++ b/src/primitives/icon.rs @@ -74,6 +74,7 @@ icons! { ChevronRight => "chevron-right", ChevronUp => "chevron-up", ChevronsLeft => "chevrons-left", + ChevronsLeftRight => "chevrons-left-right", ChevronsRight => "chevrons-right", ChevronsUpDown => "chevrons-up-down", CircleAlert => "circle-alert", diff --git a/src/theme/tokens.rs b/src/theme/tokens.rs index c4f7b90..1355940 100644 --- a/src/theme/tokens.rs +++ b/src/theme/tokens.rs @@ -284,6 +284,11 @@ impl Theme { px_to_rems(128.0) } + /// One repeat of a watermark's text. + pub fn watermark_tile(&self) -> Size { + size(px_to_rems(200.0), px_to_rems(96.0)) + } + /// The label column of a description list. pub fn label_width(&self) -> Rems { px_to_rems(160.0) diff --git a/tasks/ch11-20.md b/tasks/ch11-20.md index d27c265..12ebcf1 100644 --- a/tasks/ch11-20.md +++ b/tasks/ch11-20.md @@ -69,12 +69,17 @@ - [x] ActivityFeed → `data_display::ActivityFeed`, `Activity` - [x] Changelog → `data_display::Changelog`, `Release`, `Change` -## T12c Data Display · Media & measures +## T12c Data Display · Media + +- [x] Carousel → `data_display::Carousel` +- [x] Gallery → `data_display::Gallery`, opening `overlays::Lightbox` +- [x] Accordion list → `layout::Accordion` +- [x] Card Grid → `layout::SimpleGrid` +- [x] BeforeAfter → `data_display::BeforeAfter` +- [x] Watermark → `data_display::Watermark`; its rows run level, since gpui draws text upright + +## T12d Data Display · Codes & measures -- [ ] Carousel -- [ ] Gallery -- [ ] Accordion list → `layout::Accordion` -- [ ] Card Grid → `layout::SimpleGrid` - [ ] QRCode - [ ] Barcode - [ ] ColorSwatch display → `forms::ColorSwatch` @@ -83,8 +88,6 @@ - [ ] UsageBar - [ ] Rating display → `forms::Rating` - [ ] Comparison -- [ ] BeforeAfter -- [ ] Watermark ## T13 Lists & Trees — `src/lists`