@appartmint/mint 1.3.0 → 1.3.1

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.
Files changed (34) hide show
  1. package/package.json +2 -2
  2. package/src/scss/imports/_index.scss +10 -0
  3. package/src/scss/imports/components/_backgrounds.scss +38 -0
  4. package/src/scss/imports/components/_buttons.scss +243 -0
  5. package/src/scss/imports/components/_cards.scss +259 -0
  6. package/src/scss/imports/components/_embed.scss +75 -0
  7. package/src/scss/imports/components/_footer.scss +134 -0
  8. package/src/scss/imports/components/_header.scss +512 -0
  9. package/src/scss/imports/components/_image.scss +37 -0
  10. package/src/scss/imports/components/_index.scss +16 -0
  11. package/src/scss/imports/components/_recaptcha.scss +17 -0
  12. package/src/scss/imports/components/_tables.scss +29 -0
  13. package/src/scss/imports/global/_animations.scss +79 -0
  14. package/src/scss/imports/global/_aspect.scss +54 -0
  15. package/src/scss/imports/global/_flex.scss +7 -0
  16. package/src/scss/imports/global/_global.scss +208 -0
  17. package/src/scss/imports/global/_grid.scss +153 -0
  18. package/src/scss/imports/global/_icons.scss +6 -0
  19. package/src/scss/imports/global/_index.scss +12 -0
  20. package/src/scss/imports/global/_inputs.scss +135 -0
  21. package/src/scss/imports/global/_structure.scss +89 -0
  22. package/src/scss/imports/global/_text.scss +62 -0
  23. package/src/scss/imports/global/_texture.scss +124 -0
  24. package/src/scss/imports/global/_themes.scss +174 -0
  25. package/src/scss/imports/overrides/_amplify.scss +48 -0
  26. package/src/scss/imports/overrides/_full-calendar.scss +46 -0
  27. package/src/scss/imports/overrides/_index.scss +11 -0
  28. package/src/scss/imports/overrides/_material.scss +24 -0
  29. package/src/scss/imports/overrides/_swiper.scss +55 -0
  30. package/src/scss/imports/util/_index.scss +9 -0
  31. package/src/scss/imports/util/_util.scss +1034 -0
  32. package/src/scss/imports/util/_vars.scss +262 -0
  33. package/src/scss/mint.scss +7 -0
  34. package/src/scss/noscript.scss +14 -0
