@ozdao/prometheus-framework 0.2.109 → 0.2.111
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/main.css +1 -1
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.js +1 -73
- package/dist/prometheus-framework/src/components/Popup/Popup.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Popup/Popup.vue2.js +73 -1
- package/dist/prometheus-framework/src/components/Select/Select.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Select/Select.vue.js +1 -103
- package/dist/prometheus-framework/src/components/Select/Select.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Select/Select.vue2.js +103 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/elements/AnimatedGrid.vue.cjs +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/elements/AnimatedGrid.vue.js +13 -0
- package/dist/prometheus-framework/src/modules/landing/components/elements/AnimatedGrid.vue2.cjs +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/elements/AnimatedGrid.vue2.js +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/elements/FloatingImages.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/landing/components/elements/FloatingImages.vue.js +14 -14
- package/dist/prometheus-framework/src/modules/landing/components/sections/MobileApp.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/MobileApp.vue.js +1 -4
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs +1 -1
- package/dist/prometheus-framework/src/modules/landing/landing.client.js +6 -4
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/components/DatePicker/Calendar.vue +296 -0
- package/src/modules/landing/components/elements/AnimatedGrid.vue +31 -0
- package/src/modules/landing/components/elements/FloatingImages.vue +4 -3
- package/src/modules/landing/components/pages/Home.vue +12 -9
- package/src/modules/landing/components/sections/HeroSection.vue +16 -14
- package/src/modules/landing/components/sections/MobileApp.vue +8 -33
- package/src/modules/landing/components/sections/SectionHeroToken.vue +18 -45
- package/src/modules/landing/landing.client.js +3 -1
- package/src/modules/users/components/sections/FeaturedUsers.vue +42 -0
- package/src/styles/base/all.scss +2 -0
- package/src/styles/config.scss +57 -26
- package/src/styles/responsive.scss +6 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="grid">
|
3
|
+
<div class="grid-lines"></div>
|
4
|
+
</div>
|
5
|
+
</template>
|
6
|
+
|
7
|
+
<style lang='scss' scoped>
|
8
|
+
.grid {
|
9
|
+
perspective: 450px;
|
10
|
+
background-size: cover;
|
11
|
+
}
|
12
|
+
|
13
|
+
.grid-lines {
|
14
|
+
width: 100%;
|
15
|
+
height: 200%;
|
16
|
+
background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1) 1px, transparent 0), linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 1px, transparent 0);
|
17
|
+
background-size: 45px 30px;
|
18
|
+
background-repeat: repeat;
|
19
|
+
transform-origin: 100% 0 0;
|
20
|
+
animation: play 15s linear infinite;
|
21
|
+
}
|
22
|
+
|
23
|
+
@keyframes play {
|
24
|
+
0% {
|
25
|
+
transform: rotateX(45deg) translateY(-50%);
|
26
|
+
}
|
27
|
+
100% {
|
28
|
+
transform: rotateX(45deg) translateY(0);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
</style>
|
@@ -77,6 +77,7 @@ const createFloatingImages = () => {
|
|
77
77
|
|
78
78
|
imgElement.src = imageSrc;
|
79
79
|
imgElement.classList.add('floating-image');
|
80
|
+
|
80
81
|
if (props.config.class) {
|
81
82
|
imgElement.classList.add(props.config.class);
|
82
83
|
}
|
@@ -108,13 +109,13 @@ const createFloatingImages = () => {
|
|
108
109
|
imgElement.style.animation = `floatUp linear infinite`;
|
109
110
|
imgElement.style.animationDuration = `${Math.random() * (props.config.maxDuration - props.config.minDuration) + props.config.minDuration}s`;
|
110
111
|
|
111
|
-
document.querySelector(props.container).appendChild(imgElement);
|
112
|
+
if (props.container) document.querySelector(props.container).appendChild(imgElement);
|
112
113
|
|
113
114
|
imgElement.addEventListener("animationiteration", () => {
|
114
115
|
const newSpawnPoint = props.config.spawnPoints[Math.floor(Math.random() * props.config.spawnPoints.length)];
|
115
116
|
const newDeviation = (Math.random() - 0.5) * 2 * 10;
|
116
|
-
|
117
|
-
|
117
|
+
imgElement.style.left = `${newSpawnPoint + newDeviation}%`;
|
118
|
+
});
|
118
119
|
});
|
119
120
|
};
|
120
121
|
|
@@ -10,6 +10,7 @@
|
|
10
10
|
<MobileApp/>
|
11
11
|
<JoinUs/>
|
12
12
|
<SubscribeNewsletter/>
|
13
|
+
<FeaturedUsers/>
|
13
14
|
<div class="pd-thin">
|
14
15
|
<SectionGuide/>
|
15
16
|
</div>
|
@@ -21,18 +22,20 @@
|
|
21
22
|
|
22
23
|
<script setup="props">
|
23
24
|
// Need to refactor
|
24
|
-
import SectionsSection
|
25
|
+
import SectionsSection from '@pf/src/modules/landing/components/sections/SectionsSection.vue'
|
25
26
|
// Module landing
|
26
|
-
import SectionFeatures
|
27
|
-
import MobileApp
|
28
|
-
import SectionGuide
|
29
|
-
import SectionEarn
|
27
|
+
import SectionFeatures from '@pf/src/modules/landing/components/sections/SectionFeatures.vue'
|
28
|
+
import MobileApp from '@pf/src/modules/landing/components/sections/MobileApp.vue'
|
29
|
+
import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
|
30
|
+
import SectionEarn from '@pf/src/modules/landing/components/sections/SectionEarn.vue'
|
30
31
|
// Module community
|
31
|
-
import HotPosts
|
32
|
+
import HotPosts from '@pf/src/modules/community/components/sections/HotPosts.vue'
|
32
33
|
// Module Products
|
33
|
-
import MenuSection
|
34
|
-
import PopularProducts
|
35
|
-
import HeroRecommendation
|
34
|
+
import MenuSection from '@pf/src/modules/products/components/sections/MenuSection.vue'
|
35
|
+
import PopularProducts from '@pf/src/modules/products/components/sections/PopularProducts.vue'
|
36
|
+
import HeroRecommendation from '@pf/src/modules/products/components/sections/HeroRecommendation.vue'
|
37
|
+
// Module users
|
38
|
+
import FeaturedUsers from '@pf/src/modules/users/components/sections/FeaturedUsers.vue'
|
36
39
|
// Not working
|
37
40
|
import JoinUs from '@pf/src/modules/community/components/sections/JoinUs.vue'
|
38
41
|
import SubscribeNewsletter from '@pf/src/modules/orders/components/sections/SubscribeNewsletter.vue'
|
@@ -32,43 +32,45 @@
|
|
32
32
|
|
33
33
|
<template>
|
34
34
|
<div
|
35
|
-
|
36
|
-
|
35
|
+
id="hero"
|
36
|
+
class="t-center cols-1 flex-center flex"
|
37
37
|
>
|
38
38
|
|
39
39
|
<div
|
40
|
-
|
40
|
+
class="flex-column flex-center flex pd-big radius-medium"
|
41
41
|
>
|
42
42
|
<h1
|
43
|
-
|
44
|
-
|
43
|
+
class="mn-b-medium"
|
44
|
+
v-html="t('HERO.TITLE')"
|
45
45
|
/>
|
46
46
|
|
47
47
|
<p
|
48
|
-
|
49
|
-
|
50
|
-
|
48
|
+
class="w-m-60r mn-b-big t-transp p-big"
|
49
|
+
v-html="t('HERO.DESCRIPTION')"
|
50
|
+
/>
|
51
51
|
|
52
52
|
<div
|
53
|
-
|
53
|
+
class="mobile-w-100 t-white gap-small cols-2"
|
54
54
|
>
|
55
55
|
<button
|
56
|
-
|
57
|
-
|
56
|
+
@click="router.push('/catalog')"
|
57
|
+
class="w-100 bg-dark t-white button"
|
58
|
+
>
|
58
59
|
{{t('HERO.ACTION')}}
|
59
60
|
</button>
|
60
61
|
|
61
62
|
<button
|
62
|
-
|
63
|
-
|
63
|
+
@click="store.commit('toggleBackCall')"
|
64
|
+
class="w-100 bg-light t-dark br-light button"
|
65
|
+
>
|
64
66
|
{{t('HERO.SUBACTION')}}
|
65
67
|
</button>
|
66
68
|
</div>
|
67
69
|
|
68
70
|
</div>
|
69
|
-
|
70
71
|
</div>
|
71
72
|
</template>
|
72
73
|
|
73
74
|
<style lang="scss" scoped>
|
75
|
+
|
74
76
|
</style>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<div id="mobileApp"
|
2
|
+
<div id="mobileApp">
|
3
3
|
<section class="pos-relative cols-2 pd-thin o-hidden bg-black t-white radius-extra">
|
4
4
|
<div class="z-index-1 h-100">
|
5
5
|
<img
|
@@ -119,40 +119,15 @@ const { t, te } = useI18n(props.textData)
|
|
119
119
|
</script>
|
120
120
|
|
121
121
|
<style lang="scss">
|
122
|
-
|
123
|
-
.grid {
|
124
|
-
perspective: 450px;
|
125
|
-
background-size: cover;
|
126
|
-
}
|
127
|
-
|
128
|
-
.grid-lines {
|
129
|
-
width: 100%;
|
130
|
-
height: 200%;
|
131
|
-
background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1) 1px, transparent 0), linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 1px, transparent 0);
|
132
|
-
background-size: 45px 30px;
|
133
|
-
background-repeat: repeat;
|
134
|
-
transform-origin: 100% 0 0;
|
135
|
-
animation: play 15s linear infinite;
|
136
|
-
}
|
137
|
-
|
138
|
-
@keyframes play {
|
139
|
-
0% {
|
140
|
-
transform: rotateX(45deg) translateY(-50%);
|
141
|
-
}
|
142
|
-
100% {
|
143
|
-
transform: rotateX(45deg) translateY(0);
|
144
|
-
}
|
145
|
-
}
|
146
|
-
|
147
122
|
@media screen and (max-width: 1025px) {
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
}
|
123
|
+
#mobileApp {
|
124
|
+
text-align: center;
|
125
|
+
> section {
|
126
|
+
flex-direction: column;
|
127
|
+
> div {
|
128
|
+
order: 1;
|
155
129
|
}
|
156
130
|
}
|
157
131
|
}
|
132
|
+
}
|
158
133
|
</style>
|
@@ -2,6 +2,8 @@
|
|
2
2
|
import { useRouter } from 'vue-router'
|
3
3
|
import { useI18n } from 'vue-i18n'
|
4
4
|
|
5
|
+
import AnimatedGrid from '@pf/src/modules/landing/components/elements/AnimatedGrid.vue'
|
6
|
+
|
5
7
|
const props = defineProps({
|
6
8
|
textData: {
|
7
9
|
type: Object,
|
@@ -61,9 +63,7 @@
|
|
61
63
|
/>
|
62
64
|
</div>
|
63
65
|
|
64
|
-
<
|
65
|
-
<div class="grid-lines"></div>
|
66
|
-
</div>
|
66
|
+
<AnimatedGrid class="w-100 h-100 pos-absolute pos-t-0 pos-r-0 z-index-0" />
|
67
67
|
|
68
68
|
</div>
|
69
69
|
</template>
|
@@ -92,47 +92,20 @@
|
|
92
92
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#007db9e8',GradientType=1 ); /* IE6-9 */
|
93
93
|
}
|
94
94
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
opacity: 0
|
95
|
+
@keyframes slide {
|
96
|
+
0% {
|
97
|
+
transform:translateX(-00%);
|
98
|
+
opacity: 0;
|
99
|
+
}
|
100
|
+
20% {
|
101
|
+
opacity: 1
|
102
|
+
}
|
103
|
+
80% {
|
104
|
+
opacity: 1
|
105
|
+
}
|
106
|
+
100% {
|
107
|
+
transform:translateX(100%);
|
108
|
+
opacity: 0
|
109
|
+
}
|
111
110
|
}
|
112
|
-
}
|
113
|
-
|
114
|
-
|
115
|
-
.grid {
|
116
|
-
perspective: 450px;
|
117
|
-
background-size: cover;
|
118
|
-
}
|
119
|
-
|
120
|
-
.grid-lines {
|
121
|
-
width: 100%;
|
122
|
-
height: 200%;
|
123
|
-
background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1) 1px, transparent 0), linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 1px, transparent 0);
|
124
|
-
background-size: 45px 30px;
|
125
|
-
background-repeat: repeat;
|
126
|
-
transform-origin: 100% 0 0;
|
127
|
-
animation: play 15s linear infinite;
|
128
|
-
}
|
129
|
-
|
130
|
-
@keyframes play {
|
131
|
-
0% {
|
132
|
-
transform: rotateX(45deg) translateY(-50%);
|
133
|
-
}
|
134
|
-
100% {
|
135
|
-
transform: rotateX(45deg) translateY(0);
|
136
|
-
}
|
137
|
-
}
|
138
111
|
</style>
|
@@ -3,9 +3,11 @@ import MobileApp from './components/sections/MobileApp.vue';
|
|
3
3
|
import SectionFeatures from './components/sections/SectionFeatures.vue';
|
4
4
|
|
5
5
|
import FloatingImages from './components/elements/FloatingImages.vue';
|
6
|
+
import AnimatedGrid from './components/elements/AnimatedGrid.vue';
|
6
7
|
|
7
8
|
export {
|
8
9
|
MobileApp,
|
10
|
+
SectionFeatures,
|
9
11
|
FloatingImages,
|
10
|
-
|
12
|
+
AnimatedGrid
|
11
13
|
};
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="pd-extra o-hidden w-100">
|
3
|
+
<div class="content">
|
4
|
+
<span class="h2 mn-b-big">
|
5
|
+
Ask over 5 million people who have trusted us for decades
|
6
|
+
</span>
|
7
|
+
</div>
|
8
|
+
<div class="gap-thin flex flex-nowrap">
|
9
|
+
<CardUser
|
10
|
+
v-for="user in usersList"
|
11
|
+
class="selector flex-child bg-grey pd-small radius-small"
|
12
|
+
:user="user"
|
13
|
+
:photo="user.profile.photo"
|
14
|
+
:name="user.profile.name || user.phone || user.username"
|
15
|
+
:phone="'DJ'"
|
16
|
+
/>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</template>
|
20
|
+
|
21
|
+
<script setup>
|
22
|
+
import { ref, onMounted } from 'vue';
|
23
|
+
|
24
|
+
import * as users from '@pf/src/modules/users/store/users'
|
25
|
+
|
26
|
+
import CardUser from '@pf/src/modules/users/components/blocks/CardUser.vue'
|
27
|
+
|
28
|
+
const usersList = ref([])
|
29
|
+
|
30
|
+
onMounted(async() => {
|
31
|
+
usersList.value = await users.actions.read({
|
32
|
+
})
|
33
|
+
});
|
34
|
+
</script>
|
35
|
+
|
36
|
+
<style lang="scss">
|
37
|
+
.selector {
|
38
|
+
flex-grow: 1;
|
39
|
+
flex-basis: 0;
|
40
|
+
min-width: 0;
|
41
|
+
}
|
42
|
+
</style>
|
package/src/styles/base/all.scss
CHANGED
package/src/styles/config.scss
CHANGED
@@ -32,34 +32,58 @@
|
|
32
32
|
}
|
33
33
|
}
|
34
34
|
|
35
|
-
|
36
|
-
|
35
|
+
@mixin generate-utility-classes($class-name, $css-property, $modifiers, $values, $breakpoints: null) {
|
36
|
+
// Генерация базовых классов без модификаторов и медиа-запросов
|
37
37
|
@each $value-key, $value in $values {
|
38
|
-
// Генерация классов без модификаторов
|
39
38
|
.#{$class-name}-#{$value-key} {
|
40
39
|
#{$css-property}: $value;
|
41
40
|
}
|
42
|
-
// Генерация отрицательных классов без модификаторов
|
43
41
|
.#{$class-name}-#{$value-key}-negative {
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
// Генерация классов с модификаторами
|
42
|
+
#{$css-property}: -$value;
|
43
|
+
}
|
44
|
+
|
48
45
|
@if $modifiers {
|
49
46
|
@each $modifier, $css-modifier in $modifiers {
|
50
47
|
.#{$class-name}-#{$modifier}-#{$value-key} {
|
51
48
|
#{$css-property}-#{$css-modifier}: $value;
|
52
49
|
}
|
53
|
-
// Генерация отрицательных классов с модификаторами
|
54
50
|
.#{$class-name}-#{$modifier}-#{$value-key}-negative {
|
55
51
|
#{$css-property}-#{$css-modifier}: calc(#{$value} * -1);
|
56
52
|
}
|
57
53
|
}
|
58
54
|
}
|
59
55
|
}
|
56
|
+
|
57
|
+
// Генерация классов с медиа-запросами
|
58
|
+
@if $breakpoints {
|
59
|
+
@each $breakpoint-key, $breakpoint-query in $breakpoints {
|
60
|
+
@media #{$breakpoint-query} {
|
61
|
+
@each $value-key, $value in $values {
|
62
|
+
.#{$breakpoint-key}\:#{$class-name}-#{$value-key} {
|
63
|
+
#{$css-property}: $value;
|
64
|
+
}
|
65
|
+
.#{$breakpoint-key}\:#{$class-name}-#{$value-key}-negative {
|
66
|
+
#{$css-property}: calc(#{$value} * -1);
|
67
|
+
}
|
68
|
+
|
69
|
+
@if $modifiers {
|
70
|
+
@each $modifier, $css-modifier in $modifiers {
|
71
|
+
.#{$breakpoint-key}\:#{$class-name}-#{$modifier}-#{$value-key} {
|
72
|
+
#{$css-property}-#{$css-modifier}: $value;
|
73
|
+
}
|
74
|
+
.#{$breakpoint-key}\:#{$class-name}-#{$modifier}-#{$value-key}-negative {
|
75
|
+
#{$css-property}-#{$css-modifier}: calc(#{$value} * -1);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
}
|
60
83
|
}
|
61
84
|
|
62
85
|
|
86
|
+
|
63
87
|
:root {
|
64
88
|
// THEME
|
65
89
|
color-scheme: light dark;
|
@@ -202,6 +226,13 @@ $percent: (
|
|
202
226
|
'0': 0%,
|
203
227
|
);
|
204
228
|
|
229
|
+
$breakpoints: (
|
230
|
+
'mobile': "(max-width: 640px)",
|
231
|
+
'tablet': "(min-width: 641px) and (max-width: 1024px)",
|
232
|
+
'desktop': "(min-width: 1025px) and (max-width: 1440px)",
|
233
|
+
'widescreen': "(min-width: 1441px)"
|
234
|
+
);
|
235
|
+
|
205
236
|
$base: (
|
206
237
|
'auto': auto,
|
207
238
|
'zero': 0,
|
@@ -213,29 +244,29 @@ $combined: map-merge($combined, $variables);
|
|
213
244
|
$combined: map-merge($combined, $base);
|
214
245
|
|
215
246
|
body {
|
216
|
-
@include generate-utility-classes('pd', 'padding',
|
217
|
-
@include generate-utility-classes('mn', 'margin',
|
247
|
+
@include generate-utility-classes('pd', 'padding', $modifiers, $combined, $breakpoints);
|
248
|
+
@include generate-utility-classes('mn', 'margin', $modifiers, $combined, $breakpoints);
|
218
249
|
|
219
|
-
@include generate-utility-classes('w',
|
220
|
-
@include generate-utility-classes('h',
|
250
|
+
@include generate-utility-classes('w', 'width', null, $combined, $breakpoints);
|
251
|
+
@include generate-utility-classes('h', 'height', null, $combined, $breakpoints);
|
221
252
|
|
222
|
-
@include generate-utility-classes('pos-t', 'top',
|
223
|
-
@include generate-utility-classes('pos-r', 'right',
|
224
|
-
@include generate-utility-classes('pos-b', 'bottom',
|
225
|
-
@include generate-utility-classes('pos-l', 'left',
|
253
|
+
@include generate-utility-classes('pos-t', 'top', null, $combined, $breakpoints);
|
254
|
+
@include generate-utility-classes('pos-r', 'right', null, $combined, $breakpoints);
|
255
|
+
@include generate-utility-classes('pos-b', 'bottom', null, $combined, $breakpoints);
|
256
|
+
@include generate-utility-classes('pos-l', 'left', null, $combined, $breakpoints);
|
226
257
|
|
227
|
-
@include generate-utility-classes('h-max', 'max-height',
|
228
|
-
@include generate-utility-classes('h-min', 'min-height',
|
258
|
+
@include generate-utility-classes('h-max', 'max-height', null, $combined, $breakpoints);
|
259
|
+
@include generate-utility-classes('h-min', 'min-height', null, $combined, $breakpoints);
|
229
260
|
|
230
|
-
@include generate-utility-classes('w-max', 'max-width', null, $combined);
|
231
|
-
@include generate-utility-classes('w-min', 'min-width', null, $combined);
|
261
|
+
@include generate-utility-classes('w-max', 'max-width', null, $combined, $breakpoints);
|
262
|
+
@include generate-utility-classes('w-min', 'min-width', null, $combined, $breakpoints);
|
232
263
|
|
233
|
-
@include generate-utility-classes('radius', 'border-radius',
|
264
|
+
@include generate-utility-classes('radius', 'border-radius', null, $combined, $breakpoints);
|
234
265
|
|
235
|
-
@include generate-utility-classes('radius-tl', 'border-top-left-radius',
|
236
|
-
@include generate-utility-classes('radius-
|
237
|
-
@include generate-utility-classes('radius-
|
238
|
-
@include generate-utility-classes('radius-bl', 'border-bottom-left-radius',
|
266
|
+
@include generate-utility-classes('radius-tl', 'border-top-left-radius', null, $combined, $breakpoints);
|
267
|
+
@include generate-utility-classes('radius-tr', 'border-top-right-radius', null, $combined, $breakpoints);
|
268
|
+
@include generate-utility-classes('radius-br', 'border-bottom-right-radius', null, $combined, $breakpoints);
|
269
|
+
@include generate-utility-classes('radius-bl', 'border-bottom-left-radius', null, $combined, $breakpoints);
|
239
270
|
|
240
271
|
@include generate-bg-classes('bg-main', 'main');
|
241
272
|
@include generate-bg-classes('bg-second', 'second');
|
@@ -1,15 +1,21 @@
|
|
1
1
|
$super-ultra-tiny-flip-phone-max: 240px;
|
2
|
+
|
2
3
|
$flip-phone-max: 320px;
|
3
4
|
$phone-portrait-max: 321px;
|
4
5
|
$phone-landscape-max: 640px;
|
6
|
+
|
5
7
|
$tablet-portrait-min: 641px;
|
6
8
|
$tablet-portrait-max: 768px;
|
9
|
+
|
7
10
|
$tablet-landscape-min: 769px;
|
8
11
|
$tablet-landscape-max: 1024px;
|
12
|
+
|
9
13
|
$desktop-min: 1025px;
|
10
14
|
$desktop-max: 1440px;
|
15
|
+
|
11
16
|
$xl-desktop-min: 1441px;
|
12
17
|
$xl-desktop-max: 1920px;
|
18
|
+
|
13
19
|
$xxl-desktop-min: 1921px;
|
14
20
|
|
15
21
|
@media screen and (min-width: $xxl-desktop-min) {
|