@visualizevalue/mint-app-base 0.0.7 → 0.1.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 (72) hide show
  1. package/.env.example +1 -1
  2. package/app/assets/styles/animation.css +1 -9
  3. package/app/assets/styles/base.css +13 -18
  4. package/app/assets/styles/forms.css +19 -55
  5. package/app/assets/styles/index.css +24 -6
  6. package/app/assets/styles/normalize.css +8 -3
  7. package/app/assets/styles/prose.css +3 -129
  8. package/app/assets/styles/variables/animations.css +8 -0
  9. package/app/assets/styles/variables/borders.css +14 -0
  10. package/app/assets/styles/variables/colors.css +20 -0
  11. package/app/assets/styles/{theme.css → variables/components.css} +8 -2
  12. package/app/assets/styles/variables/effects.css +6 -0
  13. package/app/assets/styles/variables/fonts.css +26 -0
  14. package/app/assets/styles/variables/layout.css +9 -0
  15. package/app/assets/styles/variables/sizes.css +23 -0
  16. package/app/assets/styles/variables/ui.css +17 -0
  17. package/app/assets/styles/variables.css +16 -192
  18. package/app/assets/styles/web3-modals.css +3 -8
  19. package/app/components/Account.client.vue +1 -1
  20. package/app/components/Actions.vue +2 -3
  21. package/app/components/AppHeader.vue +2 -25
  22. package/app/components/Breadcrumbs.vue +1 -1
  23. package/app/components/Button/AddCollection.vue +10 -0
  24. package/app/components/Button/EditProfile.vue +10 -0
  25. package/app/components/Button/Profile/Discord.vue +10 -0
  26. package/app/components/Button/Profile/Email.vue +10 -0
  27. package/app/components/Button/Profile/Github.vue +11 -0
  28. package/app/components/Button/Profile/Twitter.vue +10 -0
  29. package/app/components/Button/Profile/Website.vue +10 -0
  30. package/app/components/Button.vue +17 -36
  31. package/app/components/CheckSpinner.vue +0 -18
  32. package/app/components/Collection/Intro.vue +9 -6
  33. package/app/components/Collection/OverviewCard.vue +13 -7
  34. package/app/components/Collection/Withdraw.client.vue +2 -1
  35. package/app/components/DialogFrame.vue +4 -7
  36. package/app/components/Form/Group.vue +19 -4
  37. package/app/components/Form/SelectFile.vue +1 -1
  38. package/app/components/Icon.vue +21 -17
  39. package/app/components/Image.client.vue +3 -7
  40. package/app/components/ImagePreview.vue +8 -0
  41. package/app/components/Loading.vue +2 -38
  42. package/app/components/MintGasPricePopover.client.vue +2 -2
  43. package/app/components/MintToken.vue +1 -1
  44. package/app/components/MintTokenBar.vue +1 -0
  45. package/app/components/Modal.vue +3 -2
  46. package/app/components/Popover.client.vue +3 -23
  47. package/app/components/Profile/Header.client.vue +6 -35
  48. package/app/components/Token/Detail.client.vue +19 -10
  49. package/app/components/Token/MintTimeline.client.vue +14 -43
  50. package/app/components/Token/MintTimelineItem.vue +50 -13
  51. package/app/components/Token/OverviewCard.vue +10 -17
  52. package/app/components/TransactionFlow.vue +6 -11
  53. package/app/layouts/default.vue +2 -14
  54. package/app/pages/[id]/[collection]/[tokenId]/index.vue +1 -1
  55. package/app/pages/[id]/[collection]/index.vue +1 -1
  56. package/app/pages/[id]/[collection]/mint.vue +4 -4
  57. package/app/pages/[id]/create.vue +49 -49
  58. package/app/pages/[id]/index.vue +1 -6
  59. package/app/pages/profile/[address]/index.vue +1 -4
  60. package/app/plugins/2.wagmi.ts +2 -2
  61. package/package.json +2 -1
  62. package/app/assets/styles/scroll.css +0 -13
  63. package/app/assets/styles/text.css +0 -14
  64. package/app/assets/styles/utils.css +0 -24
  65. package/app/components/Avatar.vue +0 -61
  66. package/app/components/CountDown.vue +0 -153
  67. package/app/components/IconLink.vue +0 -29
  68. package/app/components/Navbar.client.vue +0 -86
  69. package/app/components/Page/FrameSM.vue +0 -33
  70. package/app/components/QueryDialog.vue +0 -38
  71. package/app/components/ToggleDarkMode.client.vue +0 -58
  72. package/app/components/Visual/ImagePreview.vue +0 -8
