test new font: Noto Sans

This commit is contained in:
GyulyVGC
2025-11-05 22:04:59 +01:00
parent 6eb097eb7c
commit 8163121845
16 changed files with 54 additions and 77 deletions

View File

@@ -57,7 +57,7 @@ ## 💅 Design relevant materials
### Fonts
Sniffnet uses `Sarasa Gothic mono`. The fonts used can be found [here](https://github.com/GyulyVGC/sniffnet/tree/main/resources/fonts).
Sniffnet uses `Noto Sans`. The fonts used can be found [here](https://github.com/GyulyVGC/sniffnet/tree/main/resources/fonts).
### Colors and components

View File

@@ -2,14 +2,10 @@
!
"
#
$
%
&
'
(
)
*
+
,
-
.
@@ -20,17 +16,13 @@ $
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
@@ -60,9 +52,7 @@ Z
[
\
]
^
_
`
a
b
c
@@ -100,7 +90,6 @@ z
Ê
Î
Ö
×
Ü
à
á
@@ -349,17 +338,6 @@ z

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -5,12 +5,13 @@
FULL_FOLDER=resources/fonts/full
SUBSET_FOLDER=resources/fonts/subset
CHARACTERS_FILE=subset_characters.txt
FONT_NAME=sarasa-mono-sc
FONT_NAME_REGULAR=GoNotoKurrent-Regular
FONT_NAME_BOLD=GoNotoKurrent-Bold
grep -o --no-filename . ./src/**/* | sort -u > $FULL_FOLDER/$CHARACTERS_FILE
grep -o --no-filename . ./src/translations/**/* | sort -u > $FULL_FOLDER/$CHARACTERS_FILE
pyftsubset $FULL_FOLDER/$FONT_NAME-bold.ttf --text-file=$FULL_FOLDER/$CHARACTERS_FILE --no-ignore-missing-unicodes
pyftsubset $FULL_FOLDER/$FONT_NAME-regular.ttf --text-file=$FULL_FOLDER/$CHARACTERS_FILE --no-ignore-missing-unicodes
pyftsubset $FULL_FOLDER/$FONT_NAME_BOLD.ttf --text-file=$FULL_FOLDER/$CHARACTERS_FILE --no-ignore-missing-unicodes
pyftsubset $FULL_FOLDER/$FONT_NAME_REGULAR.ttf --text-file=$FULL_FOLDER/$CHARACTERS_FILE --no-ignore-missing-unicodes
mv $FULL_FOLDER/$FONT_NAME-bold.subset.ttf $SUBSET_FOLDER/$FONT_NAME-bold.subset.ttf
mv $FULL_FOLDER/$FONT_NAME-regular.subset.ttf $SUBSET_FOLDER/$FONT_NAME-regular.subset.ttf
mv $FULL_FOLDER/$FONT_NAME_BOLD.subset.ttf $SUBSET_FOLDER/$FONT_NAME_BOLD.subset.ttf
mv $FULL_FOLDER/$FONT_NAME_REGULAR.subset.ttf $SUBSET_FOLDER/$FONT_NAME_REGULAR.subset.ttf

View File

@@ -68,7 +68,7 @@
use crate::utils::types::web_page::WebPage;
use crate::{StyleType, TrafficChart, location};
pub const FONT_FAMILY_NAME: &str = "Sarasa Mono SC for Sniffnet";
pub const FONT_FAMILY_NAME: &str = "Go Noto Kurrent Bold";
pub const ICON_FONT_FAMILY_NAME: &str = "Icons for Sniffnet";
/// Struct on which the GUI is based

View File

@@ -43,8 +43,8 @@
pub const NIGHT_PALETTE_EXTENSION: PaletteExtension = PaletteExtension {
is_nightly: true,
font: SARASA_MONO,
font_headers: SARASA_MONO_BOLD,
font: NOTO_SANS,
font_headers: NOTO_SANS_BOLD,
alpha_chart_badge: 0.15,
alpha_round_borders: 0.4,
alpha_round_containers: 0.3,
@@ -83,8 +83,8 @@
pub const DAY_PALETTE_EXTENSION: PaletteExtension = PaletteExtension {
is_nightly: false,
font: SARASA_MONO_BOLD,
font_headers: SARASA_MONO,
font: NOTO_SANS_BOLD,
font_headers: NOTO_SANS,
alpha_chart_badge: 0.75,
alpha_round_borders: 0.45,
alpha_round_containers: 0.2,
@@ -134,8 +134,8 @@
pub const DEEP_SEA_PALETTE_EXTENSION: PaletteExtension = PaletteExtension {
is_nightly: true,
font: SARASA_MONO,
font_headers: SARASA_MONO_BOLD,
font: NOTO_SANS,
font_headers: NOTO_SANS_BOLD,
alpha_chart_badge: 0.15,
alpha_round_borders: 0.35,
alpha_round_containers: 0.15,
@@ -185,8 +185,8 @@
pub const MON_AMOUR_PALETTE_EXTENSION: PaletteExtension = PaletteExtension {
is_nightly: false,
font: SARASA_MONO_BOLD,
font_headers: SARASA_MONO,
font: NOTO_SANS_BOLD,
font_headers: NOTO_SANS,
alpha_chart_badge: 0.75,
alpha_round_borders: 0.5,
alpha_round_containers: 0.25,
@@ -194,18 +194,18 @@
red_alert_color: RED_ALERT_COLOR_DAILY,
};
pub const SARASA_MONO_BOLD_BYTES: &[u8] =
include_bytes!("../../../resources/fonts/subset/sarasa-mono-sc-bold.subset.ttf");
pub const SARASA_MONO_BOLD: Font = Font {
pub const NOTO_SANS_BOLD_BYTES: &[u8] =
include_bytes!("../../../resources/fonts/subset/GoNotoKurrent-Bold.subset.ttf");
pub const NOTO_SANS_BOLD: Font = Font {
family: Family::Name(FONT_FAMILY_NAME),
weight: Weight::Bold,
stretch: Stretch::Normal,
style: Style::Normal,
};
pub const SARASA_MONO_BYTES: &[u8] =
include_bytes!("../../../resources/fonts/subset/sarasa-mono-sc-regular.subset.ttf");
pub const SARASA_MONO: Font = Font {
pub const NOTO_SANS_BYTES: &[u8] =
include_bytes!("../../../resources/fonts/subset/GoNotoKurrent-Regular.subset.ttf");
pub const NOTO_SANS: Font = Font {
family: Family::Name(FONT_FAMILY_NAME),
weight: Weight::Normal,
stretch: Stretch::Normal,

View File

@@ -153,7 +153,7 @@ struct DelegateTest {
const CATPPUCCIN_PINK_NO_OCTO: &str = "%f5c2e7";
const CATPPUCCIN_PINK_TRUNCATED: &str = "#c2e7";
const CATPPUCCIN_PINK_TOO_LONG: &str = "#f5c2e7f5c2e7f5";
const INVALID_COLOR: &str = "#cal";
const INVALID_COLOR: &str = "#cal";
// Test if deserializing and serializing a color works.
#[test]
@@ -205,7 +205,7 @@ fn test_len_too_large_color_de() {
fn test_invalid_hex_color_de() {
assert_de_tokens_error::<DelegateTest>(
&[Token::Str(INVALID_COLOR)],
"invalid value: string \"#cal\", expected valid hexadecimal",
"invalid value: string \"#cal\", expected valid hexadecimal",
);
}
}

View File

@@ -10,7 +10,7 @@
use serde::{Deserialize, Serialize};
use crate::gui::styles::style_constants::{
NIGHT_PALETTE, RED_ALERT_COLOR_DAILY, RED_ALERT_COLOR_NIGHTLY, SARASA_MONO, SARASA_MONO_BOLD,
NIGHT_PALETTE, NOTO_SANS, NOTO_SANS_BOLD, RED_ALERT_COLOR_DAILY, RED_ALERT_COLOR_NIGHTLY,
};
use crate::gui::styles::types::color_remote::color_hash;
use crate::gui::styles::types::palette_extension::PaletteExtension;
@@ -94,14 +94,14 @@ pub fn generate_palette_extension(self) -> PaletteExtension {
let is_nightly = primary.r + primary.g + primary.b <= 1.5;
let font = if is_text_body_dark {
SARASA_MONO_BOLD
NOTO_SANS_BOLD
} else {
SARASA_MONO
NOTO_SANS
};
let font_headers = if is_text_headers_dark {
SARASA_MONO_BOLD
NOTO_SANS_BOLD
} else {
SARASA_MONO
NOTO_SANS
};
let alpha_chart_badge = if is_nightly { 0.15 } else { 0.75 };
let alpha_round_borders = if is_nightly { 0.3 } else { 0.6 };
@@ -209,7 +209,7 @@ mod tests {
use iced::color;
use crate::gui::styles::style_constants::{
RED_ALERT_COLOR_DAILY, RED_ALERT_COLOR_NIGHTLY, SARASA_MONO, SARASA_MONO_BOLD,
NOTO_SANS, NOTO_SANS_BOLD, RED_ALERT_COLOR_DAILY, RED_ALERT_COLOR_NIGHTLY,
};
use crate::gui::styles::types::palette_extension::PaletteExtension;
@@ -289,8 +289,8 @@ fn test_generate_palette_extension_dark() {
palette.generate_palette_extension(),
PaletteExtension {
is_nightly: true,
font: SARASA_MONO,
font_headers: SARASA_MONO_BOLD,
font: NOTO_SANS,
font_headers: NOTO_SANS_BOLD,
alpha_chart_badge: 0.15,
alpha_round_borders: 0.3,
alpha_round_containers: 0.12,
@@ -350,8 +350,8 @@ fn test_generate_palette_extension_light() {
palette.generate_palette_extension(),
PaletteExtension {
is_nightly: false,
font: SARASA_MONO,
font_headers: SARASA_MONO_BOLD,
font: NOTO_SANS,
font_headers: NOTO_SANS_BOLD,
alpha_chart_badge: 0.75,
alpha_round_borders: 0.6,
alpha_round_containers: 0.24,

View File

@@ -4,7 +4,7 @@
use serde::de::Unexpected;
use serde::{Deserialize, Deserializer, Serialize, Serializer};
use crate::gui::styles::style_constants::{SARASA_MONO, SARASA_MONO_BOLD};
use crate::gui::styles::style_constants::{NOTO_SANS, NOTO_SANS_BOLD};
use crate::gui::styles::types::color_remote::color_hash;
use super::color_remote::{deserialize_color, serialize_color};
@@ -65,16 +65,16 @@ pub(super) fn deserialize_font<'de, D>(deserializer: D) -> Result<Font, D::Error
where
D: Deserializer<'de>,
{
// Name should be SARASA_MONO or SARASA_MONO_BOLD
// Name should be NOTO_SANS or NOTO_SANS_BOLD
let name = String::deserialize(deserializer)?;
let name_str = name.as_str();
match name_str {
"SARASA_MONO" => Ok(SARASA_MONO),
"SARASA_MONO_BOLD" => Ok(SARASA_MONO_BOLD),
"NOTO_SANS" => Ok(NOTO_SANS),
"NOTO_SANS_BOLD" => Ok(NOTO_SANS_BOLD),
_ => Err(serde::de::Error::invalid_value(
Unexpected::Str(name_str),
&"SARASA_MONO OR SARASA_MONO_BOLD",
&"NOTO_SANS OR NOTO_SANS_BOLD",
)),
}
}
@@ -84,8 +84,8 @@ pub(super) fn serialize_font<S>(font: &Font, serializer: S) -> Result<S::Ok, S::
S: Serializer,
{
match *font {
SARASA_MONO => serializer.serialize_str("SARASA_MONO"),
SARASA_MONO_BOLD => serializer.serialize_str("SARASA_MONO_BOLD"),
NOTO_SANS => serializer.serialize_str("NOTO_SANS"),
NOTO_SANS_BOLD => serializer.serialize_str("NOTO_SANS_BOLD"),
_ => Err(serde::ser::Error::custom("invalid font")),
}
}
@@ -95,9 +95,7 @@ mod tests {
use iced::Color;
use serde_test::{Token, assert_tokens};
use crate::gui::styles::style_constants::{
RED_ALERT_COLOR_DAILY, SARASA_MONO, SARASA_MONO_BOLD,
};
use crate::gui::styles::style_constants::{NOTO_SANS, NOTO_SANS_BOLD, RED_ALERT_COLOR_DAILY};
use crate::gui::styles::types::palette_extension::PaletteExtension;
// Test if deserializing and serializing a PaletteExtension works.
@@ -105,8 +103,8 @@ mod tests {
fn test_working_palette_extension_round_trip() {
let ext = PaletteExtension {
is_nightly: false,
font: SARASA_MONO_BOLD,
font_headers: SARASA_MONO,
font: NOTO_SANS_BOLD,
font_headers: NOTO_SANS,
alpha_chart_badge: 0.5,
alpha_round_borders: 0.25,
alpha_round_containers: 0.1778,
@@ -128,9 +126,9 @@ fn test_working_palette_extension_round_trip() {
Token::Str("is_nightly"),
Token::Bool(false),
Token::Str("font"),
Token::Str("SARASA_MONO_BOLD"),
Token::Str("NOTO_SANS_BOLD"),
Token::Str("font_headers"),
Token::Str("SARASA_MONO"),
Token::Str("NOTO_SANS"),
Token::Str("alpha_chart_badge"),
Token::F32(0.5),
Token::Str("alpha_round_borders"),

View File

@@ -5,7 +5,7 @@
use crate::gui::styles::style_constants::{
DAY_PALETTE, DAY_PALETTE_EXTENSION, DEEP_SEA_PALETTE, DEEP_SEA_PALETTE_EXTENSION,
MON_AMOUR_PALETTE, MON_AMOUR_PALETTE_EXTENSION, NIGHT_PALETTE, NIGHT_PALETTE_EXTENSION,
SARASA_MONO_BOLD,
NOTO_SANS_BOLD,
};
use crate::gui::styles::types::custom_palette::ExtraStyles;
use crate::gui::styles::types::palette::Palette;
@@ -61,7 +61,7 @@ pub fn get_extension(self) -> PaletteExtension {
}
pub fn get_font_weight(self) -> FontStyle {
if self.get_extension().font.eq(&SARASA_MONO_BOLD) {
if self.get_extension().font.eq(&NOTO_SANS_BOLD) {
FontStyle::Bold
} else {
FontStyle::Normal
@@ -195,9 +195,9 @@ fn test_working_style_type_round_trip_3() {
Token::Str("is_nightly"),
Token::Bool(true),
Token::Str("font"),
Token::Str("SARASA_MONO"),
Token::Str("NOTO_SANS"),
Token::Str("font_headers"),
Token::Str("SARASA_MONO_BOLD"),
Token::Str("NOTO_SANS_BOLD"),
Token::Str("alpha_chart_badge"),
Token::F32(0.15),
Token::Str("alpha_round_borders"),

View File

@@ -24,7 +24,7 @@
use utils::formatted_strings::print_cli_welcome_message;
use crate::gui::sniffer::FONT_FAMILY_NAME;
use crate::gui::styles::style_constants::{ICONS_BYTES, SARASA_MONO_BOLD_BYTES, SARASA_MONO_BYTES};
use crate::gui::styles::style_constants::{ICONS_BYTES, NOTO_SANS_BOLD_BYTES, NOTO_SANS_BYTES};
use crate::gui::types::conf::CONF;
use crate::gui::types::config_window::{ConfigWindow, ToPosition, ToSize};
@@ -81,8 +81,8 @@ pub fn main() -> iced::Result {
// id needed for Linux Wayland; should match StartupWMClass in .desktop file; see issue #292
id: Some(String::from(SNIFFNET_LOWERCASE)),
fonts: vec![
Cow::Borrowed(SARASA_MONO_BYTES),
Cow::Borrowed(SARASA_MONO_BOLD_BYTES),
Cow::Borrowed(NOTO_SANS_BYTES),
Cow::Borrowed(NOTO_SANS_BOLD_BYTES),
Cow::Borrowed(ICONS_BYTES),
],
default_font: Font::with_name(FONT_FAMILY_NAME),