@use '../../token/breakpoint/breakpoint';
@use '../../token/color/color';

$tikui-template-page-large-breakpoint: breakpoint.$tikui-breakpoint-large !default;
$tikui-template-page-spacing: 80px !default;
$tikui-template-page-small-spacing: 2vw !default;
$tikui-template-page-container-width: 1232px !default;
$tikui-template-page-atomized-x: calc(50vw - 260px) !default;
$tikui-template-page-atomized-y: -1260px !default;
$tikui-template-page-atomized-image: url('assets/atom-background.svg') !default;
$tikui-template-page-nav-padding: 32px !default;
$tikui-template-page-nav-width: 340px !default;

.tikui-template-page {
  display: flex;
  position: fixed;
  inset: 0;
  flex-direction: column;
  min-height: 0;

  &--header-container {
    box-sizing: content-box;
    margin: 0 auto;
    padding: 0 $tikui-template-page-spacing;
    width: auto;
    min-width: 0;
    max-width: $tikui-template-page-container-width;
  }

  &--body {
    display: flex;
    flex-basis: 0;
    flex-grow: 1;
    background-color: color.$tikui-color-background;
    padding: 0;
    min-height: 0;
    overflow: auto;
  }

  &--container {
    flex-basis: 0;
    flex-grow: 1;
    min-width: 0;
    min-height: 0;
  }

  &--container-content {
    box-sizing: content-box;
    margin: 0 auto;
    padding: $tikui-template-page-spacing;
    width: auto;
    max-width: $tikui-template-page-container-width;
  }

  &--nav {
    box-sizing: content-box;
    position: sticky;
    top: 0;
    padding: $tikui-template-page-spacing $tikui-template-page-nav-padding;
    width: $tikui-template-page-nav-width;
    overflow: auto;
  }

  &--header {
    background-color: color.$tikui-color-shade-100;
  }

  &.-atomized &--body {
    background-attachment: local;
    background-image: $tikui-template-page-atomized-image;
    background-position-x: $tikui-template-page-atomized-x;
    background-position-y: $tikui-template-page-atomized-y;
    background-repeat: no-repeat;
  }
}

@media screen and (max-width: $tikui-template-page-large-breakpoint) {
  .tikui-template-page {
    display: block;
    overflow: auto;

    &--header-container,
    &--container {
      padding: 0 $tikui-template-page-small-spacing;
      width: auto;
    }

    &--container-content {
      padding: 0;
    }

    &--body {
      display: block;
      padding: $tikui-template-page-small-spacing 0;
      overflow: visible;
    }

    &--nav {
      position: static;
      padding: 0;
      width: auto;
    }
  }
}