@@ -0,0 +1,29 @@
1
+ /// _tables.scss - Table styles
2
+ /// @author App Art Mint LLC
3
+ ///
4
+ /// @group Components
5
+ @charset 'utf-8';
6
+
7
+ /// Imports
8
+ @use '../util' as *;
9
+
10
+ /// Table
11
+ #{class(table)} {
12
+ &-wrap {
13
+ max-height: 50vh;
14
+ overflow-y: auto;
15
+ }
16
+
17
+ &.mat-mdc-table {
18
+ thead {
19
+ background: css-var(back);
20
+ }
21
+ }
22
+
23
+ #{class(actions)} {
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: flex-end;
27
+ gap: 1rem;
28
+ }
29
+ }
@@ -0,0 +1,79 @@
1
+ /// _animations.scss - Global animations
2
+ /// @author App Art Mint LLC
3
+ ///
4
+ /// @group Animations
5
+ @charset 'utf-8';
6
+
7
+ /// Imports
8
+ @use 'sass:math';
9
+ @use 'sass:map';
10
+ @use 'sass:list';
11
+ @use '../util' as *;
12
+
13
+ /// Animations
14
+ /// Cycle through instagram colors
15
+ @keyframes instafade {
16
+ @for $i from 0 through 6 {
17
+ $percent: percentage(math.div($i, 6));
18
+ #{$percent} {
19
+ color: css-var(instagram-#{$i});
20
+ }
21
+ }
22
+ }
23
+
24
+ /// CSS variables
25
+ :root {
26
+ @include css-var(delay-instant, delay(instant));
27
+ @include css-var(delay-fast, delay(fast));
28
+ @include css-var(delay-med-fast, delay(med-fast));
29
+ @include css-var(delay-default, delay(default));
30
+ @include css-var(delay-med-slow, delay(med-slow));
31
+ @include css-var(delay-slow, delay(slow));
32
+ }
33
+
34
+ #{class(fall-in)} {
35
+ filter: opacity(0%);
36
+ transform: translateY(-100px);
37
+ transition: all delay(slow) ease-out, box-shadow delay(slow) delay(med-slow) ease-out !important;
38
+ pointer-events: none;
39
+ z-index: -1;
40
+
41
+ &#{class(show)}#{neg(class(loading))} {
42
+ filter: opacity(100%);
43
+ transform: translateY(0%);
44
+ pointer-events: auto;
45
+ z-index: 1;
46
+ }
47
+
48
+ &#{neg(class(show))}, &#{class(loading)} {
49
+ box-shadow: 0 0 0 0 transparent !important;
50
+ }
51
+
52
+ &#{class(fast)} {
53
+ transition: all delay(fast), box-shadow delay(fast) delay(fast) !important;
54
+ }
55
+ }
56
+
57
+ #{class(shine)} {
58
+ position: relative;
59
+ overflow: hidden;
60
+
61
+ @include states(hover, focus, active) {
62
+ &::after {
63
+ transition-duration: delay(default);
64
+ transform: translate(100%, -100%);
65
+ }
66
+ }
67
+
68
+ &::after {
69
+ content: '';
70
+ position: absolute;
71
+ top: 0;
72
+ left: 0;
73
+ width: 100%;
74
+ height: 100%;
75
+ transform: translate(-100%, 100%);
76
+ background: linear-gradient(45deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0) 100%);
77
+ transition: transform delay(med-fast) ease-out;
78
+ }
79
+ }
@@ -0,0 +1,54 @@
1
+ /// _aspect.scss - Apect Ratios
2
+ /// @author App Art Mint LLC
3
+ ///
4
+ /// @group Aspect
5
+ @charset 'utf-8';
6
+
7
+ /// Imports
8
+ @use 'sass:math';
9
+ @use '../util' as *;
10
+
11
+ /// Aspect Ratios
12
+ #{class(aspect)} {
13
+ position: relative;
14
+ height: 0;
15
+ overflow: hidden;
16
+
17
+ &#{class(spotify)} {
18
+ &-playlist {
19
+ padding-top: 152px !important;
20
+
21
+ @include break(xs) {
22
+ padding-top: 125% !important;
23
+ }
24
+
25
+ @include break(sm) {
26
+ padding-top: 75% !important;
27
+ }
28
+
29
+ @include break(md) {
30
+ padding-top: 56.25% !important;
31
+ }
32
+ }
33
+
34
+ &-podcast {
35
+ padding-top: 352px !important;
36
+ }
37
+ }
38
+
39
+ iframe, video {
40
+ position: absolute !important;
41
+ top: 50% !important;
42
+ left: 50% !important;
43
+ transform: translate(-50%, -50%) !important;
44
+ width: 100% !important;
45
+ height: 100% !important;
46
+ }
47
+ }
48
+
49
+ $width: 16;
50
+ $height: 9;
51
+ #{class($width + '-' + $height)} {
52
+ @extend #{class(aspect)};
53
+ padding-top: math.div($height, $width) * 100% !important;
54
+ }
@@ -0,0 +1,7 @@
1
+ /// Imports
2
+ @use '../util' as *;
3
+
4
+ /// Flex mixins
5
+ #{class(flex)} {
6
+ @include flex-util();
7
+ }
@@ -0,0 +1,208 @@
1
+ /// Imports
2
+ @use '../util' as *;
3
+
4
+ /// Global styles
5
+ * {
6
+
7
+ &,
8
+ &::before,
9
+ &::after {
10
+ box-sizing: border-box;
11
+ }
12
+ }
13
+
14
+ html {
15
+ overflow-x: hidden;
16
+ }
17
+
18
+ html,
19
+ body {
20
+ color: css-var(fore);
21
+ background-color: css-var(back);
22
+ min-height: 100vh;
23
+ margin: 0;
24
+ padding: 0;
25
+ scroll-behavior: smooth;
26
+ }
27
+
28
+ body {
29
+ &#{class(fixed)} {
30
+ #{id(header)} {
31
+ position: fixed;
32
+ top: 0;
33
+ left: 0;
34
+ }
35
+
36
+ main {
37
+ min-height: 100vh;
38
+ padding-top: css-var(header-height);
39
+ }
40
+ }
41
+
42
+ &#{class(ready)} {
43
+ app-root {
44
+ opacity: 1;
45
+ }
46
+ }
47
+ }
48
+
49
+ app-root {
50
+ display: block;
51
+ position: relative;
52
+ opacity: 0;
53
+ transition: opacity 750ms ease-in;
54
+
55
+ @if (type-of($root-bg-image) == 'string') {
56
+ &::before {
57
+ content: '';
58
+ position: absolute;
59
+ top: 0;
60
+ left: 0;
61
+ width: 100%;
62
+ height: 100%;
63
+ background-image: url($root-bg-image);
64
+
65
+ @if (type-of($root-bg-size) != 'null') {
66
+ background-size: $root-bg-size;
67
+ }
68
+
69
+ @if (type-of($root-bg-position) != 'null') {
70
+ background-position: $root-bg-position;
71
+ }
72
+
73
+ @if (type-of($root-bg-filter) != 'null') {
74
+ filter: $root-bg-filter;
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
+ main {
81
+ display: flex;
82
+ flex-direction: column;
83
+ position: relative;
84
+ width: 100%;
85
+ min-height: calc(100vh - css-var(header-height));
86
+ overflow: hidden;
87
+ z-index: 1000;
88
+
89
+ &>router-outlet {
90
+ flex-grow: 0;
91
+ }
92
+ }
93
+
94
+ :root {
95
+ main {
96
+ & > router-outlet {
97
+ & + * {
98
+ display: flex;
99
+ flex-direction: column;
100
+ align-items: center;
101
+ justify-content: center;
102
+ flex-grow: 1;
103
+ width: 100%;
104
+ padding: 0.25rem;
105
+
106
+ @include fluid(padding, map-get($break, xs) * 1px, map-get($break, sm) * 1px, 4px, 16px);
107
+
108
+ &+:not(#{prefix(partial-footer)}) {
109
+ height: 0;
110
+ overflow: hidden;
111
+ }
112
+ }
113
+ }
114
+ }
115
+ }
116
+
117
+ nav {
118
+ a {
119
+ display: block;
120
+ text-decoration: none;
121
+ }
122
+
123
+ ul {
124
+ display: flex;
125
+ margin: 0;
126
+ padding: 0;
127
+ list-style: none;
128
+
129
+ &>li>ul {
130
+ flex-direction: column;
131
+ }
132
+ }
133
+ }
134
+
135
+ a {
136
+
137
+ &[href^='mailto:'],
138
+ &[href^='tel:'],
139
+ &[href^='sms:'] {
140
+ @include break (xs) {
141
+ white-space: nowrap;
142
+ }
143
+ }
144
+ }
145
+
146
+ button,
147
+ a[routerLink] {
148
+ cursor: pointer;
149
+ }
150
+
151
+ a,
152
+ button {
153
+ font-size: inherit;
154
+
155
+ &[disabled] {
156
+ filter: grayscale(1) brightness(0.75) !important;
157
+ pointer-events: none !important;
158
+
159
+ &#{class(fall-in)}#{neg(class(show))} {
160
+ filter: grayscale(1) brightness(0.75) opacity(0%) !important;
161
+ }
162
+ }
163
+
164
+ i {
165
+ &:first-child {
166
+ margin-right: 0.5em;
167
+ }
168
+
169
+ &:last-child {
170
+ margin-left: 0.5em;
171
+ }
172
+ }
173
+ }
174
+
175
+ img,
176
+ video {
177
+ width: 100%;
178
+ height: auto;
179
+ }
180
+
181
+ iframe {
182
+ border: none;
183
+ }
184
+
185
+ #{class(glow)} {
186
+ box-shadow: 0 0 2rem -0.5rem css-var(glow-2);
187
+ }
188
+
189
+ #{class(noglow)} {
190
+ box-shadow: none !important;
191
+ }
192
+
193
+ #{class(sr-only)} {
194
+ position: absolute !important;
195
+ width: 1px !important;
196
+ height: 1px !important;
197
+ padding: 0 !important;
198
+ margin: -1px !important;
199
+ overflow: hidden !important;
200
+ clip: rect(0, 0, 0, 0) !important;
201
+ border: 0 !important;
202
+ }
203
+
204
+ #{class(list)} {
205
+ list-style: none;
206
+ margin: 0;
207
+ padding: 0;
208
+ }
@@ -0,0 +1,153 @@
1
+ /// Imports
2
+ @use '../util' as *;
3
+
4
+ /// Grid mixins
5
+ @mixin grid-2 {
6
+ @include break(sm) {
7
+ grid-template-columns: repeat(2, 1fr);
8
+
9
+ & > :last-child:nth-child(odd) {
10
+ #{class(card)} {
11
+ grid-column: span 2;
12
+ width: 50%;
13
+ margin-left: auto;
14
+ margin-right: auto;
15
+ }
16
+ }
17
+ }
18
+ }
19
+
20
+ @mixin grid-3 {
21
+ @include break(lg) {
22
+ grid-template-columns: repeat(3, 1fr);
23
+
24
+ & > :last-child:nth-child(odd) {
25
+ #{class(card)} {
26
+ grid-column: span 1;
27
+ width: 100%;
28
+ }
29
+ }
30
+
31
+ & > :last-child:nth-child(#{'3n+1'}) {
32
+ #{class(card)} {
33
+ grid-column: 2;
34
+ }
35
+ }
36
+
37
+ & > :last-child:nth-child(#{'3n+2'}) {
38
+ #{class(card)} {
39
+ grid-column: 3;
40
+ }
41
+ }
42
+
43
+ & > :nth-last-child(2):nth-child(#{'3n+1'}) {
44
+ #{class(card)} {
45
+ grid-column: 1;
46
+ }
47
+ }
48
+ }
49
+ }
50
+
51
+ @mixin grid-4 {
52
+ @include break(xl) {
53
+ grid-template-columns: repeat(4, 1fr);
54
+
55
+ & > :last-child:nth-child(odd),
56
+ & > :last-child:nth-child(#{'3n+1'}),
57
+ & > :last-child:nth-child(#{'3n+2'}),
58
+ & > :nth-last-child(2):nth-child(#{'3n+1'}) {
59
+ #{class(card)} {
60
+ grid-column: span 1;
61
+ width: 100%;
62
+ }
63
+ }
64
+
65
+ & > :last-child:nth-child(#{'4n+1'}) {
66
+ #{class(card)} {
67
+ grid-column: 2 / span 2;
68
+ width: 50%;
69
+ margin-left: auto;
70
+ margin-right: auto;
71
+ }
72
+ }
73
+
74
+ & > :last-child:nth-child(#{'4n+2'}) {
75
+ #{class(card)} {
76
+ grid-column: 3 / span 2;
77
+ width: 50%;
78
+ margin-left: auto;
79
+ margin-right: auto;
80
+ }
81
+ }
82
+
83
+ & > :nth-last-child(2):nth-child(#{'4n+1'}) {
84
+ #{class(card)} {
85
+ grid-column: 1 / span 2;
86
+ width: 50%;
87
+ margin-left: auto;
88
+ margin-right: auto;
89
+ }
90
+ }
91
+
92
+ & > :last-child:nth-child(#{'4n+3'}) {
93
+ #{class(card)} {
94
+ grid-column: 4;
95
+ }
96
+ }
97
+
98
+ & > :nth-last-child(2):nth-child(#{'4n+2'}) {
99
+ #{class(card)} {
100
+ grid-column: 2 / span 2;
101
+ width: 50%;
102
+ margin-left: auto;
103
+ margin-right: auto;
104
+ }
105
+ }
106
+
107
+ & > :nth-last-child(3):nth-child(#{'4n+1'}) {
108
+ #{class(card)} {
109
+ grid-column: 1;
110
+ }
111
+ }
112
+ }
113
+
114
+ }
115
+
116
+ /// Grid styles
117
+ #{class(grid)} {
118
+ display: grid;
119
+ grid-template-columns: 1fr;
120
+ gap: $grid-gap;
121
+ width: 100%;
122
+ margin-top: $grid-gap;
123
+ margin-bottom: $grid-gap;
124
+
125
+ &#{class('2')} {
126
+ @include grid-2;
127
+ }
128
+
129
+ &#{class('3')} {
130
+ @include grid-2;
131
+ @include grid-3;
132
+ }
133
+
134
+ &#{class('4')} {
135
+ @include grid-2;
136
+ @include grid-3;
137
+ @include grid-4;
138
+ }
139
+
140
+ #{class(portrait)} {
141
+ grid-row: span 2;
142
+ }
143
+
144
+ #{class(landscape)} {
145
+ @include break(sm) {
146
+ grid-column: span 2;
147
+ }
148
+ @include break(lg) {
149
+ grid-column: span 3;
150
+ }
151
+ }
152
+ }
153
+
@@ -0,0 +1,6 @@
1
+ /// Icon styles
2
+ i {
3
+ &.fa-envelope {
4
+ transform: translateY(5%);
5
+ }
6
+ }
@@ -0,0 +1,12 @@
1
+ /// Forward all global styles
2
+ @use './animations';
3
+ @use './aspect';
4
+ @use './flex';
5
+ @use './global';
6
+ @use './grid';
7
+ @use './icons';
8
+ @use './inputs';
9
+ @use './structure';
10
+ @use './text';
11
+ @use './texture';
12
+ @use './themes';
@@ -0,0 +1,135 @@
1
+ /// _inputs.scss - Input styles
2
+ /// @author App Art Mint LLC
3
+ ///
4
+ /// @group Inputs
5
+ @charset 'utf-8';
6
+
7
+ /// Imports
8
+ @use '../util' as *;
9
+
10
+ /// Input Styles
11
+ input,
12
+ textarea,
13
+ select {
14
+ width: 100%;
15
+ padding: 0.5rem;
16
+ border: 2px solid #ccc;
17
+ border-radius: $border-radius;
18
+ }
19
+
20
+ select {
21
+ @include break(xs) {
22
+ width: auto;
23
+ }
24
+ }
25
+
26
+ textarea {
27
+ resize: vertical;
28
+ }
29
+
30
+ /// Checkbox Styles
31
+ #{class(toggle)} {
32
+ display: flex;
33
+ align-items: center;
34
+ gap: 1rem;
35
+
36
+ div {
37
+ display: flex;
38
+ flex-direction: column;
39
+ align-items: center;
40
+ gap: 0.5rem;
41
+
42
+ @include break(xs) {
43
+ flex-direction: row;
44
+ }
45
+ }
46
+ }
47
+
48
+ #{class(check)} {
49
+ $padding: 0.25rem;
50
+ $height: 1.5rem;
51
+ $border-width: 0.125rem;
52
+ $width: ($height - $padding) * 2;
53
+ position: relative;
54
+ display: inline-block;
55
+ flex-shrink: 0;
56
+ height: $height + $border-width * 2;
57
+ width: $width + $border-width * 2;
58
+ border: $border-width solid css-var(brand-2);
59
+ border-radius: $border-radius;
60
+ background-color: css-var(brand-5);
61
+ cursor: pointer;
62
+
63
+ [type="checkbox"] {
64
+ display: none;
65
+
66
+ &:checked {
67
+
68
+
69
+ & + span {
70
+ left: calc(100% - #{$height - $padding});
71
+ background-color: css-var(brand-2);
72
+ filter: grayscale(0);
73
+ }
74
+ }
75
+
76
+ & + span {
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ position: absolute;
81
+ top: $padding;
82
+ left: $padding;
83
+ transform: translateX(0);
84
+ width: $height - $padding * 2;
85
+ height: $height - $padding * 2;
86
+ background-color: css-var(brand-4);
87
+ border-radius: $border-radius;
88
+ filter: grayscale(1);
89
+ transition: filter 300ms, background-color 300ms, left 300ms;
90
+ }
91
+ }
92
+
93
+ & + span {
94
+ width: 1.5rem;
95
+ text-align: center;
96
+ }
97
+ }
98
+
99
+ /// Dropdown Styles
100
+ #{class(dropdown)} {
101
+ display: flex;
102
+ align-items: center;
103
+ flex-wrap: wrap;
104
+
105
+ @include break(xs) {
106
+ gap: 1rem;
107
+ }
108
+ }
109
+
110
+ /// Label Styles
111
+ #{class(error)} {
112
+ line-height: 0;
113
+ filter: opacity(0);
114
+ transition: filter 0.3s;
115
+
116
+ &#{class(show)} {
117
+ filter: opacity(1);
118
+ }
119
+ }
120
+
121
+ /// Array Input Styles
122
+ #{class(array-item)} {
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: flex-end;
126
+ gap: 0.5rem;
127
+
128
+ :first-child {
129
+ flex-grow: 1;
130
+ }
131
+
132
+ :last-child {
133
+ flex-shrink: 0;
134
+ }
135
+ }