@use 'sass:string';
@use '@style/color/colors.scss' as *;

$sd-theme-tag: ':where(body, [sd-theme])'; // css 变量定义的选择器

$sd-vars-prefix: 'sd'; // css 变量的前缀

$sd-cssvars-prefix: '--sd';

@if $sd-vars-prefix != 'sd' {
  $sd-cssvars-prefix: '--#{$sd-vars-prefix}';
}

/******** borderSize *******/

$border-none: 0;
$border-1: 1px;
$border-2: 2px;
$border-3: 3px;
$border-4: 4px;
$border-5: 5px;

/******** borderStyle *******/

$border-solid: solid;
$border-dashed: dashed;
$border-dotted: dotted;

/******** radius *******/

$border-radius-none: 0;
$border-radius-small: 2px;
$border-radius-medium: 4px;
$border-radius-large: 8px;
$border-radius-circle: 50%;

/******** shadow distance *******/

$shadow-distance-none: 0;
$shadow-distance-1: 1px;
$shadow-distance-2: 2px;
$shadow-distance-3: 3px;
$shadow-distance-4: 4px;

/******** size *******/

$size-none: 0;
$size-1: 4px;
$size-2: 8px;
$size-3: 12px;
$size-4: 16px;
$size-5: 20px;
$size-6: 24px;
$size-7: 28px;
$size-8: 32px;
$size-9: 36px;
$size-10: 40px;
$size-11: 44px;
$size-12: 48px;
$size-13: 52px;
$size-14: 56px;
$size-15: 60px;
$size-16: 64px;
$size-17: 68px;
$size-18: 72px;
$size-19: 76px;
$size-20: 80px;
$size-21: 84px;
$size-22: 88px;
$size-23: 92px;
$size-24: 96px;
$size-25: 100px;
$size-26: 104px;
$size-27: 108px;
$size-28: 112px;
$size-29: 116px;
$size-30: 120px;
$size-31: 124px;
$size-32: 128px;
$size-33: 132px;
$size-34: 136px;
$size-35: 140px;
$size-36: 144px;
$size-37: 148px;
$size-38: 152px;
$size-39: 156px;
$size-40: 160px;
$size-41: 164px;
$size-42: 168px;
$size-43: 172px;
$size-44: 176px;
$size-45: 180px;
$size-46: 184px;
$size-47: 188px;
$size-48: 192px;
$size-49: 196px;
$size-50: 200px;

$size-mini: $size-6;
$size-small: $size-7;
$size-default: $size-8;
$size-large: $size-9;

/******** spacing *******/

$spacing-none: 0;
$spacing-1: 2px;
$spacing-2: 4px;
$spacing-3: 6px;
$spacing-4: 8px;
$spacing-5: 10px;
$spacing-6: 12px;
$spacing-7: 16px;
$spacing-8: 20px;
$spacing-9: 24px;
$spacing-10: 32px;
$spacing-11: 36px;
$spacing-12: 40px;
$spacing-13: 48px;
$spacing-14: 56px;
$spacing-15: 60px;
$spacing-16: 64px;
$spacing-17: 72px;
$spacing-18: 80px;
$spacing-19: 84px;
$spacing-20: 96px;
$spacing-21: 100px;
$spacing-22: 120px;

$color-transparent: transparent;

/******** shadow *******/

$shadow-none: none;
$shadow-special: 0 0 1px rgb(0 0 0 / 30%);
$shadow1-center: 0 0 5px rgb(0 0 0 / 10%);
$shadow1-up: 0 -2px 5px rgb(0 0 0 / 10%);
$shadow1-down: 0 2px 5px rgb(0 0 0 / 10%);
$shadow1-left: -2px 0 5px rgb(0 0 0 / 10%);
$shadow1-right: 2px 0 5px rgb(0 0 0 / 10%);
$shadow1-left-up: -2px -2px 5px rgb(0 0 0 / 10%);
$shadow1-left-down: -2px 2px 5px rgb(0 0 0 / 10%);
$shadow1-right-up: 2px -2px 5px rgb(0 0 0 / 10%);
$shadow1-right-down: 2px 2px 5px rgb(0 0 0 / 10%);
$shadow2-center: 0 0 10px rgb(0 0 0 / 10%);
$shadow2-up: 0 -4px 10px rgb(0 0 0 / 10%);
$shadow2-down: 0 4px 10px rgb(0 0 0 / 10%);
$shadow2-left: -4px 0 10px rgb(0 0 0 / 10%);
$shadow2-right: 4px 0 10px rgb(0 0 0 / 10%);
$shadow2-left-up: -4px -4px 10px rgb(0 0 0 / 10%);
$shadow2-left-down: -4px 4px 10px rgb(0 0 0 / 10%);
$shadow2-right-up: 4px -4px 10px rgb(0 0 0 / 10%);
$shadow2-right-down: 4px 4px 10px rgb(0 0 0 / 10%);
$shadow3-center: 0 0 20px rgb(0 0 0 / 10%);
$shadow3-up: 0 -8px 20px rgb(0 0 0 / 10%);
$shadow3-down: 0 8px 20px rgb(0 0 0 / 10%);
$shadow3-left: -8px 0 20px rgb(0 0 0 / 10%);
$shadow3-right: 8px 0 20px rgb(0 0 0 / 10%);
$shadow3-left-up: -8px -8px 20px rgb(0 0 0 / 10%);
$shadow3-left-down: -8px 8px 20px rgb(0 0 0 / 10%);
$shadow3-right-up: 8px -8px 20px rgb(0 0 0 / 10%);
$shadow3-right-down: 8px 8px 20px rgb(0 0 0 / 10%);

