diff --git a/.gitignore b/.gitignore index a333bff..e2c6a9f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # dependencies /node_modules +.pnpm-store /.pnp .pnp.js diff --git a/app/components/ambient-grain.tsx b/app/components/ambient-grain.tsx new file mode 100644 index 0000000..949e9a6 --- /dev/null +++ b/app/components/ambient-grain.tsx @@ -0,0 +1,30 @@ +"use client"; + +type AmbientGrainProps = { + /** Marketing pages use a slightly stronger grain than the in-app shell (Orbit default). */ + variant?: "marketing" | "app"; + className?: string; +}; + +/** Orbit-style film grain / vignette wash (`@orbit/ui/ambient-grain`). */ +export function AmbientGrain({ variant = "marketing", className = "" }: AmbientGrainProps) { + const density = + variant === "marketing" + ? "opacity-[0.22] dark:opacity-[0.35]" + : "opacity-[0.14] dark:opacity-[0.28]"; + + return ( +
+ ); +} diff --git a/app/components/form-field.tsx b/app/components/form-field.tsx new file mode 100644 index 0000000..f4e676e --- /dev/null +++ b/app/components/form-field.tsx @@ -0,0 +1,22 @@ +import type { PropsWithChildren } from "react"; + +const labelClass = + "mb-1.5 block font-mono text-[11px] font-medium uppercase tracking-[0.2em] text-muted-foreground"; + +const shellClass = + "rounded-lg border border-border bg-background px-3 py-2.5 transition focus-within:border-ring focus-within:ring-2 focus-within:ring-ring/40 focus-within:ring-offset-2 focus-within:ring-offset-background"; + +export function FormFieldLabel({ + htmlFor, + children, +}: PropsWithChildren<{ htmlFor: string }>) { + return ( + + ); +} + +export function FormFieldShell({ className = "", children }: PropsWithChildren<{ className?: string }>) { + return+ Your document is encrypted in your browser before being stored for a limited period of time and read + operations. Unencrypted data never leaves your browser. +
+
- After creating the database, scroll to the bottom and make a note of UPSTASH_REDIS_REST_URL and{" "}
- UPSTASH_REDIS_REST_TOKEN, you need them in the next step
+ After creating the database, scroll to the bottom and make a note of{" "}
+ UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN — you need them in the next
+ step.
- You can deploy your own hosted version of EnvShare, you just need an Upstash and Vercel account. +
+ You can deploy your own hosted version of EnvShare — you only need Upstash and Vercel accounts.
-- Your document is encrypted in your browser before being stored for a limited period of time and read - operations. Unencrypted data never leaves your browser. -
-+ Used and trusted by a growing community +
+++{link}