✓ 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 JSRGB Color GameFB Login CloneDominoes Game • style="color:inherit;">PEAK Fitness • AETHER PageEpic Delete • style="color:inherit;">Neon Toggle • All ProjectsHTML & CSS CourseCSS CourseJS CourseAll 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 →