/******** opacity *******/

$opacity-none: 0;
$opacity-1: 10%;
$opacity-2: 20%;
$opacity-3: 30%;
$opacity-4: 40%;
$opacity-5: 50%;
$opacity-6: 60%;
$opacity-7: 70%;
$opacity-8: 80%;
$opacity-9: 90%;
$opacity-10: 100%;

/******** fontSize *******/

$font-size-display-3: 56px;
$font-size-display-2: 48px;
$font-size-display-1: 36px;
$font-size-title-3: 24px;
$font-size-title-2: 20px;
$font-size-title-1: 16px;
$font-size-body-3: 14px;
$font-size-body-2: 13px;
$font-size-body-1: 12px;
$font-size-caption: 12px;

/******** fontWeight ********/
$font-weight-100: 100;
$font-weight-200: 200;
$font-weight-300: 300;
$font-weight-400: 400;
$font-weight-500: 500;
$font-weight-600: 600;
$font-weight-700: 700;
$font-weight-800: 800;
$font-weight-900: 900;

/******** Primary *******/

$color-primary-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-1')));
$color-primary-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-2')));
$color-primary-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-3')));
$color-primary-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-4')));
$color-primary-5: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-5')));
$color-primary-6: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-6')));
$color-primary-7: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-7')));
$color-primary-8: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-8')));
$color-primary-9: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-9')));
$color-primary-10: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-10')));

/******** success *******/

$color-success-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-1')));
$color-success-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-2')));
$color-success-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-3')));
$color-success-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-4')));
$color-success-5: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-5')));
$color-success-6: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-6')));
$color-success-7: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-7')));
$color-success-8: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-8')));
$color-success-9: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-9')));
$color-success-10: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-10')));

/******** warning *******/

$color-warning-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-1')));
$color-warning-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-2')));
$color-warning-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-3')));
$color-warning-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-4')));
$color-warning-5: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-5')));
$color-warning-6: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-6')));
$color-warning-7: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-7')));
$color-warning-8: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-8')));
$color-warning-9: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-9')));
$color-warning-10: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-10')));

/******** danger *******/

$color-danger-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-1')));
$color-danger-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-2')));
$color-danger-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-3')));
$color-danger-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-4')));
$color-danger-5: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-5')));
$color-danger-6: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-6')));
$color-danger-7: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-7')));
$color-danger-8: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-8')));
$color-danger-9: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-9')));
$color-danger-10: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-10')));

/******** link *******/

$color-link-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-1')));
$color-link-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-2')));
$color-link-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-3')));
$color-link-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-4')));
$color-link-5: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-5')));
$color-link-6: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-6')));
$color-link-7: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-7')));
$color-link-8: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-8')));
$color-link-9: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-9')));
$color-link-10: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-10')));

/******** radius *******/

$radius-none: var(string.unquote('#{$sd-cssvars-prefix}-border-radius-none'));
$radius-small: var(string.unquote('#{$sd-cssvars-prefix}-border-radius-small'));
$radius-medium: var(string.unquote('#{$sd-cssvars-prefix}-border-radius-medium'));
$radius-large: var(string.unquote('#{$sd-cssvars-prefix}-border-radius-large'));
$radius-circle: var(string.unquote('#{$sd-cssvars-prefix}-border-radius-circle'));

// Other
$color-white: #fff;
$dark-color-white: rgb(255 255 255 / 90%); // 在亮色模式下所有白色文字对应。对应 $color-white;

$color-black: #000;
$dark-color-black: #000;

$mask-bg-opacity: $opacity-6;
$mask-color-bg: rgba($gray-10, $mask-bg-opacity);

$dark-mask-color-bg: rgba($dark-gray-1, $mask-bg-opacity);

// 暗黑主题的导航组件背景色，需要在主题商店可配置
$color-menu-dark-bg: #232324;
$color-menu-light-bg: #fff;
$color-spin-layer-bg: rgb(255 255 255 / 60%);
$color-menu-dark-hover: rgb(255 255 255 / 4%);
$color-tooltip-bg: rgb(var(string.unquote('#{$sd-cssvars-prefix}-gray-10')));