package/.env.example CHANGED
@@ -5,7 +5,7 @@ NITRO_PRESET=node_cluster
5
5
  NUXT_SSR=false
6
6
  NUXT_DEVTOOLS=true
7
7
  NUXT_PUBLIC_DOMAIN=localhost
8
- NUXT_PUBLIC_TITLE=Mint.VV
8
+ NUXT_PUBLIC_TITLE=Mint
9
9
  NUXT_PUBLIC_DESCRIPTION=To mint is a human right.
10
10
 
11
11
  # =========================
@@ -20,15 +20,6 @@
20
20
  max-height: 0;
21
21
  }
22
22
 
23
- @keyframes appear {
24
- 0% {
25
- opacity: 0;
26
- }
27
- 100% {
28
- opacity: 1;
29
- }
30
- }
31
-
32
23
  @keyframes fade-in {
33
24
  0% {
34
25
  opacity: 0;
@@ -48,3 +39,4 @@
48
39
  transform: rotate(360deg);
49
40
  }
50
41
  }
42
+
@@ -1,34 +1,29 @@
1
- :root {
2
- font-family: var(--font-family-main);
1
+ html {
2
+ /*
3
+ * Color settings
4
+ */
5
+ background-color: var(--background);
6
+ color: var(--color);
7
+
8
+ /*
9
+ * Font settings
10
+ */
11
+ font-family: var(--font-family);
3
12
  line-height: var(--line-height-base);
4
13
  font-weight: var(--font-weight);
5
14
  font-size: var(--rem);
6
15
  font-style: normal;
7
- font-feature-settings: 'liga' 1, 'calt' 1; /* fix for Chrome */
8
-
9
- @supports (font-variation-settings: normal) {
10
- font-optical-sizing: auto;
11
- }
12
-
13
- background-color: var(--background);
14
- color: var(--color);
15
- color-scheme: dark;
16
-
16
+ letter-spacing: var(--letter-spacing);
17
17
  text-transform: var(--text-transform);
18
18
  font-synthesis: none;
19
19
  text-rendering: optimizeLegibility;
20
20
  -webkit-font-smoothing: antialiased;
21
21
  -moz-osx-font-smoothing: grayscale;
22
22
  -webkit-text-size-adjust: 100%;
23
- letter-spacing: var(--letter-spacing);
24
-
25
- * {
26
- font-size: var(--font-base);
27
- }
28
23
  }
29
24
 
30
- html,
31
25
  body {
32
26
  overflow-x: hidden;
33
27
  }
34
28
 
29
+
@@ -1,24 +1,21 @@
1
- .form-item,
2
1
  .button,
3
2
  button,
4
3
  input,
5
4
  textarea,
6
5
  select {
7
- --padding-y: var(--size-3);
8
- --padding-x: var(--size-5);
9
- --background: var(--button-background);
10
- --background-light: var(--button-background-highlight);
11
- --border-radius: var(--button-border-radius);
12
-
13
6
  width: 100%;
14
- font-family: var(--font-family-ui);
15
- font-weight: var(--font-weight);
7
+ font-family: var(--ui-font-family);
8
+ font-weight: var(--ui-font-weight);
9
+ text-transform: var(--ui-text-transform);
16
10
  transition: all var(--speed);
17
- text-transform: var(--text-transform-ui);
11
+ line-height: var(--ui-line-height);
12
+ border-radius: var(--button-border-radius);
13
+ background: var(--background-background);
14
+ padding: var(--ui-padding-y) var(--ui-padding-x);
18
15
  user-select: none;
19
16
 
20
17
  &::placeholder {
21
- text-transform: var(--text-transform-ui);
18
+ text-transform: var(--ui-text-transform);
22
19
  }
23
20
 
24
21
  &:-internal-autofill-selected {
@@ -28,20 +25,11 @@ select {
28
25
 
29
26
  &:--highlight {
30
27
  outline: none;
28
+ border-color: var(--button-border-color-highlight);
29
+ background: var(--button-background-highlight);
31
30
  }
32
31
  }
33
32
 
34
- .form-item,
35
- .button,
36
- .input,
37
- .textarea,
38
- .select {
39
- min-height: calc(var(--size-7) + var(--size-2));
40
- line-height: 1;
41
- border-radius: var(--border-radius);
42
- background: var(--background);
43
- }
44
-
45
33
  .input,
46
34
  .textarea,
47
35
  .select {
@@ -49,7 +37,7 @@ select {
49
37
  line-height: 0;
50
38
  width: 100%;
51
39
  background: var(--background);
52
- padding: var(--padding-y) var(--padding-x);
40
+ padding: var(--ui-padding-y) var(--ui-padding-x);
53
41
  text-transform: none;
54
42
 
55
43
  border: var(--border);
@@ -98,15 +86,13 @@ select {
98
86
 
99
87
  &:has(.input:hover),
100
88
  &:has(.input:focus) {
101
- background: var(--background-light);
102
- }
103
- &:has(.input:focus) {
104
- border-color: var(--border-color-light);
89
+ background: var(--button-background-highlight);
90
+ border-color: var(--button-border-color-highlight);
105
91
  }
106
92
 
107
93
  .prefix,
108
94
  .suffix {
109
- padding: 0 var(--padding-x);
95
+ padding: 0 var(--ui-padding-x);
110
96
  color: var(--muted);
111
97
  height: 100%;
112
98
  display: flex;
@@ -115,32 +101,10 @@ select {
115
101
  }
116
102
 
117
103
  .prefix {
118
- border-right: var(--border);
104
+ border-right: var(--button-border);
119
105
  }
120
106
  .suffix {
121
- border-left: var(--border);
122
- }
123
-
124
- /* If the prefix/suffix should look as if it's part of the content */
125
- &.fluent {
126
- .prefix,
127
- .suffix {
128
- border: none;
129
- }
130
- .prefix {
131
- padding-right: var(--size-0);
132
- }
133
- .suffix {
134
- padding-left: var(--size-0);
135
- }
136
-
137
- &:has(.prefix) {
138
- .input,
139
- .select,
140
- .textarea {
141
- padding-left: 0;
142
- }
143
- }
107
+ border-left: var(--button-border);
144
108
  }
145
109
  }
146
110
 
@@ -150,7 +114,7 @@ select.select:--highlight {
150
114
  line-height: 1;
151
115
  background:
152
116
  url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM4ODgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWNoZXZyb24tZG93biI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiPjwvcG9seWxpbmU+PC9zdmc+),
153
- var(--gray-z-0);
117
+ var(--button-background);
154
118
  background-repeat: no-repeat, no-repeat;
155
119
  background-position: calc(100% - var(--size-4)) 50%, 0% 0%;
156
120
  background-size: var(--size-4), 100% 100%;
@@ -167,10 +131,10 @@ form {
167
131
 
168
132
  label {
169
133
  display: block;
170
- font-family: var(--font-family-ui);
134
+ font-family: var(--ui-font-family);
171
135
  text-transform: var(--text-transform-ui);
172
136
  margin: var(--size-2) 0;
173
- color: var(--gray-z-7);
137
+ color: var(--muted);
174
138
  transition: all var(--speed);
175
139
 
176
140
  > span:first-child {
@@ -1,12 +1,30 @@
1
+ /*
2
+ * We import all our variables from here.
3
+ * They are sorted thematically into their own files.
4
+ */
1
5
  @import "./variables.css";
2
- @import "./theme.css";
6
+
7
+ /*
8
+ * A cross browser normalizer, slight adjustments on top
9
+ * of the Tailwind normalizer.
10
+ */
3
11
  @import "./normalize.css";
12
+
13
+ /*
14
+ * Base element and layout styles
15
+ */
4
16
  @import "./base.css";
5
- @import "./text.css";
6
- @import "./utils.css";
7
- @import "./cards.css";
17
+
18
+ /*
19
+ * These styles are not specific to one particular components
20
+ */
8
21
  @import "./forms.css";
9
- @import "./scroll.css";
10
- @import "./animation.css";
22
+ @import "./cards.css";
11
23
  @import "./prose.css";
24
+ @import "./animation.css";
25
+
26
+ /*
27
+ * We don't control these external components,
28
+ * but want to apply some reasonable overrides.
29
+ */
12
30
  @import "./web3-modals.css";
@@ -420,7 +420,7 @@ body {
420
420
 
421
421
  hr {
422
422
  border-top-width: 1px;
423
- border-color: var(--gray-z-2);
423
+ border-color: var(--border-color);
424
424
  }
425
425
 
426
426
  /**
@@ -433,6 +433,10 @@ hr {
433
433
  * https://github.com/tailwindcss/tailwindcss/issues/362
434
434
  */
435
435
 
436
+ i {
437
+ font-style: normal;
438
+ }
439
+
436
440
  img {
437
441
  border-style: solid;
438
442
  }
@@ -443,7 +447,7 @@ textarea {
443
447
 
444
448
  input::placeholder,
445
449
  textarea::placeholder {
446
- color: #9ca3af;
450
+ color: var(--ui-placeholder-color);
447
451
  }
448
452
 
449
453
  button,
@@ -483,12 +487,13 @@ a {
483
487
  * normalize.css.
484
488
  */
485
489
 
490
+ .button,
486
491
  button,
487
492
  input,
488
493
  optgroup,
489
494
  select,
490
495
  textarea {
491
- padding: 0;
496
+ padding: var(--ui-padding-y) var(--ui-padding-x);
492
497
  line-height: inherit;
493
498
  color: inherit;
494
499
  }
@@ -1,138 +1,12 @@
1
- .prose {
2
- display: grid;
3
- gap: var(--size-5);
4
- grid-auto-rows: min-content;
5
-
6
- /* HEADINGS */
7
- h1, h2, h3 {
8
- line-height: var(--line-height-md);
9
- }
10
- h1 {
11
- font-size: var(--font-xl);
12
- }
13
- h2 {
14
- font-size: var(--font-lg);
15
- text-transform: var(--text-transform-ui);
16
- }
17
- h3 {
18
- font-size: var(--font-lg);
19
- }
20
-
21
- /* LINKS */
22
- a {
23
- color: var(--primary);
24
- font-weight: bold;
25
- border-bottom: 3px solid transparent;
26
- transition: all var(--speed);
27
-
28
- &:--highlight {
29
- border-color: var(--primary-z-2);
30
- }
31
- }
32
-
33
- /* QUOTES */
34
- blockquote {
35
- padding-left: var(--size-5);
36
- font-size: var(--font-md);
37
- line-height: var(--line-height-lg);
38
- border-left: 4px solid var(--gray-z-2);
39
- font-style: italic;
40
- font-weight: bold;
41
- color: var(--gray-z-7);
42
- position: relative;
43
-
44
- cite {
45
- display: block;
46
- font-size: var(--font-sm);
47
- line-height: var(--line-height-sm);
48
- text-align: right;
49
- margin: 1em 0 0;
50
-
51
- &:before {
52
- content: "–";
53
- margin-right: 0.5em;
54
- }
55
- }
56
- }
57
-
58
- pre {
59
- background: var(--gray-z-1);
60
- padding: var(--spacer);
61
- border: var(--border);
62
- color: var(--gray-z-7);
63
- border-radius: var(--size-2);
64
-
65
- code {
66
- font-family: monospace;
67
- font-size: var(--font-sm);
68
- line-height: var(--line-height-lg);
69
- }
70
- }
71
-
72
- /* IMAGES */
73
- p:has(> img) {
74
- font-size: var(--font-xs);
75
- line-height: var(--line-height-xs);
76
- color: var(--gray-z-7);
77
- }
78
- img {
79
- border: var(--border);
80
- border-radius: var(--border-radius);
81
- }
82
-
83
- /* LISTS */
84
- ol { list-style: auto; }
85
- ul {
86
- list-style: none;
87
-
88
- > li {
89
- position: relative;
90
- }
91
-
92
- > li:before {
93
- content: "\2022";
94
- position: absolute;
95
- color: var(--gray-z-5);
96
- font-weight: bold;
97
- display: inline-block;
98
- width: 1em;
99
- margin-left: -1em;
100
- }
101
- }
102
- ul, ol {
103
- padding-left: 1em;
104
-
105
- li {
106
- margin: 0.25em 0;
107
- }
108
-
109
- ul, ol {
110
- margin: 0;
111
-
112
- li {
113
- margin: 0;
114
- }
115
- }
116
- }
117
- }
118
-
119
1
  /* MINIMAL PROSE */
120
- .minimal-prose {
2
+ .prose {
121
3
  h1, h2, h3 {
122
4
  width: min-content;
123
5
  position: relative;
124
6
  white-space: nowrap;
125
7
  margin: var(--spacer) 0;
126
8
  color: var(--color);
127
-
128
- &:after {
129
- content: '';
130
- position: absolute;
131
- width: calc(100% + var(--spacer-xs)*2);
132
- left: calc(-1 * var(--spacer-xs));
133
- bottom: calc(-1 * var(--spacer-xs));
134
- border-bottom: 3px solid var(--border-color);
135
- }
9
+ font-size: var(--font-lg);
136
10
  }
137
11
 
138
12
  > table {
@@ -146,7 +20,7 @@
146
20
 
147
21
  > * {
148
22
  margin: var(--spacer-sm) 0;
149
- color: var(--gray-z-7);
23
+ color: var(--muted);
150
24
 
151
25
  &:first-child {
152
26
  margin-top: 0;
@@ -0,0 +1,8 @@
1
+ :root {
2
+
3
+ --speed-fast: 0.15s;
4
+ --speed: 0.3s;
5
+ --speed-slow: 0.75s;
6
+
7
+ }
8
+
@@ -0,0 +1,14 @@
1
+ :root {
2
+
3
+ --border-color: var(--color);
4
+ --border-width: 1px;
5
+
6
+ --border: var(--border-width) solid var(--border-color);
7
+ --border-dark: var(--border-width) solid var(--border-color-dark);
8
+
9
+ --border-shadow: 0 0 0 var(--border-width) var(--border-color);
10
+
11
+ --border-radius: 0;
12
+
13
+ }
14
+
@@ -0,0 +1,20 @@
1
+ :root {
2
+ /* GRAYS */
3
+ --white: white;
4
+ --gray: gray;
5
+ --black: rgb(0, 0, 0);
6
+
7
+ /* COLORS */
8
+ --blue: #3263D0;
9
+ --primary: var(--blue);
10
+
11
+ /*
12
+ * Z-COLORS
13
+ * This makes migrating to dark/light modes much easier.
14
+ * We're not thinking about color per se, but about the viewers perspective.
15
+ */
16
+ --background: var(--white);
17
+ --muted: var(--gray);
18
+ --color: var(--black);
19
+ }
20
+
@@ -1,12 +1,18 @@
1
1
  :root {
2
+
2
3
  --card-border: var(--border);
3
4
  --card-border-radius: var(--border-radius);
4
5
  --card-background: var(--background);
5
- --card-background-highlight: var(--gray-z-2);
6
+ --card-background-highlight: var(--background);
7
+ --card-border-color-highlight: var(--primary);
6
8
 
7
9
  --button-border: var(--border);
8
10
  --button-border-radius: var(--border-radius);
9
11
  --button-background: var(--background);
10
- --button-background-highlight: var(--gray-z-2);
12
+ --button-background-highlight: var(--background);
13
+ --button-border-color-highlight: var(--primary);
14
+
15
+ --backdrop-background-color: transparent;
16
+
11
17
  }
12
18
 
@@ -0,0 +1,6 @@
1
+ :root {
2
+
3
+ --blur: blur(var(--size-1));
4
+
5
+ }
6
+
@@ -0,0 +1,26 @@
1
+ :root {
2
+
3
+ --rem: 16px;
4
+ --font-base: var(--rem);
5
+ --font-xs: calc(var(--font-base) * 0.8);
6
+ --font-sm: calc(var(--font-base) * 0.8);
7
+ --font-lg: calc(var(--font-base) * 1.2);
8
+ --font-weight-light: 300;
9
+ --font-weight: normal;
10
+ --font-weight-bold: bold;
11
+ --font-family: serif;
12
+
13
+ --letter-spacing-sm: -0.025em;
14
+ --letter-spacing: 0.025em;
15
+ --letter-spacing-md: 0.05em;
16
+ --letter-spacing-lg: 0.1em;
17
+
18
+ --line-height-sm: 105%;
19
+ --line-height: 100%;
20
+ --line-height-md: 120%;
21
+ --line-height-lg: 160%;
22
+
23
+ --text-transform: none;
24
+
25
+ }
26
+
@@ -0,0 +1,9 @@
1
+ :root {
2
+
3
+ --dialog-width: 27rem;
4
+ --content-width: 40rem;
5
+ --content-width-lg: 72rem;
6
+ --navbar-height: calc(var(--size-8) + var(--size-4));
7
+
8
+ }
9
+
@@ -0,0 +1,23 @@
1
+ :root {
2
+
3
+ --100vh: 100dvh;
4
+ --size-0: 0.125rem;
5
+ --size-1: 0.25rem;
6
+ --size-2: 0.5rem;
7
+ --size-3: 0.75rem;
8
+ --size-4: 1rem;
9
+ --size-5: 1.25rem;
10
+ --size-6: 1.5rem;
11
+ --size-7: 2rem;
12
+ --size-8: 3rem;
13
+ --size-9: 4.5rem;
14
+ --size-10: 6rem;
15
+
16
+ --spacer-xs: var(--size-0);
17
+ --spacer-sm: var(--size-2);
18
+ --spacer: var(--size-4);
19
+ --spacer-lg: var(--size-7);
20
+ --spacer-xl: var(--size-9);
21
+
22
+ }
23
+
@@ -0,0 +1,17 @@
1
+ :root {
2
+
3
+ --ui-font-family: var(--font-family);
4
+ --ui-font-weight: var(--font-weight);
5
+ --ui-text-transform: var(--text-transform);
6
+
7
+ --ui-placeholder-color: var(--muted);
8
+ --ui-color: var(--primary);
9
+ --ui-color-visited: var(--primary);
10
+ --ui-letter-spacing: var(--letter-spacing);
11
+ --ui-line-height: var(--line-height);
12
+
13
+ --ui-padding-y: var(--spacer-sm);
14
+ --ui-padding-x: var(--spacer-sm);
15
+
16
+ }
17
+