# BrandGuidelines

> A brand guidelines page with downloadable marks on light and dark grounds, copyable palette swatches, typography, do and dont rules and social cards. It shows only assets that are passed in or already in the repo.

Source: https://docs.nasaqui.com/components/brand-guidelines

## Install

```bash
npx shadcn@latest add https://docs.nasaqui.com/r/brand-guidelines.json
```

One page that says how a brand is used. By default it reads the brand package: the mark comes from the brand's own
specification (downloaded unchanged as SVG on a light and a dark ground) and the palette from its manifest. Nothing is
invented here.

## When to use

- A brand or press page for a Nasaq product, or for a client brand you pass assets for.

## When not to use

- Do not use it to show a logo you were not given. It never draws a logo of its own and offers no font files.

## Import

```tsx
import { BrandGuidelines } from "@fadymondy/nasaq/web";
```

## Quick start

```tsx
import { BrandGuidelines } from "@fadymondy/nasaq/web";

export function Page() {
  return <BrandGuidelines brand="nasaq" intro="How to use the Nasaq mark and colours." />;
}
```

## API

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `brand` | `BrandKey` | required | The brand to document. |
| `title`, `intro` | `ReactNode` | label | Heading and lead. |
| `assets` | `BrandAsset[]` | official mark, light and dark | `id`, `name`, `format`, `href`, `filename`, `ground`, `preview`. |
| `colors` | `BrandColor[]` | the brand's palette | `id`, `name`, `value`, `usage`, `onColor`. Copy button per swatch. |
| `fonts` | `BrandFont[]` | none | Family, role, sample, weights, licence line and link. Names and specimens only. |
| `dos` / `donts` | `BrandRule[]` | built-in logo and colour rules | Text, plus an optional `example` you supply. Pass `[]` to hide. |
| `ogCards` | `BrandOgCard[]` | none | A finished `image`, or a live layout with the mark and text. |
| `onDownload` | `(asset) => void` | none | Fires on a download click. |
| `labels` | `BrandGuidelinesLabels` | en and ar | |

The parts are exported too: `BrandAssetCard`, `BrandSwatch`, `BrandDoDont`, `BrandOgCardView`. Helpers: `brandPalette`,
`brandMarkDownloads`, `paletteFromManifest`, `markDownloadItems`, `svgDataUri`, `brandColorCopyValue`, `ogSizeLabel`.

## Accessibility

Sections are landmarks labelled by their headings, with an in-page nav. Do and Don't carry an icon and a word. Copy
and download buttons have names that include the colour or file.

## RTL & i18n

The page mirrors. Colour values, sizes and font names stay left to right. The mark itself is never mirrored.

## Styling & tokens

Page chrome uses Nasaq tokens. Swatches show the brand's own values, which are data, not tokens.

## Do / Don't

- Do pass assets you have the right to show.
- Do not recolour, mirror, distort or redraw an official logo, and do not swap in a generic icon.
- Do not invent a palette when the brand has one.
- Do not redistribute font files unless the licence allows it.

## Related

