@visualizevalue/mint-app-base 0.0.7 → 0.1.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.
Files changed (69) hide show
  1. package/.env.example +1 -1
  2. package/app/assets/styles/animation.css +1 -9
  3. package/app/assets/styles/base.css +3 -12
  4. package/app/assets/styles/forms.css +18 -54
  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 +2 -128
  8. package/app/assets/styles/variables/animations.css +8 -0
  9. package/app/assets/styles/variables/borders.css +13 -0
  10. package/app/assets/styles/variables/colors.css +48 -0
  11. package/app/assets/styles/{theme.css → variables/components.css} +8 -2
  12. package/app/assets/styles/variables/effects.css +11 -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 +2 -7
  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 +11 -5
  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 +0 -4
  40. package/app/components/Loading.vue +2 -38
  41. package/app/components/MintGasPricePopover.client.vue +2 -2
  42. package/app/components/MintToken.vue +1 -1
  43. package/app/components/Modal.vue +3 -2
  44. package/app/components/Popover.client.vue +3 -23
  45. package/app/components/Profile/Header.client.vue +6 -35
  46. package/app/components/Token/Detail.client.vue +19 -10
  47. package/app/components/Token/MintTimeline.client.vue +14 -43
  48. package/app/components/Token/MintTimelineItem.vue +50 -13
  49. package/app/components/Token/OverviewCard.vue +10 -17
  50. package/app/components/TransactionFlow.vue +4 -10
  51. package/app/layouts/default.vue +2 -14
  52. package/app/pages/[id]/[collection]/[tokenId]/index.vue +1 -1
  53. package/app/pages/[id]/[collection]/index.vue +1 -1
  54. package/app/pages/[id]/[collection]/mint.vue +4 -4
  55. package/app/pages/[id]/create.vue +49 -49
  56. package/app/pages/[id]/index.vue +1 -6
  57. package/app/pages/profile/[address]/index.vue +1 -4
  58. package/app/plugins/2.wagmi.ts +2 -2
  59. package/package.json +2 -1
  60. package/app/assets/styles/scroll.css +0 -13
  61. package/app/assets/styles/text.css +0 -14
  62. package/app/assets/styles/utils.css +0 -24
  63. package/app/components/Avatar.vue +0 -61
  64. package/app/components/CountDown.vue +0 -153
  65. package/app/components/IconLink.vue +0 -29
  66. package/app/components/Navbar.client.vue +0 -86
  67. package/app/components/QueryDialog.vue +0 -38
  68. package/app/components/ToggleDarkMode.client.vue +0 -58
  69. /package/app/components/{Visual/ImagePreview.vue → ImagePreview.vue} +0 -0
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,30 +1,21 @@
1
1
  :root {
2
- font-family: var(--font-family-main);
2
+ font-family: var(--font-family);
3
3
  line-height: var(--line-height-base);
4
4
  font-weight: var(--font-weight);
5
5
  font-size: var(--rem);
6
6
  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
- }
7
+ letter-spacing: var(--letter-spacing);
12
8
 
13
9
  background-color: var(--background);
14
10
  color: var(--color);
15
- color-scheme: dark;
16
11
 
17
12
  text-transform: var(--text-transform);
13
+
18
14
  font-synthesis: none;
19
15
  text-rendering: optimizeLegibility;
20
16
  -webkit-font-smoothing: antialiased;
21
17
  -moz-osx-font-smoothing: grayscale;
22
18
  -webkit-text-size-adjust: 100%;
23
- letter-spacing: var(--letter-spacing);
24
-
25
- * {
26
- font-size: var(--font-base);
27
- }
28
19
  }
29
20
 
30
21
  html,
@@ -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,7 +131,7 @@ 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
137
  color: var(--gray-z-7);
@@ -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 {
@@ -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,13 @@
1
+ :root {
2
+
3
+ --border-color: var(--gray-z-6);
4
+ --border-color-light: var(--gray-z-4);
5
+ --border-color-dark: var(--gray-z-1);
6
+ --border-width: 1px;
7
+ --border: var(--border-width) solid var(--border-color);
8
+ --border-dark: var(--border-width) solid var(--border-color-dark);
9
+ --border-shadow: 0 0 0 var(--border-width) var(--border-color);
10
+ --border-radius: 0;
11
+
12
+ }
13
+
@@ -0,0 +1,48 @@
1
+ :root {
2
+ /* GRAYS */
3
+ --white: rgb(255,255,255);
4
+ --gray-50: rgb(250,250,250);
5
+ --gray-100: rgb(245,245,245);
6
+ --gray-200: rgb(229,229,229);
7
+ --gray-300: rgb(212,212,212);
8
+ --gray-400: rgb(163,163,163);
9
+ --gray-500: rgb(115,115,115);
10
+ --gray-600: rgb(82,82,82);
11
+ --gray-700: rgb(64,64,64);
12
+ --gray-800: rgb(38,38,38);
13
+ --gray-900: rgb(19,19,19);
14
+ --gray-950: rgb(10,10,10);
15
+ --black: rgb(0, 0, 0);
16
+
17
+ /* COLORS */
18
+ --red: #EF4444;
19
+ --green: #94E337;
20
+ --blue: #3263D0;
21
+
22
+ /* THEME COLORS */
23
+ --muted: var(--gray-z-6);
24
+ --error: var(--red);
25
+ --success: var(--green);
26
+ --primary: var(--blue);
27
+ --secondary: var(--blue);
28
+
29
+ /*
30
+ * Z-COLORS
31
+ * This makes migrating to dark/light modes much easier later.
32
+ * We're not thinking about color per se, but about the viewers perspective.
33
+ */
34
+ --background: var(--white);
35
+ --gray-z-0: var(--gray-50);
36
+ --gray-z-1: var(--gray-100);
37
+ --gray-z-2: var(--gray-200);
38
+ --gray-z-3: var(--gray-300);
39
+ --gray-z-4: var(--gray-400);
40
+ --gray-z-5: var(--gray-500);
41
+ --gray-z-6: var(--gray-600);
42
+ --gray-z-7: var(--gray-700);
43
+ --gray-z-8: var(--gray-800);
44
+ --gray-z-9: var(--gray-900);
45
+ --gray-z-10: var(--gray-950);
46
+ --color: var(--black);
47
+ }
48
+
@@ -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,11 @@
1
+ :root {
2
+ /* SHADOWS */
3
+ --shadow:
4
+ 0 var(--size-0) var(--size-2) var(--gray-z-1-semi),
5
+ 0 var(--size-2) var(--size-7) calc(-1 * var(--size-5)) var(--gray-z-3-semi);
6
+
7
+ /* BACKGROUNDS */
8
+ --blur: blur(var(--size-1));
9
+
10
+ }
11
+
@@ -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
+