mirror of
https://github.com/psviderski/uncloud.git
synced 2026-10-06 13:18:58 +00:00
docs: combine landing page and docusaurus together and deploy as one image
This commit is contained in:
1 parent
cac1550b7d
commit
4fe360c573
47 files changed
+19096
-19101
No files matched your search
@@ -1,6 +1,5 @@
|
|||||||
CORROSION_IMAGE ?= ghcr.io/psviderski/corrosion:latest
|
CORROSION_IMAGE ?= ghcr.io/psviderski/corrosion:latest
|
||||||
UCIND_IMAGE ?= ghcr.io/psviderski/ucind:latest
|
UCIND_IMAGE ?= ghcr.io/psviderski/ucind:latest
|
||||||
DOCS_IMAGE ?= ghcr.io/psviderski/uncloud-docs:latest
|
|
||||||
|
|
||||||
update-dev:
|
update-dev:
|
||||||
GOOS=linux GOARCH=amd64 go build -o uncloudd-linux-amd64 ./cmd/uncloudd && \
|
GOOS=linux GOARCH=amd64 go build -o uncloudd-linux-amd64 ./cmd/uncloudd && \
|
||||||
@@ -112,6 +111,3 @@ _lint:
|
|||||||
# Uncloud daemon won't likely support OS other than Linux anytime soon, so for now we can rely on that.
|
# Uncloud daemon won't likely support OS other than Linux anytime soon, so for now we can rely on that.
|
||||||
GOOS=linux golangci-lint run $(ARGS)
|
GOOS=linux golangci-lint run $(ARGS)
|
||||||
|
|
||||||
.PHONY: docs-image-push
|
|
||||||
docs-image-push:
|
|
||||||
docker buildx build --push --platform linux/amd64,linux/arm64 -t "$(DOCS_IMAGE)" ./docs
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="./website/images/logo.svg" height="100" width="100" alt="Uncloud logo"/>
|
<img src="./website/landing/images/logo.svg" height="100" width="100" alt="Uncloud logo"/>
|
||||||
<h1>Uncloud</h1>
|
<h1>Uncloud</h1>
|
||||||
<p><strong>Docker simplicity. Multi-machine power.</strong></p>
|
<p><strong>Docker simplicity. Multi-machine power.</strong></p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<a href="https://docs.uncloud.run"><img src="https://img.shields.io/badge/Docs-blue.svg?style=for-the-badge&logo=gitbook&logoColor=white" alt="Documentation"></a>
|
<a href="https://uncloud.run/docs"><img src="https://img.shields.io/badge/Docs-blue.svg?style=for-the-badge&logo=gitbook&logoColor=white" alt="Documentation"></a>
|
||||||
<a href="https://discord.gg/eR35KQJhPu"><img src="https://img.shields.io/badge/discord-5865F2.svg?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord"></a>
|
<a href="https://discord.gg/eR35KQJhPu"><img src="https://img.shields.io/badge/discord-5865F2.svg?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord"></a>
|
||||||
<a href="https://x.com/psviderski"><img src="https://img.shields.io/badge/follow-black?style=for-the-badge&logo=X&logoColor=while" alt="Follow on X"></a>
|
<a href="https://x.com/psviderski"><img src="https://img.shields.io/badge/follow-black?style=for-the-badge&logo=X&logoColor=while" alt="Follow on X"></a>
|
||||||
<a href="https://github.com/sponsors/psviderski"><img src="https://img.shields.io/badge/Donate-EA4AAA.svg?style=for-the-badge&logo=githubsponsors&logoColor=white" alt="Donate"></a>
|
<a href="https://github.com/sponsors/psviderski"><img src="https://img.shields.io/badge/Donate-EA4AAA.svg?style=for-the-badge&logo=githubsponsors&logoColor=white" alt="Donate"></a>
|
||||||
@@ -52,11 +52,11 @@ complexity of Kubernetes.
|
|||||||
|
|
||||||
## 🎬 Quick demo
|
## 🎬 Quick demo
|
||||||
|
|
||||||
The screenshot below demonstrates how I use Uncloud to deploy the [Uncloud Documentation](https://docs.uncloud.run)
|
The screenshot below demonstrates how I use Uncloud to deploy https://uncloud.run website to 2 remote machines from
|
||||||
website to 2 remote machines (why not?) from the [`compose.yaml`](docs/compose.yaml) file on my local machine.
|
the [`compose.yaml`](website/compose.yaml) file on my local machine.
|
||||||
|
|
||||||
It exposes the container port `8000/tcp` as HTTPS on the domain `docs.uncloud.run`, served by the Caddy reverse proxy on
|
It exposes the container port `8000/tcp` as HTTPS on the domain `uncloud.run`, served by the Caddy reverse proxy on the
|
||||||
the remote machines. All managed by Uncloud.
|
remote machines. All managed by Uncloud.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ platform, whether you're running on a $5 VPS, a spare Mac mini, or a rack of bar
|
|||||||
curl -fsS https://get.uncloud.run/install.sh | sh
|
curl -fsS https://get.uncloud.run/install.sh | sh
|
||||||
```
|
```
|
||||||
|
|
||||||
See [Installation](https://docs.uncloud.run/getting-started/install-cli) for more options.
|
See [Installation](https://uncloud.run/docs/getting-started/install-cli) for more options.
|
||||||
|
|
||||||
2. Initialise your first machine:
|
2. Initialise your first machine:
|
||||||
|
|
||||||
@@ -130,15 +130,15 @@ platform, whether you're running on a $5 VPS, a spare Mac mini, or a rack of bar
|
|||||||
uncloud-uninstall
|
uncloud-uninstall
|
||||||
```
|
```
|
||||||
|
|
||||||
View the [Documentation](https://docs.uncloud.run) for more information.
|
View the [Documentation](https://uncloud.run/docs) for more information.
|
||||||
|
|
||||||
## ⚙️ How it works
|
## ⚙️ How it works
|
||||||
|
|
||||||
Check out the [design document](docs/design.md) to understand Uncloud's design philosophy and goals.
|
Check out the [design document](misc/design.md) to understand Uncloud's design philosophy and goals.
|
||||||
|
|
||||||
Here is a diagram of an Uncloud multi-provider cluster of 3 machines:
|
Here is a diagram of an Uncloud multi-provider cluster of 3 machines:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Peek under the hood to see what happens when you run certain commands.</summary>
|
<summary>Peek under the hood to see what happens when you run certain commands.</summary>
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
# Website
|
|
||||||
|
|
||||||
This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
|
|
||||||
|
|
||||||
### Installation
|
|
||||||
|
|
||||||
```
|
|
||||||
$ yarn
|
|
||||||
```
|
|
||||||
|
|
||||||
### Local Development
|
|
||||||
|
|
||||||
```
|
|
||||||
$ yarn start
|
|
||||||
```
|
|
||||||
|
|
||||||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
|
|
||||||
|
|
||||||
### Build
|
|
||||||
|
|
||||||
```
|
|
||||||
$ yarn build
|
|
||||||
```
|
|
||||||
|
|
||||||
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
|
||||||
|
|
||||||
### Deployment
|
|
||||||
|
|
||||||
Using SSH:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ USE_SSH=true yarn deploy
|
|
||||||
```
|
|
||||||
|
|
||||||
Not using SSH:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ GIT_USER=<Your GitHub username> yarn deploy
|
|
||||||
```
|
|
||||||
|
|
||||||
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
services:
|
|
||||||
uncloud-docs:
|
|
||||||
image: ghcr.io/psviderski/uncloud-docs:latest
|
|
||||||
pull_policy: always
|
|
||||||
user: nobody
|
|
||||||
x-ports:
|
|
||||||
- docs.uncloud.run:8000/https
|
|
||||||
scale: 2
|
|
||||||
Generated
-18434
File diff suppressed because it is too large.
Load diff
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "docs",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"private": true,
|
|
||||||
"scripts": {
|
|
||||||
"docusaurus": "docusaurus",
|
|
||||||
"start": "docusaurus start",
|
|
||||||
"build": "docusaurus build",
|
|
||||||
"swizzle": "docusaurus swizzle",
|
|
||||||
"deploy": "docusaurus deploy",
|
|
||||||
"clear": "docusaurus clear",
|
|
||||||
"serve": "docusaurus serve",
|
|
||||||
"write-translations": "docusaurus write-translations",
|
|
||||||
"write-heading-ids": "docusaurus write-heading-ids"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@docusaurus/core": "3.7.0",
|
|
||||||
"@docusaurus/preset-classic": "3.7.0",
|
|
||||||
"@easyops-cn/docusaurus-search-local": "^0.49.2",
|
|
||||||
"@mdx-js/react": "^3.0.0",
|
|
||||||
"clsx": "^2.0.0",
|
|
||||||
"prism-react-renderer": "^2.3.0",
|
|
||||||
"react": "^19.0.0",
|
|
||||||
"react-dom": "^19.0.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@docusaurus/module-type-aliases": "3.7.0",
|
|
||||||
"@docusaurus/types": "3.7.0"
|
|
||||||
},
|
|
||||||
"browserslist": {
|
|
||||||
"production": [
|
|
||||||
">0.5%",
|
|
||||||
"not dead",
|
|
||||||
"not op_mini all"
|
|
||||||
],
|
|
||||||
"development": [
|
|
||||||
"last 3 chrome version",
|
|
||||||
"last 3 firefox version",
|
|
||||||
"last 5 safari version"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -2,7 +2,9 @@
|
|||||||
*
|
*
|
||||||
|
|
||||||
# Allow files and directories.
|
# Allow files and directories.
|
||||||
|
!blog2/
|
||||||
!docs/
|
!docs/
|
||||||
|
!landing/
|
||||||
!src/
|
!src/
|
||||||
!static/
|
!static/
|
||||||
!pkg/
|
!pkg/
|
||||||
File renamed without changes.
@@ -5,5 +5,5 @@
|
|||||||
:8000 {
|
:8000 {
|
||||||
root * /usr/share/caddy
|
root * /usr/share/caddy
|
||||||
file_server
|
file_server
|
||||||
try_files {path} /index.html
|
log
|
||||||
}
|
}
|
||||||
@@ -19,9 +19,12 @@ RUN npm ci
|
|||||||
## Build the static site.
|
## Build the static site.
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# Stage 3: Serve static site with Caddy.
|
# Stage 3: Serve static Docusaurus site and landing page with Caddy.
|
||||||
FROM caddy:2.10.0-alpine AS caddy
|
FROM caddy:2.10.0-alpine AS caddy
|
||||||
## Copy the Caddyfile.
|
## Copy the Caddyfile.
|
||||||
COPY ./Caddyfile /etc/caddy/Caddyfile
|
COPY ./Caddyfile /etc/caddy/Caddyfile
|
||||||
## Copy the Docusaurus build output.
|
## Copy the Docusaurus build output.
|
||||||
COPY --from=prod /opt/docusaurus/build /usr/share/caddy
|
COPY --from=prod /opt/docusaurus/build /usr/share/caddy
|
||||||
|
# Copy the landing page assets.
|
||||||
|
COPY landing/images /usr/share/caddy/images
|
||||||
|
COPY landing/index.html landing/style.css /usr/share/caddy/
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
WEBSITE_IMAGE ?= ghcr.io/psviderski/uncloud-website:latest
|
||||||
|
|
||||||
|
.PHONY: website-image-push
|
||||||
|
website-image-push:
|
||||||
|
docker buildx build --push --platform linux/amd64,linux/arm64 -t "$(WEBSITE_IMAGE)" .
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# Website
|
||||||
|
|
||||||
|
## Landing page
|
||||||
|
|
||||||
|
Landing page is a single static HTML file located at [`./landing/index.html`](./landing/index.html). It is built
|
||||||
|
using [Tailwind CSS](https://tailwindcss.com/).
|
||||||
|
|
||||||
|
### Local development
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cd landing
|
||||||
|
open index.html
|
||||||
|
# Watch the Tailwind CSS class changes and rebuild style.css
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Docs and Blog
|
||||||
|
|
||||||
|
`/docs` and `/blog` are built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
|
||||||
|
|
||||||
|
### Local Development
|
||||||
|
|
||||||
|
```
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
This command starts a local development server and opens up a browser window. Most changes are reflected live without
|
||||||
|
having to restart the server.
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
Both the landing page and Docusaurus site are built into a single Docker image that runs Caddy web server to serve the
|
||||||
|
static files.
|
||||||
|
|
||||||
|
Before building a production image, test the build locally:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker compose -f compose.local.yaml up --build
|
||||||
|
```
|
||||||
|
|
||||||
|
Verify:
|
||||||
|
|
||||||
|
* http://localhost:8000 — should show the landing page
|
||||||
|
* http://localhost:3000/docs/ — should show the docs generated by Docusaurus
|
||||||
|
* http://localhost:3000/blog/ — should show the blog generated by Docusaurus
|
||||||
|
|
||||||
|
### Deploy to production
|
||||||
|
|
||||||
|
```shell
|
||||||
|
make website-image-push
|
||||||
|
uc deploy
|
||||||
|
```
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
services:
|
||||||
|
website:
|
||||||
|
build: .
|
||||||
|
user: nobody
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
services:
|
||||||
|
uncloud-website:
|
||||||
|
image: ghcr.io/psviderski/uncloud-website:latest
|
||||||
|
pull_policy: always
|
||||||
|
user: nobody
|
||||||
|
x-ports:
|
||||||
|
- uncloud.run:8000/https
|
||||||
|
scale: 2
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -54,12 +54,13 @@ const config = {
|
|||||||
({
|
({
|
||||||
docs: {
|
docs: {
|
||||||
// Remove this to remove the "edit this page" links.
|
// Remove this to remove the "edit this page" links.
|
||||||
editUrl: 'https://github.com/psviderski/uncloud/edit/main/docs/',
|
editUrl: 'https://github.com/psviderski/uncloud/edit/main/website/',
|
||||||
// Serve the docs at the site's root.
|
// Serve the docs at the site's root.
|
||||||
// routeBasePath: '/',
|
// routeBasePath: '/',
|
||||||
showLastUpdateTime: true,
|
showLastUpdateTime: true,
|
||||||
sidebarPath: './sidebars.js',
|
sidebarPath: './sidebars.js',
|
||||||
},
|
},
|
||||||
|
blog: false,
|
||||||
// blog: {
|
// blog: {
|
||||||
// showReadingTime: true,
|
// showReadingTime: true,
|
||||||
// feedOptions: {
|
// feedOptions: {
|
||||||
@@ -100,6 +101,7 @@ const config = {
|
|||||||
logo: {
|
logo: {
|
||||||
alt: 'Uncloud Logo',
|
alt: 'Uncloud Logo',
|
||||||
src: 'img/logo.svg',
|
src: 'img/logo.svg',
|
||||||
|
href: 'https://uncloud.run',
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
@@ -108,10 +110,11 @@ const config = {
|
|||||||
label: 'Docs',
|
label: 'Docs',
|
||||||
position: 'left',
|
position: 'left',
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
to: 'blog',
|
// to: 'blog',
|
||||||
label: 'Blog',
|
// label: 'Blog',
|
||||||
position: 'left'},
|
// position: 'left',
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
type: 'search',
|
type: 'search',
|
||||||
position: 'right',
|
position: 'right',
|
||||||
@@ -158,20 +161,6 @@ const config = {
|
|||||||
//darkTheme: prismThemes.dracula,
|
//darkTheme: prismThemes.dracula,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
plugins: [
|
|
||||||
[
|
|
||||||
'@docusaurus/plugin-client-redirects',
|
|
||||||
{
|
|
||||||
redirects: [
|
|
||||||
{
|
|
||||||
from: '/',
|
|
||||||
to: '/new-index.html',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
Vendored
-5
@@ -1,5 +0,0 @@
|
|||||||
(()=>{var Ye=!1,Ze=!1,V=[];function Ft(e){mn(e)}function mn(e){V.includes(e)||V.push(e),hn()}function xe(e){let t=V.indexOf(e);t!==-1&&V.splice(t,1)}function hn(){!Ze&&!Ye&&(Ye=!0,queueMicrotask(_n))}function _n(){Ye=!1,Ze=!0;for(let e=0;e<V.length;e++)V[e]();V.length=0,Ze=!1}var T,I,$,Qe,Xe=!0;function Bt(e){Xe=!1,e(),Xe=!0}function Kt(e){T=e.reactive,$=e.release,I=t=>e.effect(t,{scheduler:r=>{Xe?Ft(r):r()}}),Qe=e.raw}function et(e){I=e}function zt(e){let t=()=>{};return[n=>{let i=I(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),$(i))},i},()=>{t()}]}var Vt=[],Ht=[],qt=[];function Ut(e){qt.push(e)}function ye(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Ht.push(t))}function Wt(e){Vt.push(e)}function Gt(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function tt(e,t){!e._x_attributeCleanups||Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}var nt=new MutationObserver(rt),it=!1;function ie(){nt.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),it=!0}function ot(){gn(),nt.disconnect(),it=!1}var oe=[],st=!1;function gn(){oe=oe.concat(nt.takeRecords()),oe.length&&!st&&(st=!0,queueMicrotask(()=>{xn(),st=!1}))}function xn(){rt(oe),oe.length=0}function h(e){if(!it)return e();ot();let t=e();return ie(),t}var at=!1,be=[];function Jt(){at=!0}function Yt(){at=!1,rt(be),be=[]}function rt(e){if(at){be=be.concat(e);return}let t=[],r=[],n=new Map,i=new Map;for(let o=0;o<e.length;o++)if(!e[o].target._x_ignoreMutationObserver&&(e[o].type==="childList"&&(e[o].addedNodes.forEach(s=>s.nodeType===1&&t.push(s)),e[o].removedNodes.forEach(s=>s.nodeType===1&&r.push(s))),e[o].type==="attributes")){let s=e[o].target,a=e[o].attributeName,c=e[o].oldValue,l=()=>{n.has(s)||n.set(s,[]),n.get(s).push({name:a,value:s.getAttribute(a)})},u=()=>{i.has(s)||i.set(s,[]),i.get(s).push(a)};s.hasAttribute(a)&&c===null?l():s.hasAttribute(a)?(u(),l()):u()}i.forEach((o,s)=>{tt(s,o)}),n.forEach((o,s)=>{Vt.forEach(a=>a(s,o))});for(let o of r)if(!t.includes(o)&&(Ht.forEach(s=>s(o)),o._x_cleanups))for(;o._x_cleanups.length;)o._x_cleanups.pop()();t.forEach(o=>{o._x_ignoreSelf=!0,o._x_ignore=!0});for(let o of t)r.includes(o)||!o.isConnected||(delete o._x_ignoreSelf,delete o._x_ignore,qt.forEach(s=>s(o)),o._x_ignore=!0,o._x_ignoreSelf=!0);t.forEach(o=>{delete o._x_ignoreSelf,delete o._x_ignore}),t=null,r=null,n=null,i=null}function ve(e){return j(L(e))}function M(e,t,r){return e._x_dataStack=[t,...L(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function ct(e,t){let r=e._x_dataStack[0];Object.entries(t).forEach(([n,i])=>{r[n]=i})}function L(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?L(e.host):e.parentNode?L(e.parentNode):[]}function j(e){let t=new Proxy({},{ownKeys:()=>Array.from(new Set(e.flatMap(r=>Object.keys(r)))),has:(r,n)=>e.some(i=>i.hasOwnProperty(n)),get:(r,n)=>(e.find(i=>{if(i.hasOwnProperty(n)){let o=Object.getOwnPropertyDescriptor(i,n);if(o.get&&o.get._x_alreadyBound||o.set&&o.set._x_alreadyBound)return!0;if((o.get||o.set)&&o.enumerable){let s=o.get,a=o.set,c=o;s=s&&s.bind(t),a=a&&a.bind(t),s&&(s._x_alreadyBound=!0),a&&(a._x_alreadyBound=!0),Object.defineProperty(i,n,{...c,get:s,set:a})}return!0}return!1})||{})[n],set:(r,n,i)=>{let o=e.find(s=>s.hasOwnProperty(n));return o?o[n]=i:e[e.length-1][n]=i,!0}});return t}function we(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:s,enumerable:a}])=>{if(a===!1||s===void 0)return;let c=i===""?o:`${i}.${o}`;typeof s=="object"&&s!==null&&s._x_interceptor?n[o]=s.initialize(e,c,o):t(s)&&s!==n&&!(s instanceof Element)&&r(s,c)})};return r(e)}function Ee(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>yn(n,i),s=>lt(n,i,s),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,s,a)=>{let c=n.initialize(o,s,a);return r.initialValue=c,i(o,s,a)}}else r.initialValue=n;return r}}function yn(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function lt(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),lt(e[t[0]],t.slice(1),r)}}var Zt={};function y(e,t){Zt[e]=t}function se(e,t){return Object.entries(Zt).forEach(([r,n])=>{Object.defineProperty(e,`$${r}`,{get(){let[i,o]=ut(t);return i={interceptor:Ee,...i},ye(t,o),n(t,i)},enumerable:!1})}),e}function Qt(e,t,r,...n){try{return r(...n)}catch(i){Z(i,e,t)}}function Z(e,t,r=void 0){Object.assign(e,{el:t,expression:r}),console.warn(`Alpine Expression E
Line truncated
|
|
||||||
|
|
||||||
${r?'Expression: "'+r+`"
|
|
||||||
|
|
||||||
`:""}`,t),setTimeout(()=>{throw e},0)}var Se=!0;function Xt(e){let t=Se;Se=!1,e(),Se=t}function P(e,t,r={}){let n;return x(e,t)(i=>n=i,r),n}function x(...e){return er(...e)}var er=ft;function tr(e){er=e}function ft(e,t){let r={};se(r,e);let n=[r,...L(e)];if(typeof t=="function")return bn(n,t);let i=vn(n,t,e);return Qt.bind(null,e,t,i)}function bn(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let o=t.apply(j([n,...e]),i);Ae(r,o)}}var dt={};function wn(e,t){if(dt[e])return dt[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e)||/^(let|const)\s/.test(e)?`(async()=>{ ${e} })()`:e,o=(()=>{try{return new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`)}catch(s){return Z(s,t,e),Promise.resolve()}})();return dt[e]=o,o}function vn(e,t,r){let n=wn(t,r);return(i=()=>{},{scope:o={},params:s=[]}={})=>{n.result=void 0,n.finished=!1;let a=j([o,...e]);if(typeof n=="function"){let c=n(n,a).catch(l=>Z(l,r,t));n.finished?(Ae(i,n.result,a,s,r),n.result=void 0):c.then(l=>{Ae(i,l,a,s,r)}).catch(l=>Z(l,r,t)).finally(()=>n.result=void 0)}}}function Ae(e,t,r,n,i){if(Se&&typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(s=>Ae(e,s,r,n)).catch(s=>Z(s,i,t)):e(o)}else typeof t=="object"&&t instanceof Promise?t.then(o=>e(o)):e(t)}var pt="x-";function S(e=""){return pt+e}function rr(e){pt=e}var mt={};function p(e,t){return mt[e]=t,{before(r){if(!mt[r]){console.warn("Cannot find directive `${directive}`. `${name}` will use the default order of execution");return}let n=H.indexOf(r)??H.indexOf("DEFAULT");n>=0&&H.splice(n,0,e)}}}function ae(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([a,c])=>({name:a,value:c})),s=ht(o);o=o.map(a=>s.find(c=>c.name===a.name)?{name:`x-bind:${a.name}`,value:`"${a.value}"`}:a),t=t.concat(o)}let n={};return t.map(nr((o,s)=>n[o]=s)).filter(ir).map(Sn(n,r)).sort(An).map(o=>En(e,o))}function ht(e){return Array.from(e).map(nr()).filter(t=>!ir(t))}var _t=!1,ce=new Map,or=Symbol();function sr(e){_t=!0;let t=Symbol();or=t,ce.set(t,[]);let r=()=>{for(;ce.get(t).length;)ce.get(t).shift()();ce.delete(t)},n=()=>{_t=!1,r()};e(r),n()}function ut(e){let t=[],r=a=>t.push(a),[n,i]=zt(e);return t.push(i),[{Alpine:F,effect:n,cleanup:r,evaluateLater:x.bind(x,e),evaluate:P.bind(P,e)},()=>t.forEach(a=>a())]}function En(e,t){let r=()=>{},n=mt[t.type]||r,[i,o]=ut(e);Gt(e,t.original,o);let s=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),_t?ce.get(or).push(n):n())};return s.runCleanups=o,s}var Oe=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),Te=e=>e;function nr(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=ar.reduce((o,s)=>s(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var ar=[];function Q(e){ar.push(e)}function ir({name:e}){return cr().test(e)}var cr=()=>new RegExp(`^${pt}([^:^.]+)\\b`);function Sn(e,t){return({name:r,value:n})=>{let i=r.match(cr()),o=r.match(/:([a-zA-Z0-9\-:]+)/),s=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],a=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:s.map(c=>c.replace(".","")),expression:n,original:a}}}var gt="DEFAULT",H=["ignore","ref","data","id","radio","tabs","switch","disclosure","menu","listbox","combobox","bind","init","for","mask","model","modelable","transition","show","if",gt,"teleport"];function An(e,t){let r=H.indexOf(e.type)===-1?gt:e.type,n=H.indexOf(t.type)===-1?gt:t.type;return H.indexOf(r)-H.indexOf(n)}function q(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function A(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>A(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)A(n,t,!1),n=n.nextElementSibling}function C(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}function ur(){document.body||C("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?"),q(document,"alpine:init"),q(document,"alpine:initializing"),ie(),Ut(t=>E(t,A)),ye(t=>xt(t)),Wt((t,r)=>{ae(t,r).forEach(n=>n())});let e=t=>!U(t.parentElement,!0);Array.from(document.querySelectorAll(lr())).filter(e).forEach(t=>{E(t)}),q(document,"alpine:initialized")}var yt=[],fr=[];function dr(){return yt.map(e=>e())}function lr(){return yt.concat(fr).map(e=>e())}function Ce(e){yt.push(e)}function Re(e){fr.push(e)}function U(e,t=!1){return X(e,r=>{if((t?lr():dr()).some(i=>r.matches(i)))return!0})}function X(e,t){if(!!e){if(t(e))return e;if(e._x_teleportBack&&(e=e._x_teleportBack),!!e.parentElement)return X(e.parentElement,t)}}function pr(e){return dr().some(t=>e.matches(t))}var mr=[];function hr(e){mr.push(e)}function E(e,t=A,r=()=>{}){sr(()=>{t(e,(n,i)=>{r(n,i),mr.forEach(o=>o(n,i)),ae(n,n.attributes).forEach(o=>o()),n._x_ignore&&i()})})}function xt(e){A(e,t=>tt(t))}vLine truncated
|
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -32,6 +32,13 @@
|
|||||||
content="Take your Docker Compose apps to production with zero-downtime deployments, automatic HTTPS, and cross-machine scaling. Self-hosting made reliable without the complexity.">
|
content="Take your Docker Compose apps to production with zero-downtime deployments, automatic HTTPS, and cross-machine scaling. Self-hosting made reliable without the complexity.">
|
||||||
<meta name="twitter:image" content="https://uncloud.run/images/logo-wide.png">
|
<meta name="twitter:image" content="https://uncloud.run/images/logo-wide.png">
|
||||||
<meta name="twitter:image:alt" content="Uncloud logo - Self-host web apps with ease">
|
<meta name="twitter:image:alt" content="Uncloud logo - Self-host web apps with ease">
|
||||||
|
<style>
|
||||||
|
/* Prevent all inline SVGs from appearing full screen */
|
||||||
|
svg {
|
||||||
|
max-width: 24px;
|
||||||
|
max-height: 24px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="font-inter antialiased bg-white text-zinc-900 tracking-tight">
|
<body class="font-inter antialiased bg-white text-zinc-900 tracking-tight">
|
||||||
@@ -45,8 +52,9 @@
|
|||||||
<div class="flex items-center justify-between h-14">
|
<div class="flex items-center justify-between h-14">
|
||||||
<!-- Site branding -->
|
<!-- Site branding -->
|
||||||
<div class="shrink-0 mr-4">
|
<div class="shrink-0 mr-4">
|
||||||
<a class="flex items-center" href="index.html">
|
<a class="flex items-center" href="/">
|
||||||
<img class="w-8 h-8 rounded shadow-sm shadow-zinc-950/20" src="./images/logo.svg" alt="Logo">
|
<img class="w-8 h-8 rounded shadow-sm shadow-zinc-950/20" src="./images/logo.svg" alt="Logo"
|
||||||
|
width="32" height="32">
|
||||||
<span class="ml-2 font-semibold text-lg text-zinc-900">uncloud</span>
|
<span class="ml-2 font-semibold text-lg text-zinc-900">uncloud</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -56,7 +64,7 @@
|
|||||||
<ul class="flex grow justify-end flex-wrap items-center">
|
<ul class="flex grow justify-end flex-wrap items-center">
|
||||||
<li>
|
<li>
|
||||||
<a class="text-sm font-medium text-zinc-500 hover:text-zinc-900 px-3 lg:px-5 py-2 flex items-center transition"
|
<a class="text-sm font-medium text-zinc-500 hover:text-zinc-900 px-3 lg:px-5 py-2 flex items-center transition"
|
||||||
href="https://docs.uncloud.run">
|
href="/docs">
|
||||||
<svg class="w-4 h-4 mr-1 fill-current hidden sm:inline"
|
<svg class="w-4 h-4 mr-1 fill-current hidden sm:inline"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
viewBox="0 0 24 24">
|
viewBox="0 0 24 24">
|
||||||
@@ -713,11 +721,11 @@
|
|||||||
<ul class="text-sm space-y-2">
|
<ul class="text-sm space-y-2">
|
||||||
<li>
|
<li>
|
||||||
<a class="text-zinc-500 hover:text-zinc-900 transition"
|
<a class="text-zinc-500 hover:text-zinc-900 transition"
|
||||||
href="https://docs.uncloud.run/#use-cases">Use cases</a>
|
href="/docs/#use-cases">Use cases</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="text-zinc-500 hover:text-zinc-900 transition"
|
<a class="text-zinc-500 hover:text-zinc-900 transition"
|
||||||
href="https://docs.uncloud.run/getting-started/quick-start">Quick start</a>
|
href="/docs/getting-started/deploy-demo-app">Quick start</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
Generated
+1031
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "gray-html",
|
||||||
|
"description": "Gray HTML template - Cruip.com",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"homepage": "https://cruip.com",
|
||||||
|
"author": "Pasquale Vitiello",
|
||||||
|
"license": "https://cruip.com/terms/",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "npx tailwindcss -i ./css/style.css -o ./style.css --watch",
|
||||||
|
"build": "npx tailwindcss -i ./css/style.css -o ./style.css"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@tailwindcss/forms": "^0.5.7",
|
||||||
|
"tailwindcss": "^3.3.6"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -41,10 +41,8 @@ html {
|
|||||||
/* 1 */
|
/* 1 */
|
||||||
-webkit-text-size-adjust: 100%;
|
-webkit-text-size-adjust: 100%;
|
||||||
/* 2 */
|
/* 2 */
|
||||||
-moz-tab-size: 4;
|
|
||||||
/* 3 */
|
/* 3 */
|
||||||
-o-tab-size: 4;
|
tab-size: 4;
|
||||||
tab-size: 4;
|
|
||||||
/* 3 */
|
/* 3 */
|
||||||
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
/* 4 */
|
/* 4 */
|
||||||
@@ -374,13 +372,6 @@ textarea {
|
|||||||
2. Set the default placeholder color to the user's configured gray 400 color.
|
2. Set the default placeholder color to the user's configured gray 400 color.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
input::-moz-placeholder, textarea::-moz-placeholder {
|
|
||||||
opacity: 1;
|
|
||||||
/* 1 */
|
|
||||||
color: #9ca3af;
|
|
||||||
/* 2 */
|
|
||||||
}
|
|
||||||
|
|
||||||
input::placeholder,
|
input::placeholder,
|
||||||
textarea::placeholder {
|
textarea::placeholder {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
@@ -443,9 +434,7 @@ video {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select{
|
[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select{
|
||||||
-webkit-appearance: none;
|
appearance: none;
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-color: #6b7280;
|
border-color: #6b7280;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
@@ -472,11 +461,6 @@ video {
|
|||||||
border-color: #2563eb;
|
border-color: #2563eb;
|
||||||
}
|
}
|
||||||
|
|
||||||
input::-moz-placeholder, textarea::-moz-placeholder{
|
|
||||||
color: #6b7280;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
input::placeholder,textarea::placeholder{
|
input::placeholder,textarea::placeholder{
|
||||||
color: #6b7280;
|
color: #6b7280;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
@@ -521,9 +505,7 @@ select{
|
|||||||
}
|
}
|
||||||
|
|
||||||
[type='checkbox'],[type='radio']{
|
[type='checkbox'],[type='radio']{
|
||||||
-webkit-appearance: none;
|
appearance: none;
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
-webkit-print-color-adjust: exact;
|
-webkit-print-color-adjust: exact;
|
||||||
print-color-adjust: exact;
|
print-color-adjust: exact;
|
||||||
@@ -531,7 +513,6 @@ select{
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
background-origin: border-box;
|
background-origin: border-box;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
height: 1rem;
|
height: 1rem;
|
||||||
@@ -577,9 +558,7 @@ select{
|
|||||||
|
|
||||||
@media (forced-colors: active) {
|
@media (forced-colors: active) {
|
||||||
[type='checkbox']:checked{
|
[type='checkbox']:checked{
|
||||||
-webkit-appearance: auto;
|
appearance: auto;
|
||||||
-moz-appearance: auto;
|
|
||||||
appearance: auto;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -589,9 +568,7 @@ select{
|
|||||||
|
|
||||||
@media (forced-colors: active) {
|
@media (forced-colors: active) {
|
||||||
[type='radio']:checked{
|
[type='radio']:checked{
|
||||||
-webkit-appearance: auto;
|
appearance: auto;
|
||||||
-moz-appearance: auto;
|
|
||||||
appearance: auto;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -611,9 +588,7 @@ select{
|
|||||||
|
|
||||||
@media (forced-colors: active) {
|
@media (forced-colors: active) {
|
||||||
[type='checkbox']:indeterminate{
|
[type='checkbox']:indeterminate{
|
||||||
-webkit-appearance: auto;
|
appearance: auto;
|
||||||
-moz-appearance: auto;
|
|
||||||
appearance: auto;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -772,9 +747,7 @@ select{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.form-input,.form-textarea,.form-select,.form-multiselect{
|
.form-input,.form-textarea,.form-select,.form-multiselect{
|
||||||
-webkit-appearance: none;
|
appearance: none;
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-color: #6b7280;
|
border-color: #6b7280;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
@@ -801,11 +774,6 @@ select{
|
|||||||
border-color: #2563eb;
|
border-color: #2563eb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-input::-moz-placeholder, .form-textarea::-moz-placeholder{
|
|
||||||
color: #6b7280;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-input::placeholder,.form-textarea::placeholder{
|
.form-input::placeholder,.form-textarea::placeholder{
|
||||||
color: #6b7280;
|
color: #6b7280;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
@@ -850,9 +818,7 @@ select{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.form-checkbox,.form-radio{
|
.form-checkbox,.form-radio{
|
||||||
-webkit-appearance: none;
|
appearance: none;
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
-webkit-print-color-adjust: exact;
|
-webkit-print-color-adjust: exact;
|
||||||
print-color-adjust: exact;
|
print-color-adjust: exact;
|
||||||
@@ -860,7 +826,6 @@ select{
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
background-origin: border-box;
|
background-origin: border-box;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
height: 1rem;
|
height: 1rem;
|
||||||
@@ -906,9 +871,7 @@ select{
|
|||||||
|
|
||||||
@media (forced-colors: active) {
|
@media (forced-colors: active) {
|
||||||
.form-checkbox:checked{
|
.form-checkbox:checked{
|
||||||
-webkit-appearance: auto;
|
appearance: auto;
|
||||||
-moz-appearance: auto;
|
|
||||||
appearance: auto;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -918,9 +881,7 @@ select{
|
|||||||
|
|
||||||
@media (forced-colors: active) {
|
@media (forced-colors: active) {
|
||||||
.form-radio:checked{
|
.form-radio:checked{
|
||||||
-webkit-appearance: auto;
|
appearance: auto;
|
||||||
-moz-appearance: auto;
|
|
||||||
appearance: auto;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -940,9 +901,7 @@ select{
|
|||||||
|
|
||||||
@media (forced-colors: active) {
|
@media (forced-colors: active) {
|
||||||
.form-checkbox:indeterminate{
|
.form-checkbox:indeterminate{
|
||||||
-webkit-appearance: auto;
|
appearance: auto;
|
||||||
-moz-appearance: auto;
|
|
||||||
appearance: auto;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1097,11 +1056,6 @@ input[type="search"]::-webkit-search-results-decoration {
|
|||||||
color: rgb(82 82 91 / var(--tw-text-opacity));
|
color: rgb(82 82 91 / var(--tw-text-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-input::-moz-placeholder, .form-textarea::-moz-placeholder{
|
|
||||||
--tw-placeholder-opacity: 1;
|
|
||||||
color: rgb(161 161 170 / var(--tw-placeholder-opacity));
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-input::placeholder,
|
.form-input::placeholder,
|
||||||
.form-textarea::placeholder{
|
.form-textarea::placeholder{
|
||||||
--tw-placeholder-opacity: 1;
|
--tw-placeholder-opacity: 1;
|
||||||
@@ -1185,14 +1139,6 @@ input[type="search"]::-webkit-search-results-decoration {
|
|||||||
transition: y 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), width 0.1s ease-out;
|
transition: y 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), width 0.1s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.visible{
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapse{
|
|
||||||
visibility: collapse;
|
|
||||||
}
|
|
||||||
|
|
||||||
.absolute{
|
.absolute{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
@@ -1418,13 +1364,8 @@ input[type="search"]::-webkit-search-results-decoration {
|
|||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transform{
|
|
||||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
||||||
}
|
|
||||||
|
|
||||||
.select-none{
|
.select-none{
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
File renamed without changes.
Generated
+17881
-448
File diff suppressed because it is too large.
Load diff
+39
-10
@@ -1,16 +1,45 @@
|
|||||||
{
|
{
|
||||||
"name": "gray-html",
|
"name": "docs",
|
||||||
"description": "Gray HTML template - Cruip.com",
|
"version": "0.0.0",
|
||||||
"version": "1.0.0",
|
"private": true,
|
||||||
"homepage": "https://cruip.com",
|
|
||||||
"author": "Pasquale Vitiello",
|
|
||||||
"license": "https://cruip.com/terms/",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "npx tailwindcss -i ./css/style.css -o ./style.css --watch",
|
"docusaurus": "docusaurus",
|
||||||
"build": "npx tailwindcss -i ./css/style.css -o ./style.css"
|
"start": "docusaurus start",
|
||||||
|
"build": "docusaurus build",
|
||||||
|
"swizzle": "docusaurus swizzle",
|
||||||
|
"deploy": "docusaurus deploy",
|
||||||
|
"clear": "docusaurus clear",
|
||||||
|
"serve": "docusaurus serve",
|
||||||
|
"write-translations": "docusaurus write-translations",
|
||||||
|
"write-heading-ids": "docusaurus write-heading-ids"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@docusaurus/core": "3.7.0",
|
||||||
|
"@docusaurus/preset-classic": "3.7.0",
|
||||||
|
"@easyops-cn/docusaurus-search-local": "^0.49.2",
|
||||||
|
"@mdx-js/react": "^3.0.0",
|
||||||
|
"clsx": "^2.0.0",
|
||||||
|
"prism-react-renderer": "^2.3.0",
|
||||||
|
"react": "^19.0.0",
|
||||||
|
"react-dom": "^19.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/forms": "^0.5.7",
|
"@docusaurus/module-type-aliases": "3.7.0",
|
||||||
"tailwindcss": "^3.3.6"
|
"@docusaurus/types": "3.7.0"
|
||||||
|
},
|
||||||
|
"browserslist": {
|
||||||
|
"production": [
|
||||||
|
">0.5%",
|
||||||
|
"not dead",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"development": [
|
||||||
|
"last 3 chrome version",
|
||||||
|
"last 3 firefox version",
|
||||||
|
"last 5 safari version"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,9 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import Layout from '@theme/Layout';
|
||||||
|
|
||||||
|
export default function Hello() {
|
||||||
|
return (
|
||||||
|
<Layout>
|
||||||
|
</Layout>
|
||||||
|
);
|
||||||
|
}
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user