library-ts/browser/colors/ColorStop.ts

63 lines
1.2 KiB
TypeScript

import { HTMLColor } from "./HTMLColor";
export class ColorStop
{
color:HTMLColor;
stop:number;
static create( color:HTMLColor, stop:number )
{
let cs = new ColorStop();
cs.color = color;
cs.stop = stop;
return cs;
}
getLengthCSS()
{
return `${this.color.toString()} ${this.stop}%`;
}
getDegreesCSS()
{
return `${this.color.toString()} ${this.stop}deg`;
}
static createFrom( colors:HTMLColor[], scale = 1 )
{
let colorStops:ColorStop[] = [];
let normalizer = 100 / ( colors.length -1 );
for ( let i = 0; i < colors.length; i++ )
{
let colorStop = new ColorStop();
colorStop.color = colors[ i ];
colorStop.stop = i * normalizer * scale;
colorStops.push( colorStop );
}
return colorStops;
}
static createEqualSpread( factor:number, ...colors:HTMLColor[] )
{
let normalizer = factor / ( colors.length - 1 );
let colorStops:ColorStop[] = [];
for ( let i = 0; i < colors.length; i++ )
{
let colorStop = new ColorStop();
colorStop.color = colors[ i ];
colorStop.stop = i * normalizer;
colorStops.push( colorStop );
}
return colorStops;
}
}