1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//! Bundled font assets for Aetna.
//!
//! This crate is a thin re-exporter: each Cargo feature pulls in a
//! sibling crate that bundles the matching font family
//! (`aetna-fonts-inter`, `aetna-fonts-jetbrains-mono`, `aetna-fonts-roboto`,
//! `aetna-fonts-emoji`, `aetna-fonts-symbols`).
//! Splitting the families across crates keeps every published
//! `.crate` artifact under crates.io's per-crate upload size limit,
//! while the `aetna-fonts` API stays the same surface aetna-core (and
//! application code) consumes.
//!
//! The default feature set is generous (Inter + JetBrains Mono + emoji +
//! symbols) — chosen so that LLM output, which freely reaches for arrows,
//! math operators, dingbats, and box-drawing characters, doesn't render as
//! tofu (`◻`) out of the box, and so code samples land on a real
//! programmer's mono instead of the UI sans.
//!
//! # Feature flags
//!
//! | feature | adds | size (raw) |
//! |------------------|-------------------------------------------------------|--------------|
//! | `inter` | Inter Variable Roman / Italic | ~1.8 MB |
//! | `jetbrains-mono` | JetBrains Mono Variable Roman / Italic (with ligatures) | ~600 KB |
//! | `roboto` | Roboto Regular / Medium / Bold / Italic | ~1.8 MB |
//! | `emoji` | NotoColorEmoji (CBDT color bitmaps) | ~10 MB |
//! | `symbols` | NotoSansSymbols2 + NotoSansMath | ~2.2 MB |
//!
//! `default = ["default_fonts"]` and `default_fonts = ["inter",
//! "jetbrains-mono", "emoji", "symbols"]`. Roboto was previously bundled
//! by default; it is still available behind the `roboto` feature for
//! consumers that want the Material UI sans. To skip the bundled fonts
//! entirely (for example, to ship your own Material Symbols or a brand
//! typeface):
//!
//! ```toml
//! aetna-fonts = { version = "0.2", default-features = false }
//! ```
//!
//! CJK was previously available as an opt-in `cjk` feature shipping
//! NotoSansCJK SC (~16 MB). The bundled font pushed the published
//! `.crate` over crates.io's upload cap, so it has been removed for
//! this release; a bring-your-own-font path will return in a later
//! release. In the meantime, register a CJK face into aetna-core's
//! `fontdb` directly via the public text-atlas APIs.
//!
//! Color emoji (NotoColorEmoji) is rendered through aetna-core's
//! unified RGBA atlas — outline glyphs are stored as
//! `(255, 255, 255, alpha)` and color emoji as native RGBA, so backends
//! sample one texture format and run one shader path.
//!
//! # API
//!
//! Each enabled font family re-exports a `pub static FOO: &[u8]`
//! constant from its sibling crate. The [`DEFAULT_FONTS`] slice
//! collects every byte slice that is enabled in the current build,
//! in priority order (sans-serif text first, then symbol / emoji
//! fallbacks). aetna-core's atlas loads them all into its `fontdb`
//! so cosmic-text's per-codepoint fallback can pick from them.
pub use ;
pub use ;
pub use ;
pub use NOTO_COLOR_EMOJI;
pub use ;
/// Byte slices for every font enabled in the current build, in priority
/// order: text faces first, then symbol / emoji fallbacks.
///
/// aetna-core loads every entry into its `fontdb`. cosmic-text's font
/// matcher then walks the database per codepoint when a primary face
/// lacks a glyph — the order here only documents intent; cosmic-text's
/// fallback is keyed on Unicode coverage, not list position.
pub const DEFAULT_FONTS: & = &;