@@ -1333,7 +1333,13 @@ <h2 id="summoning">Summoning</h2>
13331333 </ p >
13341334 < div class ="code-example ">
13351335 < button data-copy-code > Copy Code</ button >
1336- < pre class ="code-ex "> < code class ="language-js " data-code ="summoning "> </ code > </ pre >
1336+ < pre class ="code-ex "> < code class ="language-js " data-code ="summoning "> new Poline({
1337+ anchorColors: [
1338+ [120, 0.71, 0.80],
1339+ [202, 0.03, 0.18],
1340+ //... more colors
1341+ ],
1342+ });</ code > </ pre >
13371343 </ div >
13381344 < p >
13391345 To create a palette, "< strong class ="t "> Poline</ strong > " requires at least two anchor points, but the number of anchors you can provide is limitless.
@@ -1363,7 +1369,9 @@ <h2 id="points">Points</h2>
13631369 </p-->
13641370 < div class ="code-example ">
13651371 < button data-copy-code > Copy Code</ button >
1366- < pre class ="code-ex "> < code class ="language-js " data-code ="points "> </ code > </ pre >
1372+ < pre class ="code-ex "> < code class ="language-js " data-code ="points "> new Poline({
1373+ numPoints: 6,
1374+ });</ code > </ pre >
13671375 </ div >
13681376 < p >
13691377 The resulting palette is a product of points multiplied by the number of anchor pairs.
@@ -1415,7 +1423,10 @@ <h2 id="UpdatingAnchors">Updating Anchors</h2>
14151423 </ p >
14161424 < div class ="code-example ">
14171425 < button data-copy-code > Copy Code</ button >
1418- < pre class ="code-ex "> < code class ="language-js " data-code ="UpdatingAnchors "> </ code > </ pre >
1426+ < pre class ="code-ex "> < code class ="language-js " data-code ="UpdatingAnchors "> poline.updateAnchorPoint({
1427+ point: poline.anchorPoints[0],
1428+ color: [270, 0.06, 0.06]
1429+ });</ code > </ pre >
14191430 </ div >
14201431 < div class ="l-sec__controls ">
14211432 < button data-randomize > Randomize Positions</ button >
@@ -1475,7 +1486,14 @@ <h2 id="positionFunctions">Arcs</h2>
14751486 </ p >
14761487 < div class ="code-example ">
14771488 < button data-copy-code > Copy Code</ button >
1478- < pre class ="code-ex "> < code class ="language-js " data-code ="positionFunctions "> </ code > </ pre >
1489+ < pre class ="code-ex "> < code class ="language-js " data-code ="positionFunctions "> new Poline({
1490+ positionFunctionX:
1491+ positionFunctions.sinusoidalPosition,
1492+ positionFunctionY:
1493+ positionFunctions.quadraticPosition,
1494+ positionFunctionZ:
1495+ positionFunctions.linearPosition,
1496+ });</ code > </ pre >
14791497 </ div >
14801498 <!--p>
14811499 The <strong>position functions</strong> are used to determine the position of the
@@ -1517,7 +1535,11 @@ <h2 id="closedLoop">Looping Palette</h2>
15171535 </ p >
15181536 < div class ="code-example ">
15191537 < button data-copy-code > Copy Code</ button >
1520- < pre class ="code-ex "> < code class ="language-js " data-code ="closedLoop "> </ code > </ pre >
1538+ < pre class ="code-ex "> < code class ="language-js " data-code ="closedLoop "> let poline = new Poline({
1539+ closedLoop: true,
1540+ });
1541+ // or
1542+ poline.closedLoop = true;</ code > </ pre >
15211543 </ div >
15221544 < p >
15231545 It is also possible to close the loop after the fact by setting < strong > poline.closedLoop = true|false</ strong > .
@@ -1544,7 +1566,7 @@ <h2 id="hueShift">Hue Shifting</h2>
15441566 </ p >
15451567 < div class ="code-example ">
15461568 < button data-copy-code > Copy Code</ button >
1547- < pre class ="code-ex "> < code class ="language-js " data-code ="hueShift "> </ code > </ pre >
1569+ < pre class ="code-ex "> < code class ="language-js " data-code ="hueShift "> poline.shiftHue(1); </ code > </ pre >
15481570 </ div >
15491571 < p >
15501572 The amount is a int or float between -Infinity and Infinity. It will permanently shift the hue of all colors in the palette.
@@ -1607,7 +1629,9 @@ <h2 id="getColorAt">Color At Position</h2>
16071629 </ p >
16081630 < div class ="code-example ">
16091631 < button data-copy-code > Copy Code</ button >
1610- < pre class ="code-ex "> < code class ="language-js " data-code ="getColorAt "> </ code > </ pre >
1632+ < pre class ="code-ex "> < code class ="language-js " data-code ="getColorAt "> const color = poline.getColorAt(0.500);
1633+ console.log(color.hslCSS);
1634+ //→ hsl(67.39, 39.54%, 29.86%)</ code > </ pre >
16111635 </ div >
16121636 < div class ="l-sec__controls ">
16131637 < label >
@@ -1630,7 +1654,15 @@ <h2 id="removeAnchor">Remove Anchors</h2>
16301654 </ p >
16311655 < div class ="code-example ">
16321656 < button data-copy-code > Copy Code</ button >
1633- < pre class ="code-ex "> < code class ="language-js " data-code ="removeAnchor "> </ code > </ pre >
1657+ < pre class ="code-ex "> < code class ="language-js " data-code ="removeAnchor "> poline.removeAnchorPoint({
1658+ point: poline.anchorPoints[
1659+ poline.anchorPoints.length - 1
1660+ ]
1661+ });
1662+ // or
1663+ poline.removeAnchorPoint({
1664+ index: poline.anchorPoints.length - 1
1665+ });</ code > </ pre >
16341666 </ div >
16351667 </ div >
16361668 </ article >
@@ -1648,7 +1680,11 @@ <h2 id="invertedLightness">Invert lightness</h2>
16481680 </ p >
16491681 < div class ="code-example ">
16501682 < button data-copy-code > Copy Code</ button >
1651- < pre class ="code-ex "> < code class ="language-js " data-code ="invertedLightness "> </ code > </ pre >
1683+ < pre class ="code-ex "> < code class ="language-js " data-code ="invertedLightness "> new Poline({
1684+ invertedLightness: true,
1685+ });
1686+ // or
1687+ poline.invertedLightness = true;</ code > </ pre >
16521688 </ div >
16531689 < div class ="l-sec__controls ">
16541690 < label >
@@ -1667,7 +1703,29 @@ <h2 id="colorSpace">Color Model</h2>
16671703 However, it is easily possible to use other color models by using a library like < a href ="https://culorijs.org/api/ " target ="_blank " rel ="noopener noreferrer "> culori</ a > .
16681704 < div class ="code-example ">
16691705 < button data-copy-code > Copy Code</ button >
1670- < pre class ="code-ex "> < code class ="language-js " data-code ="colorSpace "> </ code > </ pre >
1706+ < pre class ="code-ex "> < code class ="language-js " data-code ="colorSpace "> import {Poline} from "poline";
1707+ import {formatHex} from "culori";
1708+ const poline = new Poline(/** options */);
1709+
1710+ const OKHslColors = [...poline.colors].map(
1711+ c => formatHex({
1712+ mode: 'okhsl',
1713+ {
1714+ h: c.hsl[0],
1715+ s: c.hsl[1],
1716+ l: c.hsl[2]}
1717+ })
1718+ );
1719+ const LCHColors = [...poline.colors].map(
1720+ c => formatHex({
1721+ mode: 'lch',
1722+ {
1723+ h: hsl[0],
1724+ c: hsl[1] * 51.484,
1725+ l: hsl[2] * 100,
1726+ }
1727+ })
1728+ );</ code > </ pre >
16711729 </ div >
16721730 < div class ="l-sec__controls ">
16731731 < label >
@@ -1688,7 +1746,7 @@ <h2 id="installation">Installation</h2>
16881746 </ p >
16891747 < div class ="code-example ">
16901748 < button data-copy-code > Copy Code</ button >
1691- < pre class ="code-ex "> < code class ="language-js " data-code ="installation "> npm install poline</ code > </ pre >
1749+ < pre class ="code-ex "> < code class ="language-bash " data-code ="installation "> npm install poline</ code > </ pre >
16921750 </ div >
16931751 < p >
16941752 You can also use the < a href ="https://unpkg.com/poline " target ="_blank " rel ="noopener noreferrer "> unpkg CDN</ a > to include the library in your project.
@@ -1699,7 +1757,7 @@ <h2 id="installation">Installation</h2>
16991757 </ p >
17001758 < div class ="code-example ">
17011759 < button data-copy-code > Copy Code</ button >
1702- < pre class ="code-ex "> < code class ="language-html " data-code ="cdn "> import {
1760+ < pre class ="code-ex "> < code class ="language-js " data-code ="cdn "> import {
17031761 Poline
17041762} from 'https://unpkg.com/poline?module'</ code > </ pre > </ div >
17051763 </ div >
@@ -1765,7 +1823,19 @@ <h2 id="playground">Playground</h2>
17651823 < h2 id ="examples "> Playground Code</ h2 >
17661824 < div class ="code-example ">
17671825 < button data-copy-code > Copy Code</ button >
1768- < pre class ="code-ex "> < code class ="language-js " data-code ="playground "> </ code > </ pre >
1826+ < pre class ="code-ex "> < code class ="language-js " data-code ="playground "> new Poline({
1827+ anchorColors: [
1828+ [129, 0.01, 0.93],
1829+ [299, 0.12, 0.35]
1830+ ],
1831+ numPoints: 4,
1832+ positionFunctionX:
1833+ positionFunctions['sinusoidalPosition'],
1834+ positionFunctionY:
1835+ positionFunctions['quadraticPosition'],
1836+ positionFunctionZ:
1837+ positionFunctions['linearPosition'],
1838+ });</ code > </ pre >
17691839 </ div >
17701840 < p >
17711841 The code above mimics the current state of the playground.
0 commit comments