A stunning and customizable God Rays (Light Rays) effect component for Vue applications. Create atmospheric lighting effects with ease, perfect for adding dramatic flair to your web projects.
This component is a Vue implementation inspired by and based on the original Framer University Light Rays component. Special thanks to Framer University for their excellent original work.
- 🎨 Multiple color modes (single, multi, random)
- ⚡ Smooth animation controls
- 🎛️ Fully customizable rays (count, reach, intensity)
- 📱 Responsive design
- 🎯 Precise positioning control
- 🎨 Custom background color support
npm install vue-godrays # or yarn add vue-godrays<template> <GodRays :animation="{ animate: true, speed: 1 }" :raysColor="{ mode: 'single', color: '#ffffff' }" :intensity="0.8" :rays="20" /> </template> <script> import { GodRays } from "vue-godrays"; export default { components: { GodRays, }, }; </script>| Prop | Type | Default | Description |
|---|---|---|---|
animation | Object | { animate: true, speed: 1 } | Controls animation state and speed |
raysColor | Object | { mode: 'single', color: '#ffffff' } | Defines ray coloring mode and colors |
backgroundColor | string | '#000000' | Background color of the component |
intensity | number | 0.7 | Intensity of the rays (0.0 - 1.0) |
rays | number | 15 | Number of light rays |
reach | number | 1 | How far the rays extend |
position | number | 50 | Center position of rays (0 - 100) |
radius | string | '50%' | Radius of the light source |
style | Object | {} | Additional CSS styles |
The component supports three color modes through the raysColor prop:
- Single Color Mode
:raysColor="{ mode: 'single', color: '#ffffff' }"- Multi Color Mode
:raysColor="{ mode: 'multi', color1: '#ff0000', color2: '#00ff00' }"- Random Color Mode
:raysColor="{ mode: 'random' }"<GodRays :animation="{ animate: true, speed: 1 }" :raysColor="{ mode: 'single', color: '#ffffff' }" :intensity="0.8" :rays="20" /><GodRays :animation="{ animate: true, speed: 0.5 }" :raysColor="{ mode: 'multi', color1: '#ff0000', color2: '#ffd700' }" :intensity="1" :rays="30" :reach="1.5" backgroundColor="#000000" /><GodRays :animation="{ animate: true, speed: 0.3 }" :raysColor="{ mode: 'single', color: '#4a90e2' }" :intensity="0.4" :rays="15" :reach="0.8" backgroundColor="rgba(0,0,0,0.8)" />The component includes full TypeScript support with the following interface:
export interface GodRaysProps { animation?: { animate: boolean; speed: number; }; raysColor?: { mode: "single" | "multi" | "random"; color?: string; color1?: string; color2?: string; }; backgroundColor?: string; intensity?: number; rays?: number; reach?: number; position?: number; radius?: string; style?: Record<string, string | number>; }Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
MIT License - feel free to use this component in your projects!
- Original concept and design by Framer University
- Vue implementation developed with ❤️ by Liam Robinson
If you find this component useful, please consider giving it a ⭐️ on GitHub!
