diff --git a/lib/atomic_web/components/dropdown.ex b/lib/atomic_web/components/dropdown.ex
new file mode 100644
index 000000000..38ffa92a8
--- /dev/null
+++ b/lib/atomic_web/components/dropdown.ex
@@ -0,0 +1,45 @@
+defmodule AtomicWeb.Components.Dropdown do
+ @moduledoc false
+ use Phoenix.Component
+
+ import AtomicWeb.Components.Icon
+ alias Phoenix.LiveView.JS
+
+ attr :id, :string, required: true, doc: "The id of the dropdown."
+
+ attr :items, :list, default: [], doc: "The items to display in the dropdown."
+
+ attr :icon_variant, :atom,
+ default: :outline,
+ values: [:solid, :outline, :mini],
+ doc: "The icon variation to display."
+
+ attr :orientation, :atom,
+ default: :down,
+ doc: "The orientation of the dropdown.",
+ values: [:down, :up]
+
+ slot :wrapper,
+ required: true,
+ doc: "Slot to be rendered as a wrapper of the dropdown. For example, a custom button."
+
+ def dropdown(assigns) do
+ ~H"""
+