feat(ui): expose app theme contract and public components
This commit is contained in:
@@ -0,0 +1,589 @@
|
||||
component PublicMobileNavigation {
|
||||
props {
|
||||
class: string = ""
|
||||
}
|
||||
state openSection = ""
|
||||
|
||||
view {
|
||||
<div
|
||||
class="border-t border-slate-200 bg-white shadow-xl dark:border-white/10 dark:bg-slate-950 lg:hidden {class}"
|
||||
>
|
||||
<div class="mx-auto max-h-[calc(100dvh-4.5rem)] max-w-7xl overflow-y-auto px-5 py-5 sm:px-8">
|
||||
|
||||
<!-- Mobile status -->
|
||||
<a
|
||||
href="/status"
|
||||
class="mb-5 flex items-center justify-between rounded-2xl border border-emerald-200 bg-emerald-50 px-4 py-3 transition hover:border-emerald-300 hover:bg-emerald-100 dark:border-emerald-500/20 dark:bg-emerald-500/10 dark:hover:border-emerald-500/30 dark:hover:bg-emerald-500/15"
|
||||
>
|
||||
<span class="flex items-center gap-3">
|
||||
<span class="relative flex h-2.5 w-2.5 shrink-0">
|
||||
<span class="absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-60"></span>
|
||||
<span class="relative inline-flex h-2.5 w-2.5 rounded-full bg-emerald-500"></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span class="block text-sm font-semibold text-emerald-900 dark:text-emerald-100">
|
||||
All systems operational
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs text-emerald-700 dark:text-emerald-300">
|
||||
View service status
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class="icon-[lucide--arrow-up-right] h-4 w-4 shrink-0 text-emerald-700 dark:text-emerald-300" aria-hidden="true" ></span>
|
||||
</a>
|
||||
|
||||
<nav
|
||||
aria-label="Mobile navigation"
|
||||
class="space-y-2"
|
||||
>
|
||||
|
||||
<!-- Product -->
|
||||
<div
|
||||
class="overflow-hidden rounded-2xl border border-slate-200 bg-white dark:border-white/10 dark:bg-white/5"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
@click="openSection = openSection === 'product' ? '' : 'product'"
|
||||
aria-expanded="{openSection === 'product'}"
|
||||
aria-controls="mobile-product-menu"
|
||||
class="flex w-full items-center justify-between gap-4 px-4 py-4 text-left transition hover:bg-slate-50 dark:hover:bg-white/5"
|
||||
class:bg-indigo-50="openSection === 'product'"
|
||||
class:dark:bg-indigo-500/10="openSection === 'product'"
|
||||
>
|
||||
<span class="flex items-center gap-3">
|
||||
<span
|
||||
class="grid h-10 w-10 shrink-0 place-items-center rounded-xl transition"
|
||||
class:bg-indigo-100="openSection === 'product'"
|
||||
class:text-indigo-700="openSection === 'product'"
|
||||
class:bg-slate-100="openSection !== 'product'"
|
||||
class:text-slate-600="openSection !== 'product'"
|
||||
class:dark:bg-indigo-500/15="openSection === 'product'"
|
||||
class:dark:text-indigo-300="openSection === 'product'"
|
||||
class:dark:bg-white/5="openSection !== 'product'"
|
||||
class:dark:text-slate-300="openSection !== 'product'"
|
||||
>
|
||||
<span class="icon-[lucide--boxes] h-5 w-5" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span
|
||||
class="block text-sm font-semibold"
|
||||
class:text-indigo-950="openSection === 'product'"
|
||||
class:text-slate-950="openSection !== 'product'"
|
||||
class:dark:text-indigo-100="openSection === 'product'"
|
||||
class:dark:text-white="openSection !== 'product'"
|
||||
>
|
||||
Product
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs text-slate-500 dark:text-slate-400">
|
||||
Explore the WrNexus platform
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class="icon-[lucide--chevron-down] h-5 w-5 shrink-0 text-slate-400 transition-transform duration-200" class:rotate-180="openSection === 'product'" aria-hidden="true" ></span>
|
||||
</button>
|
||||
|
||||
<div
|
||||
id="mobile-product-menu"
|
||||
data-show="openSection === 'product'"
|
||||
class="border-t border-slate-200 px-3 py-3 dark:border-white/10"
|
||||
>
|
||||
<div class="grid gap-1">
|
||||
<a
|
||||
href="/platform"
|
||||
class="group flex items-start gap-3 rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span
|
||||
class="grid h-9 w-9 shrink-0 place-items-center rounded-lg bg-indigo-50 text-indigo-700 dark:bg-indigo-500/10 dark:text-indigo-300"
|
||||
>
|
||||
<span class="icon-[lucide--layers-3] h-4 w-4" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span
|
||||
class="block text-sm font-semibold text-slate-900 group-hover:text-indigo-700 dark:text-white dark:group-hover:text-indigo-300"
|
||||
>
|
||||
Platform
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs leading-5 text-slate-500 dark:text-slate-400">
|
||||
Complete identity infrastructure
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/authentication"
|
||||
class="group flex items-start gap-3 rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span
|
||||
class="grid h-9 w-9 shrink-0 place-items-center rounded-lg bg-violet-50 text-violet-700 dark:bg-violet-500/10 dark:text-violet-300"
|
||||
>
|
||||
<span class="icon-[lucide--fingerprint] h-4 w-4" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span
|
||||
class="block text-sm font-semibold text-slate-900 group-hover:text-indigo-700 dark:text-white dark:group-hover:text-indigo-300"
|
||||
>
|
||||
Authentication
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs leading-5 text-slate-500 dark:text-slate-400">
|
||||
Passwords, passkeys, social login, and SSO
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/user-management"
|
||||
class="group flex items-start gap-3 rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span
|
||||
class="grid h-9 w-9 shrink-0 place-items-center rounded-lg bg-cyan-50 text-cyan-700 dark:bg-cyan-500/10 dark:text-cyan-300"
|
||||
>
|
||||
<span class="icon-[lucide--users-round] h-4 w-4" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span
|
||||
class="block text-sm font-semibold text-slate-900 group-hover:text-indigo-700 dark:text-white dark:group-hover:text-indigo-300"
|
||||
>
|
||||
User management
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs leading-5 text-slate-500 dark:text-slate-400">
|
||||
Profiles, sessions, invitations, and lifecycle
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/organizations"
|
||||
class="group flex items-start gap-3 rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span
|
||||
class="grid h-9 w-9 shrink-0 place-items-center rounded-lg bg-emerald-50 text-emerald-700 dark:bg-emerald-500/10 dark:text-emerald-300"
|
||||
>
|
||||
<span class="icon-[lucide--building-2] h-4 w-4" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span
|
||||
class="block text-sm font-semibold text-slate-900 group-hover:text-indigo-700 dark:text-white dark:group-hover:text-indigo-300"
|
||||
>
|
||||
Organizations
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs leading-5 text-slate-500 dark:text-slate-400">
|
||||
Multi-tenant workspaces and teams
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/security"
|
||||
class="group flex items-start gap-3 rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span
|
||||
class="grid h-9 w-9 shrink-0 place-items-center rounded-lg bg-amber-50 text-amber-700 dark:bg-amber-500/10 dark:text-amber-300"
|
||||
>
|
||||
<span class="icon-[lucide--shield-check] h-4 w-4" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span
|
||||
class="block text-sm font-semibold text-slate-900 group-hover:text-indigo-700 dark:text-white dark:group-hover:text-indigo-300"
|
||||
>
|
||||
Security
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs leading-5 text-slate-500 dark:text-slate-400">
|
||||
Protect identities and sensitive actions
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/integrations"
|
||||
class="group flex items-start gap-3 rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span
|
||||
class="grid h-9 w-9 shrink-0 place-items-center rounded-lg bg-rose-50 text-rose-700 dark:bg-rose-500/10 dark:text-rose-300"
|
||||
>
|
||||
<span class="icon-[lucide--plug] h-4 w-4" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span
|
||||
class="block text-sm font-semibold text-slate-900 group-hover:text-indigo-700 dark:text-white dark:group-hover:text-indigo-300"
|
||||
>
|
||||
Integrations
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs leading-5 text-slate-500 dark:text-slate-400">
|
||||
Connect your stack and applications
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<a
|
||||
href="/product"
|
||||
class="mt-2 flex items-center justify-center gap-2 rounded-xl bg-indigo-50 px-4 py-3 text-sm font-semibold text-indigo-700 transition hover:bg-indigo-100 dark:bg-indigo-500/10 dark:text-indigo-300 dark:hover:bg-indigo-500/15"
|
||||
>
|
||||
View all product features
|
||||
|
||||
<span class="icon-[lucide--arrow-right] h-4 w-4" aria-hidden="true" ></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Solutions -->
|
||||
<div
|
||||
class="overflow-hidden rounded-2xl border border-slate-200 bg-white dark:border-white/10 dark:bg-white/5"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
@click="openSection = openSection === 'solutions' ? '' : 'solutions'"
|
||||
aria-expanded="{openSection === 'solutions'}"
|
||||
aria-controls="mobile-solutions-menu"
|
||||
class="flex w-full items-center justify-between gap-4 px-4 py-4 text-left transition hover:bg-slate-50 dark:hover:bg-white/5"
|
||||
class:bg-indigo-50="openSection === 'solutions'"
|
||||
class:dark:bg-indigo-500/10="openSection === 'solutions'"
|
||||
>
|
||||
<span class="flex items-center gap-3">
|
||||
<span
|
||||
class="grid h-10 w-10 shrink-0 place-items-center rounded-xl transition"
|
||||
class:bg-indigo-100="openSection === 'solutions'"
|
||||
class:text-indigo-700="openSection === 'solutions'"
|
||||
class:bg-slate-100="openSection !== 'solutions'"
|
||||
class:text-slate-600="openSection !== 'solutions'"
|
||||
class:dark:bg-indigo-500/15="openSection === 'solutions'"
|
||||
class:dark:text-indigo-300="openSection === 'solutions'"
|
||||
class:dark:bg-white/5="openSection !== 'solutions'"
|
||||
class:dark:text-slate-300="openSection !== 'solutions'"
|
||||
>
|
||||
<span class="icon-[lucide--lightbulb] h-5 w-5" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span class="block text-sm font-semibold text-slate-950 dark:text-white">
|
||||
Solutions
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs text-slate-500 dark:text-slate-400">
|
||||
Built for your business
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class="icon-[lucide--chevron-down] h-5 w-5 shrink-0 text-slate-400 transition-transform duration-200" class:rotate-180="openSection === 'solutions'" aria-hidden="true" ></span>
|
||||
</button>
|
||||
|
||||
<div
|
||||
id="mobile-solutions-menu"
|
||||
data-show="openSection === 'solutions'"
|
||||
class="border-t border-slate-200 px-3 py-3 dark:border-white/10"
|
||||
>
|
||||
<div class="grid grid-cols-2 gap-2">
|
||||
<a
|
||||
href="/solutions/startups"
|
||||
class="rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span class="icon-[lucide--rocket] h-5 w-5 text-indigo-600 dark:text-indigo-400"></span>
|
||||
<span class="mt-2 block text-sm font-semibold text-slate-900 dark:text-white">
|
||||
Startups
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/solutions/saas"
|
||||
class="rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span class="icon-[lucide--cloud] h-5 w-5 text-cyan-600 dark:text-cyan-400"></span>
|
||||
<span class="mt-2 block text-sm font-semibold text-slate-900 dark:text-white">
|
||||
SaaS
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/solutions/enterprise"
|
||||
class="rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span class="icon-[lucide--building] h-5 w-5 text-violet-600 dark:text-violet-400"></span>
|
||||
<span class="mt-2 block text-sm font-semibold text-slate-900 dark:text-white">
|
||||
Enterprise
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/solutions/developers"
|
||||
class="rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span class="icon-[lucide--code-2] h-5 w-5 text-emerald-600 dark:text-emerald-400"></span>
|
||||
<span class="mt-2 block text-sm font-semibold text-slate-900 dark:text-white">
|
||||
Developers
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/solutions/agencies"
|
||||
class="rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span class="icon-[lucide--briefcase-business] h-5 w-5 text-amber-600 dark:text-amber-400"></span>
|
||||
<span class="mt-2 block text-sm font-semibold text-slate-900 dark:text-white">
|
||||
Agencies
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/solutions/b2b"
|
||||
class="rounded-xl px-3 py-3 transition hover:bg-slate-100 dark:hover:bg-white/5"
|
||||
>
|
||||
<span class="icon-[lucide--handshake] h-5 w-5 text-rose-600 dark:text-rose-400"></span>
|
||||
<span class="mt-2 block text-sm font-semibold text-slate-900 dark:text-white">
|
||||
B2B
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Developers -->
|
||||
<div
|
||||
class="overflow-hidden rounded-2xl border border-slate-200 bg-white dark:border-white/10 dark:bg-white/5"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
@click="openSection = openSection === 'developers' ? '' : 'developers'"
|
||||
aria-expanded="{openSection === 'developers'}"
|
||||
aria-controls="mobile-developers-menu"
|
||||
class="flex w-full items-center justify-between gap-4 px-4 py-4 text-left transition hover:bg-slate-50 dark:hover:bg-white/5"
|
||||
class:bg-indigo-50="openSection === 'developers'"
|
||||
class:dark:bg-indigo-500/10="openSection === 'developers'"
|
||||
>
|
||||
<span class="flex items-center gap-3">
|
||||
<span
|
||||
class="grid h-10 w-10 shrink-0 place-items-center rounded-xl transition"
|
||||
class:bg-indigo-100="openSection === 'developers'"
|
||||
class:text-indigo-700="openSection === 'developers'"
|
||||
class:bg-slate-100="openSection !== 'developers'"
|
||||
class:text-slate-600="openSection !== 'developers'"
|
||||
class:dark:bg-indigo-500/15="openSection === 'developers'"
|
||||
class:dark:text-indigo-300="openSection === 'developers'"
|
||||
class:dark:bg-white/5="openSection !== 'developers'"
|
||||
class:dark:text-slate-300="openSection !== 'developers'"
|
||||
>
|
||||
<span class="icon-[lucide--terminal-square] h-5 w-5" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span class="block text-sm font-semibold text-slate-950 dark:text-white">
|
||||
Developers
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs text-slate-500 dark:text-slate-400">
|
||||
Build with WrNexus
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class="icon-[lucide--chevron-down] h-5 w-5 shrink-0 text-slate-400 transition-transform duration-200" class:rotate-180="openSection === 'developers'" aria-hidden="true" ></span>
|
||||
</button>
|
||||
|
||||
<div
|
||||
id="mobile-developers-menu"
|
||||
data-show="openSection === 'developers'"
|
||||
class="border-t border-slate-200 px-3 py-3 dark:border-white/10"
|
||||
>
|
||||
<div class="grid gap-1">
|
||||
<a
|
||||
href="/docs"
|
||||
class="flex items-center gap-3 rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 hover:text-indigo-700 dark:text-slate-200 dark:hover:bg-white/5 dark:hover:text-indigo-300"
|
||||
>
|
||||
<span class="icon-[lucide--book-open] h-5 w-5 text-indigo-600 dark:text-indigo-400"></span>
|
||||
Documentation
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/docs/api"
|
||||
class="flex items-center gap-3 rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 hover:text-indigo-700 dark:text-slate-200 dark:hover:bg-white/5 dark:hover:text-indigo-300"
|
||||
>
|
||||
<span class="icon-[lucide--braces] h-5 w-5 text-violet-600 dark:text-violet-400"></span>
|
||||
API reference
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/sdks"
|
||||
class="flex items-center gap-3 rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 hover:text-indigo-700 dark:text-slate-200 dark:hover:bg-white/5 dark:hover:text-indigo-300"
|
||||
>
|
||||
<span class="icon-[lucide--package] h-5 w-5 text-cyan-600 dark:text-cyan-400"></span>
|
||||
SDKs
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/examples"
|
||||
class="flex items-center gap-3 rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 hover:text-indigo-700 dark:text-slate-200 dark:hover:bg-white/5 dark:hover:text-indigo-300"
|
||||
>
|
||||
<span class="icon-[lucide--flask-conical] h-5 w-5 text-emerald-600 dark:text-emerald-400"></span>
|
||||
Examples
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/changelog"
|
||||
class="flex items-center gap-3 rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 hover:text-indigo-700 dark:text-slate-200 dark:hover:bg-white/5 dark:hover:text-indigo-300"
|
||||
>
|
||||
<span class="icon-[lucide--history] h-5 w-5 text-amber-600 dark:text-amber-400"></span>
|
||||
Changelog
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Resources -->
|
||||
<div
|
||||
class="overflow-hidden rounded-2xl border border-slate-200 bg-white dark:border-white/10 dark:bg-white/5"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
@click="openSection = openSection === 'resources' ? '' : 'resources'"
|
||||
aria-expanded="{openSection === 'resources'}"
|
||||
aria-controls="mobile-resources-menu"
|
||||
class="flex w-full items-center justify-between gap-4 px-4 py-4 text-left transition hover:bg-slate-50 dark:hover:bg-white/5"
|
||||
class:bg-indigo-50="openSection === 'resources'"
|
||||
class:dark:bg-indigo-500/10="openSection === 'resources'"
|
||||
>
|
||||
<span class="flex items-center gap-3">
|
||||
<span
|
||||
class="grid h-10 w-10 shrink-0 place-items-center rounded-xl transition"
|
||||
class:bg-indigo-100="openSection === 'resources'"
|
||||
class:text-indigo-700="openSection === 'resources'"
|
||||
class:bg-slate-100="openSection !== 'resources'"
|
||||
class:text-slate-600="openSection !== 'resources'"
|
||||
class:dark:bg-indigo-500/15="openSection === 'resources'"
|
||||
class:dark:text-indigo-300="openSection === 'resources'"
|
||||
class:dark:bg-white/5="openSection !== 'resources'"
|
||||
class:dark:text-slate-300="openSection !== 'resources'"
|
||||
>
|
||||
<span class="icon-[lucide--library] h-5 w-5" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span class="block text-sm font-semibold text-slate-950 dark:text-white">
|
||||
Resources
|
||||
</span>
|
||||
|
||||
<span class="mt-0.5 block text-xs text-slate-500 dark:text-slate-400">
|
||||
Learn and get support
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class="icon-[lucide--chevron-down] h-5 w-5 shrink-0 text-slate-400 transition-transform duration-200" class:rotate-180="openSection === 'resources'" aria-hidden="true" ></span>
|
||||
</button>
|
||||
|
||||
<div
|
||||
id="mobile-resources-menu"
|
||||
data-show="openSection === 'resources'"
|
||||
class="border-t border-slate-200 px-3 py-3 dark:border-white/10"
|
||||
>
|
||||
<div class="grid grid-cols-2 gap-2">
|
||||
<a
|
||||
href="/blog"
|
||||
class="rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 dark:text-slate-200 dark:hover:bg-white/5"
|
||||
>
|
||||
Blog
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/customers"
|
||||
class="rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 dark:text-slate-200 dark:hover:bg-white/5"
|
||||
>
|
||||
Customer stories
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/guides"
|
||||
class="rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 dark:text-slate-200 dark:hover:bg-white/5"
|
||||
>
|
||||
Guides
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/help"
|
||||
class="rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 dark:text-slate-200 dark:hover:bg-white/5"
|
||||
>
|
||||
Help center
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/security"
|
||||
class="rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 dark:text-slate-200 dark:hover:bg-white/5"
|
||||
>
|
||||
Security
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/trust"
|
||||
class="rounded-xl px-3 py-3 text-sm font-semibold text-slate-800 transition hover:bg-slate-100 dark:text-slate-200 dark:hover:bg-white/5"
|
||||
>
|
||||
Trust center
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Direct links -->
|
||||
<a
|
||||
href="/pricing"
|
||||
class="flex items-center justify-between rounded-2xl border border-slate-200 bg-white px-4 py-4 text-sm font-semibold text-slate-950 transition hover:border-indigo-300 hover:bg-indigo-50 dark:border-white/10 dark:bg-white/5 dark:text-white dark:hover:border-indigo-500 dark:hover:bg-indigo-500/10"
|
||||
>
|
||||
<span class="flex items-center gap-3">
|
||||
<span
|
||||
class="grid h-10 w-10 place-items-center rounded-xl bg-slate-100 text-slate-600 dark:bg-white/5 dark:text-slate-300"
|
||||
>
|
||||
<span class="icon-[lucide--badge-dollar-sign] h-5 w-5" aria-hidden="true" ></span>
|
||||
</span>
|
||||
|
||||
Pricing
|
||||
</span>
|
||||
|
||||
<span class="icon-[lucide--chevron-right] h-5 w-5 text-slate-400" aria-hidden="true" ></span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<!-- Mobile CTAs -->
|
||||
<div class="mt-5 grid gap-3 border-t border-slate-200 pt-5 dark:border-white/10 sm:grid-cols-2">
|
||||
<a
|
||||
href="/sign-in"
|
||||
class="flex h-12 items-center justify-center gap-2 rounded-xl border border-slate-200 bg-white px-5 text-sm font-semibold text-slate-700 shadow-sm transition hover:border-indigo-300 hover:bg-slate-50 hover:text-indigo-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:border-indigo-500 dark:hover:bg-white/10 dark:hover:text-indigo-300"
|
||||
>
|
||||
<span class="icon-[lucide--log-in] h-4 w-4" aria-hidden="true" ></span>
|
||||
|
||||
Sign in
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/sign-up"
|
||||
class="group flex h-12 items-center justify-center gap-2 rounded-xl bg-indigo-600 px-5 text-sm font-bold text-white shadow-lg shadow-indigo-600/20 transition hover:-translate-y-0.5 hover:bg-indigo-500 hover:shadow-xl focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500"
|
||||
>
|
||||
Start free
|
||||
|
||||
<span class="icon-[lucide--arrow-right] h-4 w-4 transition-transform group-hover:translate-x-1" aria-hidden="true" ></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p class="mt-5 text-center text-xs leading-5 text-slate-400 dark:text-slate-500">
|
||||
Secure identity infrastructure for modern applications.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user