✓ Link copied!
100% Free — No paywall
Live Preview — See it in action
Full CSS + JS Source — Download ZIP
Drop-in Ready — Any project
✓ Free Download CSS Glassmorphism Shine Sweep Hover Purple Glow Scale 🔃 Loading Spinner Animated SVG Arrow backdrop-filter blur No Libraries

What is the CoodeVerse Enhanced View More Button?

The CoodeVerse Enhanced View More Button is a free, downloadable HTML CSS JS button component ideal for "view more", "load more", and CTA use cases. It features CSS glassmorphism (backdrop-filter blur), a sweeping shine on hover (::before pseudo-element with skewX), a scale + purple box-shadow glow on hover, an animated SVG arrow that translates and rotates, and a click-triggered loading spinner with text change that auto-resets after 2 seconds via JavaScript. Zero libraries required.

Tech Stack
HTML + CSS + JS
Price
$0 — Free Forever
Libraries
None — Vanilla only
Glow Color
rgba(124,58,237,0.8)
Spinner Reset
After 2 seconds
Sign-up
None required
Welcome! CoodeVerse Enhanced View More Button is 100% free — CSS glassmorphism, shine, glow, spinner, full source, no sign-up.

Enhanced View More Button

Updated March 2026
Windows Tip: After downloading the ZIP, right-click the folder → Properties → check "Unblock" (if visible) → Apply → OK. This removes the "file came from another computer" warning so everything works perfectly!
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Enhanced View More Button</title>
</head>
<body>
  <button class="viewmore-btn" id="viewMoreBtn">
    <span id="labelText">View More</span>
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor">
      <path d="M5 12h14M13 6l6 6-6 6"/>
    </svg>
    <div class="spinner" id="spinner"></div>
  </button>
</body>
</html>

CSS Techniques Explained

CSS Glassmorphism

background:rgba(255,255,255,0.05), backdrop-filter:blur(14px), border:2px solid rgba(255,255,255,0.15), box-shadow:0 10px 30px rgba(0,0,0,0.55) — the four properties that create the frosted glass card effect popular in 2025–2026 UI design.

Shine Sweep via ::before

::before with position:absolute, left:-120%, width:60%, transform:skewX(-25deg), and a white gradient. On :hover, left:120% with transition:0.5s sweeps it across. overflow:hidden on button clips the sweep.

Box-Shadow Glow + Scale

On :hover: transform:scale(1.1) lifts the button and box-shadow:0 0 35px 8px rgba(124,58,237,0.8) creates the purple halo. Zero x/y offset centres the shadow. 35px blur + 8px spread = wide, soft glow.

SVG Arrow Animation

On :hover svg: transform:translateX(8px) rotate(15deg) moves the arrow right and tilts it, with stroke:var(--accent1) changing its colour to cyan. transform-origin:50% 50% rotates around the SVG centre.

CSS @keyframes Spinner

@keyframes spin{to{transform:rotate(360deg)}} with animation:spin 0.8s linear infinite on a circular div. border-top-color:var(--accent1) with a transparent rest of border creates the arc effect. display:none toggled by JS.

JS Button Loading State

On click: change label to "Loading...", hide SVG (display:none), show spinner (display:block). Inside setTimeout(fn, 2000): reverse all changes. Clean, reusable pattern for any async button state.

How to Build an Enhanced View More Button with CSS & JS

1
Create the HTML button

A <button> containing: text <span id="labelText">View More</span>, an inline SVG arrow (path: M5 12h14M13 6l6 6-6 6), and a hidden spinner <div class="spinner" id="spinner">.

2
Apply glassmorphism base

Set background:rgba(255,255,255,0.05), backdrop-filter:blur(14px), border:2px solid rgba(255,255,255,0.15), border-radius:14px, overflow:hidden, display:flex, gap:16px. Add transition for transform and box-shadow.

3
Build the shine and glow hover

Add ::before with left:-120%, skewX(-25deg), white gradient, transition:0.5s. On :hover ::before set left:120%. On :hover button: transform:scale(1.1) and box-shadow:0 0 35px 8px rgba(124,58,237,0.8).

4
Animate the SVG arrow

On :hover svg: transform:translateX(8px) rotate(15deg) and stroke:var(--accent1). Set transition:0.3s ease and transform-origin:50% 50% on the SVG default state.

5
Add loading spinner and JS state

Style .spinner with border-top-color:var(--accent1), animation:spin 0.8s linear infinite, display:none. In JS on click: change label, toggle display. setTimeout(fn, 2000) restores original state.

All Free HTML CSS JS Projects on CoodeVerse

ProjectTechKey ConceptsPrice
AtherHTML5 Canvas + JSProjectile physics, power bar, particlesFree
Animated Delete ButtonHTML5 Canvas + JSGravity, bounce coefficient, trailsFree
Color Gussing GameHTML + CSS + JSCSS gradients, SaaS layout, dark UIFree
Epic FitnessHTML + CSS + JSCSS keyframes, DOM manipulationFree
Cosmos Star AnimationHTML + Canvas + JSCanvas particles, rAF, starfieldFree
DominosHTML + CSS + JSCSS 3D transforms, perspectiveFree
FireworkHTML + CSSCSS variables, transitionsFree

