Skip to content

Адаптивность

Адаптивность реализована с помощью useScreenWidth composable функции через четыре класса (mobile, tablet, notebook и desktop), динамично устанавливающихся на тэг body.

Конфигурационные параметры (верхний брейкпойнт для каждого режима) для useScreenWidth устанавливаются в App.vue:

vue
<script setup lang="ts">
import { useScreenWidth } from "@/composables/useScreenWidth";

useScreenWidth({
  mobile: 480,
  tablet: 767,
  notebook: 1199,
  desktop: 10000,
});
</script>

В дальнейшем адаптивность можно использовать как в JavaScript коде:

js
// can be 'mobile', 'tablet' 'notebook' or 'desktop'
const { screenWidthFactor } = new useScreenWidth();

так и в SCSS:

scss
.container {
    display: flex;
    flex-direction: row;
    .mobile &, .tablet & {
        flex-direction: column;
    }
    .box {
        border: 1px solid gray;
    }
}
html
<div class="container">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
</div>