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!
