From 1305d3c00fabdf04af179d16135e4b5b1ff22740 Mon Sep 17 00:00:00 2001 From: edwloef Date: Fri, 25 Apr 2025 15:45:36 +0200 Subject: [PATCH 1/6] add iced logo to Iced-Icons.ttf --- core/src/renderer/null.rs | 1 + core/src/text.rs | 5 +++++ graphics/fonts/Iced-Icons.ttf | Bin 5108 -> 5296 bytes renderer/src/fallback.rs | 1 + tiny_skia/src/lib.rs | 1 + wgpu/src/lib.rs | 1 + widget/src/helpers.rs | 41 ++++++++++++++++++++++------------ 7 files changed, 36 insertions(+), 14 deletions(-) diff --git a/core/src/renderer/null.rs b/core/src/renderer/null.rs index 3c17265d..8c4b328a 100644 --- a/core/src/renderer/null.rs +++ b/core/src/renderer/null.rs @@ -45,6 +45,7 @@ impl text::Renderer for () { const ICON_FONT: Font = Font::DEFAULT; const CHECKMARK_ICON: char = '0'; const ARROW_DOWN_ICON: char = '0'; + const ICED_LOGO: char = '0'; fn default_font(&self) -> Self::Font { Font::default() diff --git a/core/src/text.rs b/core/src/text.rs index fdebd03a..eddc0532 100644 --- a/core/src/text.rs +++ b/core/src/text.rs @@ -312,6 +312,11 @@ pub trait Renderer: crate::Renderer { /// [`ICON_FONT`]: Self::ICON_FONT const ARROW_DOWN_ICON: char; + /// The 'char' representing the iced logo in the built-in ['ICON_FONT']. + /// + /// ['ICON_FONT']: Self::ICON_FONT + const ICED_LOGO: char; + /// Returns the default [`Self::Font`]. fn default_font(&self) -> Self::Font; diff --git a/graphics/fonts/Iced-Icons.ttf b/graphics/fonts/Iced-Icons.ttf index e3273141c45fff98c2f411b421e2e3fd225668aa..b6ff8baa9b22c02661496256efcda7e3f7a4c6a5 100644 GIT binary patch delta 722 zcmYjPUr1A76hG&F?q0#U`4H}*bzVAEd_uaB*xg$$V zL`_)gh(e*!foDU-t3(GLgLU==&xNRyx`3yE+b@pDW2fAg%0zr0I2=psM$x;u0=x$s zjNO`ZtDmYk$sR!7Jz*r%4<0=nBNF{Y4MtL*HNZFFyf}P)a_UZY;_Iu-3v57w$5RPC ze)wagh}epPo)if6kGKLH1a3{G=jI#ogqTr7%~P3}PM_&I_QS}Q*5?f>5C-5BuzOlh zC(3s>mT>19niw)NvvXEjJdOt3$e%T4P9%)2GoA0S_YH`Jni>$}TicVRsQu&)xkL#( zeR=;gZ2IpE(?rDmE%OVX$Xci$t>lFbDUA-2 zi`p=`=J9LnVM~wSp=zq;@H;dIJGf2wdsrgSJg3`9-~+fsuiMK>$dwFfh2eh4{|;-@KcFLHGtxRL0%K)r~=&K?2C%0pu(A2kRTz zDFm!xU|{S3^23sI6AOOmKHd!Ee*t2zzUnD0#IgvqwApxi#sD^WDz6tQl=S`Ef`JZSsBE@dKeg(7}$X9VxX)ZgDglbP?g~1 z9>z>(pv^!Y2+Kg#x&V0~n`D5Yt^uUkfHWfm(+h?VJpcbQFhFPtX8s>g^$eRGm~?q3 z7xEw2d{&@@Ihqxy2dJKriIJHjCBHmRHzl)(DL)%1#t78U57q?=KmlOfF#%~7AO_J; Q-$7Xn_iye3sY3A`0HbkkrvLx| diff --git a/renderer/src/fallback.rs b/renderer/src/fallback.rs index b3d8f89f..907fe9b6 100644 --- a/renderer/src/fallback.rs +++ b/renderer/src/fallback.rs @@ -97,6 +97,7 @@ where const ICON_FONT: Self::Font = A::ICON_FONT; const CHECKMARK_ICON: char = A::CHECKMARK_ICON; const ARROW_DOWN_ICON: char = A::ARROW_DOWN_ICON; + const ICED_LOGO: char = A::ICED_LOGO; fn default_font(&self) -> Self::Font { delegate!(self, renderer, renderer.default_font()) diff --git a/tiny_skia/src/lib.rs b/tiny_skia/src/lib.rs index 725a0d74..c0bd78af 100644 --- a/tiny_skia/src/lib.rs +++ b/tiny_skia/src/lib.rs @@ -254,6 +254,7 @@ impl core::text::Renderer for Renderer { const ICON_FONT: Font = Font::with_name("Iced-Icons"); const CHECKMARK_ICON: char = '\u{f00c}'; const ARROW_DOWN_ICON: char = '\u{e800}'; + const ICED_LOGO: char = '\u{e801}'; fn default_font(&self) -> Self::Font { self.default_font diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs index 977a3add..1726beac 100644 --- a/wgpu/src/lib.rs +++ b/wgpu/src/lib.rs @@ -721,6 +721,7 @@ impl core::text::Renderer for Renderer { const ICON_FONT: Font = Font::with_name("Iced-Icons"); const CHECKMARK_ICON: char = '\u{f00c}'; const ARROW_DOWN_ICON: char = '\u{e800}'; + const ICED_LOGO: char = '\u{e801}'; fn default_font(&self) -> Self::Font { self.default_font diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index ebc6cd64..347a4bb7 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -1836,7 +1836,6 @@ where /// /// Useful for showing some love to your favorite GUI library in your "About" screen, /// for instance. -#[cfg(feature = "svg")] pub fn iced<'a, Message, Theme, Renderer>( text_size: impl Into, ) -> Element<'a, Message, Theme, Renderer> @@ -1846,24 +1845,38 @@ where + core::text::Renderer + core::svg::Renderer + 'a, - Theme: text::Catalog + crate::svg::Catalog + 'a, + Theme: text::Catalog + container::Catalog + 'a, + ::Class<'a>: + From>, + ::Class<'a>: From>, { - use crate::core::{Alignment, Font}; - use crate::svg; - use std::sync::LazyLock; - - static LOGO: LazyLock = LazyLock::new(|| { - svg::Handle::from_memory(include_bytes!("../assets/iced-logo.svg")) - }); + use crate::core::{ + Alignment, Color, Font, Radians, border, border::radius, color, + gradient::Linear, + }; let text_size = text_size.into(); row![ - svg(LOGO.clone()).width(text_size * 1.3), - text("iced") - .size(text_size) - .font(Font::MONOSPACE) - .shaping(text::Shaping::Advanced) + container( + text(Renderer::ICED_LOGO) + .line_height(1.0) + .size(text_size) + .font(Renderer::ICON_FONT) + .color(Color::WHITE) + ) + .padding(text_size * 0.15) + .style(move |_| container::Style { + background: Some( + Linear::new(Radians::PI / 4.0) + .add_stop(0.0, color!(0x3300ff)) + .add_stop(1.0, color!(0x00a3ff)) + .into() + ), + border: border::rounded(radius(text_size * 0.4)), + ..container::Style::default() + }), + text("iced").size(text_size).font(Font::MONOSPACE) ] .spacing(text_size.0 / 3.0) .align_y(Alignment::Center) From a7a36c28f450b2c7e638ecfd01c4ed99601cfc98 Mon Sep 17 00:00:00 2001 From: edwloef Date: Sun, 27 Apr 2025 13:02:01 +0200 Subject: [PATCH 2/6] adjust colors --- widget/src/helpers.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 347a4bb7..6ce7d5ed 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -1869,8 +1869,8 @@ where .style(move |_| container::Style { background: Some( Linear::new(Radians::PI / 4.0) - .add_stop(0.0, color!(0x3300ff)) - .add_stop(1.0, color!(0x00a3ff)) + .add_stop(0.0, color!(0x2820ff)) + .add_stop(1.0, color!(0x1177ff)) .into() ), border: border::rounded(radius(text_size * 0.4)), From 1b127c8de3e75009ceec4e4ef73d18bf02fcaf80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Tue, 25 Nov 2025 21:27:29 +0100 Subject: [PATCH 3/6] Name iced glyph in `Iced-Icons.ttf` --- graphics/fonts/Iced-Icons.ttf | Bin 5296 -> 5292 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/fonts/Iced-Icons.ttf b/graphics/fonts/Iced-Icons.ttf index b6ff8baa9b22c02661496256efcda7e3f7a4c6a5..494483b333c384a36b0b9506d196b0df412e851a 100644 GIT binary patch delta 210 zcmdm>xkgiifsuiMK>$dwFfh2eh4?OEkhf%D5SaiJm2r1*bz{(C&<64|CTjRICQPib z6rRK2!N9=y04Oh(lb@W(aE+mC;t?Gl$1^+s0o5r0#qB5lkzgsX+M_yIg7G%92ZPJx zZ;ZCQKY=!}0c9B&m>F0$J1}YUGL}uw;SZf`C@^R8LH>fxX9c>LRar8VQ&X7ovw>DH vF#i9~zz=pG4^WpFgB$}BkjKKnGPyxSM&v0U*Kd$%w+_4t1JO?mHJ<|jNU1Q? delta 193 zcmZ3Zxj|EdfsuiMK>$dwFfh2eh4?NCd=SmRATk9gD&y|r>c*hWpabOROw{maOqp0= zDZGHeg@J+b0Z?8nCqFrn;Tl82#3MR9JPbX?Ky?a0ap#GDBv|gNPMtYfg7G%93xmhx zZ;ZCQKY%u|0c9B&m>F0%J1}YUGA2yU;SZf0D^M``Ape}rX9c>Ld6@FEIs6iHQ+-qQ jOee>SNHMcAuuiTKkr8 Date: Tue, 25 Nov 2025 21:28:13 +0100 Subject: [PATCH 4/6] Remove `svg` trait bound from `iced` widget --- widget/src/helpers.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 6ce7d5ed..a0b8c81c 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -1841,10 +1841,7 @@ pub fn iced<'a, Message, Theme, Renderer>( ) -> Element<'a, Message, Theme, Renderer> where Message: 'a, - Renderer: core::Renderer - + core::text::Renderer - + core::svg::Renderer - + 'a, + Renderer: core::Renderer + core::text::Renderer + 'a, Theme: text::Catalog + container::Catalog + 'a, ::Class<'a>: From>, From 2f25bb1e0f284004f4d9fa65674921a17b081f4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Tue, 25 Nov 2025 21:28:31 +0100 Subject: [PATCH 5/6] Adjust background colors in `iced` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index a0b8c81c..8450d705 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -1866,7 +1866,7 @@ where .style(move |_| container::Style { background: Some( Linear::new(Radians::PI / 4.0) - .add_stop(0.0, color!(0x2820ff)) + .add_stop(0.0, color!(0x0033ff)) .add_stop(1.0, color!(0x1177ff)) .into() ), From c576ea41572f0f1fedceeb0177494fadb2af8b97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Tue, 25 Nov 2025 21:30:55 +0100 Subject: [PATCH 6/6] Use consistent import style in `iced` widget --- widget/src/helpers.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 8450d705..4c67ad60 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -1847,10 +1847,10 @@ where From>, ::Class<'a>: From>, { - use crate::core::{ - Alignment, Color, Font, Radians, border, border::radius, color, - gradient::Linear, - }; + use crate::core::border; + use crate::core::color; + use crate::core::gradient; + use crate::core::{Alignment, Color, Font, Radians}; let text_size = text_size.into(); @@ -1865,12 +1865,12 @@ where .padding(text_size * 0.15) .style(move |_| container::Style { background: Some( - Linear::new(Radians::PI / 4.0) + gradient::Linear::new(Radians::PI / 4.0) .add_stop(0.0, color!(0x0033ff)) .add_stop(1.0, color!(0x1177ff)) .into() ), - border: border::rounded(radius(text_size * 0.4)), + border: border::rounded(border::radius(text_size * 0.4)), ..container::Style::default() }), text("iced").size(text_size).font(Font::MONOSPACE)