diff --git a/examples/basic_sprite.rs b/examples/basic_sprite.rs
index 8f498f28ee11895d6a4940271bac95916b1652d2..818f24d13b0a013998933bc80504898adefd6b31 100644
--- a/examples/basic_sprite.rs
+++ b/examples/basic_sprite.rs
@@ -1,5 +1,8 @@
 use bevy::{prelude::*, window::PrimaryWindow};
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, Family, Metrics},
+    *,
+};
 
 fn setup(
     mut commands: Commands,
diff --git a/examples/basic_ui.rs b/examples/basic_ui.rs
index a6b6ee23380f8d380711508c3b5d77c730c7bed9..7a6dffa195e1574b600642bd9b0b21204fb3f0ab 100644
--- a/examples/basic_ui.rs
+++ b/examples/basic_ui.rs
@@ -1,5 +1,8 @@
 use bevy::prelude::*;
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, Family, Metrics},
+    *,
+};
 
 fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
     let camera_bundle = Camera2dBundle {
diff --git a/examples/every_option.rs b/examples/every_option.rs
index 94646230ec956a4b42edfadd88b3ac5987254e8b..1104db37bcbcc59d6d95184c44b310aa889ec76e 100644
--- a/examples/every_option.rs
+++ b/examples/every_option.rs
@@ -1,5 +1,8 @@
 use bevy::prelude::*;
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, AttrsOwned, Metrics},
+    *,
+};
 
 #[derive(Resource)]
 struct TextChangeTimer(pub Timer);
diff --git a/examples/font_per_widget.rs b/examples/font_per_widget.rs
index 3c9804a009427de626db81ce53f205a3c1598eac..22856026f09565d5668acc255653242b23faef0c 100644
--- a/examples/font_per_widget.rs
+++ b/examples/font_per_widget.rs
@@ -1,7 +1,10 @@
 #![allow(clippy::type_complexity)]
 
 use bevy::prelude::*;
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, Family, Metrics},
+    *,
+};
 
 fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
     commands.spawn(Camera2dBundle::default());
diff --git a/examples/image_background.rs b/examples/image_background.rs
index e21c35a2fa7a6d59c885c04e81ff23af14edc2f6..7df8a51f358f9ab4445676be3c358af8dedfaa1b 100644
--- a/examples/image_background.rs
+++ b/examples/image_background.rs
@@ -1,5 +1,8 @@
 use bevy::prelude::*;
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, AttrsOwned},
+    *,
+};
 
 fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
     commands.spawn(Camera2dBundle::default());
diff --git a/examples/multiple_sprites.rs b/examples/multiple_sprites.rs
index de0012a9369803ea6c2a80cd85ab0eaedbdcfd1c..714b9430c514ef7cf61ef9e061d7305c113ba8b4 100644
--- a/examples/multiple_sprites.rs
+++ b/examples/multiple_sprites.rs
@@ -1,5 +1,8 @@
 use bevy::{prelude::*, window::PrimaryWindow};
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, Family, Metrics},
+    *,
+};
 
 fn setup(
     mut commands: Commands,
diff --git a/examples/password.rs b/examples/password.rs
index 290a2c7288cb9771ffe1ab1090906dfdf6325e09..d9655cc19fc95efda1674b129594e45c2c186386 100644
--- a/examples/password.rs
+++ b/examples/password.rs
@@ -1,5 +1,5 @@
 use bevy::prelude::*;
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{cosmic_text::Attrs, *};
 
 fn setup(mut commands: Commands) {
     commands.spawn(Camera2dBundle::default());
diff --git a/examples/placeholder.rs b/examples/placeholder.rs
index 69bda0982b485ea17f1ae7105ff89a70fe678134..bf099201adcfdd2e5797cb0d3f0462f962d40071 100644
--- a/examples/placeholder.rs
+++ b/examples/placeholder.rs
@@ -1,5 +1,8 @@
 use bevy::prelude::*;
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, Family, Metrics},
+    *,
+};
 
 fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
     let camera_bundle = Camera2dBundle {
diff --git a/examples/readonly.rs b/examples/readonly.rs
index 7dbaf3fa5ec489551e610509d2ddb9c57b4d6395..0e42c727705e35fa6dc9e0c45b22c4f7badce755 100644
--- a/examples/readonly.rs
+++ b/examples/readonly.rs
@@ -1,5 +1,8 @@
 use bevy::prelude::*;
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, Family, Metrics},
+    *,
+};
 
 fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
     commands.spawn(Camera2dBundle::default());
diff --git a/examples/sprite_and_ui_clickable.rs b/examples/sprite_and_ui_clickable.rs
index be242fc8dcf3713ecf3833b24d1b8f0bc228af06..362ce26f68d7ff48c8707811ae0cef8e5d203b9a 100644
--- a/examples/sprite_and_ui_clickable.rs
+++ b/examples/sprite_and_ui_clickable.rs
@@ -1,5 +1,8 @@
 use bevy::prelude::*;
