# `MishkaBlogWeb.Templates.TagCard`
[🔗](https://github.com/mishka-group/mishka_blog/blob/v0.0.1/lib/mishka_blog_web/templates/tag_card.ex#L5)

The tags grid: one compact chip per tag, packed several to a row.

Declared only by `MishkaBlog.Tag`, and it reads that record directly rather than by column
position. A tag is small — a hash tile, a name, its language, and how many posts wear it — so the
chip is dense and the actions fold into the kebab menu the resource already declares as a
`dropdown` row-action layout, which `MishkaGervaz.Table.Templates.Shared.render_row_actions/1`
draws.

## The grid is intrinsic, not stepped

The track list is `repeat(auto-fill, minmax(min(100%, 220px), 1fr))`: a chip never goes below 220px
unless the viewport is narrower, so the column count falls from four to two to one on its own.

## Features
- `:filter` - the labelled filter row: search, site, language
- `:select` - per-chip selection for bulk operations
- `:bulk_actions` - bulk actions on the selected chips
- `:paginate` - the page-size picker and Load more under the grid

The list shows one chip per tag rather than one per translation
(`MishkaCmsCore.LanguageEditions`); a translated tag names its languages under its name
(`MishkaBlogWeb.Templates.EditionChips`), each the way to that edition.

The furniture is `MishkaCmsCoreWeb.Templates.CardChrome` and the controls are
`MishkaCmsCoreWeb.UIAdapters.Admin`, both shared with every other blog card page.

# `count`

```elixir
@spec count(map(), atom()) :: non_neg_integer()
```

One aggregate off the record, or 0 when it arrived unloaded.

# `icon`

The switcher draws the grid-of-squares glyph, identical to every other blog card page.

# `render_bulk_actions`

# `render_empty`

# `render_error`

# `render_filters`

# `render_header`

# `render_item`

One tag chip.

# `render_pagination`

# `render_template_switcher`

# `tint`

```elixir
@spec tint(map()) :: String.t()
```

The hash-tile tint, picked from the tag name so it never flickers between renders.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
