Brik Design System
Theming

Atmospheres

The Atmospheres Theming Dimension — CSS decoration overlays that establish visual character (editorial-luxury, cinematic, warm-soft, and more) without duplicating CSS per client.

Atmospheres are CSS decoration overlays that sit on top of a client's Tokens Dimension to establish visual character — dark-luxury-editorial, soft-wellness, clean-clinical, etc. — without duplicating CSS per client. One of the four Theming Dimensions, orthogonal to Tokens, Layout Archetypes, and Blueprints.

The portal's theme generator reads company_profiles.atmosphere at extraction time and emits an @import into the stored theme artifact pointing at @brikdesigns/bds/atmospheres/{slug}.css. The consumer Astro site fetches one theme artifact at build; the atmosphere cascades automatically.

Atmospheres are decoration only. They add vignettes, grain, orbs, and spotlights — they do not set surface colors. Background and text colors come from the Tokens Dimension (dist/tokens.css + the client's theme-{slug}.css in @layer client-theme). Import @brikdesigns/bds/page-base.css after tokens to wire html/body background to var(--page-primary) before any atmosphere loads.

How atmospheres compose with themes

AxisWhere it's setWhat it controls
Theme tokensdesign_token_extraction task reads company_profiles.color_primitives + typographyBrand palette, fonts, spacing, border-radius
Theme modecompany_profiles.theme_mode (light / dark)Whether text is dark-on-light or light-on-dark
Atmospherecompany_profiles.atmosphere (this vocab)Decoration layer — vignettes, grain, orbs, spotlights
Navigation IApack.navigationIA (industry default) + portal overridesHeader archetype + scroll + mobile drawer
BlueprintsPer-section, per-page (forthcoming)Layout primitives

Each axis is an independent decision. A dental practice might pick theme_mode: dark + atmosphere: editorial-luxury + navigation: editorial-transparent; a wellness studio might pick theme_mode: light + atmosphere: warm-soft + navigation: calm-flat. The portal Intel tab is the single admin surface to set all four.

Vocabulary

The locked enum lives in content-system/vocabularies/atmosphere.ts.

SlugTheme modeNatural fit
editorial-luxurydarkdental · med-aesthetic · luxury hospitality
cinematic-dramaticdarklegal · agency · finance · dark-mode SaaS
minimal-clinicallighthealthcare (non-luxury) · legal · minimal SaaS
warm-softlightwellness · therapy · mental-health · recovery
clean-brightlightSaaS · tech · productivity
organic-texturedlightMUA · organic beauty · artisan · natural products
none(any)explicit no-op — fallback when atmosphere is null

Per-atmosphere reference

Each atmosphere renders on the same compact composite (hero + services grid + CTA) so you can compare treatments side by side. Previews are iframed to isolate atmosphere :root / body rules from the docs shell — the atmosphere CSS loads verbatim from @brikdesigns/bds/content-system/atmospheres/{slug}.css.

editorial-luxury

Gold radial orbs driven by data-ambient attributes on sections; SVG Perlin film grain at 32% opacity with mix-blend-mode: overlay; cursor-tracking spotlight on elements with data-spotlight. Section-edge fades reference var(--page-primary) from the theme layer so they blend into whatever surface color the brand sets. Honors reduced-motion.

Slugeditorial-luxury
Theme modedark
BlurbGold orbs + film grain overlay. Quiet-luxury dark decoration.
Natural fitluxury dental · med-aesthetic · editorial hospitality
Surface profilesingle-tone-dark
Import@brikdesigns/bds/atmospheres/editorial-luxury.css

cinematic-dramatic

Aurora-drift gradient at the top of the viewport (42s cycle, animated via @property interpolation) and a conic rotating spotlight on sections marked data-ambient="spotlight". No grain — the aurora is already doing the atmospheric work. Section-edge fades reference var(--page-primary). Fit for legal / agency / finance / dark-mode SaaS.

Slugcinematic-dramatic
Theme modedark
BlurbAurora drift + conic spotlight. Theatrical dark decoration.
Natural fitlegal · agency · finance · dark-mode SaaS
Surface profilesingle-tone-dark
Import@brikdesigns/bds/atmospheres/cinematic-dramatic.css

minimal-clinical

Zero atmospheric decoration. Trust comes from typography and precision alone. Intentionally empty — establishes the shared data-ambient / data-edge / data-spotlight attribute vocabulary without layering anything visually. Healthcare practices that aren't aiming luxury, legal where gravitas matters more than editorial warmth, minimal SaaS.

Slugminimal-clinical
Theme modelight
BlurbPure white, zero atmospheric effects. Trust via precision.
Natural fitnon-luxury healthcare · legal (gravitas) · minimal SaaS
Surface profiledual-mode
Import@brikdesigns/bds/atmospheres/minimal-clinical.css

warm-soft

Single quiet rose vignette in the top-left corner and subtle grain at 15% opacity with mix-blend-mode: multiply. No motion, no spotlights, no depth orbs — anxiety-sensitive audiences (wellness, therapy, mental health, recovery) shouldn't see cinematic flourish. Section-edge fades reference var(--page-primary).

Slugwarm-soft
Theme modelight
BlurbQuiet rose vignette + minimal grain. Anxiety-safe light decoration.
Natural fitwellness · therapy · mental health · recovery
Surface profilesingle-tone-light
Import@brikdesigns/bds/atmospheres/warm-soft.css

clean-bright

Zero CSS decoration. Brand lives entirely in typography, imagery, and color accents. Sister to minimal-clinical — same visual posture, different semantic intent (SaaS/tech vs healthcare/legal).

Slugclean-bright
Theme modelight
BlurbPure white. No effects. Brand lives in type and imagery.
Natural fitSaaS · tech · startups · utility marketing
Surface profilesingle-tone-light
Import@brikdesigns/bds/atmospheres/clean-bright.css

organic-textured

SVG Perlin grain at 40% opacity with mix-blend-mode: multiply for a tactile, recycled-paper texture. Subtle earth-tone radial tint in the bottom-right. Fit for MUA / organic beauty / artisan / natural-products brands where tactile materiality matters more than digital polish.

Slugorganic-textured
Theme modelight
BlurbSepia grain + earth-tone radial tint. Tactile paper-texture decoration.
Natural fitMUA · organic beauty · artisan · natural products
Surface profilesingle-tone-light
Import@brikdesigns/bds/atmospheres/organic-textured.css

none

Explicit no-op. Emits no rules. Fallback when company_profiles.atmosphere is null or a client doesn't want an atmospheric layer. Exists so the portal's theme generator can unconditionally emit an @import without branching.

Slugnone
Theme mode(any)
BlurbNo atmosphere layer. Pure theme tokens only.
Natural fitfallback · custom per-client overrides
Surface profilepassthrough
Import@brikdesigns/bds/atmospheres/none.css

How to pick

When building a new client site:

  1. Read company_profiles.theme_mode (light | dark). If unset, default from pack.affinities.visualStyle[0]Dark → dark, anything else → light.
  2. Read company_profiles.atmosphere. If unset, use the natural pairing from ATMOSPHERE_THEME_MODE:
    • dark + dental / med-aesthetic → editorial-luxury
    • dark + legal / agency → cinematic-dramatic
    • light + wellness / therapy → warm-soft
    • light + healthcare (non-luxury) → minimal-clinical
    • light + SaaS / tech → clean-bright
    • light + MUA / beauty → organic-textured
  3. The portal theme generator emits the @import into the stored theme CSS; consumer sites pull the theme at build time and the atmosphere cascades automatically. No per-client atmosphere CSS in the consumer repo.
  4. Extending the vocabulary: new atmospheres go through the BDS PR process — add the slug to ATMOSPHERE_VALUES, write a CSS file in content-system/atmospheres/, add a manifest entry, extend the package.json exports, and add a preview block to this page. Don't invent atmospheres per client; graduate them.

On this page