-use bevy_cosmic_edit::*;
+use bevy_cosmic_edit::{
+    cosmic_text::{Attrs, AttrsOwned},
+    *,
+};
 
 fn setup(mut commands: Commands) {
     commands.spawn(Camera2dBundle::default());
diff --git a/src/buffer.rs b/src/buffer.rs
index 308705a8c49de5198ee5379179f6d2facc3436c6..69f90f829880287c86945f5496582bc9c05b08f2 100644
--- a/src/buffer.rs
+++ b/src/buffer.rs
@@ -1,5 +1,6 @@
 use crate::*;
 use bevy::{prelude::*, window::PrimaryWindow};
+use cosmic_text::{Attrs, AttrsOwned, Buffer, Edit, FontSystem, Metrics, Shaping};
 
 /// Set of all buffer setup functions. Runs in [`First`]
 #[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]
diff --git a/src/cosmic_edit.rs b/src/cosmic_edit.rs
index 41c6c18679c9b9e3d87d1eda6cdd1f4448758272..953b28d326594a96fbf97f0d4e225033a2c30a87 100644
--- a/src/cosmic_edit.rs
+++ b/src/cosmic_edit.rs
@@ -1,5 +1,6 @@
 use crate::*;
 use bevy::prelude::*;
+use cosmic_text::{Attrs, AttrsOwned, Editor, FontSystem};
 
 /// Enum representing text wrapping in a cosmic [`Buffer`]
 #[derive(Clone, Component, PartialEq, Default)]
diff --git a/src/lib.rs b/src/lib.rs
index b8ec0661717fe2df65d2c87ab431973e4a1165f4..18eeb5f8475b3684d153f36782d4ca6fe85cb4bc 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -102,11 +102,7 @@ use bevy::prelude::*;
 pub use buffer::*;
 pub use cosmic_edit::*;
 #[doc(no_inline)]
-pub use cosmic_text::{
-    Action, Attrs, AttrsOwned, Buffer, CacheKeyFlags, Color as CosmicColor, Cursor, Edit, Editor,
-    Family, FamilyOwned, FontSystem, Metrics, Shaping, Stretch, Style as FontStyle,
-    Weight as FontWeight,
-};
+pub use cosmic_text::{self, Color as CosmicColor, Style as FontStyle, Weight as FontWeight};
 pub use cursor::*;
 pub use events::*;
 pub use focus::*;
@@ -205,7 +201,7 @@ impl Default for CosmicFontConfig {
     }
 }
 
-fn create_cosmic_font_system(cosmic_font_config: CosmicFontConfig) -> FontSystem {
+fn create_cosmic_font_system(cosmic_font_config: CosmicFontConfig) -> cosmic_text::FontSystem {
     let locale = sys_locale::get_locale().unwrap_or_else(|| String::from("en-US"));
     let mut db = cosmic_text::fontdb::Database::new();
     if let Some(dir_path) = cosmic_font_config.fonts_dir_path.clone() {
@@ -234,13 +230,10 @@ mod tests {
         mut commands: Commands,
         mut font_system: ResMut<CosmicFontSystem>,
     ) {
-        let attrs = Attrs::new();
+        let attrs = cosmic_text::Attrs::new();
         commands.spawn(CosmicEditBundle {
-            buffer: CosmicBuffer::new(&mut font_system, Metrics::new(20., 20.)).with_rich_text(
-                &mut font_system,
-                vec![("Blah", attrs)],
-                attrs,
-            ),
+            buffer: CosmicBuffer::new(&mut font_system, cosmic_text::Metrics::new(20., 20.))
+                .with_rich_text(&mut font_system, vec![("Blah", attrs)], attrs),
             ..Default::default()
         });
     }
diff --git a/src/user_select.rs b/src/user_select.rs
index 8b0aa9528dc1b26f8b358143782eca1afe9b4a34..1c573e7118bfffb232645ed4d7a6298ba03d51ff 100644
--- a/src/user_select.rs
+++ b/src/user_select.rs
@@ -1,5 +1,6 @@
 use crate::*;
 use bevy::prelude::*;
+use cosmic_text::Edit;
 
 pub(crate) struct UserSelectPlugin;
 
diff --git a/src/util.rs b/src/util.rs
index 61bb4faca2a42a220f2c03fe077d6ec3f0221ad9..c4439f38ace588aa3468038ba0c52d6d34a2acdb 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -1,6 +1,7 @@
 // Common functions for examples
 use crate::*;
 use bevy::{prelude::*, window::PrimaryWindow};
+use cosmic_text::Edit;
 
 /// Trait for adding color conversion from [`bevy::prelude::Color`] to [`cosmic_text::Color`]
 pub trait ColorExtras {
diff --git a/src/widget.rs b/src/widget.rs
index 09509779480551c4f596c45495a6c700da7dbfb2..6e4b2f8e8169b01a7a7e76b1369c4d361ecb881e 100644
--- a/src/widget.rs
+++ b/src/widget.rs
@@ -1,6 +1,7 @@
 use crate::*;
 use bevy::{prelude::*, window::PrimaryWindow};
 use cosmic_text::Affinity;
+use cosmic_text::Edit;
 
 /// System set for cosmic text layout systems. Runs in [`PostUpdate`]
 #[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]