normalize-languages 0.3.2

Tree-sitter language support and dynamic grammar loading
Documentation
@use "sass:math";
@use "sass:color";
@import "variables";
@import "mixins";
@forward "components/button";

$primary: #3498db;
$secondary: #2ecc71;
$font-size-base: 16px;
$border-radius: 4px;

@mixin flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

@mixin responsive($breakpoint) {
    @if $breakpoint == "mobile" {
        @media (max-width: 768px) { @content; }
    } @else if $breakpoint == "tablet" {
        @media (max-width: 1024px) { @content; }
    } @else {
        @media (min-width: 1025px) { @content; }
    }
}

@function rem($px) {
    @return math.div($px, $font-size-base) * 1rem;
}

@function shade($color, $amount) {
    @return color.mix(black, $color, $amount);
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 rem(16px);

    @include responsive("mobile") {
        padding: 0 rem(8px);
    }
}

.button {
    @include flex-center;
    background: $primary;
    border-radius: $border-radius;
    color: white;
    padding: rem(8px) rem(16px);

    &:hover {
        background: shade($primary, 10%);
    }

    &--secondary {
        background: $secondary;

        &:hover {
            background: shade($secondary, 10%);
        }
    }

    &:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }
}

.card {
    border: 1px solid darken($primary, 20%);
    border-radius: $border-radius;
    padding: rem(16px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}