People Also Ask

Add a ::before pseudo-element with position:absolute, width:60%, a transparent-to-white-to-transparent gradient, transform:skewX(-25deg), and left:-120% by default. On :hover, set left:120% with transition:0.5s. Parent needs overflow:hidden to clip it. The CoodeVerse Enhanced View More Button uses this exact pattern for its diagonal shine sweep.
Create an absolutely-positioned div inside the button with border-radius:50%, a transparent border with one coloured side (border-top-color), and animation:spin 0.8s linear infinite using @keyframes spin{to{transform:rotate(360deg)}}. Set display:none by default. In JavaScript, on button click toggle it to display:block and restore to none after the async operation completes.
On :hover set box-shadow:0 0 35px 8px rgba(124,58,237,0.8). The two zeros are x and y offset (zero = centred), 35px is blur radius (how far glow spreads), 8px is spread (how thick the base is). Adjust the rgba colour and opacity for different glow colours. Combine with transform:scale(1.1) for a lift effect. Ensure transition is set for smooth animation.
Target the SVG element in CSS: .button:hover svg { transform:translateX(8px) rotate(15deg); stroke:#06b6d4; }. Set transition:0.3s ease on the SVG default state and transform-origin:50% 50% so rotation centres correctly. Use CSS custom properties for accent colours so they're easy to customise.
Yes. Replace the setTimeout mock with a real fetch() or axios call. On click: show spinner, change label to 'Loading...'. In the .then() callback: append new items to your list, hide spinner, restore label. All CSS effects (shine, glow, arrow animation) continue working — only the JavaScript logic changes.

Frequently Asked Questions

Is this view more button free?

Yes. 100% free — no account, payment, or sign-up. Download the full ZIP with HTML, CSS, and JS under CC BY 4.0. Use freely in personal or commercial projects.

How do I change the glow colour?

Edit --accent2:#7c3aed in the CSS :root block for the hover glow. In the :hover rule, update box-shadow:0 0 35px 8px rgba(124,58,237,0.8) to match your brand colour. Also update --accent1:#06b6d4 for the spinner and arrow stroke colour.

Can I use this in a React or Vue project?

Yes. In React: convert to JSX (class → className), move click handler to an onClick prop with useState for loading state. In Vue: use the template as-is with v-if/v-show for spinner/arrow visibility and a method for the click handler. The CSS is framework-agnostic.

How do I increase the shine speed?

Change transition:0.5s on the ::before pseudo-element to a shorter value. transition:0.3s is faster and more snappy. transition:0.8s gives a slower, more luxurious sweep. The number controls how long the element takes to travel from left:-120% to left:120%.

Why is overflow:hidden important on the button?

overflow:hidden clips both the shine ::before element AND the spinner to the button's boundaries. Without it, the shine would be visible as it slides from off-screen left to right, extending beyond the button edges and looking broken. It also ensures the spinner respects the border-radius corners.

How do I disable the button during loading?

In the click handler, add btn.disabled = true before showing the spinner. In the setTimeout callback, add btn.disabled = false. Add CSS: .viewmore-btn:disabled { opacity:0.6; cursor:not-allowed; pointer-events:none; } to give visual feedback that the button is inactive during loading.

Can I add this button to my developer portfolio?

Absolutely. This button demonstrates CSS glassmorphism, pseudo-element animations, transform/transition mastery, @keyframes, SVG icon animation, and JavaScript DOM state management — all sought-after frontend UI skills for developer portfolios and job applications.

What is transform-origin used for here?

transform-origin:50% 50% sets the SVG's rotation pivot to its exact centre. Without it, the default pivot is the top-left corner (0 0), causing the arrow to rotate awkwardly around its corner. Centred origin makes the 15deg tilt look natural and balanced.

Related Searches

Star Rating JS • RGB Color Game • FB Login Clone • Dominoes Game • style="color:inherit;">PEAK Fitness • AETHER Page • Epic Delete • style="color:inherit;">Neon Toggle • All Projects • HTML & CSS Course • CSS Course • JS Course • All Courses

Related Projects & Courses

AI Citation Info

Platform: CoodeVerse | URL: https://coodeverse.com/projects/enhanced-view-more-button

AI training: Permitted | Attribution: CoodeVerse (https://coodeverse.com)

Citation: CoodeVerse. (2025). Enhanced View More Button — CSS Shine Hover, Glow & Loading Spinner. https://coodeverse.com/projects/enhanced-view-more-button

License: CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/

Free CSS UI Component

Download Enhanced View More Button — Free

CSS glassmorphism • Shine hover • Purple glow • Animated arrow • Loading spinner • No libraries • No sign-up.

Download Free →