Skip to main content
Version: 4.x

Surfaces

Surfaces in ACSS are reusable background styles that can include images, textures, patterns, or gradients. They provide a powerful way to create consistent, maintainable background designs across your project.

What Are Surfaces?

A surface is a pre-configured background style that you can apply to any element using a utility class. Unlike simple background colors, surfaces can include:

  • Background images or textures
  • CSS gradients
  • CSS patterns
  • Background positioning and sizing
  • Animation
  • Overlay effects
  • Automatic color relationship integration

Creating Surfaces

Navigate to Surfaces & Overlays > Custom Surfaces to create up to 5 custom surfaces.

Surface Settings

Surface Options

Each surface has the following configuration options:

Main Settings

  • Name - Give your surface a descriptive name. This creates a utility class .surface-{name} (e.g., .surface-hero, .surface-card). If left as the default number, the class will be .surface-1, .surface-2, etc.
  • Background Color - A fallback color that displays if your asset has transparency or fails to load.
  • Surface Asset - The main visual element of your surface. This can be:
    • A URL to an image: /path/to/image.png
    • A CSS gradient: linear-gradient(to right, var(--primary), var(--secondary))
    • A CSS pattern or any valid background-image value
  • Asset is URL - Toggle this on if your asset is an image URL (adds the url() wrapper automatically).
  • Surface Size - Controls background-size (e.g., cover, contain, 200px).
  • Surface Position - Controls background-position (e.g., center center, top left).
  • Attachment - Controls background-attachment (scroll, fixed, local).
  • Repeat - Controls background-repeat (e.g., repeat, no-repeat, repeat-x).
  • Color Relationship - Links the surface to the automatic color relationship system.

Color Relationship

The Color Relationship option is powerful. When you select a relationship (ultra-light, light, ultra-dark, or dark), the surface will automatically trigger the same foreground color adjustments as .bg--light, .bg--dark, etc.

For example, if you create a dark textured surface and set its Color Relationship to "dark," any text, headings, links, and icons inside that surface will automatically switch to light colors.

Animation Options

If your surface supports animation (like a moving gradient or animated pattern), you can add CSS animation here:

  • Animation - Any valid CSS animation shorthand (e.g., gradientMove 10s infinite linear).

Note: You must define the @keyframes for your animation in custom CSS.

Overlay Options

Each surface can have an optional overlay:

  • Enable Overlay - Toggle overlay visibility
  • Overlay Color - The overlay color
  • Overlay Opacity - Control overlay transparency

Using Surfaces

Apply a surface to any element using the generated utility class:

<section class="surface-hero">
<!-- Content here -->
</section>

Or use the CSS variable approach:

.my-element {
background: var(--surface-1);
}

Surfaces vs Background Classes

Feature.bg--{color}.surface-{name}
Solid colorsYesYes (as fallback)
Images/texturesNoYes
GradientsYesYes
PatternsNoYes
AnimationNoYes
Built-in overlayNoYes
Color relationshipsYesYes

Use background classes for simple solid color backgrounds. Use surfaces when you need more complex background designs that you want to reuse.

Changes From 3.x

Surfaces are a new feature in ACSS 4.0. They provide a centralized way to manage complex, reusable background styles with full integration into the automatic color relationship system.