VibeCoderzVibeCoderz
All Prompts
Glassmorphic Dashboard Layout with Sidebar & Widgets preview
dashboardlayoutprogress-circletailwindresponsiveanimatedglassmorphismui

Glassmorphic Dashboard Layout with Sidebar & Widgets

Glassmorphic UI-компонент: адаптивный дашборд с боковой панелью и виджетами. Идеален для админ-панелей SaaS и демонстраций дизайн-систем.

Prompt

<div class="sm:mt-20 mt-20 mb-20 relative" data-animate="" data-animate-delay="400"
  data-element-locator="html &gt; body:nth-of-type(1) &gt; section:nth-of-type(1) &gt; div:nth-of-type(2)">
  <div
    class="sm:rounded-2xl sm:pt-3 sm:pr-3 sm:pb-3 sm:pl-3 hover:border-white/20 transition-all duration-500 max-w-6xl border-white/10 border rounded-xl mr-auto ml-auto pt-2 pr-2 pb-2 pl-2 relative shadow-[0_10px_50px_-10px_rgba(0,0,0,0.6)] backdrop-blur">
    <div
      class="ring-inset sm:rounded-xl sm:pt-4 sm:pr-4 sm:pb-4 sm:pl-4 bg-gradient-to-b from-white/5 to-transparent ring-white/10 ring-1 rounded-lg pt-3 pr-3 pb-3 pl-3">
      <div class="mb-3 sm:mb-4 flex items-center justify-between">
        <div class="flex items-center gap-1.5 sm:gap-2">
          <span class="h-2 w-2 sm:h-2.5 sm:w-2.5 rounded-full bg-red-500/70 hover:bg-red-500 transition-colors duration-200 cursor-pointer"></span>
          <span class="h-2 w-2 sm:h-2.5 sm:w-2.5 rounded-full bg-yellow-500/70 hover:bg-yellow-500 transition-colors duration-200 cursor-pointer"></span>
          <span class="h-2 w-2 sm:h-2.5 sm:w-2.5 rounded-full bg-emerald-500/70 hover:bg-emerald-500 transition-colors duration-200 cursor-pointer"></span>
          <span class="ml-2 sm:ml-3 text-xs sm:text-sm font-medium text-white/70">Dashboard</span>
        </div>
        <div class="flex items-center gap-1.5 sm:gap-2">
          <div
            class="hidden sm:flex items-center gap-2 rounded-md bg-white/5 px-2 py-1 ring-1 ring-white/10 hover:ring-white/20 transition-all duration-200">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
              stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
              class="h-4 w-4 text-white/60">
              <path d="m21 21-4.34-4.34" class=""></path>
              <circle cx="11" cy="11" r="8" class=""></circle>
            </svg>
            <input class="w-32 bg-transparent text-xs text-white/70 placeholder:text-white/40 focus:outline-none sm:w-40 lg:w-56" placeholder="Search workspace">
          </div>
          <button class="rounded-md bg-white/5 p-1.5 sm:p-2 ring-1 ring-white/10 transition-all duration-200 hover:bg-white/10 hover:ring-white/20">
                  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5 sm:h-4 sm:w-4 text-white/70"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" class=""></path></svg>
                </button>
          <img alt="avatar" class="ring-white/20 ring-1 w-6 h-6 sm:w-7 sm:h-7 object-cover rounded-full hover:ring-white/40 hover:scale-110 transition-all duration-300 cursor-pointer" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/986db8ed-1c5d-42fb-8c1d-4b3716d2e317_320w.jpg">
        </div>
      </div>

      <div class="grid grid-cols-1 md:grid-cols-3 gap-3 sm:gap-4">
        <aside
          class="rounded-lg border border-white/10 bg-white/5 p-2.5 sm:p-3 backdrop-blur hover:bg-white/[0.07] hover:border-white/20 transition-all duration-300">
          <div class="mb-2 text-xs font-medium text-white/60">Workspace</div>
          <div class="grid gap-1.5 sm:gap-2 text-xs sm:text-sm">
            <button class="group flex items-center justify-between rounded-md px-2 py-1.5 sm:py-2 text-white/80 transition-all duration-200 hover:bg-white/5 hover:text-white">
                    <span class="inline-flex items-center gap-1.5 sm:gap-2">
                      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5 sm:h-4 sm:w-4 opacity-70 group-hover:opacity-100 transition-opacity duration-200"><rect width="18" height="18" x="3" y="3" rx="2" class=""></rect></svg> Overview
                    </span>
                    <span class="rounded-full bg-white/5 px-1.5 py-0.5 text-[10px] text-white/60 ring-1 ring-white/10 group-hover:bg-white/10 group-hover:text-white/80 transition-all duration-200">12</span>
                  </button>
            <button class="group flex items-center justify-between rounded-md px-2 py-1.5 sm:py-2 text-white/80 transition-all duration-200 hover:bg-white/5 hover:text-white">
                    <span class="inline-flex items-center gap-1.5 sm:gap-2">
                      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5 sm:h-4 sm:w-4 opacity-70 group-hover:opacity-100 transition-opacity duration-200"><rect width="7" height="7" x="3" y="3" rx="1" class=""></rect><rect width="7" height="7" x="14" y="3" rx="1" class=""></rect><rect width="7" height="7" x="14" y="14" rx="1" class=""></rect><rect width="7" height="7" x="3" y="14" rx="1" class=""></rect></svg> Designs
                    </span>
                    <span class="rounded-full bg-white/5 px-1.5 py-0.5 text-[10px] text-white/60 ring-1 ring-white/10 group-hover:bg-white/10 group-hover:text-white/80 transition-all duration-200">48</span>
                  </button>
            <button class="group flex items-center justify-between rounded-md px-2 py-1.5 sm:py-2 text-white/80 transition-all duration-200 hover:bg-white/5 hover:text-white">
                    <span class="inline-flex items-center gap-1.5 sm:gap-2">
                      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5 sm:h-4 sm:w-4 opacity-70 group-hover:opacity-100 transition-opacity duration-200"><path d="M3 3v16a2 2 0 0 0 2 2h16" class=""></path><path d="m19 9-5 5-4-4-3 3" class=""></path></svg> Analytics
                    </span>
                    <span class="rounded-full bg-white/5 px-1.5 py-0.5 text-[10px] text-white/60 ring-1 ring-white/10 group-hover:bg-white/10 group-hover:text-white/80 transition-all duration-200">8</span>
                  </button>
            <button class="group flex transition-all duration-200 hover:bg-white/5 hover:text-white text-white/80 rounded-md pt-1.5 pr-2 pb-1.5 pl-2 sm:pt-2 sm:pr-2 sm:pb-2 sm:pl-2 items-center justify-between">
                    <span class="inline-flex items-center gap-1.5 sm:gap-2">
                      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5 sm:h-4 sm:w-4 opacity-70 group-hover:opacity-100 transition-opacity duration-200"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" class=""></path><path d="M14 2v4a2 2 0 0 0 2 2h4" class=""></path><path d="M10 9H8" class=""></path><path d="M16 13H8" class=""></path><path d="M16 17H8" class=""></path></svg> Documents
                    </span>
                    <span class="rounded-full bg-white/5 px-1.5 py-0.5 text-[10px] text-white/60 ring-1 ring-white/10 group-hover:bg-white/10 group-hover:text-white/80 transition-all duration-200">24</span>
                  </button>
            <button class="group flex transition-all duration-200 hover:bg-white/5 hover:text-white text-white/80 rounded-md pt-1.5 pr-2 pb-1.5 pl-2 sm:pt-2 sm:pr-2 sm:pb-2 sm:pl-2 items-center justify-between">
                    <span class="inline-flex items-center gap-1.5 sm:gap-2">
                      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5 sm:h-4 sm:w-4 opacity-70 group-hover:opacity-100 transition-opacity duration-200"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" class=""></path><path d="M14 2v4a2 2 0 0 0 2 2h4" class=""></path><path d="M10 9H8" class=""></path><path d="M16 13H8" class=""></path><path d="M16 17H8" class=""></path></svg> Preferences
                    </span>
                    <span class="rounded-full bg-white/5 px-1.5 py-0.5 text-[10px] text-white/60 ring-1 ring-white/10 group-hover:bg-white/10 group-hover:text-white/80 transition-all duration-200">3</span>
                  </button>
          </div>
        </aside>

        <div class="col-span-1 md:col-span-2 grid grid-cols-1 sm:grid-cols-2 sm:gap-4 gap-x-3 gap-y-3">
          <div
            class="rounded-lg border border-white/10 bg-white/5 p-3 sm:p-4 backdrop-blur hover:bg-white/[0.07] hover:border-white/20 transition-all duration-300">
            <div class="mb-2 sm:mb-3 flex items-center justify-between">
              <span class="text-xs font-medium text-white/60">Recent Activity</span>
              <button class="rounded-md bg-white/5 px-2 py-1 text-[10px] sm:text-xs text-white/70 ring-1 ring-white/10 hover:bg-white/10 hover:ring-white/20 transition-all duration-200">View All</button>
            </div>
            <div class="grid gap-1.5 sm:gap-2">
              <div
                class="flex items-center justify-between rounded-md bg-black/20 px-2 py-1.5 sm:px-3 sm:py-2 ring-1 ring-white/10 hover:bg-black/30 hover:ring-white/20 transition-all duration-200 cursor-pointer">
                <div class="text-xs sm:text-sm text-white/80">UI-3420</div>
                <div class="text-[10px] sm:text-xs text-white/60">Design → Build</div>
                <div class="text-[10px] sm:text-xs text-emerald-400">Done</div>
              </div>
              <div
                class="flex bg-black/20 ring-white/10 ring-1 rounded-md px-2 py-1.5 sm:px-3 sm:py-2 items-center justify-between hover:bg-black/30 hover:ring-white/20 transition-all duration-200 cursor-pointer">
                <div class="text-xs sm:text-sm text-white/80">FE-1892</div>
                <div class="text-[10px] sm:text-xs text-white/60">Code → Review</div>
                <div class="text-[10px] sm:text-xs text-yellow-300">Active</div>
              </div>
              <div
                class="flex bg-black/20 ring-white/10 ring-1 rounded-md pt-1.5 pr-2 pb-1.5 pl-2 sm:pt-2 sm:pr-3 sm:pb-2 sm:pl-3 items-center justify-between hover:bg-black/30 hover:ring-white/20 transition-all duration-200 cursor-pointer">
                <div class="text-xs sm:text-sm text-white/80">DS-5671</div>
                <div class="text-[10px] sm:text-xs text-white/60">Test → Ship</div>
                <div class="text-[10px] sm:text-xs text-yellow-300 xl:text-[#e663f8]">Review</div>
              </div>
              <div
                class="flex bg-black/20 ring-white/10 ring-1 rounded-md pt-1.5 pr-2 pb-1.5 pl-2 sm:pt-2 sm:pr-3 sm:pb-2 sm:pl-3 items-center justify-between hover:bg-black/30 hover:ring-white/20 transition-all duration-200 cursor-pointer">
                <div class="text-xs sm:text-sm text-white/80">PM-2845</div>
                <div class="text-[10px] sm:text-xs text-white/60">Plan → Execute</div>
                <div class="text-[10px] sm:text-xs text-yellow-300 xl:text-[#66a8ff]">Queue</div>
              </div>
              <div
                class="flex bg-black/20 ring-white/10 ring-1 rounded-md pt-1.5 pr-2 pb-1.5 pl-2 sm:pt-2 sm:pr-3 sm:pb-2 sm:pl-3 items-center justify-between hover:bg-black/30 hover:ring-white/20 transition-all duration-200 cursor-pointer">
                <div class="text-xs sm:text-sm text-white/80">BR-7123</div>
                <div class="text-[10px] sm:text-xs text-white/60">Monitor → Fix</div>
                <div class="text-[10px] sm:text-xs text-yellow-300 xl:text-[#6b40e2]">Open</div>
              </div>
            </div>
          </div>

          <div
            class="group overflow-hidden sm:p-4 ring-1 ring-white/10 hover:border-white/20 hover:from-white/[0.07] transition-all duration-300 bg-gradient-to-br from-white/5 to-transparent border-white/10 border rounded-lg pt-3 pr-3 pb-3 pl-3 relative">
            <div class="mb-2 sm:mb-3 flex items-center justify-between">
              <span class="text-xs font-medium text-white/60">Featured Work</span>
              <i data-lucide="cube" class="h-3.5 w-3.5 sm:h-4 sm:w-4 text-white/60 group-hover:text-white/80 transition-colors duration-200"></i>
            </div>
            <div
              class="aspect-[4/3] overflow-hidden rounded-md ring-1 ring-inset ring-white/10 group-hover:ring-white/20 transition-all duration-300">
              <img class="transition duration-700 hover:scale-[1.03] w-full h-full object-cover saturate-100 group-hover:saturate-[1.1]" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/ab0b3891-bc36-4e1f-8314-71ee4161dd3d_3840w.jpg?w=800&amp;q=80" alt="3D render">
            </div>
          </div>

          <div
            class="rounded-lg border border-white/10 bg-white/5 p-3 sm:p-4 backdrop-blur sm:col-span-2 hover:bg-white/[0.07] hover:border-white/20 transition-all duration-300">
            <div class="mb-2 sm:mb-3 flex items-center justify-between">
              <span class="text-xs font-medium text-white/60">Team Notes</span>
              <button class="inline-flex items-center gap-1 rounded-md bg-white/5 px-2 py-1 text-[10px] sm:text-xs text-white/70 ring-1 ring-white/10 hover:bg-white/10 hover:ring-white/20 transition-all duration-200">
                      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-3 w-3 sm:h-3.5 sm:w-3.5"><path d="M5 12h14" class=""></path><path d="M12 5v14" class=""></path></svg>
                      Add Note
                    </button>
            </div>
            <div class="grid gap-2 grid-cols-1 xs:grid-cols-2 sm:grid-cols-3">
              <div
                class="rounded-md bg-black/20 p-2.5 sm:p-3 ring-1 ring-white/10 hover:bg-black/30 hover:ring-white/20 transition-all duration-200 cursor-pointer">
                <div class="text-xs sm:text-sm font-medium text-white/80">Color Refinements</div>
                <p class="mt-1 text-[10px] sm:text-xs text-white/60">Review primary palette and update accent colors for
                  better contrast ratios.</p>
              </div>
              <div
                class="rounded-md bg-black/20 p-2.5 sm:p-3 ring-1 ring-white/10 hover:bg-black/30 hover:ring-white/20 transition-all duration-200 cursor-pointer">
                <div class="text-xs sm:text-sm font-medium text-white/80">Motion Guidelines</div>
                <p class="mt-1 text-[10px] sm:text-xs text-white/60">Document animation curves and duration standards
                  for consistent feel.</p>
              </div>
              <div
                class="rounded-md bg-black/20 p-2.5 sm:p-3 ring-1 ring-white/10 hover:bg-black/30 hover:ring-white/20 transition-all duration-200 cursor-pointer">
                <div class="text-xs sm:text-sm font-medium text-white/80">Component Audit</div>
                <p class="mt-1 text-[10px] sm:text-xs text-white/60">Validate all button variants meet accessibility and
                  usage requirements.</p>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="relative">
        <div
          class="pointer-events-auto -bottom-4 sm:-bottom-6 w-[calc(100%-2rem)] sm:w-[min(100%,340px)] sm:rounded-2xl sm:p-5 hover:border-white/20 hover:from-white/[0.12] transition-all duration-300 cursor-pointer text-white/90 bg-white/10 border-white/10 border ring-white/10 ring-1 rounded-lg my-[-50px] pt-4 pr-4 pb-4 pl-4"
          data-animate="" data-animate-delay="300" "="">
          <div class=" flex items-start justify-between">
          <div class="">
            <div class="sm:text-sm text-xs font-medium tracking-tight">Interface Design Mastery</div>
            <p class="mt-1 text-[10px] sm:text-xs text-white/70">
              Learn the core principles of building scalable design systems that empower product teams and delight
              users.
            </p>
          </div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
            stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
            class="h-4 w-4 sm:h-5 sm:w-5 text-white/70 flex-shrink-0 ml-2">
            <path
              d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"
              class=""></path>
            <path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12" class=""></path>
            <path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17" class=""></path>
          </svg>
        </div>
        <div class="flex mt-2 sm:mt-3 items-center justify-between flex-wrap gap-2">
          <div
            class="inline-flex items-center gap-1.5 sm:gap-2 rounded-md bg-black/30 px-2 py-1 text-[10px] sm:text-[11px] text-white/70 ring-1 ring-white/10">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
              stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
              class="h-3 w-3 sm:h-3.5 sm:w-3.5">
              <path d="M8 2v4" class=""></path>
              <path d="M16 2v4" class=""></path>
              <rect width="18" height="18" x="3" y="4" rx="2" class=""></rect>
              <path d="M3 10h18" class=""></path>
            </svg>
            8 lessons
          </div>
          <button class="inline-flex shadow-indigo-500/30 transition-all duration-200 hover:scale-[1.02] hover:shadow-indigo-500/50 text-[10px] sm:text-xs font-semibold text-white tracking-tight border-[#ffffff]/5 border rounded-md pt-1.5 pr-2.5 pb-1.5 pl-2.5 sm:pt-1.5 sm:pr-3 sm:pb-1.5 sm:pl-3 backdrop-blur-lg gap-x-1.5 gap-y-1.5 items-center">
                  Start course
                  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-3 w-3 sm:h-3.5 sm:w-3.5"><path d="M5 12h14" class=""></path><path d="m12 5 7 7-7 7" class=""></path></svg>
                </button>
        </div>
      </div>
    </div>
  </div>


  <!-- Reusable ORBIT component -->
  <div class="pointer-events-none absolute -right-20 top-16 hidden sm:block">
    <div
      class="relative flex items-center justify-center rounded-full bg-white/5 p-3 ring-1 ring-white/10 backdrop-blur">
      <!-- BIG ORBIT (e.g., 98) -->
      <div class="size-28">
        <div class="relative size-full">
          <!-- SVG Orbit -->
          <svg viewBox="0 0 200 200" class="block size-full overflow-visible" data-orbit="" value="98"
            data-label="PERFORMANCE">
            <!-- defs: gradients & filters -->
            <defs class="">
              <!-- soft outer glow -->
              <filter id="outerGlow" x="-50%" y="-50%" width="200%" height="200%" class="">
                <feGaussianBlur stdDeviation="6" result="blur" class=""></feGaussianBlur>
                <feMerge class="">
                  <feMergeNode in="blur" class=""></feMergeNode>
                  <feMergeNode in="SourceGraphic" class=""></feMergeNode>
                </feMerge>
              </filter>

              <!-- inner shadow -->
              <filter id="innerShadow" x="-50%" y="-50%" width="200%" height="200%" class="">
                <feOffset dx="0" dy="2" class=""></feOffset>
                <feGaussianBlur stdDeviation="3" result="blur" class=""></feGaussianBlur>
                <feComposite in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="inner" class="">
                </feComposite>
                <feColorMatrix in="inner" type="matrix" values="
                0 0 0 0 0
                0 0 0 0 0
                0 0 0 0 0
                0 0 0 0.55 0" class=""></feColorMatrix>
                <feComposite in="SourceGraphic" class=""></feComposite>
              </filter>

              <!-- progress gradient (steel -> blue) -->
              <linearGradient id="arcGrad" x1="0" y1="0" x2="1" y2="1" class="">
                <stop offset="0%" stop-color="#C8D5FF" class=""></stop>
                <stop offset="40%" stop-color="#7FB2FF" class=""></stop>
                <stop offset="100%" stop-color="#3A83FF" class=""></stop>
              </linearGradient>

              <!-- bevel highlight -->
              <linearGradient id="bevel" x1="0" y1="0" x2="0" y2="1" class="">
                <stop offset="0%" stop-color="rgba(255,255,255,.45)" class=""></stop>
                <stop offset="100%" stop-color="rgba(255,255,255,.06)" class=""></stop>
              </linearGradient>

              <!-- text path circle -->
              <path id="textCircleLarge" d="M100,100 m-94,0 a94,94 0 1,1 188,0 a94,94 0 1,1 -188,0" class=""></path>
            </defs>

            <!-- background glass disc -->
            <g filter="url(#innerShadow)" class="">
              <circle cx="100" cy="100" r="84" fill="rgba(10,14,20,0.9)" class=""></circle>
              <!-- faint rim -->
              <circle cx="100" cy="100" r="84" fill="none" stroke="url(#bevel)" stroke-width="2" class=""></circle>
              <!-- outer rim -->
              <circle cx="100" cy="100" r="94" fill="none" stroke="rgba(255,255,255,.08)" stroke-width="2" class="">
              </circle>
            </g>

            <!-- tiny tick marks ring -->
            <circle cx="100" cy="100" r="92" fill="none" stroke="rgba(190,200,220,.18)" stroke-width="2"
              stroke-dasharray="2 10" transform="rotate(-90 100 100)" class=""></circle>

            <!-- progress arc base -->
            <circle cx="100" cy="100" r="78" fill="none" stroke="rgba(255,255,255,.10)" stroke-width="10"
              stroke-linecap="round" transform="rotate(-90 100 100)" class=""></circle>

            <!-- progress arc -->
            <circle cx="100" cy="100" r="78" fill="none" stroke="url(#arcGrad)" stroke-width="10" stroke-linecap="round"
              transform="rotate(-90 100 100)" style="filter:url(#outerGlow)" data-arc="" stroke-dasharray="490.09"
              stroke-dashoffset="490.09" class=""></circle>

            <!-- glossy cap highlight (little white nub at arc end) -->
            <circle r="5" fill="#EAF1FF" opacity=".95" data-cap="" cx="90.22" cy="22.62" class=""></circle>

            <!-- spinning radial label (only this rotates) -->
            <g style="transform-origin:100px 100px; animation: orbitSpin 18s linear infinite;" class="">
              <text font-size="12" fill="rgba(220,230,255,.32)" letter-spacing="2" class="">
                <textPath href="#textCircleLarge" startOffset="0%" class="">
                  <tspan class="">• </tspan>
                  <tspan class="">PERFORMANCE</tspan>
                  <tspan class=""> • </tspan>
                  <tspan class="">PERFORMANCE</tspan>
                  <tspan class=""> • </tspan>
                  <tspan class="">PERFORMANCE</tspan>
                  <tspan class=""> • </tspan>
                  <tspan class="">PERFORMANCE</tspan>
                </textPath>
              </text>
            </g>
          </svg>

          <!-- center value -->
          <span class="absolute inset-0 grid place-items-center text-white text-4xl font-semibold" data-value="">98</span>
        </div>
      </div>
    </div>
  </div>

  <!-- SMALL ORBIT (e.g., 50%) -->
  <div class="pointer-events-none absolute -left-20 bottom-0 hidden sm:block">
    <div
      class="relative flex items-center justify-center rounded-full bg-white/5 p-3 ring-1 ring-white/10 backdrop-blur">
      <div class="size-24">
        <div class="relative size-full">
          <svg viewBox="0 0 200 200" class="block size-full" data-orbit="" value="50" data-suffix="%"
            data-label="PERFORMANCE">
            <use href="#textCircle" style="display: none;" class=""></use> <!-- reuses defs logic -->
            <!-- (same defs block as above—duplicate the first <defs> inside this SVG or keep once globally in your page head) -->

            <defs class="">
              <filter id="outerGlow2" x="-50%" y="-50%" width="200%" height="200%" class="">
                <feGaussianBlur stdDeviation="5" result="blur" class=""></feGaussianBlur>
                <feMerge class="">
                  <feMergeNode in="blur" class=""></feMergeNode>
                  <feMergeNode in="SourceGraphic" class=""></feMergeNode>
                </feMerge>
              </filter>
              <filter id="innerShadow2" x="-50%" y="-50%" width="200%" height="200%" class="">
                <feOffset dx="0" dy="2" class=""></feOffset>
                <feGaussianBlur stdDeviation="2" result="blur" class=""></feGaussianBlur>
                <feComposite in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="inner" class="">
                </feComposite>
                <feColorMatrix in="inner" type="matrix" values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.55 0" class="">
                </feColorMatrix>
                <feComposite in="SourceGraphic" class=""></feComposite>
              </filter>
              <linearGradient id="arcGrad2" x1="0" y1="0" x2="1" y2="1" class="">
                <stop offset="0%" stop-color="#D8E3FF" class=""></stop>
                <stop offset="40%" stop-color="#93BDFF" class=""></stop>
                <stop offset="100%" stop-color="#4E8FFF" class=""></stop>
              </linearGradient>
              <linearGradient id="bevel2" x1="0" y1="0" x2="0" y2="1" class="">
                <stop offset="0%" stop-color="rgba(255,255,255,.5)" class=""></stop>
                <stop offset="100%" stop-color="rgba(255,255,255,.06)" class=""></stop>
              </linearGradient>
            </defs>

            <g filter="url(#innerShadow2)" class="">
              <circle cx="100" cy="100" r="84" fill="rgba(10,14,20,0.9)" class=""></circle>
              <circle cx="100" cy="100" r="84" fill="none" stroke="url(#bevel2)" stroke-width="2" class=""></circle>
              <circle cx="100" cy="100" r="94" fill="none" stroke="rgba(255,255,255,.08)" stroke-width="2" class="">
              </circle>
            </g>

            <circle cx="100" cy="100" r="92" fill="none" stroke="rgba(190,200,220,.25)" stroke-width="2"
              stroke-dasharray="2 10" transform="rotate(-90 100 100)" class=""></circle>

            <circle cx="100" cy="100" r="78" fill="none" stroke="rgba(255,255,255,.10)" stroke-width="10"
              stroke-linecap="round" transform="rotate(-90 100 100)" class=""></circle>

            <circle cx="100" cy="100" r="78" fill="none" stroke="url(#arcGrad2)" stroke-width="10"
              stroke-linecap="round" transform="rotate(-90 100 100)" style="filter:url(#outerGlow2)" data-arc=""
              stroke-dasharray="490.09" stroke-dashoffset="490.09" class=""></circle>

            <circle r="5" fill="#EAF1FF" opacity=".95" data-cap="" cx="100.00" cy="178.00" class=""></circle>
          </svg>

          <span class="absolute inset-0 grid place-items-center text-white text-xl font-semibold" data-value="">50%</span>
        </div>
      </div>
    </div>
  </div>

  <!-- Tiny script to set value & animate arcs -->
  <script>
    document.querySelectorAll('svg[data-orbit]').forEach(svg => {
    const val = Number(svg.getAttribute('value') || 0);           // 0..100
    const suffix = svg.getAttribute('data-suffix') || '';         // e.g. "%"
    const label = svg.getAttribute('data-label') || 'PERFORMANCE';

    const r = 78;                                                 // must match arc r
    const C = 2 * Math.PI * r;
    const arc = svg.querySelector('[data-arc]');
    arc.setAttribute('stroke-dasharray', C.toFixed(2));
    arc.setAttribute('stroke-dashoffset', C.toFixed(2));
    // animate
    requestAnimationFrame(() => {
      arc.style.transition = 'stroke-dashoffset 900ms cubic-bezier(.22,.9,.2,1)';
      arc.setAttribute('stroke-dashoffset', ((100 - val) / 100 * C).toFixed(2));
    });

    // cap position at arc end
    const cap = svg.querySelector('[data-cap]');
    const endAngle = -Math.PI / 2 + (val / 100) * 2 * Math.PI;   // starts at top
    const cx = 100 + r * Math.cos(endAngle);
    const cy = 100 + r * Math.sin(endAngle);
    cap.setAttribute('cx', cx.toFixed(2));
    cap.setAttribute('cy', cy.toFixed(2));

    // center number
    const valueSpan = svg.parentElement.querySelector('[data-value]');
    if (valueSpan) valueSpan.textContent = val + suffix;

    // radial label text (optional)
    svg.querySelectorAll('tspan[data-label]').forEach(n => n.textContent = label);
  });
  </script>
  <style>
    @keyframes orbitSpin {
      from {
        transform: rotate(0deg);
      }

      to {
        transform: rotate(360deg);
      }
    }
  </style>

</div>
</div>
All Prompts