////
///
/// Display Mixins
/// ===========================================================================
///
/// Display property mixins for controlling element rendering.
///
/// @group Mixins.HeadLayout.Display
/// @author Scape Agency
/// @link https://scape.style
/// @since 0.1.0 initial release
/// @access public
///
////

@use "../../../variables" as *;

// ============================================================================
// Display Base
// ============================================================================

/// Ensures elements with the `[hidden]` attribute are not displayed.
[hidden] {
    display: none;
    &:focus,
    &:active {
        display: none;
    }
}

/// Mixin for `display: none` with `!important` for higher specificity.
@mixin display_none {
    display: none !important;
}

/// Mixin for `display: block`.
@mixin display_block {
    display: block;
}

/// Mixin for `display: inline`.
@mixin display_inline {
    display: inline;
}

/// Mixin for `display: inline-block`.
@mixin display_inline-block {
    display: inline-block;
}

/// Mixin for `display: flex`.
@mixin display_flex {
    display: flex;
}

/// Mixin for `display: inline-flex`.
@mixin display_inline-flex {
    display: inline-flex;
}

/// Mixin for `display: grid`.
@mixin display_grid {
    display: grid;
}

/// Mixin for `display: inline-grid`.
@mixin display_inline-grid {
    display: inline-grid;
}

/// Mixin for `display: table`.
@mixin display_table {
    display: table;
}

/// Mixin for `display: table-cell`.
@mixin display_table-cell {
    display: table-cell;
}

/// Mixin for `display: contents`.
@mixin display_contents {
    display: contents;
}
