component
TuxFooter
The unified institutional footer. Maroon marketing top + black legal strip in a single component, mirroring the shape every tti.tamu.edu / tamu.edu / pvamu.edu surface uses. Earlier we shipped this as three pieces (slim app footer, marketing footer, TAMUS legal subfooter) — collapsed into one because every shipped TTI surface needs the same anchor. The black legal strip is mandatory and not configurable — TAMUS lockup, tagline, and state-agency links are fixed per AggieUX policy.
canonical
Full institutional footer
The shape used on the style guide itself, on marcom landing pages, and on docs sites. Pass columns and social to populate the marketing top; the black legal strip below renders unconditionally.
(page content)
<TuxFooter
:columns="[
{ heading: 'State Resources', links: [...] },
{ heading: 'Policies', links: [...] },
]"
:social="[
{ icon: 'lucide:linkedin', label: 'LinkedIn', href: '...' },
{ icon: 'lucide:facebook', label: 'Facebook', href: '...' },
...
]"
>
<template #preferences>
<button @click="toggleHighContrast">High-contrast mode</button>
</template>
</TuxFooter>app dashboard
Slim — no marketing columns
Drop the columns and social props and the maroon top compresses to just the identity block (logo + name + address + phone). The right shape for app contexts where marketing-y link grids would feel out of place — Landscape dashboards, tti-ai-studio sessions.
(page content)
<!-- Pass no columns / no social — you get the
identity block + mandatory legal strip. -->
<TuxFooter />props
Props
name— institution name. Defaults to TTI. Override for sibling-institution builds (PVAMU, Tarleton, WTAMU).address— multi-line address (split on newlines).phone— phone number, rendered as atel:link. Passnullto hide.logo— logo path. Defaults to/logo.svg; the component inverts it to render light-on-maroon.logoSize— px width/height. Defaults to 80.social— array of{ icon, label, href }. Renders as a circular-button row beneath the address. Pass empty to hide.columns— array of{ heading, links: [{ label, href?, to? }] }. Two columns is canonical; three+ works on wide containers. Pass empty to hide.year— © year. Defaults to current year.
Slot
#preferences— optional row beneath the state-agency links in the legal strip. Used in the style guide for the high-contrast toggle (per ADR-0006: accessibility-as-compliance).