defmodule PyrauiWeb.DocsLive.RatingDocs do use PyrauiWeb, :html def render(assigns) do ~H"""

Rating

Rating / Star input component for reviews and feedback with interactive star selection.

Basic Rating

<%= for i <- 1..5 do %> <% end %> 3/5

              <.rating field={@form[:rating]} />
            

Sizes

Small:

<%= for i <- 1..5 do %> <.icon name="hero-star" class="w-4 h-4 text-gray-300" /> <% end %>

Medium (default):

<%= for i <- 1..5 do %> <.icon name="hero-star" class="w-6 h-6 text-gray-300" /> <% end %>

Large:

<%= for i <- 1..5 do %> <.icon name="hero-star" class="w-8 h-8 text-gray-300" /> <% end %>

              <.rating field={@form[:score]} size={:sm} />
              <.rating field={@form[:score]} size={:md} />
              <.rating field={@form[:score]} size={:lg} />
            

Readonly Rating

<%= for i <- 1..5 do %>
<%= if i <= 4 do %> <.icon name="hero-star" class="w-6 h-6 text-yellow-400 fill-yellow-400" /> <% else %> <.icon name="hero-star" class="w-6 h-6 text-gray-300" /> <% end %>
<% end %> 4/5

              <.rating value={4} readonly={true} />
            

Custom Max Rating


              <.rating field={@form[:score]} max={10} />
            

Note

The rating component requires a JavaScript hook (RatingHook) for interactive star selection.

Props

Prop Type Default Description
field Phoenix.HTML.FormField nil Form field struct (optional)
value integer 0 Current rating value
max integer 5 Maximum rating (number of stars)
size :sm | :md | :lg :md Star size
readonly boolean false Display-only mode (no interaction)
""" end end