Skip to content

Containers

Container mixins for responsive layout management that use the $containers variable to determine container dimensions and behavior. These mixins automatically generate the appropriate CSS container styles based on the container names and properties defined in your $containers map.

Configuration

The containers are defined in the $containers map. The map structure follows the pattern (name: width gap fluid) where:

  • name: A string identifier for the container (e.g., default, fluid, small)
  • width: The container width (can be any CSS unit like px, rem, %, or none for full width)
  • gap: The container gap (can be any CSS unit like px, rem, em)
  • fluid: Optional fluid keyword for responsive container behavior

Fluid Containers

When you add the fluid keyword to a container definition, it creates a responsive container that scales with the viewport width. The container will use the larger value between:

  • The specified width
  • A calculated percentage of the viewport width

This ensures the container is never smaller than your specified width but can grow larger on bigger screens.

The fluid calculation uses the $containers-screen-size-base variable (default: 1440px) as the reference point. The formula calculates what percentage of the viewport the container should occupy based on the ratio of your container width to the base screen size.

Customizing Containers

To use your own containers, define the $containers map and $containers-screen-size-base before importing the Queso Sass core:

scss
// Define your custom containers
$containers-screen-size-base: 1200px;
$containers: (
    default: 1200px 40px,
    fluid: 1200px 40px fluid,
    small: 600px 20px,
    large: 1600px 80px,
    full: none 0px,
);

// Import Queso Sass core (your containers will be used)
@import "@allomambo/queso/styles/core";

Important Notes

  • Width: Can use any CSS unit (px, rem, %, etc.) or none for full-width containers
  • Gap: Can use any CSS unit (px, rem, em, etc.)
  • Fluid: Add the fluid keyword as the third value for responsive containers that scale with viewport
  • Base Screen Size: The $containers-screen-size-base variable (default: 1440px) is used for fluid calculations
  • Order: Define containers before importing Queso Sass core
  • Naming: Choose descriptive names that match your design system
Default Values of Variables
scss
$containers-screen-size-base: 1440px !default;

$containers: (
    default: 1920px 60px,
    fluid: 1920px 60px fluid,
    small: 420px 60px,
    medium: 870px 60px,
    full: none 60px,
) !default;

container()

Generates container styles for responsive layouts.

ParameterTypeDefault ValueDescription
$variantstring"default"The container variant to generate. Use 'all' to generate all variants
scss
.container {
    @include container();
}
css
.container {
    --container-display-default: block;
    --container-width-default: 1920px;
    --container-max-width-default: calc(100% - (var(--container-gap) * 2));
    --container-gap-default: 60px;
    --container-margin-left-default: auto;
    --container-margin-right-default: auto;
    display: var(--container-display, block);
    width: var(--container-width, 1920px);
    max-width: var(
        --container-max-width,
        calc(100% - (var(--container-gap) * 2))
    );
    margin-left: var(--container-margin-left, auto);
    margin-right: var(--container-margin-right, auto);
}