<?php 
use nstdio\svg\container\Defs; 
use nstdio\svg\container\G; 
use nstdio\svg\container\SVG; 
use nstdio\svg\gradient\UniformGradient; 
use nstdio\svg\shape\Rect; 
use nstdio\svg\text\Text; 
 
require_once __DIR__ . '/../vendor/autoload.php'; 
 
$style = ['stroke' => 'lightgray', 'stroke-width' => 0.5, 'rx' => 3, 'ry' => 3,]; 
$colors = ['#1D4350', '#A43931']; 
 
$svg = new SVG(800, 800); 
 
$defs = new Defs($svg); 
$g1 = new G($svg); 
 
 
$linearGradient = UniformGradient::verticalFromTop($defs, $colors); 
$rect = (new Rect($g1, 100, 150, 3, 3))->apply($style)->applyGradient($linearGradient); 
(new Text($g1, "Top Bottom"))->apply(['x' => 3, 'y' => $rect->height + 20]); 
 
$verticalFromBottom = UniformGradient::verticalFromBottom($defs, $colors); 
$rect2 = (new Rect($g1, 100, 150, 160, 3))->apply($style)->applyGradient($verticalFromBottom); 
(new Text($g1, "Bottom Top"))->apply(['x' => $rect2->x, 'y' => $rect2->height + 20]); 
 
$diagonalFromTopLeft = UniformGradient::diagonalFromTopLeft($defs, ['#D38312', '#A83279']); 
$rect3 = (new Rect($g1, 100, 150, 3, $rect2->height + 33))->apply($style)->applyGradient($diagonalFromTopLeft); 
(new Text($g1, "From Top Left"))->apply(['x' => $rect3->x, 'y' => 250]); 
 
$diagonalFromBottomRight = UniformGradient::diagonalFromBottomRight($defs, ['#D38312', '#A83279']); 
$rect3 = (new Rect($g1, 100, 150, $rect2->x, $rect2->height + 33))->apply($style)->applyGradient($diagonalFromBottomRight); 
(new Text($g1, "From Bottom Right"))->apply(['x' => $rect3->x, 'y' => 250]); 
 
$diagonalFromBottomLeft = UniformGradient::diagonalFromBottomLeft($defs, ['#D38312', '#A83279']); 
$rect3 = (new Rect($g1, 100, 150, 316, $rect2->height + 33))->apply($style)->applyGradient($diagonalFromBottomLeft); 
(new Text($g1, "From Bottom Left"))->apply(['x' => $rect3->x, 'y' => 250]); 
 
$diagonalFromTopRight = UniformGradient::diagonalFromTopRight($defs, ['#D38312', '#A83279']); 
$rect3 = (new Rect($g1, 100, 150, 471, $rect2->height + 33))->apply($style)->applyGradient($diagonalFromTopRight); 
(new Text($g1, "From Top Right"))->apply(['x' => $rect3->x, 'y' => 250]); 
 
$horizontalFromLeft = UniformGradient::horizontalFromLeft($defs, ['#780206', '#061161']); 
$rect3 = (new Rect($g1, 100, 150, 3, 2 * $rect2->height + 66))->apply($style)->applyGradient($horizontalFromLeft); 
(new Text($g1, "From Left Right"))->apply(['x' => $rect3->x, 'y' => 385]); 
 
$horizontalFromRight = UniformGradient::horizontalFromRight($defs, ['#780206', '#061161']); 
$rect3 = (new Rect($g1, 100, 150, 160, 2 * $rect2->height + 66))->apply($style)->applyGradient($horizontalFromRight); 
(new Text($g1, "From Right Left"))->apply(['x' => $rect3->x, 'y' => 385]); 
 
$radialTopLeft = UniformGradient::radialTopLeft($defs, ['#000', '#e74c3c']); 
$rect3 = (new Rect($g1, 100, 150, 3, 3 * $rect2->height + 96))->apply($style)->applyGradient($radialTopLeft); 
(new Text($g1, "Radial Top Left"))->apply(['x' => $rect3->x, 'y' => 515]); 
 
 
$radialTopRight = UniformGradient::radialTopRight($defs, ['#000', '#e74c3c']); 
$rect3 = (new Rect($g1, 100, 150, 160, 3 * $rect2->height + 96))->apply($style)->applyGradient($radialTopRight); 
(new Text($g1, "Radial Top Right"))->apply(['x' => $rect3->x, 'y' => 515]); 
 
$radialBottomRight = UniformGradient::radialBottomRight($defs, ['#000', '#e74c3c']); 
$rect3 = (new Rect($g1, 100, 150, 316, 3 * $rect2->height + 96))->apply($style)->applyGradient($radialBottomRight); 
(new Text($g1, "Radial Bottom Right"))->apply(['x' => $rect3->x, 'y' => 515]); 
 
 
$radialBottomLeft = UniformGradient::radialBottomLeft($defs, ['#000', '#e74c3c']); 
$rect3 = (new Rect($g1, 100, 150, 471, 3 * $rect2->height + 96))->apply($style)->applyGradient($radialBottomLeft); 
(new Text($g1, "Radial Bottom Left"))->apply(['x' => $rect3->x, 'y' => 515]); 
 
 
$radialTopCenter = UniformGradient::radialTopCenter($defs, ['#000', '#e74c3c']); 
$rect3 = (new Rect($g1, 100, 150, 3, 4 * $rect3->height + 126))->apply($style)->applyGradient($radialTopCenter); 
(new Text($g1, "Radial Top Center"))->apply(['x' => $rect3->x, 'y' => 645]); 
 
$radialLeftCenter = UniformGradient::radialLeftCenter($defs, ['#000', '#e74c3c']); 
$rect3 = (new Rect($g1, 100, 150, 160, 4 * $rect3->height + 126))->apply($style)->applyGradient($radialLeftCenter); 
(new Text($g1, "Radial Left Center"))->apply(['x' => $rect3->x, 'y' => 645]); 
 
 
$radialBottomCenter = UniformGradient::radialBottomCenter($defs, ['#000', '#e74c3c']); 
$rect3 = (new Rect($g1, 100, 150, 316, 4 * $rect2->height + 126))->apply($style)->applyGradient($radialBottomCenter); 
(new Text($g1, "Radial Bottom Center"))->apply(['x' => $rect3->x, 'y' => 645]); 
 
 
$radialBottomRight = UniformGradient::radialRightCenter($defs, ['#000', '#e74c3c']); 
$rect3 = (new Rect($g1, 100, 150, 471, 4 * $rect2->height + 126))->apply($style)->applyGradient($radialBottomRight); 
(new Text($g1, "Radial Right Center"))->apply(['x' => $rect3->x, 'y' => 645]); 
 
echo $svg->draw();
 
 |