Brandkit Package

Cmash Brandkit — Feature Overview

Define your brand once (colours, fonts, logos, wording) and have every template and document use it.


What Is Cmash Brandkit?

A brandkit bundles the building blocks of a brand's look and voice. Templates that use a brandkit receive these values automatically, so a change in the brandkit updates all linked templates and documents. Marketing teams maintain it through a simple form, with no template editing.


Key Features

General

  • Basics — name, URL identifier (slug), description, logo, active switch.
  • Group assignment — optional, to scope the brandkit to a brand or team, with a shortcut to open the group. New brandkits default to the currently selected group.
  • Languages — the languages the brandkit supports (empty = inherits from the brand or all languages).
  • Multiple brandkits per brand — for example light, dark, print; change history for every edit.
  • "Used by" overview — see which templates and documents use a brandkit.

Brand Colours

  • Named colours edited with a visual colour picker supporting CMYK, RGB, Hex and Luma.
  • Template access — available as #let color-{name}.
  • Convenient — reorder, and copy the variable name with one click.

Brand Assets

  • Library assets under your own keys — logos, icons and images chosen with an asset browser and preview.
  • Template access — #let asset-{key} = "assets/{slug}.{ext}"; templates inherit these assets.

Brand Fonts

  • Font mapping — map a key to a font family, with a browser of the installed fonts.
  • Template access — #let font-{name} = "Font Family".

Phrases and Translations

  • Recurring text — slogans, legal lines and claims with a translation per language.
  • Template access — read via t.{key}; edit once, every document follows.

Variables

  • Custom named values as Typst expressions, available in every template using the brandkit, with a built-in help hint.

Packages and Snippets

  • Automatic imports — choose installed Typst packages and snippets to import in every template of the brandkit.
  • Import modes — module, all, or specific functions; a parser button detects a package's or snippet's exports so you can pick them.
  • Reference — the always-imported CMAsh snippets are shown.

Integrations & API

Token-secured (Laravel Sanctum):

Method Endpoint Description
GET /api/brandkits List (filters: active, search, group_id; paginated, default 15).
POST /api/brandkits Create.
GET /api/brandkits/{brandkit} Retrieve.
PUT /api/brandkits/{brandkit} Update.
DELETE /api/brandkits/{brandkit} Delete.

The API validates name, slug, description, colours, fonts, logo, group and active state; phrases, variables, assets and imports are edited in the admin panel.

Integrates with the Template, Document, Typst and Asset modules (linked templates/documents, package and snippet imports, asset picker).


Permissions & Dependencies

  • Requires CMAsh core (enobis/cmash), CMAsh Group (enobis/cmash-group), Filament 5, Laravel Sanctum, PHP 8.3+.
  • No roles of its own; standard resource permissions apply.
  • Group restrictions of the user limit which groups can be selected.

Configuration

No config file, no environment variables, no settings page.

Item Value
Config keys / env vars none
Navigation Configuration → Brandkit (sort 20)
Database table cmash_brandkits
Logo storage public disk, directory brandkits/logos

Use Cases

  • Consistent brand identity — one source for colours, fonts, logos and claims across all documents.
  • Multi-variant brands — light, dark and print brandkits for one brand.
  • Marketing self-service — update slogans or legal lines without touching templates.
  • Multi-language wording — translated phrases maintained centrally.

Cmash Brandkit: your brand, applied consistently.