// component
$dark-color-tooltip-bg: #373739;
$dark-color-spin-layer-bg: rgb(51 51 51 / 60%);
$dark-color-menu-dark-hover: var(string.unquote('#{$sd-cssvars-prefix}-color-fill-2'));

// variables
$color-border: rgb(var(string.unquote('#{$sd-cssvars-prefix}-gray-3')));
$color-bg-popup: var(string.unquote('#{$sd-cssvars-prefix}-color-bg-5'));
$color-bg-1: $gray-1; // Overall page background
$color-bg-2: #fff; // Primary container background
$color-bg-3: $gray-1; // Secondary container background
$color-bg-4: $gray-2; // Three-level container background
$color-bg-5: #fff; // Popup, dropdown background
$color-bg-white: #fff;
$color-text-1: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-10')); // Title, body
$color-text-2: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-8')); // Statement
$color-text-3: var(
  string.unquote('#{$sd-cssvars-prefix}-color-neutral-6')
); // Secondary information
$color-text-4: var(
  string.unquote('#{$sd-cssvars-prefix}-color-neutral-4')
); // Secondary information
$color-fill-1: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-1'));
$color-fill-2: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-2'));
$color-fill-3: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-3'));
$color-fill-4: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-4'));
$color-border-1: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-2'));
$color-border-2: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-3'));
$color-border-3: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-4'));
$color-border-4: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-6'));
$color-primary-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-1')));
$color-primary-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-2')));
$color-primary-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-3')));
$color-primary-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-4')));
$color-secondary: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-2'));
$color-secondary-hover: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-3'));
$color-secondary-active: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-4'));
$color-secondary-disabled: var(string.unquote('#{$sd-cssvars-prefix}-color-neutral-1'));
$color-danger-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-1')));
$color-danger-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-2')));
$color-danger-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-3')));
$color-danger-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-4')));
$color-success-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-1')));
$color-success-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-2')));
$color-success-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-3')));
$color-success-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-4')));
$color-warning-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-1')));
$color-warning-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-2')));
$color-warning-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-3')));
$color-warning-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-4')));
$color-link-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-1')));
$color-link-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-2')));
$color-link-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-3')));
$color-link-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-4')));

$dark-color-border: #333335;
$dark-color-bg-1: #17171a; // The overall background is @dark-gray-1
$dark-color-bg-2: #232324; // Primary container background ("white")
$dark-color-bg-3: #2a2a2b; // Secondary container background
$dark-color-bg-4: #313132; // Three-level container background
$dark-color-bg-5: #373739; // Drop-down box, Tooltips background
$dark-color-bg-white: #f6f6f6; // In bright color mode radio, switch white background
$dark-color-text-1: rgb(255 255 255 / 90%);
$dark-color-text-2: rgb(255 255 255 / 70%);
$dark-color-text-3: rgb(255 255 255 / 50%);
$dark-color-text-4: rgb(255 255 255 / 30%);
$dark-color-fill-1: rgb(255 255 255 / 4%);
$dark-color-fill-2: rgb(255 255 255 / 8%);
$dark-color-fill-3: rgb(255 255 255 / 12%);
$dark-color-fill-4: rgb(255 255 255 / 16%);
$dark-color-primary-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-6')), 0.2);
$dark-color-primary-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-6')), 0.35);
$dark-color-primary-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-6')), 0.5);
$dark-color-primary-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-primary-6')), 0.65);
$dark-color-secondary: rgb(var(string.unquote('#{$sd-cssvars-prefix}-gray-9')), 0.08);
$dark-color-secondary-hover: rgb(var(string.unquote('#{$sd-cssvars-prefix}-gray-8')), 0.16);
$dark-color-secondary-active: rgb(var(string.unquote('#{$sd-cssvars-prefix}-gray-7')), 0.24);
$dark-color-secondary-disabled: rgb(var(string.unquote('#{$sd-cssvars-prefix}-gray-9')), 0.08);
$dark-color-danger-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-6')), 0.2);
$dark-color-danger-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-6')), 0.35);
$dark-color-danger-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-6')), 0.5);
$dark-color-danger-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-danger-6')), 0.65);
$dark-color-success-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-6')), 0.2);
$dark-color-success-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-6')), 0.35);
$dark-color-success-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-6')), 0.5);
$dark-color-success-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-success-6')), 0.65);
$dark-color-warning-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-6')), 0.2);
$dark-color-warning-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-6')), 0.35);
$dark-color-warning-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-6')), 0.5);
$dark-color-warning-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-warning-6')), 0.65);
$dark-color-link-light-1: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-6')), 0.2);
$dark-color-link-light-2: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-6')), 0.35);
$dark-color-link-light-3: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-6')), 0.5);
$dark-color-link-light-4: rgb(var(string.unquote('#{$sd-cssvars-prefix}-link-6')), 0.65);

// vue overwrite token
$size-medium: $size-default;
