9.7k
Introducing Luma

Building Blocks for the Web

Clean, modern building blocks. Copy and paste into your apps. Works with all Vue frameworks. Open Source. Free forever.

Files
pages/signup/index.vue
<script setup lang="ts">
import SignupForm from "@/components/SignupForm.vue"
</script>

<template>
  <div class="flex min-h-svh w-full items-center justify-center p-6 md:p-10">
    <div class="w-full max-w-sm">
      <SignupForm />
    </div>
  </div>
</template>
A simple signup form.
signup-01
Files
pages/signup/index.vue
<script setup lang="ts">
import { GalleryVerticalEnd } from "lucide-vue-next"

import SignupForm from "@/components/SignupForm.vue"
</script>

<template>
  <div class="grid min-h-svh lg:grid-cols-2">
    <div class="flex flex-col gap-4 p-6 md:p-10">
      <div class="flex justify-center gap-2 md:justify-start">
        <a href="#" class="flex items-center gap-2 font-medium">
          <div class="bg-primary text-primary-foreground flex size-6 items-center justify-center rounded-md">
            <GalleryVerticalEnd class="size-4" />
          </div>
          Acme Inc.
        </a>
      </div>
      <div class="flex flex-1 items-center justify-center">
        <div class="w-full max-w-xs">
          <SignupForm />
        </div>
      </div>
    </div>
    <div class="bg-muted relative hidden lg:block">
      <img
        src="/placeholder.svg"
        alt="Image"
        class="absolute inset-0 h-full w-full object-cover dark:brightness-[0.2] dark:grayscale"
      >
    </div>
  </div>
</template>
A two column signup page with a cover image.
signup-02
Files
pages/signup/index.vue
<script setup lang="ts">
import { GalleryVerticalEnd } from "lucide-vue-next"

import SignupForm from "@/components/SignupForm.vue"
</script>

<template>
  <div class="bg-muted flex min-h-svh flex-col items-center justify-center gap-6 p-6 md:p-10">
    <div class="flex w-full max-w-sm flex-col gap-6">
      <a href="#" class="flex items-center gap-2 self-center font-medium">
        <div class="bg-primary text-primary-foreground flex size-6 items-center justify-center rounded-md">
          <GalleryVerticalEnd class="size-4" />
        </div>
        Acme Inc.
      </a>
      <SignupForm />
    </div>
  </div>
</template>
A signup page with a muted background color.
signup-03
Files
pages/signup/index.vue
<script setup lang="ts">
import SignupForm from "@/components/SignupForm.vue"
</script>

<template>
  <div class="bg-muted flex min-h-svh flex-col items-center justify-center p-6 md:p-10">
    <div class="w-full max-w-sm md:max-w-4xl">
      <SignupForm />
    </div>
  </div>
</template>
A signup page with form and image.
signup-04
Files
pages/signup/index.vue
<script setup lang="ts">
import SignupForm from "@/components/SignupForm.vue"
</script>

<template>
  <div class="bg-background flex min-h-svh flex-col items-center justify-center gap-6 p-6 md:p-10">
    <div class="w-full max-w-sm">
      <SignupForm />
    </div>
  </div>
</template>
A simple signup form with social providers.
signup-05