- [ProductMark](https://docs.nasaqui.com/components/product-mark)
- [CopyButton](https://docs.nasaqui.com/components/copy-button)

## Lab

https://docs.nasaqui.com/?path=/docs/components-brand-brand-guidelines--docs

## Code

### React

```tsx
import { BrandGuidelines } from "@fadymondy/nasaq/web";

export function Page() {
  return <BrandGuidelines brand="nasaq" intro="How to use the Nasaq mark and colours." />;
}
```

### shadcn

```tsx
import { BrandGuidelines } from "@/components/ui/brand-guidelines";

export function Page() {
  return <BrandGuidelines brand="nasaq" intro="How to use the Nasaq mark and colours." />;
}
```

### Vue

```vue
<script setup lang="ts">
import { NqBrandGuidelines } from "@fadymondy/nasaq/vue";
</script>

<template>
  <NqBrandGuidelines brand="nasaq" intro="How to use the Nasaq mark and colours." />
</template>
```

### Blade

```blade
<x-nq::brand-guidelines brand="nasaq" intro="How to use the Nasaq mark and colours." />
```

### HTML + Alpine

```html
<div data-slot="brand-guidelines" class="flex min-w-0 flex-col gap-10">
    <header class="flex flex-col gap-4">
        <span data-slot="product-logo" class="inline-flex items-center gap-2">
    <svg data-slot="product-mark" viewBox="0 0 100 100" width="40" height="40"  aria-hidden="true"  shape-rendering="crispEdges"  class="shrink-0">
            <g class="dark:hidden">
                            <rect x="0" y="20" width="20" height="20" fill="#15694A" />
                            <rect x="80" y="20" width="20" height="20" fill="#15694A" />
                            <rect x="20" y="40" width="20" height="20" fill="#15694A" />
                            <rect x="60" y="40" width="20" height="20" fill="#15694A" />
                            <rect x="40" y="60" width="20" height="20" fill="#C9A227" />
                    </g>
        <g class="hidden dark:block">
                            <rect x="0" y="20" width="20" height="20" fill="#4CC495" />
                            <rect x="80" y="20" width="20" height="20" fill="#4CC495" />
                            <rect x="20" y="40" width="20" height="20" fill="#4CC495" />
                            <rect x="60" y="40" width="20" height="20" fill="#4CC495" />
                            <rect x="40" y="60" width="20" height="20" fill="#C9A227" />
                    </g>
    </svg>
            <span dir="ltr" class="font-mono font-medium tracking-[0.14em] uppercase text-foreground" style="font-size: 24px">NASAQ</span>
    </span>
        <h1 class="text-h1 text-foreground">Brand guidelines</h1>
        <p class="max-w-prose text-body text-muted-foreground">How to use the Nasaq mark and colours.</p>                    <nav aria-label="Sections">
                <div data-slot="scroll-fade" role="region" aria-label="Sections" x-data="nqScrollFade(32)" x-bind="root"
    class="overflow-x-auto overscroll-x-contain outline-none [scrollbar-width:none] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus [&::-webkit-scrollbar]:hidden">
    <div class="flex w-max min-w-full items-center gap-2"><a data-slot="button"
     href="#brand-nasaq-logo"                         class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-border bg-card text-foreground hover:bg-nq-hover h-control-sm px-2.5">
        Logo</a>
                                            <a data-slot="button"
     href="#brand-nasaq-color"                         class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-border bg-card text-foreground hover:bg-nq-hover h-control-sm px-2.5">
        Colour</a>
                                            <a data-slot="button"
     href="#brand-nasaq-usage"                         class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-border bg-card text-foreground hover:bg-nq-hover h-control-sm px-2.5">
        Usage</a></div>
</div>
            </nav>
            </header>
            <section aria-labelledby="brand-nasaq-logo" class="flex flex-col gap-4">
            <div class="flex flex-col gap-1">
                <h2 id="brand-nasaq-logo" class="text-h2 text-foreground">Logo</h2>
                <p class="max-w-prose text-body text-muted-foreground">The mark is drawn from the brand&#039;s own specification. Use these files as they are.</p>
            </div>
            <div class="grid gap-4 sm:grid-cols-2">
                                    <div data-slot="brand-asset-card" class="flex flex-col gap-4 rounded-card border border-border bg-card py-4 text-card-foreground overflow-hidden">
    <div data-theme="light" class="flex aspect-[16/10] items-center justify-center border-b border-border bg-background p-6">
        <svg data-slot="product-mark" viewBox="0 0 100 100" width="72" height="72"  aria-hidden="true"  shape-rendering="crispEdges"  class="shrink-0">
                        <rect x="0" y="20" width="20" height="20" fill="#15694A" />
                    <rect x="80" y="20" width="20" height="20" fill="#15694A" />
                    <rect x="20" y="40" width="20" height="20" fill="#15694A" />
                    <rect x="60" y="40" width="20" height="20" fill="#15694A" />
                    <rect x="40" y="60" width="20" height="20" fill="#C9A227" />
            </svg>
    </div>
    <div class="flex items-center justify-between gap-3 p-3">
        <div class="flex min-w-0 flex-col gap-0.5">
            <span class="flex items-center gap-2 text-label text-foreground">
                <span data-slot="user-text" dir="auto"      class="[unicode-bidi:isolate] text-start truncate">
    Mark on a light ground</span>
                <span data-slot="badge"     class="inline-flex h-5 shrink-0 items-center gap-1 whitespace-nowrap rounded-[4px] border px-1.5 text-caption font-medium [&_svg]:size-3 border-border text-muted-foreground">SVG</span>
            </span>
                    </div>
        <a data-slot="button"
     href="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Ctitle%3ENasaq%3C%2Ftitle%3E%3Crect%20class%3D%22b%22%20x%3D%220%22%20y%3D%2220%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%2315694A%22%2F%3E%3Crect%20class%3D%22b%22%20x%3D%2280%22%20y%3D%2220%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%2315694A%22%2F%3E%3Crect%20class%3D%22b%22%20x%3D%2220%22%20y%3D%2240%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%2315694A%22%2F%3E%3Crect%20class%3D%22b%22%20x%3D%2260%22%20y%3D%2240%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%2315694A%22%2F%3E%3Crect%20x%3D%2240%22%20y%3D%2260%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%23C9A227%22%2F%3E%3C%2Fsvg%3E"                         download="nasaq-mark.svg" aria-label="Download Mark on a light ground" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-border bg-card text-foreground hover:bg-nq-hover h-control-sm px-2.5">
        <svg data-slot="icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M12 15V3"/>
  <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
  <path d="m7 10 5 5 5-5"/>
</svg>            Download</a>
    </div>
</div>
                                    <div data-slot="brand-asset-card" class="flex flex-col gap-4 rounded-card border border-border bg-card py-4 text-card-foreground overflow-hidden">
    <div data-theme="dark" class="flex aspect-[16/10] items-center justify-center border-b border-border bg-background p-6">
        <svg data-slot="product-mark" viewBox="0 0 100 100" width="72" height="72"  aria-hidden="true"  shape-rendering="crispEdges"  class="shrink-0">
                        <rect x="0" y="20" width="20" height="20" fill="#4CC495" />
                    <rect x="80" y="20" width="20" height="20" fill="#4CC495" />
                    <rect x="20" y="40" width="20" height="20" fill="#4CC495" />
                    <rect x="60" y="40" width="20" height="20" fill="#4CC495" />
                    <rect x="40" y="60" width="20" height="20" fill="#C9A227" />
            </svg>
    </div>
    <div class="flex items-center justify-between gap-3 p-3">
        <div class="flex min-w-0 flex-col gap-0.5">
            <span class="flex items-center gap-2 text-label text-foreground">
                <span data-slot="user-text" dir="auto"      class="[unicode-bidi:isolate] text-start truncate">
    Mark on a dark ground</span>
                <span data-slot="badge"     class="inline-flex h-5 shrink-0 items-center gap-1 whitespace-nowrap rounded-[4px] border px-1.5 text-caption font-medium [&_svg]:size-3 border-border text-muted-foreground">SVG</span>
            </span>
                    </div>
        <a data-slot="button"
     href="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Ctitle%3ENasaq%3C%2Ftitle%3E%3Crect%20class%3D%22b%22%20x%3D%220%22%20y%3D%2220%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%234CC495%22%2F%3E%3Crect%20class%3D%22b%22%20x%3D%2280%22%20y%3D%2220%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%234CC495%22%2F%3E%3Crect%20class%3D%22b%22%20x%3D%2220%22%20y%3D%2240%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%234CC495%22%2F%3E%3Crect%20class%3D%22b%22%20x%3D%2260%22%20y%3D%2240%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%234CC495%22%2F%3E%3Crect%20x%3D%2240%22%20y%3D%2260%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%23C9A227%22%2F%3E%3C%2Fsvg%3E"                         download="nasaq-mark-on-dark.svg" aria-label="Download Mark on a dark ground" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-border bg-card text-foreground hover:bg-nq-hover h-control-sm px-2.5">
        <svg data-slot="icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M12 15V3"/>
  <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
  <path d="m7 10 5 5 5-5"/>
</svg>            Download</a>
    </div>
</div>
                            </div>
        </section>
            <section aria-labelledby="brand-nasaq-color" class="flex flex-col gap-4">
            <div class="flex flex-col gap-1">
                <h2 id="brand-nasaq-color" class="text-h2 text-foreground">Colour</h2>
                <p class="max-w-prose text-body text-muted-foreground">Copy a value and use it exactly. Do not adjust a brand colour to suit a layout.</p>
            </div>
            <div class="grid grid-cols-1 gap-4 min-[420px]:grid-cols-2 lg:grid-cols-3">
                                    <div data-slot="brand-swatch" class="flex min-w-0 flex-col overflow-hidden rounded-card border border-border bg-card">
    <div class="flex h-20 items-end justify-between p-3" style="background-color: #15694A">
            </div>
    <div class="flex items-center justify-between gap-2 p-3">
        <div class="flex min-w-0 flex-col">
            <span class="truncate text-label text-foreground">Brand, light</span>
            <bdi dir="ltr" class="font-mono text-caption uppercase text-muted-foreground">#15694A</bdi>
                    </div>
        <span class="contents" x-data="nqCopyButton('#15694A', 1500)">
    <button data-slot="copy-button"
     type="button"                         aria-label="Copy #15694A" x-on:click="copy()" x-bind:data-copied="state === &#039;copied&#039; ? &#039;&#039; : null" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border border-transparent font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-foreground hover:bg-nq-hover size-control-sm p-0 data-copied:text-nq-success-text">
        <svg aria-hidden="true" x-show="state !== 'copied'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <rect width="14" height="14" x="8" y="8" rx="2" ry="2"/>
  <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>
</svg>        <svg aria-hidden="true" x-show="state === 'copied'" style="display: none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M20 6 9 17l-5-5"/>
</svg></button>
    <span data-slot="copy-button-status" role="status" aria-live="polite" class="sr-only"
        data-copied-label="Copied #15694A" data-failed-label="Could not copy"
        x-text="state === 'copied' ? $el.dataset.copiedLabel : state === 'failed' ? $el.dataset.failedLabel : ''"></span>
</span>
    </div>
</div>
                                    <div data-slot="brand-swatch" class="flex min-w-0 flex-col overflow-hidden rounded-card border border-border bg-card">
    <div class="flex h-20 items-end justify-between p-3" style="background-color: #4CC495">
            </div>
    <div class="flex items-center justify-between gap-2 p-3">
        <div class="flex min-w-0 flex-col">
            <span class="truncate text-label text-foreground">Brand, dark</span>
            <bdi dir="ltr" class="font-mono text-caption uppercase text-muted-foreground">#4CC495</bdi>
                    </div>
        <span class="contents" x-data="nqCopyButton('#4CC495', 1500)">
    <button data-slot="copy-button"
     type="button"                         aria-label="Copy #4CC495" x-on:click="copy()" x-bind:data-copied="state === &#039;copied&#039; ? &#039;&#039; : null" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border border-transparent font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-foreground hover:bg-nq-hover size-control-sm p-0 data-copied:text-nq-success-text">
        <svg aria-hidden="true" x-show="state !== 'copied'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <rect width="14" height="14" x="8" y="8" rx="2" ry="2"/>
  <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>
</svg>        <svg aria-hidden="true" x-show="state === 'copied'" style="display: none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M20 6 9 17l-5-5"/>
</svg></button>
    <span data-slot="copy-button-status" role="status" aria-live="polite" class="sr-only"
        data-copied-label="Copied #4CC495" data-failed-label="Could not copy"
        x-text="state === 'copied' ? $el.dataset.copiedLabel : state === 'failed' ? $el.dataset.failedLabel : ''"></span>
</span>
    </div>
</div>
                                    <div data-slot="brand-swatch" class="flex min-w-0 flex-col overflow-hidden rounded-card border border-border bg-card">
    <div class="flex h-20 items-end justify-between p-3" style="background-color: #15694A">
        <span class="text-h3" style="color: #F0EBE1">Aa</span>    </div>
    <div class="flex items-center justify-between gap-2 p-3">
        <div class="flex min-w-0 flex-col">
            <span class="truncate text-label text-foreground">Action, light</span>
            <bdi dir="ltr" class="font-mono text-caption uppercase text-muted-foreground">#15694A</bdi>
                    </div>
        <span class="contents" x-data="nqCopyButton('#15694A', 1500)">
    <button data-slot="copy-button"
     type="button"                         aria-label="Copy #15694A" x-on:click="copy()" x-bind:data-copied="state === &#039;copied&#039; ? &#039;&#039; : null" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border border-transparent font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-foreground hover:bg-nq-hover size-control-sm p-0 data-copied:text-nq-success-text">
        <svg aria-hidden="true" x-show="state !== 'copied'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <rect width="14" height="14" x="8" y="8" rx="2" ry="2"/>
  <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>
</svg>        <svg aria-hidden="true" x-show="state === 'copied'" style="display: none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M20 6 9 17l-5-5"/>
</svg></button>
    <span data-slot="copy-button-status" role="status" aria-live="polite" class="sr-only"
        data-copied-label="Copied #15694A" data-failed-label="Could not copy"
        x-text="state === 'copied' ? $el.dataset.copiedLabel : state === 'failed' ? $el.dataset.failedLabel : ''"></span>
</span>
    </div>
</div>
                                    <div data-slot="brand-swatch" class="flex min-w-0 flex-col overflow-hidden rounded-card border border-border bg-card">
    <div class="flex h-20 items-end justify-between p-3" style="background-color: #4CC495">
        <span class="text-h3" style="color: #0E1A3C">Aa</span>    </div>
    <div class="flex items-center justify-between gap-2 p-3">
        <div class="flex min-w-0 flex-col">
            <span class="truncate text-label text-foreground">Action, dark</span>
            <bdi dir="ltr" class="font-mono text-caption uppercase text-muted-foreground">#4CC495</bdi>
                    </div>
        <span class="contents" x-data="nqCopyButton('#4CC495', 1500)">
    <button data-slot="copy-button"
     type="button"                         aria-label="Copy #4CC495" x-on:click="copy()" x-bind:data-copied="state === &#039;copied&#039; ? &#039;&#039; : null" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border border-transparent font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-foreground hover:bg-nq-hover size-control-sm p-0 data-copied:text-nq-success-text">
        <svg aria-hidden="true" x-show="state !== 'copied'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <rect width="14" height="14" x="8" y="8" rx="2" ry="2"/>
  <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>
</svg>        <svg aria-hidden="true" x-show="state === 'copied'" style="display: none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M20 6 9 17l-5-5"/>
</svg></button>
    <span data-slot="copy-button-status" role="status" aria-live="polite" class="sr-only"
        data-copied-label="Copied #4CC495" data-failed-label="Could not copy"
        x-text="state === 'copied' ? $el.dataset.copiedLabel : state === 'failed' ? $el.dataset.failedLabel : ''"></span>
</span>
    </div>
</div>
                                    <div data-slot="brand-swatch" class="flex min-w-0 flex-col overflow-hidden rounded-card border border-border bg-card">
    <div class="flex h-20 items-end justify-between p-3" style="background-color: #C9A227">
            </div>
    <div class="flex items-center justify-between gap-2 p-3">
        <div class="flex min-w-0 flex-col">
            <span class="truncate text-label text-foreground">Accent</span>
            <bdi dir="ltr" class="font-mono text-caption uppercase text-muted-foreground">#C9A227</bdi>
                    </div>
        <span class="contents" x-data="nqCopyButton('#C9A227', 1500)">
    <button data-slot="copy-button"
     type="button"                         aria-label="Copy #C9A227" x-on:click="copy()" x-bind:data-copied="state === &#039;copied&#039; ? &#039;&#039; : null" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border border-transparent font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-foreground hover:bg-nq-hover size-control-sm p-0 data-copied:text-nq-success-text">
        <svg aria-hidden="true" x-show="state !== 'copied'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <rect width="14" height="14" x="8" y="8" rx="2" ry="2"/>
  <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>
</svg>        <svg aria-hidden="true" x-show="state === 'copied'" style="display: none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M20 6 9 17l-5-5"/>
</svg></button>
    <span data-slot="copy-button-status" role="status" aria-live="polite" class="sr-only"
        data-copied-label="Copied #C9A227" data-failed-label="Could not copy"
        x-text="state === 'copied' ? $el.dataset.copiedLabel : state === 'failed' ? $el.dataset.failedLabel : ''"></span>
</span>
    </div>
</div>
                            </div>
        </section>
            <section aria-labelledby="brand-nasaq-usage" class="flex flex-col gap-4">
            <div class="flex flex-col gap-1">
                <h2 id="brand-nasaq-usage" class="text-h2 text-foreground">Usage</h2>
                <p class="max-w-prose text-body text-muted-foreground">How the marks and colours are and are not used.</p>
            </div>
            <div data-slot="brand-do-dont" class="grid gap-6 sm:grid-cols-2">
            <section aria-label="Do" class="flex min-w-0 flex-col gap-3">
            <h4 class="flex items-center gap-2 text-label text-nq-success-text">
                <svg data-slot="icon" aria-hidden="true" class="size-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M20 6 9 17l-5-5"/>
</svg>                Do
            </h4>
            <ul class="flex flex-col gap-3">
                                    <li class="flex flex-col gap-1 rounded-card border bg-card p-3 border-nq-success/40">
                                                <span class="text-label text-foreground">Use the mark as supplied</span>
                        <span class="text-body-sm text-muted-foreground">Take the file from this page. It is generated from the brand&#039;s specification.</span>                    </li>
                                    <li class="flex flex-col gap-1 rounded-card border bg-card p-3 border-nq-success/40">
                                                <span class="text-label text-foreground">Keep clear space</span>
                        <span class="text-body-sm text-muted-foreground">Leave at least the width of one cube on every side.</span>                    </li>
                                    <li class="flex flex-col gap-1 rounded-card border bg-card p-3 border-nq-success/40">
                                                <span class="text-label text-foreground">Use the colour pairs listed</span>
                        <span class="text-body-sm text-muted-foreground">The dark-ground colours are for dark grounds, the light ones for light.</span>                    </li>
                            </ul>
        </section>
            <section aria-label="Don&#039;t" class="flex min-w-0 flex-col gap-3">
            <h4 class="flex items-center gap-2 text-label text-nq-danger-text">
                <svg data-slot="icon" aria-hidden="true" class="size-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M18 6 6 18"/>
  <path d="m6 6 12 12"/>
</svg>                Don&#039;t
            </h4>
            <ul class="flex flex-col gap-3">
                                    <li class="flex flex-col gap-1 rounded-card border bg-card p-3 border-nq-danger/40">
                                                <span class="text-label text-foreground">Do not recolour the mark</span>
                        <span class="text-body-sm text-muted-foreground">Its body and its accent cube keep their colours on every ground.</span>                    </li>
                                    <li class="flex flex-col gap-1 rounded-card border bg-card p-3 border-nq-danger/40">
                                                <span class="text-label text-foreground">Do not mirror, stretch or redraw it</span>
                        <span class="text-body-sm text-muted-foreground">It does not flip in right-to-left layouts.</span>                    </li>
                                    <li class="flex flex-col gap-1 rounded-card border bg-card p-3 border-nq-danger/40">
                                                <span class="text-label text-foreground">Do not swap in a generic icon</span>
                        <span class="text-body-sm text-muted-foreground">If the mark is unavailable, use the brand name as text.</span>                    </li>
                                    <li class="flex flex-col gap-1 rounded-card border bg-card p-3 border-nq-danger/40">
                                                <span class="text-label text-foreground">Do not invent colours</span>
                        <span class="text-body-sm text-muted-foreground">Use only the palette on this page.</span>                    </li>
                            </ul>
        </section>
    </div>
        </section>
    </div>
```
