2
0
Fork 0

add legal pages, scrolling for notifed cards

main
Ryan Moon 2024-08-19 07:13:11 -04:00
parent 3894a64bf5
commit 1fcb815d50
26 changed files with 308 additions and 321 deletions

View File

@ -36,9 +36,6 @@
--fs-color: #c3c6c9; /* secondary */
--ft-color: #919397; /* trinary */
--fh-color: #262a30; /* hover */
/* Misc */
--ts-color: #02140b; /* tinysites */
}
@custom-media --viewport-3 (max-width: 372px);

View File

@ -38,6 +38,7 @@ h3,
h4,
h5,
h6,
li,
span,
label,
summary {

View File

@ -78,17 +78,17 @@
h4,
h5,
h6 {
scroll-margin-top: 2.5rem;
margin: 0;
a { font-weight: 600 }
}
h3 {
margin: 2.5rem 0 .5rem 0;
padding: 2.5rem 0 .5rem 0;
a { font-size: 1.75rem }
}
h4 {
margin: 1.5rem 0 0 0;
padding: 1.5rem 0 0 0;
a { font-size: 1.5rem }
}

View File

@ -0,0 +1,3 @@
.help {
padding: 0;
}

View File

@ -1,11 +1,11 @@
.index {
.notified {
/* background-image: linear-gradient(0deg, transparent 24%, rgba(0, 0, 0, .03) 25%, rgba(0, 0, 0, .03) 26%, transparent 27%, transparent 74%, rgba(0, 0, 0, .03) 75%, rgba(0, 0, 0, .03) 76%, transparent 77%, transparent), linear-gradient(90deg, transparent 24%, rgba(0, 0, 0, .03) 25%, rgba(0, 0, 0, .03) 26%, transparent 27%, transparent 74%, rgba(0, 0, 0, .03) 75%, rgba(0, 0, 0, .03) 76%, transparent 77%, transparent); */
/* background-size: 3.35rem 3.35rem; */
padding: 7rem 0 4rem 0;
.msg {
position: relative;
max-width: 52rem;
height: 11rem;
padding: 0 1rem;
margin: 0 auto;
@ -14,7 +14,7 @@
font-weight: 700;
line-height: 3.25rem;
letter-spacing: -.05rem;
margin: 0 0 2rem 0;
margin: 0;
span {
color: var(--s-color);
@ -23,6 +23,8 @@
}
p {
position: absolute;
bottom: -1.25rem;
font-size: 1.25rem;
line-height: 1.85rem;
margin: 0 0 0 .2rem;
@ -31,48 +33,49 @@
.cards-container {
position: relative;
width: 100%;
overflow: hidden;
--note: 24.5rem;
--card: 22.5rem;
--ease: 0.3s cubic-bezier(0.3, -0.1, 0.1, 1.1);
.scroll {
display: none;
position: absolute;
right: calc((100% - 48rem) / 2);
top: -1.5rem;
input {
position: fixed;
top: -999vw;
left: -999vw;
opacity: 0.01;
}
a {
color: var(--fs-color);
font-size: 1.25rem;
margin: 0 .5rem;
&:hover span {
color: var(--w-color);
cursor: pointer;
}
.scroll-nav {
display: flex;
justify-content: space-around;
align-items: center;
width: 3.75rem;
margin: 0 0 0 calc((100% + 32rem) / 2);
label {
width: .85rem;
height: .9rem;
background: var(--ft-color);
margin: 0 .2rem;
border-radius: 99rem;
transition: var(--ease);
cursor: pointer;
}
}
#first,
#last {
scroll-margin-top: 20rem;
scroll-margin-left: 56vw;
scroll-margin-right: 50vw;
}
.cards {
box-sizing: content-box;
display: flex;
justify-content: space-between;
width: 100%;
height: 27.25rem;
overflow-x: scroll;
overflow-y: hidden;
scroll-behavior: smooth;
padding: 0 0 2rem calc((100% - 49.5rem)/2);
margin: 0 auto;
white-space: nowrap;
max-width: 94rem;
padding: 2.5rem 0 2rem calc((100% - 49.75rem)/2);
transition: var(--ease);
.card {
display: inline-block;
width: 22.5rem;
margin: 2rem 2rem 2rem 0;
position: relative;
margin: 0 2rem 2rem 0;
transition: var(--ease);
text-align: left;
a {
@ -113,16 +116,15 @@
}
}
}
}
&:last-of-type {
margin: 2rem 30vw 2rem 0;
}
.card-min {
min-width: var(--card);
}
.card-last {
width: 20rem;
height: 15rem;
vertical-align: top;
min-width: 20.5rem;
height: 15.05rem;
background: var(--bs-color);
text-align: center;
padding: 2rem;
@ -168,13 +170,19 @@
}
}
.cards {
-ms-overflow-style: none; /* Internet Explorer 10+ */
scrollbar-width: none; /* Firefox */
[id="0"]:checked {
& ~ .cards { transform: translateX(calc(var(--note) * 0)) }
& ~ .scroll-nav [for="0"] { background: var(--s-color) }
}
.cards::-webkit-scrollbar {
display: none; /* Safari and Chrome */
[id="1"]:checked {
& ~ .cards { transform: translateX(calc(var(--note) * -1)) }
& ~ .scroll-nav [for="1"] { background: var(--s-color) }
}
[id="2"]:checked {
& ~ .cards { transform: translateX(calc(var(--note) * -2)) }
& ~ .scroll-nav [for="2"] { background: var(--s-color)}
}
}
}
@ -182,49 +190,55 @@
@media only screen and (--viewport-13) {
.index .notified .cards-container .cards .card:last-of-type {
margin: 2rem 20vw 2rem 0;
margin: 0 20vw 2rem 0;
}
}
@media only screen and (--viewport-10) {
.index .notified .cards-container .cards .card:last-of-type {
margin: 2rem 12vw 2rem 0;
margin: 0 12vw 2rem 0;
}
}
@media only screen and (--viewport-4) {
.index .notified {
padding: 4rem 2.25rem;
padding: 4rem 2.25rem 6rem 2.25rem;
.msg {
height: unset;
padding: 0;
margin: 0;
h2 {
font-size: 2.25rem;
line-height: 2.5rem;
margin: 0 0 2rem 0;
}
p {
position: unset;
margin: 0;
}
}
.cards-container {
.scroll {
.scroll-nav {
display: none;
}
.cards {
width: 100%;
box-sizing: unset;
display: unset;
justify-content: unset;
height: unset;
padding: 0 0 4rem calc((100% - 49.5rem)/2);
margin: 0 auto;
.card {
display: block;
width: unset;
margin: 2rem 0 4rem 0;
min-width: unset;
margin: 2rem 0 3rem 0;
&:last-of-type {
margin: 2rem 0 0 0;

View File

@ -1,13 +0,0 @@
.legal {
.impressum {
p {
a { color: var(--s-color) }
.icon-at {
font-size: 1rem;
position: relative;
top: .1rem
}
}
}
}

View File

@ -1,53 +1,83 @@
.legal {
display: grid;
grid-template-columns: 3fr 8fr;
max-width: 62rem;
padding: 4rem 4rem;
margin: 0 auto;
.privacy,
.user-agreement {
padding: 4rem 0 6rem 0;
.privacy,
.terms,
.impressum {
grid-column: 2;
grid-row: 2;
padding: 0 2rem;
margin: 0;
h2,
h3 {
margin: 4rem 0 1rem 0;
a {
font-weight: 600;
}
}
.sidebar {
grid-column: 1;
grid-row: 1/3;
h2 {
font-size: 2rem;
font-weight: 700;
margin: 1.25rem 0 1.25rem -.15rem;
}
h3,
h3 a {
font-size: 1.25rem;
font-weight: 600;
}
h3 {
font-size: 1.5rem;
font-weight: 700;
margin: 2.75rem 0 1rem 1.5rem;
scroll-margin-top: 2rem;
h4,
h4 a {
font-size: 1.10rem;
font-weight: 500;
scroll-margin-top: 6rem;
& + p,
& + p + p {
padding: 0 3.25rem 0 1.5rem;
margin: 1rem 0;
}
}
p {
font-size: 1rem;
font-weight: 400;
font-size: 1.1rem;
font-weight: 300;
line-height: 1.65rem;
margin: 1rem 1rem 1rem 0;
a {
color: var(--s-color);
&:hover {
text-decoration: underline;
}
}
span {
color: var(--ft-color);
font-size: .9rem;
}
}
ul {
list-style-type: none;
white-space:nowrap;
padding: 0;
margin: 0;
margin: 2rem 0;
li {
color: var(--f-color);
font-family: var(--p-font);
font-weight: 400;
margin: 0;
font-size: 1.15rem;
font-weight: 300;
line-height: 1.5rem;
margin: 1rem 0;
}
}
}
@media only screen and (--viewport-4) {
.privacy,
.user-agreement {
padding: 4rem 2.25rem 6rem 2.25rem;
h3 {
margin: 2.75rem 0 1rem 0;
& + p,
& + p + p {
padding: 0 0 0 0;
}
}
p {
margin: 1rem 0;
}
}
}

View File

@ -1,43 +0,0 @@
.legal {
.navbar {
grid-column: 2;
grid-row: 1;
padding: 1rem 1.75rem;
.dropdown {
position: relative;
.toggle {
padding: .45rem 1.25rem .55rem 1.25rem;
background: var(--bh-color);
&:hover {
cursor: pointer;
background: var(--bhs-color);
}
span {
position: relative;
top: .15rem;
margin: 0 0 0 .5rem;
}
}
.links {
position: absolute;
top: 2.25rem;
background: var(--bh-color);
a {
display: block;
padding: .45rem 1.25rem .55rem 1.25rem;
&:hover {
cursor: pointer;
background: var(--bhs-color);
}
}
}
}
}
}

View File

@ -1,12 +0,0 @@
.legal {
.privacy {
.hero {
width: 100%;
background-image: url('/img/abstract/482006556.svg');
background-size: 90%;
background-repeat: repeat;
height: 10vw;
}
}
}

View File

@ -1,26 +0,0 @@
.legal {
.sidebar {
padding: 0 2rem;
.updated {
font-size: .9rem;
padding: .25rem 0 1.25rem;
}
.quicklinks {
position: sticky;
top: 6rem;
a {
display: inline-block;
color: var(--s-color);
font-size: 1rem;
margin: .25rem 0;
&:hover {
text-decoration: underline;
}
}
}
}
}

View File

@ -63,6 +63,10 @@
text-align: center;
}
b{
font-weight: 400;
}
strong {
display: block;
font-size: 1.5rem;

View File

@ -11,8 +11,9 @@
@import 'components/heading';
/* Pages */
@import 'pages/pages';
@import 'pages/contact';
@import 'pages/help';
@import 'pages/pages';
@import 'pages/reserved';
/* Index */
@ -46,10 +47,6 @@
/* Legal */
@import 'pages/legal/legal';
@import 'pages/legal/navbar';
@import 'pages/legal/sidebar';
@import 'pages/legal/privacy';
@import 'pages/legal/impressum';
/* Dashboard */
@import 'pages/dashboard/hero';

View File

@ -42,7 +42,7 @@
<ul class="legal">
<li><p><span class="icon-copyright"></span> Inspin Digital LLC. All Rights Reserved.</p></li>
<li><NuxtLink to="/legal/privacy">Privacy Policy</NuxtLink></li>
<li><NuxtLink to="/legal/terms">User Agreement</NuxtLink></li>
<li><NuxtLink to="/legal/user-agreement">User Agreement</NuxtLink></li>
</ul>
<ul class="social">
<li><NuxtLink to="https://git.inspin.io/inspin" target="_BLANK"
@ -75,7 +75,7 @@
</ul>
<ul class="legal">
<li><NuxtLink to="/legal/privacy">Privacy Policy</NuxtLink></li>
<li><NuxtLink to="/legal/terms">User Agreement</NuxtLink></li>
<li><NuxtLink to="/legal/user-agreement">User Agreement</NuxtLink></li>
<li class="copy"><p><span class="icon-copyright"></span> Inspin Digital LLC. All Rights Reserved.</p></li>
</ul>
</div>

View File

@ -25,12 +25,19 @@
<p>An epic chronicle of the decentralized web, <br v-if="isDesktopOrTablet">libre software, and community updates.</p>
</div>
<div class="cards-container">
<div class="scroll">
<a href="#first" aria-label="Scroll news articles right"><span class="icon-arrow-left"></span></a>
<a href="#last" aria-label="Scroll news articles left"><span class="icon-arrow-right"></span></a>
<input type="radio" name="slide-nav" id="0" checked>
<input type="radio" name="slide-nav" id="1">
<input type="radio" name="slide-nav" id="2">
<div class="scroll-nav">
<label for="0"></label>
<label for="1"></label>
<label for="2"></label>
</div>
<div class="cards">
<div class="card" :id="index === 0 ? 'first' : null" v-for="(article, index) in articles" :key="index">
<div class="card card-min" :id="index" :for="index" v-for="(article, index) in articles" :key="index">
<NuxtLink :href="'/articles/' + article.slug">
<img :src="article.image.src" :alt="article.image.alt" />
<h3>{{ article.preview }}</h3>
@ -40,7 +47,7 @@
</p>
</NuxtLink>
</div>
<div class="card card-last" id="last">
<div class="card card-last" id="3">
<h4>Continue Reading</h4>
<p>Explore resources, software <br/>guides, and community posts</p>
<NuxtLink href="/articles">View More<span class="icon-chevron-right"></span></NuxtLink>

View File

@ -1,17 +0,0 @@
---
title: Impressum Inspin Digital
slug: impressum
page: Impressum
published: 2024-01-22
updated: 2024-01-22
---
### Impressum:
Inspin Digital LLC
- 52 Nashua St
- Milford, NH 03055
- United States
Email: <a href="mailto:data@inspin.io" >data<span class="icon-at"></span>inspin.io</a>

View File

@ -1,9 +1,64 @@
---
title: Privacy Policy Inspin Digital
title: Inspin Digital | Privacy Policy
slug: privacy
page: Privacy Policy
---
## Privacy Policy:
<span>last updated: Aug, 14th 2024</span>
## Privacy Policy
<span>last updated: August, 18th 2024</span>
Inspin Digital LLC ("Inspin Digital", "we", or "us") is committed to protecting the privacy of our users. This Privacy Policy explains how we collect, use, share, and protect your personal information when using our services.
### Information We Collect
When you use our services, we may collect the following:
- Personal Information: We may collect your name, email address, and other personal information when you create an account, sign up for our newsletter, or contact us.
- Usage Information: We may collect information about your usage of our services, such as the features you use, the pages you visit, and the actions you take.
- Device Information: We may collect information about the device you use to access our services, such as your type of browser and operating system.
### How We Use Your Information
We may use your personal information for the following purposes:
- To provide and improve our services.
- To communicate with you about our services, including sending you newsletters and other marketing materials.
- To respond to your inquiries and provide customer support.
- To comply with legal obligations, such as responding to a court order or subpoena.
- For any other purpose with your consent.
### Sharing Your Information
We may share your personal information with third parties for the following purposes:
- To comply with legal obligations, such as responding to a court order or subpoena.
- In the event of a merger, acquisition, or sale of all or a portion of our assets.
- For any other purpose with your consent.
### Security
We take the security of your personal information seriously and use appropriate measures to protect it from unauthorized access, disclosure, alteration, or destruction. However, no method of transmission or storage is completely secure, and we cannot guarantee the absolute security of your information.
### Your Rights
You have the right to access, update, and delete your personal information at any time. You may also opt out of receiving marketing communications from us by following the unsubscribe instructions in our emails.
### Changes to this Policy
We may update this Privacy Policy from time to time. If we make significant changes, we will notify you by posting a notice on our website or by sending you an email.
### Contact Information
If you have any questions or concerns about this Privacy Policy, please contact us at legal@inspin.io.

View File

@ -1,9 +0,0 @@
---
title: User Agreement Inspin Digital
slug: terms
page: User Agreement
---
## User Agreement:
<span>last updated: Aug, 14th 2024</span>

View File

@ -0,0 +1,37 @@
---
title: Inspin Digital | User Agreement
slug: user-agreement
page: User Agreement
---
## User Agreement:
<span>last updated: August, 18th 2024</span>
Welcome to Inspin Digital LLC, a software company dedicated to providing innovative software development solutions. By accessing or using our software, you agree to the following terms:
### 1. License:
The software provided by Inspin Digital LLC is licensed under the GNU General Public License (GPL). This license grants you the rights to run, study, share, and modify the software, subject to the GPL terms, which include making source code available for any modifications you distribute.
### 2. Intellectual Property:
Our services, including all software, content, and other materials, are protected by intellectual property laws. You may not copy, modify, distribute, or use any part of our services without our express written permission.
### 3. Termination:
We may terminate or suspend your access to our services at any time, with or without cause, and with or without notice. You may also terminate your account at any time by contacting us. Upon termination, your right to use our services will immediately cease.
### 4. Warranty and Liability:
We provide our services on an "as is" and "as available" basis, without warranties of any kind, either express or implied. We are not liable for any damages arising from your use of our services, including any direct, indirect, incidental, or consequential damages.
### 5. Changes to User Agreement
We may modify this User Agreement at any time, and the changes will be effective upon posting. Your continued use of our services after the effective date of any changes will be deemed your acceptance of the changes.
By using Inspin Digital services, you acknowledge that you have read, understood, and agree to be bound by this User Agreement. If you do not agree with any part of this Agreement, you must not use our services.
### Contact Information
If you have any questions or concerns, please email us at legal@inspin.io or visit our <a href="/contact">contact page</a>.

70
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "inspin",
"version": "1.0.1",
"version": "1.0.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "inspin",
"version": "1.0.1",
"version": "1.0.3",
"hasInstallScript": true,
"license": "GPL-3.0-only",
"dependencies": {
@ -17,10 +17,10 @@
"@nuxt/content": "^2.13.2",
"@nuxt/devtools": "latest",
"@nuxtjs/device": "^3.1.1",
"@types/node": "^22.3.0",
"@types/node": "^22.4.1",
"nuxt": "^3.12.4",
"nuxt-directus": "^5.6.1",
"postcss-custom-media": "^11.0.0",
"postcss-custom-media": "^11.0.1",
"postcss-hexrgba": "^2.1.0",
"postcss-import": "^16.1.0",
"postcss-nested": "^6.2.0"
@ -536,9 +536,9 @@
}
},
"node_modules/@csstools/cascade-layer-name-parser": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.0.tgz",
"integrity": "sha512-9GEQIvTMrjXfYaVnw1+FteDX5yF65CZq4ttYP75O3CANQevaCJ9jVVTiZt9YTpjYIk8C1mmf52y2S4Hr/CaE/g==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.1.tgz",
"integrity": "sha512-G9ZYN5+yr/E6xYSiy1BwOEFP5p88ZtWo8sL4NztKBkRRAwRkzVGa70M+D+fYHugMID5jkLeNt5X9jYd5EaVuyg==",
"dev": true,
"funding": [
{
@ -554,14 +554,14 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^3.0.0",
"@csstools/css-tokenizer": "^3.0.0"
"@csstools/css-parser-algorithms": "^3.0.1",
"@csstools/css-tokenizer": "^3.0.1"
}
},
"node_modules/@csstools/css-parser-algorithms": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.0.tgz",
"integrity": "sha512-20hEErXV9GEx15qRbsJVzB91ryayx1F2duHPBrfZXQAHz/dJG0u/611URpr28+sFjm3EI7U17Pj9SVA9NSAGJA==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.1.tgz",
"integrity": "sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==",
"dev": true,
"funding": [
{
@ -577,13 +577,13 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-tokenizer": "^3.0.0"
"@csstools/css-tokenizer": "^3.0.1"
}
},
"node_modules/@csstools/css-tokenizer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.0.tgz",
"integrity": "sha512-efZvfJyYrqH9hPCKtOBywlTsCXnEzAI9sLHFzUsDpBb+1bQ+bxJnwL9V2bRKv9w4cpIp75yxGeZRaVKoMQnsEg==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.1.tgz",
"integrity": "sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==",
"dev": true,
"funding": [
{
@ -600,9 +600,9 @@
}
},
"node_modules/@csstools/media-query-list-parser": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.0.tgz",
"integrity": "sha512-W0JlkUFwXjo703wt06AcaWuUcS+6x6IEDyxV6W65Sw+vLCYp+uPsrps+PXTiIfN0V1Pqj5snPzN7EYLmbz1zjg==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz",
"integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==",
"dev": true,
"funding": [
{
@ -618,8 +618,8 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^3.0.0",
"@csstools/css-tokenizer": "^3.0.0"
"@csstools/css-parser-algorithms": "^3.0.1",
"@csstools/css-tokenizer": "^3.0.1"
}
},
"node_modules/@dword-design/dedent": {
@ -2449,12 +2449,12 @@
"dev": true
},
"node_modules/@types/node": {
"version": "22.3.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz",
"integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==",
"version": "22.4.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.4.1.tgz",
"integrity": "sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==",
"dev": true,
"dependencies": {
"undici-types": "~6.18.2"
"undici-types": "~6.19.2"
}
},
"node_modules/@types/resolve": {
@ -8932,9 +8932,9 @@
}
},
"node_modules/postcss-custom-media": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.0.tgz",
"integrity": "sha512-tZ4qTYSOqH7YFi8psEQB2v2zBRbbJex9FgPef2Qss8DlWxnYpBNHquvMmVBR8uIt6hW0+prDsg7UJDp6XLIf8w==",
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.1.tgz",
"integrity": "sha512-vfBliYVgEEJUFXCRPQ7jYt1wlD322u+/5GT0tZqMVYFInkpDHfjhU3nk2quTRW4uFc/umOOqLlxvrEOZRvloMw==",
"dev": true,
"funding": [
{
@ -8947,10 +8947,10 @@
}
],
"dependencies": {
"@csstools/cascade-layer-name-parser": "^2.0.0",
"@csstools/css-parser-algorithms": "^3.0.0",
"@csstools/css-tokenizer": "^3.0.0",
"@csstools/media-query-list-parser": "^3.0.0"
"@csstools/cascade-layer-name-parser": "^2.0.1",
"@csstools/css-parser-algorithms": "^3.0.1",
"@csstools/css-tokenizer": "^3.0.1",
"@csstools/media-query-list-parser": "^3.0.1"
},
"engines": {
"node": ">=18"
@ -10830,9 +10830,9 @@
}
},
"node_modules/undici-types": {
"version": "6.18.2",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz",
"integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==",
"version": "6.19.6",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.6.tgz",
"integrity": "sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==",
"dev": true
},
"node_modules/unenv": {

View File

@ -1,6 +1,6 @@
{
"name": "inspin",
"version": "1.0.2",
"version": "1.0.3",
"description": "Creating a more decentralized web.",
"license": "GPL-3.0-only",
"homepage": "https://inspin.io",
@ -15,10 +15,10 @@
"@nuxt/content": "^2.13.2",
"@nuxt/devtools": "latest",
"@nuxtjs/device": "^3.1.1",
"@types/node": "^22.3.0",
"@types/node": "^22.4.1",
"nuxt": "^3.12.4",
"nuxt-directus": "^5.6.1",
"postcss-custom-media": "^11.0.0",
"postcss-custom-media": "^11.0.1",
"postcss-hexrgba": "^2.1.0",
"postcss-import": "^16.1.0",
"postcss-nested": "^6.2.0"

View File

@ -28,7 +28,7 @@
}
let date = formatDate(data.value.date)
data.value.date = format(addMinutes(date, 240), 'MMM do, yyy')
date = format(addMinutes(date, 240), 'MMM do, yyy')
useHead({
meta: [
@ -50,7 +50,7 @@
<div class="hero">
<div class="meta" v-if="isDesktopOrTablet">
<p class="date"><b>Published</b> <br> {{ data.date }}</p>
<p class="date"><b>Published</b> <br> {{ date }}</p>
<p class="author"><b>Author</b> <br> {{ data.author }}</p>
<p><b>Tags</b></p>
<p class="tags" v-for="tag in data.tags">{{ tag }}</p>

View File

@ -15,7 +15,7 @@
<!-- Hero -->
<div class="heading center">
<h2>Will be updated this soon.</h2>
<h2>Updating soon.</h2>
</div>
</div>

View File

@ -1,24 +1,5 @@
<script setup>
const { path } = useRoute()
const { data, error } = await useAsyncData(`content-${path}`, () => {
return queryContent().where({ _path: path }).findOne()
})
if (error.value) {
showError(
createError({
statusCode: 404,
statusMessage: 'Not Found',
})
)
}
</script>
<template>
<div class="legal">
<div class="heading center">
<h2>Will be updated this soon.</h2>
</div>
<div class="privacy center-md">
<ContentDoc class="content" />
</div>
</template>

View File

@ -1,24 +0,0 @@
<script setup>
const { path } = useRoute()
const { data, error } = await useAsyncData(`content-${path}`, () => {
return queryContent().where({ _path: path }).findOne()
})
if (error.value) {
showError(
createError({
statusCode: 404,
statusMessage: 'Not Found',
})
)
}
</script>
<template>
<div class="legal">
<div class="heading center">
<h2>Will be updated this soon.</h2>
</div>
</div>
</template>

View File

@ -0,0 +1,5 @@
<template>
<div class="user-agreement center-md">
<ContentDoc class="content" />
</div>
</template>

View File

@ -51,7 +51,7 @@
<li><NuxtLink to="https://x.com/InspinHQ" target="_BLANK">X (Twitter)</NuxtLink></li>
<li><NuxtLink to="https://gab.com/InspinHQ" target="_BLANK">Gab</NuxtLink></li>
<li><NuxtLink to="https://njump.me/npub1nvdr4aeamnswzzm7a5w2w9a0jfy3qqhqa7dy9jhxlyzg0yjq58wsftqtlh" target="_BLANK">Nostr</NuxtLink></li>
<li><NuxtLink to="https://dribbble.com/inspin" target="_BLANK">Dribbble</NuxtLink></li>
<!-- <li><NuxtLink to="https://dribbble.com/inspin" target="_BLANK">Dribbble</NuxtLink></li> -->
</ul>
</div>