mirror of
https://github.com/LukeHagar/website.git
synced 2025-12-08 04:22:14 +00:00
change all text to new tw
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
use:melt={$trigger(tab)}
|
||||
>
|
||||
<slot {tab}>
|
||||
<span class="web-main-body-500">{tab}</span>
|
||||
<span class="text-body font-medium">{tab}</span>
|
||||
</slot>
|
||||
</button>
|
||||
</li>
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
>
|
||||
{#if scrollInfo.percentage > -0.1}
|
||||
<span
|
||||
class="web-badges web-eyebrow !text-white"
|
||||
class="web-badges text-micro uppercase text-white"
|
||||
transition:slide={{ axis: 'x' }}>Products_</span
|
||||
>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<div class="outside">
|
||||
<div class="wrapper">
|
||||
<span class="web-badges web-eyebrow !text-white">Products_</span>
|
||||
<span class="web-badges text-micro uppercase text-white">Products_</span>
|
||||
|
||||
<h2 class="text-display font-aeonik-pro text-primary mt-4">
|
||||
Your backend, minus the hassle
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
|
||||
<div class="pseudo-table">
|
||||
<div class="header">
|
||||
<span class="web-eyebrow">Name</span>
|
||||
<span class="web-eyebrow">Identifier</span>
|
||||
<span class="text-micro uppercase">Name</span>
|
||||
<span class="text-micro uppercase">Identifier</span>
|
||||
</div>
|
||||
{#each authData as user (user.id)}
|
||||
<div
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
|
||||
<div class="pseudo-table">
|
||||
<div class="header">
|
||||
<span class="web-eyebrow">Document ID</span>
|
||||
<span class="web-eyebrow">Task</span>
|
||||
<span class="text-micro uppercase">Document ID</span>
|
||||
<span class="text-micro uppercase">Task</span>
|
||||
</div>
|
||||
{#each $state.tasks.slice(0, $state.tableSlice) as task (task.id)}
|
||||
<div class="row" transition:slide={{ duration: 150 }} animate:flip={{ duration: 150 }}>
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
<div class="pseudo-table">
|
||||
<div class="header">
|
||||
<span class="web-eyebrow">Message ID</span>
|
||||
<span class="web-eyebrow">Type</span>
|
||||
<span class="web-eyebrow" style:text-align="center">Status</span>
|
||||
<span class="text-micro uppercase">Message ID</span>
|
||||
<span class="text-micro uppercase">Type</span>
|
||||
<span class="text-micro uppercase" style:text-align="center">Status</span>
|
||||
</div>
|
||||
{#each $state.messages.slice(0, $state.tableSlice) as task (task.id)}
|
||||
<div class="row" transition:slide={{ duration: 150 }} animate:flip={{ duration: 150 }}>
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
<div class="pseudo-table">
|
||||
<div class="header">
|
||||
<span class="web-eyebrow">Filename</span>
|
||||
<span class="web-eyebrow">Type</span>
|
||||
<span class="web-eyebrow">Size</span>
|
||||
<span class="text-micro uppercase">Filename</span>
|
||||
<span class="text-micro uppercase">Type</span>
|
||||
<span class="text-micro uppercase">Size</span>
|
||||
</div>
|
||||
{#each $state.files as file (file.src)}
|
||||
<div class="row" in:slide={{ duration: 150 }} animate:flip={{ duration: 150 }}>
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
alt={author}
|
||||
/>
|
||||
<div class="web-author-info">
|
||||
<h4 class="web-sub-body-400 text-primary">{author}</h4>
|
||||
<ul class="web-metadata web-caption-400 web-is-not-mobile">
|
||||
<h4 class="text-sub-body text-primary">{author}</h4>
|
||||
<ul class="web-metadata text-caption web-is-not-mobile">
|
||||
<li>
|
||||
{formatDate(date)}
|
||||
</li>
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
style="flex-wrap: wrap-reverse;"
|
||||
>
|
||||
<div class="flex items-center gap-4">
|
||||
<h5 class="web-main-body-600 text-primary">Was this page helpful?</h5>
|
||||
<h5 class="text-body font-semibold text-primary">Was this page helpful?</h5>
|
||||
<div class="flex gap-2">
|
||||
<button
|
||||
class="web-radio-button"
|
||||
@@ -79,7 +79,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="web-content-footer-header-end">
|
||||
<ul class="web-metadata web-caption-400">
|
||||
<ul class="web-metadata text-caption">
|
||||
{#if date}
|
||||
<li>Last updated on {new Date(date)?.toLocaleDateString()}</li>
|
||||
{/if}
|
||||
|
||||
@@ -100,10 +100,12 @@
|
||||
<ul class="web-footer-nav-main-list" use:melt={$root}>
|
||||
{#each Object.entries(links) as [title, items]}
|
||||
<li class="web-footer-nav-main-item web-is-not-mobile">
|
||||
<h2 class="web-footer-nav-main-title web-is-not-mobile web-caption-500 web-eyebrow">
|
||||
<h2
|
||||
class="web-footer-nav-main-title web-is-not-mobile text-caption uppercase font-medium"
|
||||
>
|
||||
{title}
|
||||
</h2>
|
||||
<ul class="web-footer-nav-secondary-list web-sub-body-400">
|
||||
<ul class="web-footer-nav-secondary-list text-sub-body">
|
||||
{#each items as { href, label, target, rel }}
|
||||
<li>
|
||||
<a class="web-link" {href} {target} {rel}>{label}</a>
|
||||
@@ -120,7 +122,7 @@
|
||||
class="web-footer-nav-button web-is-only-mobile"
|
||||
use:melt={$trigger({ value: title })}
|
||||
>
|
||||
<span class="web-caption-500 web-eyebrow">{title}</span>
|
||||
<span class="text-caption font-medium uppercase">{title}</span>
|
||||
<span
|
||||
class="web-icon-chevron-down web-u-transition"
|
||||
class:web-u-rotate-180={$isSelected(title)}
|
||||
@@ -130,7 +132,7 @@
|
||||
</h5>
|
||||
{#if $isSelected(title)}
|
||||
<ul
|
||||
class="web-footer-nav-secondary-list web-sub-body-400"
|
||||
class="web-footer-nav-secondary-list text-sub-body"
|
||||
use:melt={$content({ value: title })}
|
||||
transition:slide={{ duration: 250 }}
|
||||
>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<div class="shadow" />
|
||||
</div>
|
||||
<a href="/init" rel="noopener noreferrer" class="action">
|
||||
<span class="web-caption-500">Join now</span>
|
||||
<span class="text-caption font-medium">Join now</span>
|
||||
<span class="web-icon-arrow-right" aria-hidden="true" />
|
||||
<div class="shadow" />
|
||||
</a>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<div>Copyright © {year} Appwrite</div>
|
||||
|
||||
<iframe
|
||||
class="status max-w-[230px]"
|
||||
class="status max-w-[230px] w-fit"
|
||||
title="Appwrite Status"
|
||||
src="https://status.appwrite.online/badge?theme=dark"
|
||||
height="35"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
{#each links as { href, label }}
|
||||
<li>
|
||||
<a class="web-side-nav-button" {href}>
|
||||
<span class="web-caption-400">{label}</span>
|
||||
<span class="text-caption">{label}</span>
|
||||
</a>
|
||||
</li>
|
||||
{/each}
|
||||
@@ -44,7 +44,7 @@
|
||||
>
|
||||
<span class="web-icon-star" aria-hidden="true" />
|
||||
<span class="text">Star on GitHub</span>
|
||||
<span class="web-inline-tag web-sub-body-400">{GITHUB_STARS}</span>
|
||||
<span class="web-inline-tag text-sub-body">{GITHUB_STARS}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -28,9 +28,9 @@
|
||||
<div class="web-strip-plans-plan">
|
||||
<h4 class="title text-description">Free</h4>
|
||||
<div class="text-title font-aeonik-pro text-primary">$0</div>
|
||||
<div class="info web-caption-500" />
|
||||
<div class="info text-caption font-medium" />
|
||||
</div>
|
||||
<p class="web-strip-plans-info web-caption-500">
|
||||
<p class="web-strip-plans-info text-caption font-medium">
|
||||
For personal hobby projects and students.
|
||||
</p>
|
||||
<a
|
||||
@@ -46,9 +46,9 @@
|
||||
<div class="web-strip-plans-plan">
|
||||
<h4 class="title text-description">Pro</h4>
|
||||
<div class="text-title font-aeonik-pro text-primary">$15</div>
|
||||
<div class="info web-caption-500">per member/month</div>
|
||||
<div class="info text-caption font-medium">per member/month</div>
|
||||
</div>
|
||||
<p class="web-strip-plans-info web-caption-500">
|
||||
<p class="web-strip-plans-info text-caption font-medium">
|
||||
For pro developers and teams that need to scale their products.
|
||||
</p>
|
||||
<a
|
||||
@@ -67,9 +67,9 @@
|
||||
<div class="web-strip-plans-plan">
|
||||
<h4 class="title text-description">Scale</h4>
|
||||
<div class="text-title font-aeonik-pro text-primary">$599</div>
|
||||
<div class="info web-caption-500">per org/month</div>
|
||||
<div class="info text-caption font-medium">per org/month</div>
|
||||
</div>
|
||||
<p class="web-strip-plans-info web-caption-500">
|
||||
<p class="web-strip-plans-info text-caption font-medium">
|
||||
For pro developers and production projects that need the ability to scale.
|
||||
</p>
|
||||
<button
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Auth</h4>
|
||||
<h4 class="text-body text-primary">Auth</h4>
|
||||
<span class="icon-arrow-right ml-0" aria-hidden="true"></span>
|
||||
</div>
|
||||
<p class="web-sub-body-400 ml-1">
|
||||
<p class="text-sub-body ml-1">
|
||||
Build secure authentication and manage your users.
|
||||
</p>
|
||||
</a>
|
||||
@@ -38,10 +38,10 @@
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Functions</h4>
|
||||
<h4 class="text-body text-primary">Functions</h4>
|
||||
<span class="icon-arrow-right ml-0" aria-hidden="true"></span>
|
||||
</div>
|
||||
<p class="web-sub-body-400 ml-1">
|
||||
<p class="text-sub-body ml-1">
|
||||
Scale big and unlock limitless potential with Appwrite functions.
|
||||
</p>
|
||||
</a>
|
||||
@@ -60,10 +60,10 @@
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Databases</h4>
|
||||
<h4 class="text-body text-primary">Databases</h4>
|
||||
<span class="icon-arrow-right ml-0" aria-hidden="true"></span>
|
||||
</div>
|
||||
<p class="web-sub-body-400 ml-1">
|
||||
<p class="text-sub-body ml-1">
|
||||
Store and query structured data, ensuring scalable storage.
|
||||
</p>
|
||||
</a>
|
||||
@@ -82,10 +82,10 @@
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Messaging</h4>
|
||||
<h4 class="text-body text-primary">Messaging</h4>
|
||||
<span class="icon-arrow-right ml-0" aria-hidden="true"></span>
|
||||
</div>
|
||||
<p class="web-sub-body-400 ml-1">
|
||||
<p class="text-sub-body ml-1">
|
||||
Manage your files’ project, using convenient APIs and utilities.
|
||||
</p>
|
||||
</a>
|
||||
@@ -104,10 +104,10 @@
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Realtime</h4>
|
||||
<h4 class="text-body text-primary">Realtime</h4>
|
||||
<span class="icon-arrow-right ml-0" aria-hidden="true"></span>
|
||||
</div>
|
||||
<p class="web-sub-body-400 ml-1">
|
||||
<p class="text-sub-body ml-1">
|
||||
Utilize realtime information from all Appwrite services.
|
||||
</p>
|
||||
</a>
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
{#if value}
|
||||
<section>
|
||||
{#if results.length > 0}
|
||||
<h6 class="web-eyebrow">{results.length} results found</h6>
|
||||
<h6 class="text-micro uppercase">{results.length} results found</h6>
|
||||
<ul class="mt-2 flex flex-col gap-1">
|
||||
{#each results as hit, i (hit.uid)}
|
||||
{@const relevantSubtitle = getRelevantSubtitle(hit)}
|
||||
@@ -192,7 +192,7 @@
|
||||
<a
|
||||
data-hit={i}
|
||||
href={createHref(hit)}
|
||||
class="web-button web-caption-400 is-text web-u-padding-block-8 web-padding-inline-12 web-u-cross-start flex
|
||||
class="web-button text-caption is-text web-u-padding-block-8 web-padding-inline-12 web-u-cross-start flex
|
||||
max-w-full min-w-full flex-col gap-2"
|
||||
use:melt={$option({
|
||||
value: hit,
|
||||
@@ -218,14 +218,14 @@
|
||||
{/each}
|
||||
</ul>
|
||||
{:else}
|
||||
<p class="web-caption-400">
|
||||
<p class="text-caption">
|
||||
No results found for <span class="font-bold">{value}</span>
|
||||
</p>
|
||||
{/if}
|
||||
</section>
|
||||
{/if}
|
||||
<section>
|
||||
<h6 class="web-eyebrow">Recommended</h6>
|
||||
<h6 class="text-micro uppercase">Recommended</h6>
|
||||
<ul class="mt-2 flex flex-col gap-1">
|
||||
{#each recommended as hit, i (hit.uid)}
|
||||
{@const index = i + (results.length ? results.length : 0)}
|
||||
@@ -237,7 +237,7 @@
|
||||
value: hit,
|
||||
label: hit.title ?? i.toString()
|
||||
})}
|
||||
class="web-button web-caption-400 is-text web-u-padding-block-4 web-u-cross-start flex min-w-full flex-col gap-2"
|
||||
class="web-button text-caption is-text web-u-padding-block-4 web-u-cross-start flex min-w-full flex-col gap-2"
|
||||
>
|
||||
<div class="web-u-trim-1">
|
||||
<span class="web-u-color-text-secondary">{hit.h1}</span>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
} = getTocCtx();
|
||||
</script>
|
||||
|
||||
<ul class="web-page-steps-list web-sub-body-500">
|
||||
<ul class="web-page-steps-list text-sub-body font-medium">
|
||||
{#if tree && tree.length}
|
||||
{#each tree as heading, i (i)}
|
||||
<li>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
{/if}
|
||||
|
||||
{#if $open && !disabled}
|
||||
<div use:melt={$content} class="web-tooltip web-sub-body-400" transition:fly={flyParams}>
|
||||
<div use:melt={$content} class="web-tooltip text-sub-body" transition:fly={flyParams}>
|
||||
<div use:melt={$arrow} />
|
||||
<slot name="tooltip" />
|
||||
</div>
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
</div>
|
||||
<div class="web-mobile-header-end">
|
||||
<a href={PUBLIC_APPWRITE_DASHBOARD} class="web-button web-is-only-desktop">
|
||||
<span class="web-sub-body-500">Go to Console</span>
|
||||
<span class="text-sub-body font-medium">Go to Console</span>
|
||||
</a>
|
||||
<button
|
||||
class="web-button is-text"
|
||||
@@ -174,7 +174,7 @@
|
||||
>
|
||||
<span class="web-icon-star" aria-hidden="true" />
|
||||
<span class="text">Star on GitHub</span>
|
||||
<span class="web-inline-tag web-sub-body-400">{GITHUB_STARS}</span>
|
||||
<span class="web-inline-tag text-sub-body">{GITHUB_STARS}</span>
|
||||
</a>
|
||||
<IsLoggedIn />
|
||||
</div>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<span class="icon-cheveron-left" aria-hidden="true" />
|
||||
</a>
|
||||
{/if}
|
||||
<ul class="web-metadata web-caption-400">
|
||||
<ul class="web-metadata text-caption">
|
||||
<slot name="metadata" />
|
||||
</ul>
|
||||
<div class="relative flex items-center">
|
||||
@@ -67,7 +67,7 @@
|
||||
<div class="web-references-menu-content">
|
||||
{#if toc && toc.length > 0}
|
||||
<div class="flex items-center justify-between gap-4">
|
||||
<h5 class="web-references-menu-title web-eyebrow">On This Page</h5>
|
||||
<h5 class="web-references-menu-title text-micro uppercase">On This Page</h5>
|
||||
</div>
|
||||
<ol class="web-references-menu-list">
|
||||
{#each toc as parent (parent.href)}
|
||||
@@ -80,7 +80,7 @@
|
||||
{#if parent?.step}
|
||||
<span class="web-numeric-badge">{parent.step}</span>
|
||||
{/if}
|
||||
<span class="web-caption-400">{parent.title}</span>
|
||||
<span class="text-caption">{parent.title}</span>
|
||||
</a>
|
||||
{#if parent.children}
|
||||
<ol class="web-references-menu-list mt-4 ml-8">
|
||||
@@ -90,9 +90,7 @@
|
||||
href={child.href}
|
||||
class="web-references-menu-link"
|
||||
>
|
||||
<span class="web-caption-400"
|
||||
>{child.title}</span
|
||||
>
|
||||
<span class="text-caption">{child.title}</span>
|
||||
</a>
|
||||
</li>
|
||||
{/each}
|
||||
@@ -104,7 +102,7 @@
|
||||
<div class="border-greyscale-900/[0.04] border-t pt-5">
|
||||
<button class="web-link inline-flex items-center gap-2" use:scrollToTop>
|
||||
<span class="web-icon-arrow-up" aria-hidden="true" />
|
||||
<span class="web-caption-400">Back to top</span>
|
||||
<span class="text-caption">Back to top</span>
|
||||
</button>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<button class="web-icon-button web-is-only-mobile" aria-label="previous page">
|
||||
<span class="icon-cheveron-left" aria-hidden="true" />
|
||||
</button>
|
||||
<ul class="web-metadata web-caption-400">
|
||||
<ul class="web-metadata text-caption">
|
||||
<slot name="metadata" />
|
||||
</ul>
|
||||
<div class="relative flex items-center">
|
||||
@@ -52,7 +52,7 @@
|
||||
{#if prevStep}
|
||||
<a href={prevStep.href} class="web-button is-text">
|
||||
<span class="icon-cheveron-left" aria-hidden="true" />
|
||||
<span class="web-sub-body-500">
|
||||
<span class="text-sub-body font-medium">
|
||||
Step {prevStep.step}<span class="web-is-not-mobile"
|
||||
>: {prevStep.title}</span
|
||||
>
|
||||
@@ -65,7 +65,7 @@
|
||||
class="web-button is-secondary"
|
||||
style:margin-left={prevStep ? undefined : 'auto'}
|
||||
>
|
||||
<span class="web-sub-body-500">
|
||||
<span class="text-sub-body font-medium">
|
||||
Step {nextStep.step}<span class="web-is-not-mobile"
|
||||
>: {nextStep.title}</span
|
||||
>
|
||||
@@ -80,7 +80,7 @@
|
||||
<aside class="web-references-menu ps-6">
|
||||
<div class="web-references-menu-content">
|
||||
<div class="flex items-center justify-between gap-4">
|
||||
<h5 class="web-references-menu-title web-eyebrow">Tutorial Steps</h5>
|
||||
<h5 class="web-references-menu-title text-micro uppercase">Tutorial Steps</h5>
|
||||
</div>
|
||||
<ol class="web-references-menu-list">
|
||||
{#each tutorials as tutorial}
|
||||
@@ -93,7 +93,7 @@
|
||||
class:is-selected={isCurrentStep}
|
||||
>
|
||||
<span class="web-numeric-badge">{tutorial.step}</span>
|
||||
<span class="web-caption-400">{tutorial.title}</span>
|
||||
<span class="text-caption">{tutorial.title}</span>
|
||||
</a>
|
||||
{#if isCurrentStep}
|
||||
<ol class="web-references-menu-list mt-4 ml-8">
|
||||
@@ -110,7 +110,7 @@
|
||||
>{parent.step}</span
|
||||
>
|
||||
{/if}
|
||||
<span class="web-caption-400">{parent.title}</span>
|
||||
<span class="text-caption">{parent.title}</span>
|
||||
</a>
|
||||
{#if parent.children}
|
||||
<ol class="web-references-menu-list mt-4 ml-8">
|
||||
@@ -120,7 +120,7 @@
|
||||
href={child.href}
|
||||
class="web-references-menu-link"
|
||||
>
|
||||
<span class="web-caption-400"
|
||||
<span class="text-caption"
|
||||
>{child.title}</span
|
||||
>
|
||||
</a>
|
||||
@@ -138,7 +138,7 @@
|
||||
<div class="border-greyscale-900/[0.04] border-t pt-5">
|
||||
<button class="web-link inline-flex items-center gap-2" use:scrollToTop>
|
||||
<span class="web-icon-arrow-up" aria-hidden="true" />
|
||||
<span class="web-caption-400">Back to top</span>
|
||||
<span class="text-caption">Back to top</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -197,9 +197,9 @@
|
||||
{:else}
|
||||
<AnnouncementBanner>
|
||||
<a href="/discord" target="_blank" rel="noopener noreferrer">
|
||||
<span class="web-caption-500">We are having lots of fun on</span>
|
||||
<span class="text-caption font-medium">We are having lots of fun on</span>
|
||||
<span class="web-icon-discord" aria-hidden="true" />
|
||||
<span class="web-caption-500">Discord. Come and join us!</span>
|
||||
<span class="text-caption font-medium">Discord. Come and join us!</span>
|
||||
</a>
|
||||
</AnnouncementBanner>
|
||||
{/if}
|
||||
@@ -252,7 +252,7 @@
|
||||
>
|
||||
<span class="web-icon-star" aria-hidden="true" />
|
||||
<span class="text">Star on GitHub</span>
|
||||
<span class="web-inline-tag web-sub-body-400">{GITHUB_STARS}</span>
|
||||
<span class="web-inline-tag text-sub-body">{GITHUB_STARS}</span>
|
||||
</a>
|
||||
<IsLoggedIn />
|
||||
</div>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
<a href={parent.href} aria-label="go back">
|
||||
<span class="icon-cheveron-left" aria-hidden="true" />
|
||||
</a>
|
||||
<span class="web-side-nav-wrapper-parent-title web-eyebrow">{parent.label}</span
|
||||
<span class="web-side-nav-wrapper-parent-title text-micro uppercase"
|
||||
>{parent.label}</span
|
||||
>
|
||||
</section>
|
||||
{/if}
|
||||
@@ -76,7 +77,7 @@
|
||||
{/if}
|
||||
{:else}
|
||||
{#if navGroup.label}
|
||||
<h2 class="web-side-nav-header web-eyebrow whitespace-nowrap">
|
||||
<h2 class="web-side-nav-header text-micro uppercase whitespace-nowrap">
|
||||
{navGroup.label}
|
||||
</h2>
|
||||
{/if}
|
||||
@@ -121,7 +122,7 @@
|
||||
>
|
||||
<span class="web-icon-star" aria-hidden="true" />
|
||||
<span class="text">Star on GitHub</span>
|
||||
<span class="web-inline-tag web-sub-body-400">{GITHUB_STARS}</span>
|
||||
<span class="web-inline-tag text-sub-body">{GITHUB_STARS}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
{#if groupItem.icon}
|
||||
<span class="icon {groupItem.icon}" aria-hidden="true" />
|
||||
{/if}
|
||||
<span class="web-caption-400">{groupItem.label} </span>
|
||||
<span class="text-caption">{groupItem.label} </span>
|
||||
{#if groupItem.isParent}
|
||||
<span class="icon-cheveron-right ml-auto" aria-hidden="true" />
|
||||
{/if}
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
data-orientation="horizontal"
|
||||
data-melt-tabs-trigger=""
|
||||
>
|
||||
<span class="web-main-body-500">Latest</span>
|
||||
<span class="text-body font-medium">Latest</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="web-secondary-tabs-item">
|
||||
@@ -214,7 +214,7 @@
|
||||
data-orientation="horizontal"
|
||||
data-melt-tabs-trigger=""
|
||||
>
|
||||
<span class="web-main-body-500">News</span>
|
||||
<span class="text-body font-medium">News</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="web-secondary-tabs-item">
|
||||
@@ -228,7 +228,7 @@
|
||||
data-orientation="horizontal"
|
||||
data-melt-tabs-trigger=""
|
||||
>
|
||||
<span class="web-main-body-500">Insights</span>
|
||||
<span class="text-body font-medium">Insights</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="web-secondary-tabs-item">
|
||||
@@ -242,7 +242,7 @@
|
||||
data-orientation="horizontal"
|
||||
data-melt-tabs-trigger=""
|
||||
>
|
||||
<span class="web-main-body-500">Tutorials</span>
|
||||
<span class="text-body font-medium">Tutorials</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="web-secondary-tabs-item">
|
||||
@@ -256,7 +256,7 @@
|
||||
data-orientation="horizontal"
|
||||
data-melt-tabs-trigger=""
|
||||
>
|
||||
<span class="web-main-body-500">Changelog</span>
|
||||
<span class="text-body font-medium">Changelog</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul> -->
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
>
|
||||
Become a Technology Partner
|
||||
</h2>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Join our Technology Partners program to integrate your solutions with
|
||||
Appwrite’s API, enhancing functionality and expanding your reach.
|
||||
</p>
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
<span class="web-icon-chevron-left" aria-hidden="true" />
|
||||
<span>Back to blog</span>
|
||||
</a>
|
||||
<ul class="web-metadata web-caption-400">
|
||||
<ul class="web-metadata text-caption">
|
||||
<li>
|
||||
<time datetime={date}>{formatDate(date)}</time>
|
||||
</li>
|
||||
@@ -140,17 +140,17 @@
|
||||
/>
|
||||
{/if}
|
||||
<div class="flex flex-col">
|
||||
<h4 class="web-sub-body-400 text-primary">
|
||||
<h4 class="text-sub-body text-primary">
|
||||
{authorData.name}
|
||||
</h4>
|
||||
<p class="web-caption-400">{authorData.role}</p>
|
||||
<p class="text-caption">{authorData.role}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="share-post-section mt-4 flex items-center gap-4">
|
||||
<span class="web-eyebrow pr-2" style:color="#adadb0">
|
||||
<span class="text-micro uppercase pr-2" style:color="#adadb0">
|
||||
SHARE
|
||||
</span>
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
|
||||
<div class="web-article-content mt-8">
|
||||
{#if lastUpdated}
|
||||
<span class="web-main-body-500 last-updated-text">
|
||||
<span class="text-body font-medium last-updated-text">
|
||||
Updated:
|
||||
<time dateTime={lastUpdated}>
|
||||
{formatDate(lastUpdated)}
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
const classList: Record<typeof level, string> = {
|
||||
1: 'text-label',
|
||||
2: 'text-description',
|
||||
3: 'web-main-body-500',
|
||||
4: 'web-sub-body-500'
|
||||
3: 'text-body font-medium',
|
||||
4: 'text-sub-body font-medium'
|
||||
};
|
||||
|
||||
let element: HTMLElement | undefined;
|
||||
@@ -80,7 +80,7 @@
|
||||
margin-block-start: 2rem;
|
||||
}
|
||||
|
||||
.web-sub-body-500.in-policy {
|
||||
.text-sub-body font-medium.in-policy {
|
||||
margin-block-end: 1.25rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
:global(td .web-eyebrow) {
|
||||
:global(td .text-micro uppercase) {
|
||||
all: unset;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
class="web-table-head-col"
|
||||
{align}
|
||||
>
|
||||
<span class="web-eyebrow">
|
||||
<span class="text-micro uppercase">
|
||||
<slot />
|
||||
</span>
|
||||
</td>
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
const inDocs = isInDocs();
|
||||
|
||||
$: classes = (() => {
|
||||
if (inDocs) return 'web-link web-paragraph-md';
|
||||
if (inChangelog) return 'web-link web-paragraph-lg';
|
||||
if (inDocs) return 'web-link text-paragraph-md';
|
||||
if (inChangelog) return 'web-link text-paragraph-lg';
|
||||
return '';
|
||||
})();
|
||||
</script>
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
<a {href} class="web-card is-normal" style:margin-block-end="0">
|
||||
<img src={dark} alt="" class="web-u-only-dark" width="32" height="32" />
|
||||
<img src={light} alt="" class="web-u-only-light" width="32" height="32" />
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">
|
||||
{title}
|
||||
</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<p class="text-sub-body mt-1">
|
||||
<slot />
|
||||
</p>
|
||||
</a>
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
{#if icon}
|
||||
<span class="{icon} web-u-font-size-24" aria-hidden="true" />
|
||||
{/if}
|
||||
<h4 class="web-sub-body-500 text-primary">
|
||||
<h4 class="text-sub-body font-medium text-primary">
|
||||
{title}
|
||||
</h4>
|
||||
</header>
|
||||
<p class="web-sub-body-400 mt-1" style:margin-block="0">
|
||||
<p class="text-sub-body mt-1" style:margin-block="0">
|
||||
<slot />
|
||||
</p>
|
||||
</a>
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
const el = title ? 'h3' : 'span';
|
||||
</script>
|
||||
|
||||
<svelte:element this={el} class="web-sub-body-500 text-primary">
|
||||
<svelte:element this={el} class="text-sub-body font-medium text-primary">
|
||||
{title}
|
||||
</svelte:element>
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
|
||||
<div class="web-inline-info">
|
||||
<span class="icon-info" aria-hidden="true" />
|
||||
<h5 class="web-sub-body-500 text-primary">{title}</h5>
|
||||
<h5 class="text-sub-body font-medium text-primary">{title}</h5>
|
||||
<slot />
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
<div class="web-big-padding-section-level-2">
|
||||
<div class="container">
|
||||
<div class="web-hero" style="--hero-gap:1.25rem;">
|
||||
<span class="web-badges web-eyebrow !text-white">{$page.status}</span>
|
||||
<span class="web-badges text-micro uppercase !text-white"
|
||||
>{$page.status}</span
|
||||
>
|
||||
<h1 class="text-headline font-aeonik-pro text-primary">
|
||||
{$page.error?.message ?? 'An error has occured'}
|
||||
</h1>
|
||||
|
||||
@@ -124,9 +124,9 @@
|
||||
class="web-hero-banner-button web-u-margin-block-end-24"
|
||||
>
|
||||
<span class="web-icon-star" aria-hidden="true" />
|
||||
<span class="web-caption-500">New</span>
|
||||
<span class="text-caption font-medium">New</span>
|
||||
<div class="web-hero-banner-button-sep" />
|
||||
<span class="web-caption-400 web-u-trim-1"
|
||||
<span class="text-caption web-u-trim-1"
|
||||
>Announcing: A new Init. Faster. Smoother. Better.</span
|
||||
>
|
||||
<span class="web-icon-arrow-right" aria-hidden="true" />
|
||||
@@ -301,7 +301,7 @@
|
||||
</section>
|
||||
<div class="mt-20 overflow-hidden">
|
||||
<ul
|
||||
class="web-info-boxes web-sub-body-500 divide-x divide-y divide-black/[0.04]"
|
||||
class="web-info-boxes text-sub-body font-medium divide-x divide-y divide-black/[0.04]"
|
||||
>
|
||||
{#each infoBoxes as box}
|
||||
<li class="relative p-8 last-of-type:border-r border-black/[0.04]">
|
||||
@@ -439,7 +439,7 @@
|
||||
<div class="py-[7.5rem]">
|
||||
<div class="container relative">
|
||||
<section class="web-hero is-align-start">
|
||||
<span class="web-badges web-eyebrow !text-white">SDKs_</span>
|
||||
<span class="web-badges text-micro uppercase !text-white">SDKs_</span>
|
||||
<h2 class="text-display font-aeonik-pro text-primary max-w-[600px]">
|
||||
Code the way you want
|
||||
</h2>
|
||||
@@ -471,7 +471,7 @@
|
||||
<div class="container relative">
|
||||
<div class="grid md:grid-cols-2">
|
||||
<section class="web-hero is-align-start">
|
||||
<span class="web-badges web-eyebrow !text-white">Scale_</span>
|
||||
<span class="web-badges text-micro uppercase !text-white">Scale_</span>
|
||||
<h2 class="text-display font-aeonik-pro text-primary max-w-[600px]">
|
||||
We scale for you
|
||||
</h2>
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
<div class="flex justify-between gap-4">
|
||||
<div class="web-user-box">
|
||||
<img class="web-user-box-image" src={avatarSrc} alt="Avatar of {name}" />
|
||||
<div class="web-user-box-name web-sub-body-500">{name}</div>
|
||||
<div class="web-user-box-username web-sub-body-400">{tag}</div>
|
||||
<div class="web-user-box-name text-sub-body font-medium">{name}</div>
|
||||
<div class="web-user-box-username text-sub-body">{tag}</div>
|
||||
</div>
|
||||
<span
|
||||
class="web-social-item-icon web-icon-{icon}"
|
||||
@@ -19,7 +19,7 @@
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</div>
|
||||
<p class="web-sub-body-500 web-u-text-color-neutral-700">
|
||||
<p class="text-sub-body font-medium web-u-text-color-neutral-700">
|
||||
<slot />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -336,7 +336,7 @@
|
||||
gap-2 px-6"
|
||||
>
|
||||
<h3 class="text-label">Light Grey</h3>
|
||||
<p class="web-caption-400">#EDEDF0</p>
|
||||
<p class="text-caption">#EDEDF0</p>
|
||||
<div class="buttons | light">
|
||||
<Copy toCopy="#EDEDF0" />
|
||||
</div>
|
||||
@@ -347,7 +347,7 @@
|
||||
gap-2 px-6"
|
||||
>
|
||||
<h3 class="text-label">Dark Grey</h3>
|
||||
<p class="web-caption-400">#19191D</p>
|
||||
<p class="text-caption">#19191D</p>
|
||||
<div class="buttons">
|
||||
<Copy toCopy="#19191D" />
|
||||
</div>
|
||||
@@ -358,7 +358,7 @@
|
||||
gap-2 px-6"
|
||||
>
|
||||
<h3 class="text-label">Appwrite Pink</h3>
|
||||
<p class="web-caption-400">#FD366E</p>
|
||||
<p class="text-caption">#FD366E</p>
|
||||
<div class="buttons">
|
||||
<Copy toCopy="#FD366E" />
|
||||
</div>
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
</a>
|
||||
<div class="web-feature-article-content">
|
||||
<header class="web-feature-article-header">
|
||||
<ul class="web-metadata web-caption-400 web-is-only-mobile">
|
||||
<ul class="web-metadata text-caption web-is-only-mobile">
|
||||
<li>{featured.timeToRead} min</li>
|
||||
</ul>
|
||||
<a href={featured.href}>
|
||||
@@ -144,7 +144,7 @@
|
||||
</h2>
|
||||
</a>
|
||||
</header>
|
||||
<p class="web-sub-body-400">
|
||||
<p class="text-sub-body">
|
||||
{featured.description}
|
||||
</p>
|
||||
<div class="web-author">
|
||||
@@ -158,13 +158,11 @@
|
||||
height="24"
|
||||
/>
|
||||
<div class="web-author-info">
|
||||
<a href={author?.href} class="web-sub-body-400 web-link"
|
||||
<a href={author?.href} class="text-sub-body web-link"
|
||||
>{author?.name}</a
|
||||
>
|
||||
<p class="web-caption-400 hidden">{author?.bio}</p>
|
||||
<ul
|
||||
class="web-metadata web-caption-400 web-is-not-mobile"
|
||||
>
|
||||
<p class="text-caption hidden">{author?.bio}</p>
|
||||
<ul class="web-metadata text-caption web-is-not-mobile">
|
||||
<li>{featured.timeToRead} min</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</script>
|
||||
|
||||
<div class="changelog-entry">
|
||||
<time class="web-caption-400 padded" datetime={entry.date}>{formatDate(entry.date)}</time>
|
||||
<time class="text-caption padded" datetime={entry.date}>{formatDate(entry.date)}</time>
|
||||
{#if entry.cover}
|
||||
<a href={entry.href} class="web-media">
|
||||
<img src={entry.cover} alt="" loading="lazy" class="web-u-media-ratio-16-9 w-full" />
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
<span class="web-icon-chevron-left" aria-hidden="true" />
|
||||
<span>Back to Changelog</span>
|
||||
</a>
|
||||
<ul class="web-metadata web-caption-400">
|
||||
<ul class="web-metadata text-caption">
|
||||
<li>
|
||||
<time datetime={data.date}>{formatDate(data.date)}</time>
|
||||
</li>
|
||||
@@ -89,7 +89,9 @@
|
||||
{data.title}
|
||||
</h1>
|
||||
<div class="share-post-section mt-4 flex items-center gap-4">
|
||||
<span class="web-eyebrow pr-2" style:color="#adadb0"> SHARE </span>
|
||||
<span class="text-micro uppercase pr-2" style:color="#adadb0">
|
||||
SHARE
|
||||
</span>
|
||||
|
||||
<ul class="flex gap-2">
|
||||
{#each sharingOptions as sharingOption}
|
||||
|
||||
@@ -185,9 +185,7 @@
|
||||
>
|
||||
<span aria-hidden="true" class="web-icon-star" />
|
||||
<span>Star on GitHub</span>
|
||||
<span class="web-inline-tag web-sub-body-400"
|
||||
>{GITHUB_STARS}</span
|
||||
>
|
||||
<span class="web-inline-tag text-sub-body">{GITHUB_STARS}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -277,7 +275,7 @@
|
||||
>
|
||||
<div>
|
||||
<h3 class="text-label text-primary">Check our Open Issues</h3>
|
||||
<p class="web-main-body-500 mt-1">
|
||||
<p class="text-body font-medium mt-1">
|
||||
Anyone can join and help Appwrite become better.
|
||||
</p>
|
||||
<a
|
||||
@@ -305,8 +303,7 @@
|
||||
{#each data.issues as issue}
|
||||
<tr class="web-table-line-row">
|
||||
<td class="web-table-line-cell whitespace-nowrap">
|
||||
<span class="web-caption-400"
|
||||
>#{issue.number}</span
|
||||
<span class="text-caption">#{issue.number}</span
|
||||
>
|
||||
</td>
|
||||
<td class="web-table-line-cell">
|
||||
@@ -315,7 +312,7 @@
|
||||
href={issue.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="web-link web-sub-body-500"
|
||||
class="web-link text-sub-body font-medium"
|
||||
>
|
||||
{issue.title}
|
||||
</a>
|
||||
@@ -349,8 +346,10 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="web-sub-body-500 text-primary">Create content</div>
|
||||
<div class="web-sub-body-400">
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
Create content
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
Help others discover Appwrite with videos and blogs.
|
||||
</div>
|
||||
</div>
|
||||
@@ -359,8 +358,10 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="web-sub-body-500 text-primary">Present at meetups</div>
|
||||
<div class="web-sub-body-400">
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
Present at meetups
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
Share your experience and represent Appwrite in public.
|
||||
</div>
|
||||
</div>
|
||||
@@ -369,8 +370,10 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="web-sub-body-500 text-primary">Report bugs</div>
|
||||
<div class="web-sub-body-400">
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
Report bugs
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
Find bugs and submit PRs to fix them.
|
||||
</div>
|
||||
</div>
|
||||
@@ -379,8 +382,10 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="web-sub-body-500 text-primary">Submit new ideas</div>
|
||||
<div class="web-sub-body-400">
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
Submit new ideas
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
Suggest features, integrations, or SDKs for our roadmap.
|
||||
</div>
|
||||
</div>
|
||||
@@ -389,10 +394,10 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="web-sub-body-500 text-primary">
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
Improve documentation
|
||||
</div>
|
||||
<div class="web-sub-body-400">
|
||||
<div class="text-sub-body">
|
||||
Find improvements in our docs and improve accessibility.
|
||||
</div>
|
||||
</div>
|
||||
@@ -401,8 +406,10 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="web-sub-body-500 text-primary">Helping others</div>
|
||||
<div class="web-sub-body-400">
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
Helping others
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
Support developers with their projects and contributions.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -50,10 +50,10 @@
|
||||
<span class="">{location}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<svelte:element this={headingTag} class="web-sub-body-500 text-primary mt-1">
|
||||
<svelte:element this={headingTag} class="text-sub-body font-medium text-primary mt-1">
|
||||
{title}
|
||||
</svelte:element>
|
||||
<p class="web-sub-body-500">
|
||||
<p class="text-sub-body font-medium">
|
||||
{description}
|
||||
</p>
|
||||
<div class="mbs-auto flex flex-wrap gap-2 pt-4">
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<div class="p-3">
|
||||
<h3 class="web-main-body-500 text-primary">{title}</h3>
|
||||
<h3 class="text-body font-medium text-primary">{title}</h3>
|
||||
<p class="line-clamp-2">
|
||||
{description}
|
||||
</p>
|
||||
|
||||
@@ -114,11 +114,11 @@
|
||||
<div class="web-timeline-content-item-top web-grid-1-1"
|
||||
style="--grid-1-1-gap:2.5rem; --grid-1-1-gap-desktop:15rem;">
|
||||
<div class="flex flex-col gap-4">
|
||||
<span class="web-badges web-eyebrow web-u-cross-child-start">2019_</span>
|
||||
<span class="web-badges text-micro uppercase web-u-cross-child-start">2019_</span>
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
A passion project called Appwrite
|
||||
</h3>
|
||||
<p class="web-main-body-400">
|
||||
<p class="text-body">
|
||||
Appwrite's first ever pull request was submitted in August 2019 by CEO and Founder Eldad A. Fux. Just one month later, September 2019, Appwrite officially launched. Soon the community started contributing by the hundreds pushing the product to new heights.
|
||||
</p>
|
||||
</div>
|
||||
@@ -138,7 +138,7 @@
|
||||
<div>
|
||||
<div class="web-card is-white web-u-max-width-350">
|
||||
<h6 class="text-label">0.1 - 0.4 released</h6>
|
||||
<p class="web-sub-body-400 mt-3">Early stages of authentication, avatars, database, teams, and storage features</p>
|
||||
<p class="text-sub-body mt-3">Early stages of authentication, avatars, database, teams, and storage features</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -147,7 +147,7 @@
|
||||
<div class="web-grid-1-1"
|
||||
style="--grid-1-1-gap:2.5rem; --grid-1-1-gap-desktop:15rem;">
|
||||
<div class="flex flex-col gap-4">
|
||||
<span class="web-badges web-eyebrow web-u-cross-child-start">2019_</span>
|
||||
<span class="web-badges text-micro uppercase web-u-cross-child-start">2019_</span>
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
Building the team
|
||||
</h3>
|
||||
@@ -163,7 +163,7 @@
|
||||
<div>
|
||||
<div class="web-card is-white web-u-max-width-168">
|
||||
<h6 class="text-title font-aeonik-pro">5k</h6>
|
||||
<p class="web-sub-body-400 web-u-margin-block-start-6">GitHub Stars</p>
|
||||
<p class="text-sub-body web-u-margin-block-start-6">GitHub Stars</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@@ -175,7 +175,7 @@
|
||||
<div class="web-grid-1-1"
|
||||
style="--grid-1-1-gap:2.5rem; --grid-1-1-gap-desktop:15rem;">
|
||||
<div class="flex flex-col gap-4">
|
||||
<span class="web-badges web-eyebrow web-u-cross-child-start">2019_</span>
|
||||
<span class="web-badges text-micro uppercase web-u-cross-child-start">2019_</span>
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
Community validation
|
||||
</h3>
|
||||
@@ -196,12 +196,12 @@
|
||||
<div class="flex gap-4 justify-between">
|
||||
<div class="web-user-box">
|
||||
<img class="web-user-box-image" src="/images/avatars/eldad.png" alt="Avatar of Eldad Fux">
|
||||
<div class="web-user-box-name web-sub-body-500">Eldad Fux</div>
|
||||
<div class="web-user-box-username web-sub-body-400">@eldadfux</div>
|
||||
<div class="web-user-box-name text-sub-body font-medium">Eldad Fux</div>
|
||||
<div class="web-user-box-username text-sub-body">@eldadfux</div>
|
||||
</div>
|
||||
<span class="web-social-item-icon icon-twitter" aria-label="twitter" aria-hidden="true"></span>
|
||||
</div>
|
||||
<p class="web-sub-body-500 web-u-text-color-neutral-700">
|
||||
<p class="text-sub-body font-medium web-u-text-color-neutral-700">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in ultrices lacus.
|
||||
Duis pellentesque quis purus in posuere.
|
||||
</p>
|
||||
@@ -217,7 +217,7 @@
|
||||
<div class="web-grid-1-1"
|
||||
style="--grid-1-1-gap:2.5rem; --grid-1-1-gap-desktop:15rem;">
|
||||
<div class="flex flex-col gap-4">
|
||||
<span class="web-badges web-eyebrow web-u-cross-child-start">2019_</span>
|
||||
<span class="web-badges text-micro uppercase web-u-cross-child-start">2019_</span>
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
Continuous improvement
|
||||
</h3>
|
||||
@@ -246,7 +246,7 @@
|
||||
<div class="web-grid-1-1"
|
||||
style="--grid-1-1-gap:2.5rem; --grid-1-1-gap-desktop:15rem;">
|
||||
<div class="flex flex-col gap-4">
|
||||
<span class="web-badges web-eyebrow web-u-cross-child-start">2019_</span>
|
||||
<span class="web-badges text-micro uppercase web-u-cross-child-start">2019_</span>
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
Taking it to the Cloud
|
||||
</h3>
|
||||
@@ -376,9 +376,9 @@
|
||||
</h5>
|
||||
<ul class="web-grid-2c-4c mt-12">
|
||||
<li class="flex flex-col">
|
||||
<h6 class="web-main-body-500 text-primary">Aaron Applebaum</h6>
|
||||
<p class="web-main-body-500">Partner</p>
|
||||
<p class="web-main-body-500">MizMaa</p>
|
||||
<h6 class="text-body font-medium text-primary">Aaron Applebaum</h6>
|
||||
<p class="text-body font-medium">Partner</p>
|
||||
<p class="text-body font-medium">MizMaa</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
<li>
|
||||
<a
|
||||
@@ -405,9 +405,9 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="web-main-body-500 text-primary">Ariel Maislos</h6>
|
||||
<p class="web-main-body-500">Angel Investor</p>
|
||||
<p class="web-main-body-500">Former Apple IL CEO</p>
|
||||
<h6 class="text-body font-medium text-primary">Ariel Maislos</h6>
|
||||
<p class="text-body font-medium">Angel Investor</p>
|
||||
<p class="text-body font-medium">Former Apple IL CEO</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
<li>
|
||||
<a
|
||||
@@ -434,14 +434,14 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="web-main-body-500 text-primary">Gilad Engel</h6>
|
||||
<p class="web-main-body-500">Angel Investor</p>
|
||||
<h6 class="text-body font-medium text-primary">Gilad Engel</h6>
|
||||
<p class="text-body font-medium">Angel Investor</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4" />
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="web-main-body-500 text-primary">Krishna Visvanathan</h6>
|
||||
<p class="web-main-body-500">Co-founder & Partner</p>
|
||||
<p class="web-main-body-500">Crane Venture Partners</p>
|
||||
<h6 class="text-body font-medium text-primary">Krishna Visvanathan</h6>
|
||||
<p class="text-body font-medium">Co-founder & Partner</p>
|
||||
<p class="text-body font-medium">Crane Venture Partners</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
<li>
|
||||
<a
|
||||
@@ -457,8 +457,8 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="web-main-body-500 text-primary">Ameet Patel</h6>
|
||||
<p class="web-main-body-500">Angel Investor</p>
|
||||
<h6 class="text-body font-medium text-primary">Ameet Patel</h6>
|
||||
<p class="text-body font-medium">Angel Investor</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
<li>
|
||||
<a
|
||||
@@ -474,9 +474,9 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="web-main-body-500 text-primary">Benno Jering</h6>
|
||||
<p class="web-main-body-500">Partner</p>
|
||||
<p class="web-main-body-500">Redline Capital</p>
|
||||
<h6 class="text-body font-medium text-primary">Benno Jering</h6>
|
||||
<p class="text-body font-medium">Partner</p>
|
||||
<p class="text-body font-medium">Redline Capital</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
<li>
|
||||
<a
|
||||
@@ -492,9 +492,9 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="web-main-body-500 text-primary">James Lindenbaum</h6>
|
||||
<p class="web-main-body-500">Co-founder</p>
|
||||
<p class="web-main-body-500">Heroku</p>
|
||||
<h6 class="text-body font-medium text-primary">James Lindenbaum</h6>
|
||||
<p class="text-body font-medium">Co-founder</p>
|
||||
<p class="text-body font-medium">Heroku</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
<li>
|
||||
<a
|
||||
@@ -510,9 +510,9 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="web-main-body-500 text-primary">Uri Boness</h6>
|
||||
<p class="web-main-body-500">Co-Founder</p>
|
||||
<p class="web-main-body-500">Elastic</p>
|
||||
<h6 class="text-body font-medium text-primary">Uri Boness</h6>
|
||||
<p class="text-body font-medium">Co-Founder</p>
|
||||
<p class="text-body font-medium">Elastic</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
<li>
|
||||
<a
|
||||
|
||||
@@ -181,12 +181,12 @@
|
||||
<div
|
||||
class="web-u-flex-vertical-reverse-mobile flex justify-between gap-4"
|
||||
>
|
||||
<p class="web-caption-400 web-u-max-width-380">
|
||||
<p class="text-caption web-u-max-width-380">
|
||||
{#if error}
|
||||
{error}
|
||||
{/if}
|
||||
</p>
|
||||
<!-- <p class="web-caption-400 web-u-max-width-380">
|
||||
<!-- <p class="text-caption web-u-max-width-380">
|
||||
This form is protected by reCAPTCHA, and the Google <a
|
||||
class="web-link"
|
||||
href="/privacy"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div class="web-article mx-auto flex max-w-[700px] items-center justify-center py-4">
|
||||
<div class="container">
|
||||
<div class="web-hero" style="--hero-gap:1.25rem;">
|
||||
<span class="web-badges web-eyebrow !text-white">{$page.status}</span>
|
||||
<span class="web-badges text-micro uppercase !text-white">{$page.status}</span>
|
||||
<h1 class="text-headline font-aeonik-pro text-primary">
|
||||
{$page.error?.message ?? 'An error has occured'}
|
||||
</h1>
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
</p>
|
||||
<Technologies />
|
||||
<a href="/docs/sdks" class="web-button is-secondary" style:align-self="start">
|
||||
<span class="web-sub-body-500">Explore all technologies</span>
|
||||
<span class="text-sub-body font-medium">Explore all technologies</span>
|
||||
</a>
|
||||
<div class="web-is-not-mobile spline-wrapper absolute">
|
||||
<img
|
||||
@@ -158,8 +158,8 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Auth</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Auth</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Sign in users with multiple OAuth providers.
|
||||
</p>
|
||||
</a>
|
||||
@@ -180,10 +180,8 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Databases</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
Store your application and user data.
|
||||
</p>
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Databases</h4>
|
||||
<p class="text-sub-body mt-1">Store your application and user data.</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@@ -202,8 +200,8 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Functions</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Functions</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Extend and customize your server's functionality.
|
||||
</p>
|
||||
</a>
|
||||
@@ -224,8 +222,8 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Messaging</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Messaging</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Send and schedule email, SMS, and push notifications.
|
||||
</p>
|
||||
</a>
|
||||
@@ -246,8 +244,8 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Storage</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Storage</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Store images, videos, documents, and files.
|
||||
</p>
|
||||
</a>
|
||||
@@ -268,10 +266,8 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Realtime</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
Respond to server events in realtime.
|
||||
</p>
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Realtime</h4>
|
||||
<p class="text-sub-body mt-1">Respond to server events in realtime.</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -289,24 +285,24 @@
|
||||
<ul class="web-grid-row-2">
|
||||
<li>
|
||||
<a href="/docs/sdks" class="web-card is-normal">
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">SDKs</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">SDKs</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Light-weight SDKs for your favorite platforms.
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/docs/apis/rest" class="web-card is-normal">
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">REST API</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">REST API</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Integrate with HTTP requests without the needing an SDK.
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/docs/apis/graphql" class="web-card is-normal">
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">GraphQL</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">GraphQL</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Leverage GraphQL through our SDKs or integrate directly with REST
|
||||
endpoints.
|
||||
</p>
|
||||
@@ -314,8 +310,8 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="/docs/apis/realtime" class="web-card is-normal">
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Realtime</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Realtime</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Respond to auth, databases, storage, and function events in
|
||||
realtime.
|
||||
</p>
|
||||
@@ -335,32 +331,32 @@
|
||||
<ul class="web-grid-row-4">
|
||||
<li>
|
||||
<a href="/docs/advanced/migrations/self-hosted" class="web-card is-normal">
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Self-hosted</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Self-hosted</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Move data from self-hosted to Appwrite Cloud.
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/docs/advanced/migrations/firebase" class="web-card is-normal">
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Firebase</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Firebase</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Migrate users and data from Firebase to Appwrite.
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/docs/advanced/migrations/supabase" class="web-card is-normal">
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Supabase</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Supabase</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Migrate users and data from Supabase to Appwrite.
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/docs/advanced/migrations/nhost" class="web-card is-normal">
|
||||
<h4 class="web-sub-body-500 text-primary mt-2">Nhost</h4>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">Nhost</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
Migrate users and data from NHost to Appwrite.
|
||||
</p>
|
||||
</a>
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
</div>
|
||||
<article class="web-grid-articles-item-content">
|
||||
<header class="web-articles-item-header">
|
||||
<h3 class="web-sub-body-500 text-primary">{title}</h3>
|
||||
<h3 class="text-sub-body font-medium text-primary">{title}</h3>
|
||||
</header>
|
||||
<p
|
||||
class="web-articles-item-paragraph web-sub-body-500 mt-1 line-clamp-2"
|
||||
class="web-articles-item-paragraph text-sub-body font-medium mt-1 line-clamp-2"
|
||||
style="word-break: keep-all;"
|
||||
>
|
||||
{description}
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
<div class="web-article-content web-u-gap-80">
|
||||
{#each quickStarts as category}
|
||||
<section class="flex flex-col gap-6">
|
||||
<h2 class="web-eyebrow">{category.title}</h2>
|
||||
<h2 class="text-micro uppercase">{category.title}</h2>
|
||||
<ul class="web-grid-row-4 web-grid-row-4-mobile-2">
|
||||
{#each category.quickStarts as quickStart}
|
||||
<li class="is-mobile-col-span-2">
|
||||
@@ -220,7 +220,7 @@
|
||||
class="{quickStart.icon} web-u-font-size-24"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<h4 class="web-sub-body-500 text-primary">
|
||||
<h4 class="text-sub-body font-medium text-primary">
|
||||
{quickStart.title}
|
||||
</h4>
|
||||
</header>
|
||||
|
||||
@@ -41,12 +41,12 @@
|
||||
<div class="flex flex-col gap-6">
|
||||
<div class="flex flex-col gap-4">
|
||||
{#if platformType === 'CLIENT'}
|
||||
<p class="web-sub-body-400">
|
||||
<p class="text-sub-body">
|
||||
This endpoint is rate limited. You can only make a limited number of request to
|
||||
his endpoint within a specific time frame.
|
||||
</p>
|
||||
{:else}
|
||||
<p class="web-sub-body-400">
|
||||
<p class="text-sub-body">
|
||||
This endpoint is not limited when using Server SDKs with API keys. If you are
|
||||
using SSR with <code>setSession</code>, these rate limits will still apply.
|
||||
<a
|
||||
@@ -57,7 +57,7 @@
|
||||
</a>
|
||||
</p>
|
||||
{/if}
|
||||
<p class="web-sub-body-400">The limit is applied for each unique limit key.</p>
|
||||
<p class="text-sub-body">The limit is applied for each unique limit key.</p>
|
||||
</div>
|
||||
<div class="web-table-wrapper">
|
||||
<div class="web-table-scroll is-remove-outer-styles">
|
||||
@@ -65,13 +65,13 @@
|
||||
<thead class="web-table-header">
|
||||
<tr class="web-table-row">
|
||||
<th class="web-table-head-col">
|
||||
<div class="web-eyebrow text-primary">Time frame</div>
|
||||
<div class="text-micro uppercase text-primary">Time frame</div>
|
||||
</th>
|
||||
<th class="web-table-head-col">
|
||||
<div class="web-eyebrow text-primary">Attempts</div>
|
||||
<div class="text-micro uppercase text-primary">Attempts</div>
|
||||
</th>
|
||||
<th class="web-table-head-col">
|
||||
<div class="web-eyebrow text-primary">Key</div>
|
||||
<div class="text-micro uppercase text-primary">Key</div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
<span class="web-code text-primary">
|
||||
{parameter.name}
|
||||
</span>
|
||||
<span class="web-caption-400">{parameter.type}</span>
|
||||
<span class="text-caption">{parameter.type}</span>
|
||||
{#if parameter.required}
|
||||
<div class="web-tag">required</div>
|
||||
{/if}
|
||||
</header>
|
||||
<p class="web-sub-body-400 mt-4">
|
||||
<p class="text-sub-body mt-4">
|
||||
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
||||
{@html parse(parameter.description)}
|
||||
</p>
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
<li>
|
||||
<article>
|
||||
<header class="flex items-baseline gap-2">
|
||||
<span class="web-eyebrow text-primary">
|
||||
<span class="text-micro uppercase text-primary">
|
||||
{response.code}
|
||||
</span>
|
||||
<span class="web-caption-400">application/json</span>
|
||||
<span class="text-caption">application/json</span>
|
||||
</header>
|
||||
{#if response.models.length > 0}
|
||||
<ul class="web-sub-body-400 mt-4">
|
||||
<ul class="text-sub-body mt-4">
|
||||
{#each response.models as model}
|
||||
<li>
|
||||
<a
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
<div class="web-article-content-grid-6-4-column-2 flex flex-col gap-8">
|
||||
<div class="web-inline-info">
|
||||
<span class="icon-info" aria-hidden="true" />
|
||||
<h5 class="web-sub-body-500 text-primary">
|
||||
<h5 class="text-sub-body font-medium text-primary">
|
||||
No endpoint found for this version and platform
|
||||
</h5>
|
||||
Please switch to a newer version or different platform.
|
||||
@@ -251,7 +251,7 @@
|
||||
<div
|
||||
class="web-references-menu-header flex justify-between items-center gap-4 mt-6"
|
||||
>
|
||||
<h5 class="web-references-menu-title web-eyebrow">On This Page</h5>
|
||||
<h5 class="web-references-menu-title text-micro uppercase">On This Page</h5>
|
||||
<button class="web-icon-button" id="refClose" on:click={toggleReferences}>
|
||||
<span class="icon-x" aria-hidden="true" />
|
||||
</button>
|
||||
@@ -261,7 +261,7 @@
|
||||
<li class="web-references-menu-item">
|
||||
<a
|
||||
href={`#${method.id}`}
|
||||
class="web-references-menu-link web-caption-400"
|
||||
class="web-references-menu-link text-caption"
|
||||
class:is-selected={method.id === selected}>{method.title}</a
|
||||
>
|
||||
</li>
|
||||
@@ -270,7 +270,7 @@
|
||||
<div class="border-t border-greyscale-900/[0.04] web-u-padding-block-20">
|
||||
<button class="web-link inline-flex items-center gap-2" use:scrollToTop>
|
||||
<span class="web-icon-arrow-up" aria-hidden="true" />
|
||||
<span class="web-caption-400">Back to top</span>
|
||||
<span class="text-caption">Back to top</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
<Thead>
|
||||
<Tr>
|
||||
<Th>
|
||||
<span class="web-eyebrow">NAME</span>
|
||||
<span class="text-micro uppercase">NAME</span>
|
||||
</Th>
|
||||
<Th>
|
||||
<span class="web-eyebrow">TYPE</span>
|
||||
<span class="text-micro uppercase">TYPE</span>
|
||||
</Th>
|
||||
<Th>
|
||||
<span class="web-eyebrow">DESCRIPTION</span>
|
||||
<span class="text-micro uppercase">DESCRIPTION</span>
|
||||
</Th>
|
||||
</Tr>
|
||||
</Thead>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<div class="web-article-content web-u-gap-80">
|
||||
{#each data.tutorials as category}
|
||||
<section class="flex flex-col gap-6">
|
||||
<h2 class="web-eyebrow">{category.title}</h2>
|
||||
<h2 class="text-micro uppercase">{category.title}</h2>
|
||||
<ul class="web-grid-row-4 web-grid-row-4-mobile-2">
|
||||
{#each category.tutorials as tutorial}
|
||||
<li>
|
||||
@@ -85,10 +85,10 @@
|
||||
class="{getIcon(tutorial)} web-u-font-size-24"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<h3 class="web-sub-body-500 text-primary">
|
||||
<h3 class="text-sub-body font-medium text-primary">
|
||||
{tutorial.framework}
|
||||
</h3>
|
||||
<span class="badge web-caption-400">Coming Soon</span>
|
||||
<span class="badge text-caption">Coming Soon</span>
|
||||
</header>
|
||||
</a>
|
||||
{:else}
|
||||
@@ -98,11 +98,11 @@
|
||||
class="{getIcon(tutorial)} web-u-font-size-24"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<h3 class="web-sub-body-500 text-primary">
|
||||
<h3 class="text-sub-body font-medium text-primary">
|
||||
{tutorial.framework}
|
||||
</h3>
|
||||
</header>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<p class="text-sub-body mt-1">
|
||||
{tutorial.title}
|
||||
</p>
|
||||
</a>
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
<section class="container hero web-u-padding-block-end-0">
|
||||
<div>
|
||||
<h1 class="text-display font-aeonik-pro text-primary">Appwrite Heroes</h1>
|
||||
<p class="web-main-body-500 mt-5">
|
||||
<p class="text-body font-medium mt-5">
|
||||
If you love building, writing, speaking, and helping other developers
|
||||
build with Appwrite, help us support you by joining the Appwrite Heroes
|
||||
program and becoming a leader in our developer community.
|
||||
@@ -169,7 +169,7 @@
|
||||
About Appwrite Heroes
|
||||
</h2>
|
||||
<div>
|
||||
<p class="web-sub-body-500">
|
||||
<p class="text-sub-body font-medium">
|
||||
The Appwrite Heroes program is an exclusive group of developers who
|
||||
are experts in Appwrite and dedicated to creating valuable content
|
||||
to assist other developers in achieving success. Appwrite Heroes
|
||||
@@ -237,7 +237,7 @@
|
||||
</h2>
|
||||
</section>
|
||||
<div class="mt-20 overflow-hidden">
|
||||
<ul class="web-info-boxes web-sub-body-500">
|
||||
<ul class="web-info-boxes text-sub-body font-medium">
|
||||
<li class="web-info-boxes-item">
|
||||
<img
|
||||
src="/images/icons/gradients/discussion.svg"
|
||||
|
||||
@@ -27,13 +27,13 @@
|
||||
<div class="flex justify-between gap-4">
|
||||
<div class="web-user-box">
|
||||
<img class="web-user-box-image" src={avatar} alt="" />
|
||||
<div class="web-user-box-name web-sub-body-500 web-clr-primary">
|
||||
<div class="web-user-box-name text-sub-body font-medium web-clr-primary">
|
||||
{name}
|
||||
</div>
|
||||
<div class="web-user-box-username web-sub-body-400">{role}</div>
|
||||
<div class="web-user-box-username text-sub-body">{role}</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="web-sub-body-500 web-u-text-color-neutral-700 mt-5">
|
||||
<p class="text-sub-body font-medium web-u-text-color-neutral-700 mt-5">
|
||||
{bio}
|
||||
</p>
|
||||
<ul class="mt-8 flex gap-3">
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<p class="web-sub-body-500">Countdown to next announcement</p>
|
||||
<p class="text-sub-body font-medium">Countdown to next announcement</p>
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
@@ -39,7 +39,7 @@
|
||||
margin-block-start: 0.75rem;
|
||||
}
|
||||
|
||||
.web-sub-body-500 {
|
||||
.text-sub-body font-medium {
|
||||
margin-block-start: 0.5rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
{#if hasReleased}
|
||||
<div class="day">
|
||||
<div class="circle" aria-hidden />
|
||||
<span class="web-eyebrow text-primary"
|
||||
<span class="text-micro uppercase text-primary"
|
||||
>Day {number}<span class="web-u-color-text-accent">_</span></span
|
||||
>
|
||||
<h2 class="text-label text-primary">{day.title}</h2>
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
{:else}
|
||||
<div class="release">
|
||||
<span class="web-eyebrow text-primary"
|
||||
<span class="text-micro uppercase text-primary"
|
||||
>Day {number}<span class="web-u-color-text-accent">_</span></span
|
||||
>
|
||||
<div class="bottom">
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
$: hasReleased = now >= release;
|
||||
</script>
|
||||
|
||||
<h2 class="web-eyebrow text-primary">
|
||||
<h2 class="text-micro uppercase text-primary">
|
||||
<div class="web-dot" />
|
||||
{#if day !== undefined}
|
||||
{day}<span class="web-u-color-text-accent">_</span>
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
{:else if i === 4}
|
||||
<Day5 {date} release={day.release} />
|
||||
{:else}
|
||||
<h2 class="web-eyebrow text-primary">
|
||||
<h2 class="text-micro uppercase text-primary">
|
||||
<div class="web-dot" />
|
||||
{date}
|
||||
<span class="web-u-color-text-accent">_</span>
|
||||
@@ -273,7 +273,7 @@
|
||||
<div class="container">
|
||||
<div class="text">
|
||||
<h2 class="text-label text-primary">Start building with Appwrite</h2>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Appwrite's open-source platform lets you add Auth, DBs, Functions and Storage to
|
||||
your product and build any application at any scale, own your data, and use your
|
||||
preferred coding languages and tools.
|
||||
|
||||
@@ -78,14 +78,14 @@
|
||||
{#if ticket.gh_user}
|
||||
<div class="u-flex u-cross-center u-gap-8 text-primary">
|
||||
<img src="/images/icons/colored/check.svg" alt="" />
|
||||
<span class="web-sub-body-500">GitHub account connected</span>
|
||||
<span class="text-sub-body font-medium">GitHub account connected</span>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="u-flex u-cross-center u-main-between"
|
||||
style="margin-block-start: 0.25rem; gap: 1.25rem"
|
||||
>
|
||||
<p class="web-sub-body-500">
|
||||
<p class="text-sub-body font-medium">
|
||||
Your ticket has been updated to show your unique GitHub contribution pattern.
|
||||
</p>
|
||||
<Switch bind:checked={showGitHub} />
|
||||
@@ -105,8 +105,8 @@
|
||||
</button>
|
||||
{/if}
|
||||
{:else}
|
||||
<h2 class="web-sub-body-500 text-primary">Integrate your GitHub account</h2>
|
||||
<p class="web-sub-body-500" style:margin-block-start="0.25rem">
|
||||
<h2 class="text-sub-body font-medium text-primary">Integrate your GitHub account</h2>
|
||||
<p class="text-sub-body font-medium" style:margin-block-start="0.25rem">
|
||||
Sign in with your GitHub account and see the magic happen in your ticket.
|
||||
</p>
|
||||
<button
|
||||
@@ -123,15 +123,15 @@
|
||||
{#if ticket.aw_email}
|
||||
<div class="u-flex u-cross-center u-gap-8 text-primary">
|
||||
<img src="/images/icons/colored/check.svg" alt="" />
|
||||
<span class="web-sub-body-500">Appwrite account connected</span>
|
||||
<span class="text-sub-body font-medium">Appwrite account connected</span>
|
||||
</div>
|
||||
|
||||
<p class="web-sub-body-500" style="margin-block-start: 0.25rem;">
|
||||
<p class="text-sub-body font-medium" style="margin-block-start: 0.25rem;">
|
||||
Your ticket has been upgraded.
|
||||
</p>
|
||||
{:else}
|
||||
<h2 class="web-sub-body-500 text-primary">Integrate your Appwrite account</h2>
|
||||
<p class="web-sub-body-500" style:margin-block-start="0.25rem">
|
||||
<h2 class="text-sub-body font-medium text-primary">Integrate your Appwrite account</h2>
|
||||
<p class="text-sub-body font-medium" style:margin-block-start="0.25rem">
|
||||
Sign in with your Appwrite account and see the magic happen in your ticket.
|
||||
</p>
|
||||
<a
|
||||
@@ -144,8 +144,8 @@
|
||||
{/if}
|
||||
<hr />
|
||||
|
||||
<h2 class="web-sub-body-500 text-primary">Add your tribe</h2>
|
||||
<p class="web-sub-body-500" style:margin-block-start="0.25rem">
|
||||
<h2 class="text-sub-body font-medium text-primary">Add your tribe</h2>
|
||||
<p class="text-sub-body font-medium" style:margin-block-start="0.25rem">
|
||||
Customize your Init ticket with your technology.
|
||||
</p>
|
||||
<div class="tribes">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<div class="container">
|
||||
<div class="text">
|
||||
<h2 class="text-title font-aeonik-pro text-primary">{title}</h2>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
{description}
|
||||
</p>
|
||||
<a href={PUBLIC_APPWRITE_DASHBOARD} class="web-button">Get started</a>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<p class="web-sub-body-500">Countdown to next announcement</p>
|
||||
<p class="text-sub-body font-medium">Countdown to next announcement</p>
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
@@ -38,7 +38,7 @@
|
||||
margin-block-start: 0.75rem;
|
||||
}
|
||||
|
||||
.web-sub-body-500 {
|
||||
.text-sub-body font-medium {
|
||||
margin-block-start: 0.5rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
{:else}
|
||||
<div style:z-index="10" style="margin-top: auto; margin-bottom: 0;">
|
||||
<span
|
||||
class="text-primary web-eyebrow web-u-uppercase"
|
||||
class="text-primary text-micro uppercase web-u-uppercase"
|
||||
style:margin-bottom="-8px"
|
||||
style:display="block"
|
||||
>
|
||||
|
||||
@@ -49,10 +49,10 @@
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
<svelte:element this={headingTag} class="web-sub-body-500 text-primary mt-1">
|
||||
<svelte:element this={headingTag} class="text-sub-body font-medium text-primary mt-1">
|
||||
{title}
|
||||
</svelte:element>
|
||||
<p class="web-sub-body-500">
|
||||
<p class="text-sub-body font-medium">
|
||||
{description}
|
||||
</p>
|
||||
<div class="mbs-auto flex flex-wrap gap-2 pt-4">
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
{#if ticket.gh_user}
|
||||
<div class="flex items-center gap-2">
|
||||
<div class="text-primary flex items-center gap-2">
|
||||
<span class="web-sub-body-500">Connected to GitHub</span>
|
||||
<span class="text-sub-body font-medium">Connected to GitHub</span>
|
||||
</div>
|
||||
|
||||
<Tooltip placement="bottom">
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
$: hasReleased = now >= release;
|
||||
</script>
|
||||
|
||||
<h2 class="web-eyebrow text-primary">
|
||||
<h2 class="text-micro uppercase text-primary">
|
||||
<div class="web-dot" />
|
||||
{#if day !== undefined}
|
||||
{day}<span class="web-u-color-text-accent">_</span>
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
{:else if i === 4}
|
||||
<Day4 release={day.release} />
|
||||
{:else}
|
||||
<h2 class="web-eyebrow text-primary">
|
||||
<h2 class="text-micro uppercase text-primary">
|
||||
<div class="web-dot" />
|
||||
{date}
|
||||
<span class="web-u-color-text-accent">_</span>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
<div
|
||||
class="l-integrations-hero web-u-max-width-680 flex flex-col justify-center gap-5"
|
||||
>
|
||||
<div class="web-eyebrow text-primary">
|
||||
<div class="text-micro uppercase text-primary">
|
||||
INTEGRATIONS<span class="web-u-color-text-accent">_</span>
|
||||
</div>
|
||||
<h1 class="text-headline font-aeonik-pro text-primary">
|
||||
@@ -144,7 +144,9 @@
|
||||
</section>
|
||||
<section class="flex flex-col">
|
||||
<section class="flex flex-col gap-4">
|
||||
<h2 class="web-side-nav-header web-eyebrow whitespace-nowrap">
|
||||
<h2
|
||||
class="web-side-nav-header text-micro uppercase whitespace-nowrap"
|
||||
>
|
||||
Platform
|
||||
</h2>
|
||||
<ul class="flex flex-wrap gap-2" class:disabled={hasQuery}>
|
||||
@@ -168,7 +170,9 @@
|
||||
</section>
|
||||
<div class="web-u-sep-block-start my-6"></div>
|
||||
<section class="flex flex-col gap-4">
|
||||
<h2 class="web-side-nav-header web-eyebrow whitespace-nowrap">
|
||||
<h2
|
||||
class="web-side-nav-header text-micro uppercase whitespace-nowrap"
|
||||
>
|
||||
Categories
|
||||
</h2>
|
||||
|
||||
@@ -263,7 +267,7 @@
|
||||
{item.title}
|
||||
</h4>
|
||||
</div>
|
||||
<p class="web-sub-body-400 mt-1">
|
||||
<p class="text-sub-body mt-1">
|
||||
{item.description}
|
||||
</p>
|
||||
</a>
|
||||
@@ -304,13 +308,15 @@
|
||||
width="40"
|
||||
height="40"
|
||||
/>
|
||||
<div class="web-main-body-500 gap-2">
|
||||
<div
|
||||
class="text-body font-medium gap-2"
|
||||
>
|
||||
<span class="text-primary mt-3">
|
||||
{item.title}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
class="web-caption-400 web-u-color-text-secondary"
|
||||
class="text-caption web-u-color-text-secondary"
|
||||
>
|
||||
{item.category}
|
||||
</div>
|
||||
@@ -377,9 +383,7 @@
|
||||
<h4 class="text-primary mt-3">
|
||||
{integration.title}
|
||||
</h4>
|
||||
<p
|
||||
class="web-sub-body-400 mt-1"
|
||||
>
|
||||
<p class="text-sub-body mt-1">
|
||||
{integration.description}
|
||||
</p>
|
||||
</a>
|
||||
@@ -424,7 +428,7 @@
|
||||
>
|
||||
Become a Technology Partner
|
||||
</h2>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Join our Technology Partners program to integrate your solutions with
|
||||
Appwrite’s API, enhancing functionality and expanding your reach.
|
||||
</p>
|
||||
|
||||
@@ -323,7 +323,7 @@
|
||||
<div
|
||||
class="web-u-flex-vertical-reverse-mobile flex justify-between gap-4"
|
||||
>
|
||||
<p class="web-caption-400 web-u-max-width-380">
|
||||
<p class="text-caption web-u-max-width-380">
|
||||
{#if error}
|
||||
{error}
|
||||
{/if}
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
<div
|
||||
class="web-u-flex-vertical-reverse-mobile flex justify-between gap-4"
|
||||
>
|
||||
<p class="web-caption-400 web-u-max-width-380">
|
||||
<p class="text-caption web-u-max-width-380">
|
||||
{#if error}
|
||||
{error}
|
||||
{/if}
|
||||
|
||||
@@ -77,14 +77,16 @@
|
||||
$0
|
||||
</div>
|
||||
<div class="mt-1"> </div>
|
||||
<p class="web-main-body-500 mt-4">
|
||||
<p class="text-body font-medium mt-4">
|
||||
For personal hobby projects and students.
|
||||
</p>
|
||||
<a
|
||||
href="{PUBLIC_APPWRITE_DASHBOARD}/register"
|
||||
class="web-button is-secondary is-full-width mt-8"
|
||||
>
|
||||
<span class="web-sub-body-500">Start building</span>
|
||||
<span class="text-sub-body font-medium"
|
||||
>Start building</span
|
||||
>
|
||||
</a>
|
||||
</header>
|
||||
<div class="web-pricing-cards-content">
|
||||
@@ -125,7 +127,7 @@
|
||||
$15
|
||||
</div>
|
||||
<div class="mt-1">per member/month</div>
|
||||
<p class="web-main-body-500 mt-4">
|
||||
<p class="text-body font-medium mt-4">
|
||||
For pro developers and teams that need to scale
|
||||
their products.
|
||||
</p>
|
||||
@@ -135,8 +137,10 @@
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<!-- <span class="web-sub-body-500">Start trial</span> -->
|
||||
<span class="web-sub-body-500">Start building</span>
|
||||
<!-- <span class="text-sub-body font-medium">Start trial</span> -->
|
||||
<span class="text-sub-body font-medium"
|
||||
>Start building</span
|
||||
>
|
||||
</a>
|
||||
</header>
|
||||
<div class="web-pricing-cards-content">
|
||||
@@ -175,7 +179,7 @@
|
||||
$599
|
||||
</div>
|
||||
<div class="mt-1">per organization/month</div>
|
||||
<p class="web-main-body-500 mt-4">
|
||||
<p class="text-body font-medium mt-4">
|
||||
For scaling teams and agencies that need dedicated
|
||||
support.
|
||||
</p>
|
||||
@@ -183,7 +187,9 @@
|
||||
class="web-button is-secondary is-full-width mt-8"
|
||||
disabled
|
||||
>
|
||||
<span class="web-sub-body-500">Coming soon</span>
|
||||
<span class="text-sub-body font-medium"
|
||||
>Coming soon</span
|
||||
>
|
||||
</button>
|
||||
</header>
|
||||
<div class="web-pricing-cards-content">
|
||||
@@ -213,7 +219,7 @@
|
||||
style="background:rgba(35, 35, 37, 0.90);"
|
||||
>
|
||||
<header class="flex gap-3">
|
||||
<h3 id="enterprises" class="web-main-body-500 text-primary">
|
||||
<h3 id="enterprises" class="text-body font-medium text-primary">
|
||||
Enterprises
|
||||
</h3>
|
||||
<div class="web-inline-tag is-pink">Coming Soon</div>
|
||||
@@ -235,7 +241,7 @@
|
||||
<header class="flex gap-3">
|
||||
<h3
|
||||
id="open-source-teams"
|
||||
class="web-main-body-500 text-primary"
|
||||
class="text-body font-medium text-primary"
|
||||
>
|
||||
Open-source teams
|
||||
</h3>
|
||||
|
||||
@@ -369,7 +369,7 @@
|
||||
}}
|
||||
>
|
||||
<h3 class="text-title font-aeonik-pro text-primary">Compare plans</h3>
|
||||
<p class="web-main-body-500 mt-4">
|
||||
<p class="text-body font-medium mt-4">
|
||||
Discover our plans and find the one that fits your project’s needs.
|
||||
</p>
|
||||
</header>
|
||||
@@ -387,7 +387,7 @@
|
||||
--p-secondary-tabs-bg-color-selected: var(--web-color-accent) / 0.08;"
|
||||
let:tab
|
||||
>
|
||||
<span class="web-main-body-500 capitalize">{tab}</span>
|
||||
<span class="text-body font-medium capitalize">{tab}</span>
|
||||
</TabsList>
|
||||
</Tabs>
|
||||
</div>
|
||||
@@ -429,7 +429,7 @@
|
||||
href="https://cloud.appwrite.io/register"
|
||||
class="web-button is-secondary"
|
||||
>
|
||||
<span class="web-sub-body-500">Start building</span>
|
||||
<span class="text-sub-body font-medium">Start building</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -442,8 +442,8 @@
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<!-- <span class="web-sub-body-500">Start trial</span> -->
|
||||
<span class="web-sub-body-500">Start building</span>
|
||||
<!-- <span class="text-sub-body font-medium">Start trial</span> -->
|
||||
<span class="text-sub-body font-medium">Start building</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -451,7 +451,7 @@
|
||||
<div class="flex flex-wrap items-center justify-between gap-4">
|
||||
<h4 class="text-label text-primary">Scale</h4>
|
||||
<button class="web-button is-secondary" disabled>
|
||||
<span class="web-sub-body-500">Coming soon</span>
|
||||
<span class="text-sub-body font-medium">Coming soon</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -461,7 +461,7 @@
|
||||
{#each tables as table}
|
||||
{@const isOpen = $value?.includes(table.title)}
|
||||
<table
|
||||
class="web-compare-table web-sub-body-400"
|
||||
class="web-compare-table text-sub-body"
|
||||
class:is-open-in-mobile={isOpen}
|
||||
use:melt={$item(table.title)}
|
||||
use:visible={{ top: 128 }}
|
||||
@@ -496,7 +496,7 @@
|
||||
<tbody class="web-compare-table-body" use:melt={$content(table.title)}>
|
||||
{#each table.rows as row}
|
||||
<tr>
|
||||
<th class="web-sub-body-500">
|
||||
<th class="text-sub-body font-medium">
|
||||
<div class="flex gap-1">
|
||||
{row.title}
|
||||
</div>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
use:melt={$content(`${index}`)}
|
||||
transition:slide
|
||||
>
|
||||
<p class="web-main-body-400">
|
||||
<p class="text-body">
|
||||
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
||||
{@html faqItem.answer}
|
||||
</p>
|
||||
@@ -125,7 +125,7 @@
|
||||
</summary>
|
||||
|
||||
<div class="collapsible-content">
|
||||
<p class="web-main-body-400">
|
||||
<p class="text-body">
|
||||
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
||||
{@html faqItem.answer}
|
||||
</p>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
>
|
||||
<div class="inner">
|
||||
<div class="header">
|
||||
<h3 class="web-sub-body-500">Push notification</h3>
|
||||
<h3 class="text-sub-body font-medium">Push notification</h3>
|
||||
<div class="web-icon-close" />
|
||||
</div>
|
||||
<div class="griddy">
|
||||
@@ -87,7 +87,7 @@
|
||||
<span>APPWRITE</span>
|
||||
<span>now</span>
|
||||
</div>
|
||||
<span class="title web-caption-500">{title}</span>
|
||||
<span class="title text-caption font-medium">{title}</span>
|
||||
<span class="message">{message}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
{#each $months as month}
|
||||
<div class="grid" use:melt={$grid}>
|
||||
{#each weekdays as day}
|
||||
<span class="web-eyebrow">
|
||||
<span class="text-micro uppercase">
|
||||
{day}
|
||||
</span>
|
||||
{/each}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<div class="step" data-hideline={hideLine}>
|
||||
<div class="web-dot" />
|
||||
<h2 class="web-eyebrow text-primary step-title">{title}</h2>
|
||||
<h2 class="text-micro uppercase text-primary step-title">{title}</h2>
|
||||
<div class="step-content mt-8">
|
||||
<slot />
|
||||
</div>
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
/>
|
||||
|
||||
<foreignObject x={textPos[0]} y={textPos[1]} width="360" height="64">
|
||||
<span class="web-eyebrow text-primary" data-active={$selected[i]}>
|
||||
<span class="text-micro uppercase text-primary" data-active={$selected[i]}>
|
||||
{device.value}
|
||||
</span>
|
||||
</foreignObject>
|
||||
@@ -320,10 +320,10 @@
|
||||
return next;
|
||||
}}
|
||||
/>
|
||||
<span class="web-sub-body-500 text-primary">
|
||||
<span class="text-sub-body font-medium text-primary">
|
||||
{user.name}
|
||||
</span>
|
||||
<span class="web-caption-400">
|
||||
<span class="text-caption">
|
||||
({selectedDevices}/{user.devices.length} targets)
|
||||
</span>
|
||||
</div>
|
||||
@@ -340,7 +340,7 @@
|
||||
/>
|
||||
<label for="device-{i}-{j}">
|
||||
<span class="type">{device.type}</span>
|
||||
<span class="web-caption-400">{device.value}</span>
|
||||
<span class="text-caption">{device.value}</span>
|
||||
</label>
|
||||
</li>
|
||||
{/each}
|
||||
|
||||
@@ -255,10 +255,10 @@ messaging.create_email(
|
||||
<div>
|
||||
<div class="product">
|
||||
<img src="/images/icons/illustrated/dark/messaging.png" alt="" />
|
||||
<span class="web-eyebrow text-primary">
|
||||
<span class="text-micro uppercase text-primary">
|
||||
Messaging<span class="web-u-color-text-accent">_</span>
|
||||
</span>
|
||||
<span class="web-hero-banner-button web-eyebrow">BETA</span>
|
||||
<span class="web-hero-banner-button text-micro uppercase">BETA</span>
|
||||
</div>
|
||||
<h1 class="text-display font-aeonik-pro text-primary">
|
||||
Open source messaging service for developers
|
||||
@@ -292,13 +292,15 @@ messaging.create_email(
|
||||
<div class="web-big-padding-section-level-2" style="margin-block-end: 160px">
|
||||
<div class="container">
|
||||
<section class="web-hero is-align-start">
|
||||
<span class="web-badges web-eyebrow !text-white">capabilities_</span>
|
||||
<span class="web-badges text-micro uppercase !text-white"
|
||||
>capabilities_</span
|
||||
>
|
||||
<h2 class="text-display font-aeonik-pro text-primary max-w-[700px]">
|
||||
All of your messages in one place
|
||||
</h2>
|
||||
</section>
|
||||
<div class="mt-20 overflow-hidden">
|
||||
<ul class="web-info-boxes is-desktop-max-out-3 web-sub-body-500">
|
||||
<ul class="web-info-boxes is-desktop-max-out-3 text-sub-body font-medium">
|
||||
<li class="web-info-boxes-item">
|
||||
<img
|
||||
src="/images/icons/gradients/mobile.svg"
|
||||
@@ -476,7 +478,7 @@ messaging.create_email(
|
||||
<div class="web-big-padding-section-level-2">
|
||||
<div class="container">
|
||||
<div class="web-hero is-align-start">
|
||||
<span class="web-badges web-eyebrow !text-white">SDKs_</span>
|
||||
<span class="web-badges text-micro uppercase !text-white">SDKs_</span>
|
||||
<h2 class="text-display font-aeonik-pro text-primary max-w-[700px]">
|
||||
Start today with your preferred technologies
|
||||
</h2>
|
||||
@@ -537,10 +539,10 @@ messaging.create_email(
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Auth</h4>
|
||||
<h4 class="text-body text-primary">Auth</h4>
|
||||
<span class="web-icon-arrow-right ml-auto" aria-hidden="true" />
|
||||
</div>
|
||||
<p class="web-sub-body-400">
|
||||
<p class="text-sub-body">
|
||||
Build secure authentication and manage your users.
|
||||
</p>
|
||||
</div>
|
||||
@@ -562,10 +564,10 @@ messaging.create_email(
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Functions</h4>
|
||||
<h4 class="text-body text-primary">Functions</h4>
|
||||
<span class="web-icon-arrow-right ml-auto" aria-hidden="true" />
|
||||
</div>
|
||||
<p class="web-sub-body-400">
|
||||
<p class="text-sub-body">
|
||||
Scale big and unlock limitless potential with Appwrite
|
||||
functions.
|
||||
</p>
|
||||
@@ -588,10 +590,10 @@ messaging.create_email(
|
||||
width="37"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Databases</h4>
|
||||
<h4 class="text-body text-primary">Databases</h4>
|
||||
<span class="web-icon-arrow-right ml-auto" aria-hidden="true" />
|
||||
</div>
|
||||
<p class="web-sub-body-400">
|
||||
<p class="text-sub-body">
|
||||
Store and query structured data, ensuring scalable storage.
|
||||
</p>
|
||||
</div>
|
||||
@@ -613,10 +615,10 @@ messaging.create_email(
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Storage</h4>
|
||||
<h4 class="text-body text-primary">Storage</h4>
|
||||
<span class="web-icon-arrow-right ml-auto" aria-hidden="true" />
|
||||
</div>
|
||||
<p class="web-sub-body-400">
|
||||
<p class="text-sub-body">
|
||||
Manage your files' project, using convenient APIs and utilities.
|
||||
</p>
|
||||
</div>
|
||||
@@ -638,10 +640,10 @@ messaging.create_email(
|
||||
width="32"
|
||||
height="32"
|
||||
/>
|
||||
<h4 class="web-main-body-400 text-primary">Realtime</h4>
|
||||
<h4 class="text-body text-primary">Realtime</h4>
|
||||
<span class="web-icon-arrow-right ml-auto" aria-hidden="true" />
|
||||
</div>
|
||||
<p class="web-sub-body-400">
|
||||
<p class="text-sub-body">
|
||||
Utilize realtime information from all Appwrite services.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
/>
|
||||
<div class="flex flex-col gap-2 text-center">
|
||||
<h2 class="text-label text-primary">Complete backend</h2>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Get access to Appwrite’s Scale plan and build your entire
|
||||
backend with Appwrite.
|
||||
</p>
|
||||
@@ -220,7 +220,7 @@
|
||||
/>
|
||||
<div class="flex flex-col gap-2 text-center">
|
||||
<h2 class="text-label text-primary">Cloud credits</h2>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Get Appwrite Cloud Scale for 12 months and reduce risk at an
|
||||
early stage.
|
||||
</p>
|
||||
@@ -235,7 +235,7 @@
|
||||
/>
|
||||
<div class="flex flex-col gap-2 text-center">
|
||||
<h2 class="text-label text-primary">Priority support</h2>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Get community support and priority email support from the
|
||||
Appwrite team.
|
||||
</p>
|
||||
@@ -260,7 +260,7 @@
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
Ship faster
|
||||
</h3>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Utilizing Appwrite as your backend, you significantly
|
||||
cut down the time and resources spent on building a
|
||||
backend infrastructure from scratch. This means you can
|
||||
@@ -284,10 +284,12 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<div class="web-user-box-name web-sub-body-500">
|
||||
<div
|
||||
class="web-user-box-name text-sub-body font-medium"
|
||||
>
|
||||
Marius Bolik
|
||||
</div>
|
||||
<div class="web-user-box-username web-sub-body-400">
|
||||
<div class="web-user-box-username text-sub-body">
|
||||
CTO // mySHOEFITTER
|
||||
</div>
|
||||
</div>
|
||||
@@ -321,7 +323,7 @@
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
Scalable architecture
|
||||
</h3>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Appwrite's scalable architecture ensures you can build
|
||||
your product with growth in mind. Whether you're just
|
||||
testing the waters or ready to scale up rapidly, our
|
||||
@@ -341,10 +343,12 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<div class="web-user-box-name web-sub-body-500">
|
||||
<div
|
||||
class="web-user-box-name text-sub-body font-medium"
|
||||
>
|
||||
{ryanOconner.name}
|
||||
</div>
|
||||
<div class="web-user-box-username web-sub-body-400">
|
||||
<div class="web-user-box-username text-sub-body">
|
||||
{ryanOconner.handle}
|
||||
</div>
|
||||
</div>
|
||||
@@ -368,7 +372,7 @@
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
Built-in security and compliance
|
||||
</h3>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Appwrite comes with built-in security features like
|
||||
authentication, database security, and more, reducing
|
||||
the time and effort you need to spend on securing your
|
||||
@@ -386,10 +390,12 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<div class="web-user-box-name web-sub-body-500">
|
||||
<div
|
||||
class="web-user-box-name text-sub-body font-medium"
|
||||
>
|
||||
{souvikSarkar.name}
|
||||
</div>
|
||||
<div class="web-user-box-username web-sub-body-400">
|
||||
<div class="web-user-box-username text-sub-body">
|
||||
{souvikSarkar.handle}
|
||||
</div>
|
||||
</div>
|
||||
@@ -442,16 +448,17 @@
|
||||
<div
|
||||
class="web-user-box-name flex gap-2"
|
||||
>
|
||||
<span class="web-sub-body-500"
|
||||
<span
|
||||
class="text-sub-body font-medium"
|
||||
>Walter O'Brien</span
|
||||
>
|
||||
<time
|
||||
class="web-caption-400 web-u-color-text-tertiary"
|
||||
class="text-caption web-u-color-text-tertiary"
|
||||
>8:32 AM</time
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="web-user-box-content web-caption-400 text-primary"
|
||||
class="web-user-box-content text-caption text-primary"
|
||||
>
|
||||
Hello devs! I am getting a CORS
|
||||
error when sending a request to the
|
||||
@@ -473,16 +480,17 @@
|
||||
<div
|
||||
class="web-user-box-name flex gap-2"
|
||||
>
|
||||
<span class="web-sub-body-500"
|
||||
<span
|
||||
class="text-sub-body font-medium"
|
||||
>Steven</span
|
||||
>
|
||||
<time
|
||||
class="web-caption-400 web-u-color-text-tertiary"
|
||||
class="text-caption web-u-color-text-tertiary"
|
||||
>8:38 AM</time
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="web-user-box-content web-caption-400 text-primary"
|
||||
class="web-user-box-content text-caption text-primary"
|
||||
>
|
||||
Hey Louis! Is this the message you
|
||||
get
|
||||
@@ -509,16 +517,17 @@
|
||||
<div
|
||||
class="web-user-box-name flex gap-2"
|
||||
>
|
||||
<span class="web-sub-body-500"
|
||||
<span
|
||||
class="text-sub-body font-medium"
|
||||
>Walter O'Brien</span
|
||||
>
|
||||
<time
|
||||
class="web-caption-400 web-u-color-text-tertiary"
|
||||
class="text-caption web-u-color-text-tertiary"
|
||||
>9:05 AM</time
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="web-user-box-content web-caption-400 text-primary"
|
||||
class="web-user-box-content text-caption text-primary"
|
||||
>
|
||||
Yes!
|
||||
</div>
|
||||
@@ -538,16 +547,17 @@
|
||||
<div
|
||||
class="web-user-box-name flex gap-2"
|
||||
>
|
||||
<span class="web-sub-body-500"
|
||||
<span
|
||||
class="text-sub-body font-medium"
|
||||
>Steven</span
|
||||
>
|
||||
<time
|
||||
class="web-caption-400 web-u-color-text-tertiary"
|
||||
class="text-caption web-u-color-text-tertiary"
|
||||
>9:08 AM</time
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="web-user-box-content web-caption-400 text-primary"
|
||||
class="web-user-box-content text-caption text-primary"
|
||||
>
|
||||
You should be able to debug this
|
||||
with a few steps. Just follow this
|
||||
@@ -569,7 +579,7 @@
|
||||
<h3 class="text-title font-aeonik-pro text-primary">
|
||||
Power of open source community
|
||||
</h3>
|
||||
<p class="web-main-body-500">
|
||||
<p class="text-body font-medium">
|
||||
Join a growing community of developers and founders who
|
||||
use Appwrite to build their products. Gain access to a
|
||||
wealth of knowledge, support, and shared experiences to
|
||||
@@ -587,10 +597,12 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<div class="web-user-box-name web-sub-body-500">
|
||||
<div
|
||||
class="web-user-box-name text-sub-body font-medium"
|
||||
>
|
||||
{mariusBolik.name}
|
||||
</div>
|
||||
<div class="web-user-box-username web-sub-body-400">
|
||||
<div class="web-user-box-username text-sub-body">
|
||||
{mariusBolik.handle}
|
||||
</div>
|
||||
</div>
|
||||
@@ -628,10 +640,10 @@
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
<div class="web-user-box-name web-sub-body-500">
|
||||
<div class="web-user-box-name text-sub-body font-medium">
|
||||
{t.name}
|
||||
</div>
|
||||
<div class="web-user-box-username web-sub-body-400">
|
||||
<div class="web-user-box-username text-sub-body">
|
||||
{t.handle}
|
||||
</div>
|
||||
</div>
|
||||
@@ -726,7 +738,7 @@
|
||||
>Thank you for your submission</span
|
||||
>
|
||||
</h6>
|
||||
<p class="web-main-body-400">
|
||||
<p class="text-body">
|
||||
Our team will review your application and get back to
|
||||
you soon.
|
||||
</p>
|
||||
@@ -797,7 +809,7 @@
|
||||
<div
|
||||
class="web-u-flex-vertical-reverse-mobile flex justify-between gap-4"
|
||||
>
|
||||
<p class="web-caption-400 web-u-max-width-380">
|
||||
<p class="text-caption web-u-max-width-380">
|
||||
{#if error}
|
||||
{error}
|
||||
{/if}
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
use:melt={$content(`${index}`)}
|
||||
transition:slide
|
||||
>
|
||||
<p class="web-main-body-400">
|
||||
<p class="text-body">
|
||||
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
||||
{@html faqItem.answer}
|
||||
</p>
|
||||
@@ -130,7 +130,7 @@
|
||||
</summary>
|
||||
|
||||
<div class="collapsible-content">
|
||||
<p class="web-main-body-400">
|
||||
<p class="text-body">
|
||||
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
||||
{@html faqItem.answer}
|
||||
</p>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="web-big-padding-section-level-2">
|
||||
<div class="container">
|
||||
<div class="web-hero" style="--hero-gap:1.25rem;">
|
||||
<span class="web-badges web-eyebrow !text-white">verification</span>
|
||||
<span class="web-badges text-micro uppercase text-white">verification</span>
|
||||
<h1 class="text-headline font-aeonik-pro text-primary">
|
||||
{#if error}
|
||||
Error
|
||||
|
||||
@@ -193,7 +193,7 @@
|
||||
{:else}
|
||||
<div class="web-card is-normal has-border-gradient empty-card">
|
||||
<enhanced:img class="img" src="./(assets)/empty-state.png" alt="" />
|
||||
<span class="web-main-body-500">No support threads found</span>
|
||||
<span class="text-body font-medium">No support threads found</span>
|
||||
<button
|
||||
class="web-button"
|
||||
on:click={() => {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<div class="cards">
|
||||
<div class="cardy">
|
||||
<h3 class="text-label text-primary">Join our Discord</h3>
|
||||
<p class="web-main-body-400 text-primary mt-4">
|
||||
<p class="text-body text-primary mt-4">
|
||||
Get community support by joining our Discord server.
|
||||
</p>
|
||||
<a class="web-button mt-6" href="https://appwrite.io/discord">
|
||||
@@ -15,7 +15,7 @@
|
||||
</div>
|
||||
<div class="cardy">
|
||||
<h3 class="text-label text-primary">Get premium support</h3>
|
||||
<p class="web-main-body-400 text-primary mt-4">
|
||||
<p class="text-body text-primary mt-4">
|
||||
Join Appwrite Pro and get email support from our team.
|
||||
</p>
|
||||
<a class="web-button mt-6" href="https://appwrite.io/pricing">
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
use:melt={menu}
|
||||
transition:fly={{ y: 8, duration: 250 }}
|
||||
>
|
||||
<ul class="web-sub-body-400">
|
||||
<ul class="text-sub-body">
|
||||
{#each tags as tag}
|
||||
{@const checked = selectedTags?.includes(tag)}
|
||||
<DropdownCheckboxItem let:checkboxItem {checked}>
|
||||
|
||||
@@ -11,13 +11,16 @@
|
||||
{#key highlightTerms}
|
||||
<a href="/threads/{thread.discord_id}" class="web-card is-normal has-border-gradient thread">
|
||||
<div class="flex gap-2">
|
||||
<h3 class="web-main-body-500 text-primary break-words" use:highlight={highlightTerms}>
|
||||
<h3
|
||||
class="text-body font-medium text-primary break-words"
|
||||
use:highlight={highlightTerms}
|
||||
>
|
||||
{thread.title}
|
||||
</h3>
|
||||
<!-- <time class="web-caption-400 ml-auto">12 Jan, 2023</time> -->
|
||||
<!-- <time class="text-caption ml-auto">12 Jan, 2023</time> -->
|
||||
</div>
|
||||
|
||||
<p class="web-main-body-500 mt-1 break-words" use:highlight={highlightTerms}>
|
||||
<p class="text-body font-medium mt-1 break-words" use:highlight={highlightTerms}>
|
||||
{thread.content.length > 200 ? thread.content.slice(0, 200) + '...' : thread.content}
|
||||
</p>
|
||||
|
||||
@@ -35,7 +38,7 @@
|
||||
aria-label="Replies"
|
||||
>
|
||||
<span class="web-icon-message web-u-font-size-16" aria-hidden="true" />
|
||||
<span class="web-caption-400 web-u-line-height-1-2">{thread.message_count}</span>
|
||||
<span class="text-caption web-u-line-height-1-2">{thread.message_count}</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -71,15 +71,17 @@
|
||||
<MessageCard {message}>
|
||||
{#if isFirst}
|
||||
<div class="web-inline-info web-u-margin-block-start-24">
|
||||
<div class="web-sub-body-500 text-primary">TL;DR</div>
|
||||
<div class="text-sub-body font-medium text-primary">TL;DR</div>
|
||||
{data.tldr}
|
||||
</div>
|
||||
{/if}
|
||||
</MessageCard>
|
||||
{/each}
|
||||
<div class="web-card is-normal has-border-gradient">
|
||||
<span class="web-sub-body-500 text-primary">Reply</span>
|
||||
<p class="web-sub-body-500 mt-4">Reply to this thread by joining our Discord</p>
|
||||
<span class="text-sub-body font-medium text-primary">Reply</span>
|
||||
<p class="text-sub-body font-medium mt-4">
|
||||
Reply to this thread by joining our Discord
|
||||
</p>
|
||||
<a class="web-button mt-6" href={discordLink}>
|
||||
<span class="web-icon-discord" />
|
||||
<span class="text">Reply on Discord</span>
|
||||
@@ -88,20 +90,20 @@
|
||||
</div>
|
||||
<div class="related">
|
||||
{#if data.related.length}
|
||||
<h2 class="web-eyebrow text-primary">Recommended threads</h2>
|
||||
<h2 class="text-micro uppercase text-primary">Recommended threads</h2>
|
||||
{/if}
|
||||
<ul>
|
||||
{#each data.related as thread}
|
||||
<li>
|
||||
<a href="/threads/{thread.$id}" data-sveltekit-reload>
|
||||
<div class="flex items-center">
|
||||
<span class="web-sub-body-500 text-primary">
|
||||
<span class="text-sub-body font-medium text-primary">
|
||||
{thread.title.length > 40
|
||||
? thread.title.slice(0, 40) + '...'
|
||||
: thread.title}
|
||||
</span>
|
||||
</div>
|
||||
<p class="web-sub-body-400 mt-2">
|
||||
<p class="text-sub-body mt-2">
|
||||
{thread.content.length > 160
|
||||
? thread.content.slice(0, 160) + '...'
|
||||
: thread.content}
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
<div class="author-img">
|
||||
<img src={message.author_avatar} alt="" class="h-full w-full rounded-[inherit]" />
|
||||
</div>
|
||||
<span class="web-sub-body-500 text-primary">{message.author}</span>
|
||||
<span class="text-sub-body font-medium text-primary">{message.author}</span>
|
||||
</div>
|
||||
<span class="timestamp web-caption-400">
|
||||
<span class="timestamp text-caption">
|
||||
{formatTimestamp(message.timestamp)}
|
||||
</span>
|
||||
</div>
|
||||
<div class="web-sub-body-500 mt-4">
|
||||
<div class="text-sub-body font-medium mt-4">
|
||||
<SvelteMarkdown
|
||||
source={message.message}
|
||||
renderers={{
|
||||
@@ -53,7 +53,7 @@
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.web-sub-body-500 {
|
||||
.text-sub-body font-medium {
|
||||
font-size: 1rem !important;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user