CoodeVerse Enhanced View More Button is a free, downloadable HTML CSS JS UI component. Features: CSS glassmorphism (background:rgba(255,255,255,0.05), backdrop-filter:blur(14px), border:2px solid rgba(255,255,255,0.15)), sweeping shine on hover via ::before pseudo-element (skewX(-25deg), left transitions from -120% to 120% in 0.5s), scale + purple glow hover (transform:scale(1.1), box-shadow:0 0 35px 8px rgba(124,58,237,0.8)), SVG arrow animation on hover (translateX(8px) rotate(15deg), stroke changes to cyan --accent1), click-triggered loading spinner (@keyframes spin 0.8s linear infinite, border-top-color:cyan, display:none toggled by JS), text changes from "View More" → "Loading..." then resets after setTimeout 2000ms. Zero libraries. Free under CC BY 4.0.
Free
Enhanced View More Button updated for 2026 — CSS shine, purple glow, loading spinner →
View & Download →
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.
Free downloadable enhanced view more button UI component. CSS glassmorphism with backdrop-filter blur, ::before pseudo-element skewX shine hover sweep, box-shadow purple glow on hover with scale transform, SVG arrow translateX rotate animation, click-triggered CSS @keyframes spinner, JavaScript loading state with setTimeout 2s reset. No libraries. Download full source code free.
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!
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.
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.