vgapp 0.5.9 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,62 @@
1
+ .vg-nav-hamburger {
2
+ display: none;
3
+ align-items: flex-start;
4
+
5
+ &--lines {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ width: var(--vg-nav-hamburger-line-width);
10
+ height: calc(var(--vg-nav-hamburger-line-height) * 3 + var(--vg-nav-hamburger-line-indent-top) * 2);
11
+ position: relative;
12
+
13
+ span {
14
+ background-color: var(--vg-nav-hamburger-line-color);
15
+ height: var(--vg-nav-hamburger-line-height);
16
+ width: var(--vg-nav-hamburger-line-width);
17
+ right: 0;
18
+ cursor: pointer;
19
+ border-radius: 2px;
20
+ position: absolute;
21
+ display: block;
22
+ transition: all 0.4s ease;
23
+ transform: rotate(0);
24
+ opacity: 1;
25
+
26
+ &:first-child {
27
+ top: 0;
28
+ }
29
+ &:nth-child(2) {
30
+ top: calc(var(--vg-nav-hamburger-line-height) + var(--vg-nav-hamburger-line-indent-top));
31
+ }
32
+ &:nth-child(3) {
33
+ top: calc((var(--vg-nav-hamburger-line-height) + var(--vg-nav-hamburger-line-indent-top)) * 2)
34
+ }
35
+ }
36
+ }
37
+
38
+ &--title {
39
+ position: relative;
40
+ display: inline-block;
41
+ margin-right: 3px;
42
+ }
43
+
44
+ &.vg-nav-hamburger-active {
45
+ .vg-nav-hamburger--lines {
46
+ span {
47
+ &:first-child {
48
+ opacity: 0;
49
+ }
50
+
51
+ &:nth-child(2) {
52
+ transform: rotate(45deg);
53
+ }
54
+
55
+ &:last-child {
56
+ transform: rotate(-45deg);
57
+ top: 10px;
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,70 @@
1
+ &.vg-nav-horizontal {
2
+ .vg-nav-wrapper {
3
+ flex-direction: row;
4
+
5
+ .dropdown {
6
+ > ul {
7
+ &.left, .left {
8
+ left: 0;
9
+ }
10
+
11
+ &.right, .right {
12
+ right: 0;
13
+ }
14
+
15
+ .dropdown {
16
+ ul.left {
17
+ left: 100%;
18
+ }
19
+
20
+ ul.right {
21
+ right: 100%;
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+
29
+ &.vg-nav-vertical {
30
+ .vg-nav-wrapper {
31
+ flex-direction: column;
32
+
33
+ .dropdown {
34
+ > ul {
35
+ top: 100%;
36
+
37
+ &.left, .left {
38
+ left: 100%;
39
+ }
40
+
41
+ &.right, .right {
42
+ right: 100%;
43
+ }
44
+
45
+ &.fade {
46
+ top: 0;
47
+ }
48
+ }
49
+
50
+ &.show {
51
+ > ul {
52
+ top: 0;
53
+ }
54
+ }
55
+ }
56
+
57
+ .dropdown-mega {
58
+ position: relative;
59
+
60
+ .dropdown-mega-container {
61
+ left: 100%;
62
+ top: 100%;
63
+
64
+ &.fade {
65
+ top: 0;
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,20 @@
1
+ .toggle {
2
+ transition: var(--vg-nav-transition);
3
+ transform: rotate(0);
4
+
5
+ span {
6
+ &.default {
7
+ border-top: .3em solid;
8
+ border-right: .3em solid transparent;
9
+ border-bottom: 0;
10
+ border-left: .3em solid transparent;
11
+ width: 0;
12
+ height: 0;
13
+ transition: var(--vg-nav-transition);
14
+ transform: rotate(0);
15
+ display: inline-block;
16
+ margin-left: .355em;
17
+ vertical-align: .255em;
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,70 @@
1
+ $nav-map: (
2
+ transition: all .2s ease-in-out,
3
+ );
4
+
5
+ $grid-breakpoints: (
6
+ xs: 576px,
7
+ sm: 768px,
8
+ md: 992px,
9
+ lg: 1200px,
10
+ xl: 1400px,
11
+ xxl: 1600px,
12
+ xxxl: 1800px
13
+ );
14
+
15
+ $nav-item-map: (
16
+ margin: 0,
17
+ padding: 23px 25px,
18
+ font-size: 1rem,
19
+ font-weight: 400,
20
+ line-height: 1.4,
21
+ color: #212529,
22
+ decoration: none,
23
+ display: inline-block,
24
+ border: none,
25
+ border-radius: 0,
26
+ white-space: nowrap,
27
+ position: relative,
28
+ );
29
+
30
+ $hamburger-map: (
31
+ height: 27px,
32
+ line-width: 35px,
33
+ line-color: #333333,
34
+ line-height: 3px,
35
+ line-indent-top: 7px
36
+ );
37
+
38
+ $nav-drop-map: (
39
+ z-index: 10,
40
+ transition: map-get($nav-map, transition),
41
+ width: 200px,
42
+ max-height: initial,
43
+ border-color: $border-color,
44
+ border-radius: 0,
45
+ padding: 0,
46
+ bg: $bg-color
47
+ );
48
+
49
+ $nav-drop-mega-map: (
50
+ width: 100%,
51
+ min-height: 300px,
52
+ bg: $bg-color,
53
+ border-color: $border-color,
54
+ border-radius: 0,
55
+ padding: 1rem,
56
+ z-index: 10,
57
+ transition: map-get($nav-map, transition),
58
+ max-height: initial,
59
+ );
60
+
61
+ $nav-drop-item-map: (
62
+ padding: .75rem 1rem,
63
+ border-color: transparent,
64
+ border-color-hover: transparent,
65
+ bg: transparent,
66
+ bg-hover: transparent,
67
+ color: inherit,
68
+ color-hover: inherit,
69
+ transition: map-get($nav-map, transition),
70
+ );
@@ -0,0 +1,164 @@
1
+ /**
2
+ *--------------------------------------------------------------------------
3
+ * Модуль: VGNav
4
+ * Автор: Vegas DEV
5
+ * Лицензия: смотри LICENSE
6
+ *--------------------------------------------------------------------------
7
+ **/
8
+
9
+ @import "../../../utils/scss/functions";
10
+ @import "../../../utils/scss/mixin";
11
+ @import "../../../utils/scss/variables";
12
+ @import "variables";
13
+ @import "breakpoints";
14
+
15
+ .vg-nav {
16
+ @include mix-vars('nav', $nav-map);
17
+ @include mix-vars('nav-item', $nav-item-map);
18
+ @include mix-vars('nav-drop', $nav-drop-map);
19
+ @include mix-vars('nav-drop-mega', $nav-drop-mega-map);
20
+ @include mix-vars('nav-drop-item', $nav-drop-item-map);
21
+ @include mix-vars('nav-hamburger', $hamburger-map);
22
+
23
+ .vg-nav-wrapper {
24
+ display: flex;
25
+ padding: 0;
26
+ margin: 0;
27
+ position: relative;
28
+
29
+ > li {
30
+ list-style: none;
31
+ margin: var(--vg-nav-item-margin);
32
+
33
+ > a {
34
+ white-space: var(--vg-nav-item-white-space);
35
+ position: var(--vg-nav-item-position);
36
+ display: var(--vg-nav-item-display);
37
+ padding: var(--vg-nav-item-padding);
38
+ font-size: var(--vg-nav-item-font-size);
39
+ font-weight: var(--vg-nav-item-font-weight);
40
+ line-height: var(--vg-nav-item-line-height);
41
+ color: var(--vg-nav-item-color);
42
+ text-decoration: var(--vg-nav-item-decoration);
43
+ border: var(--vg-nav-item-border);
44
+ border-radius: var(--vg-nav-item-border-radius);
45
+ }
46
+
47
+ /** set toggle **/
48
+ @import "toggle";
49
+ }
50
+
51
+ .dropdown {
52
+ position: relative;
53
+
54
+ .dropdown-content {
55
+ transition: var(--vg-nav-drop-transition);
56
+ list-style: none;
57
+ z-index: var(--vg-nav-drop-z-index);
58
+ position: absolute;
59
+ top: 120%;
60
+ opacity: 0;
61
+ visibility: hidden;
62
+ width: var(--vg-nav-drop-width);
63
+ padding: var(--vg-nav-drop-padding);
64
+ border: 1px solid var(--vg-nav-drop-border-color);
65
+ border-radius: var(--vg-nav-drop-border-radius);
66
+ background-color: var(--vg-nav-drop-bg);
67
+ max-height: var(--vg-nav-drop-max-height);
68
+ overflow: auto;
69
+
70
+ &:not(.show) {
71
+ display: none;
72
+ }
73
+
74
+ &.fade {
75
+ visibility: visible;
76
+ opacity: 1;
77
+ top: 100%;
78
+ }
79
+
80
+ .dropdown-content {
81
+ &.fade {
82
+ top: 0;
83
+ }
84
+ }
85
+
86
+ li {
87
+ a {
88
+ display: block;
89
+ padding: var(--vg-nav-drop-item-padding);
90
+ border-top: 1px solid var(--vg-nav-drop-item-border-color);
91
+ background-color: var(--vg-nav-drop-item-bg);
92
+ transition: var(--vg-nav-drop-item-transition);
93
+ color: var(--vg-nav-drop-item-color);
94
+
95
+ &:hover {
96
+ background-color: var(--vg-nav-drop-item-bg-hover);
97
+ color: var(--vg-nav-drop-item-color-hover);
98
+ border-color: var(--vg-nav-drop-item-border-color-hover);
99
+ }
100
+ }
101
+
102
+ &:first-child {
103
+ a {
104
+ border-top: none;
105
+ }
106
+ }
107
+ }
108
+ }
109
+
110
+ &.dropdown-mega {
111
+ position: static;
112
+
113
+ .dropdown-content {
114
+ transition: var(--vg-nav-drop-mega-transition);
115
+ position: absolute;
116
+ left: 0;
117
+ width: var(--vg-nav-drop-mega-width);
118
+ min-height: var(--vg-nav-drop-mega-min-height);
119
+ padding: var(--vg-nav-drop-mega-padding);
120
+ border: 1px solid var(--vg-nav-drop-mega-border-color);
121
+ border-radius: var(--vg-nav-drop-mega-border-radius);
122
+ background-color: var(--vg-nav-drop-mega-bg);
123
+ z-index: var(--vg-nav-drop-z-index);
124
+
125
+ &:not(.show) {
126
+ display: none;
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+
133
+ /** set placement **/
134
+ @import "placement";
135
+
136
+ /** set hamburger **/
137
+ @import "hamburger";
138
+
139
+ &:not(.vg-nav-expand) {
140
+ @each $breakpoint in map-keys($grid-breakpoints) {
141
+ @include media-breakpoint-down($breakpoint, $grid-breakpoints) {
142
+ &.vg-nav-#{$breakpoint} {
143
+ .vg-nav-hamburger {
144
+ display: flex;
145
+ }
146
+
147
+ > .vg-nav-wrapper {
148
+ display: none;
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+
155
+ &.vg-nav-hamburger-always {
156
+ .vg-nav-hamburger {
157
+ display: flex;
158
+ }
159
+
160
+ .vg-nav-wrapper {
161
+ display: none;
162
+ }
163
+ }
164
+ }