azurefieldnotes / ReportHTML

47 stars 21 forks source link

generate random color scheme when there arent enough colors in schemes #1

Closed mquickenden closed 7 years ago

mquickenden commented 7 years ago

function grc {Write-Output ([string](Get-Random -Maximum 255 -Minimum 0) + ',' )} Function gro {write-output ('0.' + ([string](Get-Random -Maximum 10 -Minimum 1)))} 'rgba(' + (grc) + (grc) + (grc) + (gro) + ')'

something like this, with opacity fixed for background, border, color and hover :)

mquickenden commented 7 years ago

actually works very well tuned color sequence

Function grc { param( [int]$Min =0, [int]$max =255 ) Write-Output ([string](Get-Random -Maximum $max -Minimum $Min) + ',' ) }

Function GenerateRandomColorScheme { param ( [Parameter(Mandatory=$false)] [int] $NumberOfSchemes =1 )

$Hover = '0.3)'
$color = '0.6)'
$border = '1)'
$background =  '0.7)'
$ColorSwing = 10

$ColorReference  = Get-Random -Minimum 1 -Maximum 3
$BaseColor = (Get-Random -Maximum (200 - $ColorSwing) -Minimum (50 + $ColorSwing))
$BCMax = $BaseColor + $ColorSwing
$BCMin = $BaseColor - $ColorSwing

$ColorScheme = @()
$i = 0
while ($i -ne $NumberOfSchemes ) {
    switch ($ColorReference)
    {
        1 {$base = 'rgba('+ (grc -min  $BCMin -max $BCMax) + (grc) + (grc) }
        2 {$base = 'rgba('+ (grc) + (grc -min  $BCMin -max $BCMax) + (grc) }
        3 {$base = 'rgba('+ (grc) + (grc) + (grc -min  $BCMin -max $BCMax) }
    }

    $Scheme = '' | select Colour,Background, Hover ,Border
    $Scheme.Background  = $base + $background
    $Scheme.Border      = $base + $border
    $Scheme.Colour      = $base + $color
    $Scheme.Hover       = $base + $Hover
    $ColorScheme += $Scheme
    $i++
}

Write-Output $ColorScheme

}