diff --git a/custom_cards/custom_card_imswel_medias/README.md b/custom_cards/custom_card_imswel_medias/README.md
new file mode 100644
index 000000000..6e137338b
--- /dev/null
+++ b/custom_cards/custom_card_imswel_medias/README.md
@@ -0,0 +1,81 @@
+---
+title: Custom Card Media
+hide:
+ - toc
+---
+
+
+
+# Custom Card "Media"
+
+These are some `custom-card` for your plex, radarr and sonarr media libraries.
+
+![example-image-radarr](../../docs/assets/img/custom_card_imswel_medias/medias_upcoming_radarr.png)
+![example-image-sonarr](../../docs/assets/img/custom_card_imswel_medias/medias_upcoming_sonarr.png)
+![example-image-plex](../../docs/assets/img/custom_card_imswel_medias/medias_library_plex.png)
+
+## Credits
+
+- Author: imswel - 2023
+- Version: 1.0.0
+
+## Changelog
+
+1.0.0
+Initial release
+
+| Variable | Default | Required | Notes |
+| ----------------------------- | ------- | -------- | ----------------------------------------------------------------------- |
+| ulm_custom_card_imswel_medias_index | 1 | Yes | The index of the item in your **Plex library** to show. |
+
+```yaml
+- type: custom:button-card
+ template: "custom_card_imswel_medias_library"
+ entity: sensor.plex_recently_added
+ variables:
+ ulm_custom_card_imswel_medias_index: 1
+```
+
+
+
+**Media Upcoming Card** for [Radarr Upcoming Media](https://github.com/custom-components/sensor.radarr_upcoming_media) & [Sonarr Upcoming Media](https://github.com/custom-components/sensor.sonarr_upcoming_media) :
+
+![example-image-radarr](../../docs/assets/img/custom_card_imswel_medias/medias_upcoming_radarr.png)
+![example-image-sonarr](../../docs/assets/img/custom_card_imswel_medias/medias_upcoming_sonarr.png)
+| Variable | Default | Required | Notes |
+| ----------------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------- |
+| ulm_custom_card_imswel_medias_index | 1 | Yes | The index of the item in your **Radarr/Sonarr library** to show. |
+| ulm_custom_card_imswel_medias_platform| radarr | Yes | The platform to choose depending on the selected entity.
Can be: **`radarr`** or **`sonarr`**.
|
+
+```yaml
+- type: custom:button-card
+ template: "custom_card_imswel_medias_upcoming"
+ entity: sensor.sonarr_upcoming_media
+ variables:
+ ulm_custom_card_imswel_medias_index: 1
+ ulm_custom_card_imswel_medias_platform: "sonarr"
+```
+
+## Template code
+
+??? note "Template Code"
+
+ ```yaml title="custom_card_imswel_medias.yaml"
+ --8<-- "custom_cards/custom_card_imswel_medias/custom_card_imswel_medias.yaml"
+ ```
diff --git a/custom_cards/custom_card_imswel_medias/custom_card_imswel_medias.yaml b/custom_cards/custom_card_imswel_medias/custom_card_imswel_medias.yaml
new file mode 100644
index 000000000..18ef50eca
--- /dev/null
+++ b/custom_cards/custom_card_imswel_medias/custom_card_imswel_medias.yaml
@@ -0,0 +1,223 @@
+---
+custom_card_imswel_medias:
+ show_icon: false
+ show_label: true
+ show_name: true
+ show_state: false
+ styles:
+ label:
+ - z-index: 2
+ - color: "white"
+ - font-weight: "bold"
+ - font-size: "12px"
+ - filter: "opacity(60%)"
+ name:
+ - z-index: 2
+ - color: "white"
+ - font-weight: "bold"
+ - font-size: "14px"
+ card:
+ - z-index: 0
+ - border-radius: "var(--border-radius)"
+ - box-shadow: "var(--box-shadow)"
+ - background-size: "cover"
+ - background-position: "center center"
+ - text-shadow: >
+ [[[
+ return entity == "undefined" ? "none" : "1px 1px 5px rgba(18, 22, 23, 0.9)";
+ ]]]
+
+custom_card_imswel_medias_library:
+ template:
+ - "custom_card_imswel_medias"
+ - "ulm_translation_engine"
+ - "custom_card_imswel_medias_language_variables"
+ variables:
+ ulm_custom_card_imswel_medias_index: 1
+ triggers_update: "[[[ return entity.entity_id; ]]]"
+ aspect_ratio: "5/2"
+ label: >
+ [[[
+ if (entity.state == "unavailable" || entity.state == "undefined"){
+ return variables.ulm_translation_unavailable;
+ } else{
+ var data = entity.attributes.data;
+ if (data[variables.ulm_custom_card_imswel_medias_index].number == undefined){
+ var number = '(' + data[variables.ulm_custom_card_imswel_medias_index].aired.split('-')[0] + ')';
+ } else{
+ var number = data[variables.ulm_custom_card_imswel_medias_index].number;
+ }
+ return `${data[variables.ulm_custom_card_imswel_medias_index].title} ${number}`;
+ }
+ ]]]
+ name: "[[[ return variables.ulm_custom_card_imswel_recentlyadded ]]]"
+ styles:
+ label:
+ - align-self: "start"
+ - justify-self: "start"
+ - margin-left: "12px"
+ name:
+ - align-self: "end"
+ - justify-self: "start"
+ - margin-left: "12px"
+ grid:
+ - grid-template-areas: "'icon .' 'n n' 'l l' '. .'"
+ - grid-template-rows: "auto repeat(2, min-content) 12px"
+ card:
+ - padding: "0px"
+ - background-image: >
+ [[[
+ return entity === undefined || `url(${states[entity.entity_id].attributes.data[variables.ulm_custom_card_imswel_medias_index].fanart})`;
+ ]]]
+ - border: "none"
+ custom_fields:
+ icon:
+ - z-index: 2
+ - align-self: "start"
+ - justify-self: "start"
+ - height: "24px"
+ - width: "24px"
+ - margin-left: "12px"
+ - margin-top: "12px"
+ blur:
+ - z-index: 1
+ - position: "absolute"
+ - top: 0
+ - left: 0
+ - height: "100%"
+ - width: "100%"
+ - border-radius: "var(--border-radius)"
+ - background: "linear-gradient(rgba(0,0,0,0) 40%, rgba(0,0,0,0.8) 100%)"
+ custom_fields:
+ icon: >
+
+ blur: >
+ [[[ return entity === undefined ? null : "