Relationship: A ShruggieTech project
Write Local Media Gallery as the name; use localmedia.gallery only as an address.
The exact approved words and role labels appear on the cover.
Use the exact delivered masters described on the Logo system sheet. Formal colors and their measured uses are on the Color sheet. Display Space Grotesk, body Geist, and mono Geist Mono are the declared type families.
Where each asset belongs: The Asset catalog lists verified marks, lockups, icons, and platform deliveries by intended surface and size.
Keep delivered artwork geometry unchanged. The Logo system sheet gives measured sizes and clear space.
Mark: Use the larger icon beside Local Media above Gallery. Preserve the supplied hierarchy and proportions. Keep the domain for address use.
Color: The formal identity uses Jade on dark surfaces and Deep Jade on light surfaces.
Use the larger icon beside Local Media above Gallery. Preserve the supplied hierarchy and proportions. Keep the domain for address use. Mark means symbol; wide and stacked lockups are separate. Clear means transparent; light and dark name the viewing surface. See Asset Language in the main manual.
One clear-space unit on every side: 100 units on the 1000 × 1000 canvas, 12.9 percent of artwork width. No text, border, icon or crop enters that band.
| mark | 16 px |
| horizontal | 200 px |
| stacked | 160 px |
| wordmark | 160 px |
Below 32 px the reduced master takes over. It ships as its own file. Do not rasterize the full mark down at runtime.
| Lockup | Mark height | Gap | Alignment |
|---|---|---|---|
| Horizontal | 160 units | 36 units | Optical center |
| Stacked | 4.00C | 0.65C | Centered on wordmark ink width |
The horizontal row records its approved master composition. C is the outlined wordmark cap height used by the stacked lockup. X is the clear-space unit declared above. Keep one X clear around every master and never resize the mark and wordmark independently.
The formal identity uses Jade on dark surfaces and Deep Jade on light surfaces.
The bright accent #69D4BB measures 1.64:1 on the light reading surface and is never text there. The light token block substitutes #08745F at 5.24:1 automatically. The legal foreground on an accent fill is #000000 at 11.74:1. Every fill token in brand.json carries its measured foreground.
| Color | Means |
|---|---|
| Accent | Primary value, selection, links, focus |
| Emphasis | Needs attention, threshold exceeded |
| Destructive | Failed or timed out. Always with text. |
The emphasis and failure colors may not be reliably separable under deuteranopia. That is acceptable only because state is never carried by color alone: every state ships a written label.
Chart colors serve data visualization. Brand applications use the identity accent and the neutral surfaces. Each chart color is derived from the identity accent and measured against its surface so every entry clears 4.5:1.
Lightness is calculated separately for dark and light surfaces. Data charts also use labels or shapes; hue alone does not carry meaning.
| Series | Dark | Light |
|---|---|---|
| chart-1 | #69D4BB | #08745F |
| chart-2 | #B0C982 | #5B6B30 |
| chart-3 | #75CAEF | #1C6D88 |
| chart-4 | #E5B375 | #825A26 |
| chart-5 | #B1B7FC | #585E93 |
Series order is fixed: chart-1 is always the primary measurement. Never reorder to make a chart look better. Never introduce a sixth color; past five series, switch to a form that does not depend on hue. A series never uses the semantic emphasis or failure colors, because those carry state.
Local Media Gallery uses three approved type families. Space Grotesk handles display text, Geist handles interface and reading text, and Geist Mono is reserved for literal command blocks.
| Function | Typeface | Weights |
|---|---|---|
| Display, headings | Space Grotesk | 500, 700 |
| Body, interface | Geist | 400, 500 |
| Literal code blocks | Geist Mono | 400 |
| Axis | Value |
|---|---|
| Radii | 6 / 8 / 12 / 16 / pill |
| Spacing | 4 8 12 16 24 32 48 64 96 120 |
| Focus | 2px ring at 2px offset |
Only the listed local faces are approved. Any other weight makes the renderer synthesize a faux bold, which prints badly and forces outlined glyphs into exported PDFs. Courier Prime is used only for literal command blocks.
| Token | Size | Tracking |
|---|---|---|
| display-xl | 72 | -0.030em |
| display-lg | 56 | -0.025em |
| display-md | 40 | -0.020em |
| display-sm | 28 | -0.015em |
| display-xs | 20 | -0.010em |
| Token | Size | Leading |
|---|---|---|
| body-lg | 18.4 | 1.6 |
| body-md | 16 | 1.7 |
| body-sm | 14 | 1.6 |
| body-xs | 12 | 1.5 |
| eyebrow | 12 | 0.12em caps |
Local Media Gallery declares ShruggieTech parentage. Palette sharing and typography are separate explicit choices. The approved mark and colors remain this brand's own source decisions.
The approved mono family, uppercase, positive tracking. Visually subordinate and outside the logo clear space. Never a combined parent-product lockup.
The catalog lists installable theme and component items. For offline fonts, copy nextjs/fonts.ts and fonts/ together from the kit.
| Path | Contents | n |
|---|---|---|
| logos/svg/ | Vector masters, every lockup and colorway | 22 |
| icons/ | Web, Android, Apple, macOS, and Windows application suites | 124 |
| favicons/ | Compatibility aliases for the authoritative web suite | 20 |
| fonts/woff2/ | Web faces plus OFL licences | 5 |
| tokens/ | CSS and JSON with measured contrast | 6 |
| Path | Contents | n |
|---|---|---|
| nextjs/ | globals.css, shadcn registry, fonts, provider | 9 |
| enforcement/ | AGENTS.md, ESLint, stylelint | 21 |
| qc/ | Contact sheets. Proof somebody looked. | 162 |
| guidelines/ | The system rendered from itself | 2 |
| Decision | Declaration |
|---|---|
| Ownership | ShruggieTech owned |
| Parent | ShruggieTech |
| Palette | Brand-specific emphasis and action |
| Typography | House families |
Colors for actions and states are distinct from formal identity artwork. A shared HEX is a deliberate choice; meaning also uses words, icons, outlines, or state attributes.
| Color | HEX | Source | Use |
|---|---|---|---|
| Gallery Jade | #69D4BB | brand.accent.bright | Identity artwork on dark surfaces |
| Deep Jade | #08745F | brand.accent.accessible | Identity artwork and readable accent on light surfaces |
| Application | Colors and artwork | Use |
|---|---|---|
| Contact sheet | primary in logo.full | Four equal gallery tiles with image and video cutouts |
Correct: use Deep Jade (#08745F) in approved identity work; pair the Action cue (#08745F) with a descriptive button or link label. Misuse: a lone identity swatch as the only action signal.
| Cue | Purpose | Dark and light pairing | Additional cue |
|---|---|---|---|
| Action | Primary interactive action | Dark: #08745F, #FFFFFF text 5.72:1; surface 3.20:1 Light: #08745F, #FFFFFF text 5.72:1; surface 5.24:1 Source: semantic.action / semantic.action | A descriptive button or link label |
| Warning | Attention or recoverable risk | Dark: #F2BE6E, #000000 text 12.37:1; surface 10.77:1 Light: #805000, #FFFFFF text 6.85:1; surface 6.28:1 Source: brand.functional_colors.warning.dark / brand.functional_colors.warning.light | Warning text and icon |
| Error | Failure or destructive action | Dark: #F39494, #000000 text 9.47:1; surface 8.25:1 Light: #A03035, #FFFFFF text 7.07:1; surface 6.48:1 Source: brand.functional_colors.error.dark / brand.functional_colors.error.light | Error text and icon |
| Success | Completed operation | Dark: #77C9A8, #000000 text 10.70:1; surface 9.32:1 Light: #17654B, #FFFFFF text 7.00:1; surface 6.42:1 Source: brand.functional_colors.success.dark / brand.functional_colors.success.light | Success text and icon |
| Information | Neutral information or help | Dark: #8EBBFF, #000000 text 10.70:1; surface 9.32:1 Light: #26549B, #FFFFFF text 7.44:1; surface 6.82:1 Source: brand.functional_colors.information.dark / brand.functional_colors.information.light | Information label and icon |
| Focus | Keyboard focus ring | Dark: #69D4BB, #000000 text 11.74:1; surface 10.22:1 Light: #08745F, #FFFFFF text 5.72:1; surface 5.24:1 Source: brand.accent.bright / brand.accent.accessible | Visible outline and keyboard focus order |
| Selection | Selected control or item | Dark: #69D4BB, #000000 text 11.74:1; surface 10.22:1 Light: #08745F, #FFFFFF text 5.72:1; surface 5.24:1 Source: brand.accent.bright / brand.accent.accessible | Selected label or checked state |
| Disabled | Unavailable control | Dark: #69D4BB, #000000 text 11.74:1; surface 10.22:1 Light: #69D4BB, #000000 text 11.74:1; surface 1.64:1 Source: brand.accent.dim / brand.accent.dim | Disabled attribute and text |