Skip to content

Commit 14dc29e

Browse files
committed
feat(gradient-background.ts): add gradient background generator
fix #29
1 parent e35541f commit 14dc29e

File tree

3 files changed

+67
-9
lines changed

3 files changed

+67
-9
lines changed

src/general.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export function copyCodeToClipboard(
2121

2222
function actOnGenerator() {
2323
let codeToCopy: string = '';
24+
let element;
2425
switch (attribute) {
2526
case 'pic-text':
2627
codeToCopy = `
@@ -43,14 +44,24 @@ export function copyCodeToClipboard(
4344

4445
break;
4546
case 'gradient-border':
46-
const element = outputElement.style;
47+
element = outputElement.style;
4748
codeToCopy = `
4849
div {
4950
border: ${element.border},
5051
border-width: ${element.borderWidth},
5152
border-image-slice: ${element.borderImageSlice},
5253
border-image-source: ${element.borderImageSource},
5354
}
55+
`;
56+
break;
57+
case 'gradient-background':
58+
element = outputElement.style;
59+
codeToCopy = `
60+
div {
61+
height: 100px;
62+
width: 100px;
63+
background: ${element.backgroundImage};
64+
}
5465
`;
5566
}
5667
copy(codeToCopy);
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import * as utils from '../general';
2+
3+
type Values = {
4+
firstColor: string;
5+
secondColor: string;
6+
degree: string;
7+
};
8+
9+
export function gradientBackgroundGenerator() {
10+
const attribute = 'gradient-background';
11+
// Inputs
12+
const color1 = utils.getColorInput1(attribute);
13+
const color2 = utils.getColorInput2(attribute);
14+
const getDegreeElement = utils.getRange(attribute);
15+
16+
const getResultElement = utils.getResultButton(attribute);
17+
const getOutputElement = utils.getOutput(attribute);
18+
19+
getResultElement.addEventListener('click', () => {
20+
onClickButton();
21+
});
22+
23+
function onClickButton() {
24+
const values: Values = {
25+
firstColor: color1.value,
26+
secondColor: color2.value,
27+
degree: getDegreeElement.value,
28+
};
29+
getGradientBackgroundResult(attribute, values, getOutputElement);
30+
}
31+
}
32+
33+
function getGradientBackgroundResult(
34+
attribute: string,
35+
values: Values,
36+
outputElement: HTMLElement,
37+
): void {
38+
outputElement.style.background = `linear-gradient(${values.degree}deg, ${values.firstColor}, ${values.secondColor})`;
39+
40+
const getCodeButtonElement = utils.getCopyCodeButton(attribute);
41+
getCodeButtonElement.addEventListener('click', () => {
42+
utils.copyCodeToClipboard(attribute, outputElement);
43+
});
44+
}

src/main.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
// Generator Modules
22
import { picTextGenerator } from './generators/pic-text';
33
import { gradientTextGenerator } from './generators/gradient-text';
4+
import { gradientBorderGenerator } from './generators/gradient-border';
5+
import { gradientBackgroundGenerator } from './generators/gradient-background';
46

57
import * as FilePond from 'filepond';
6-
import { gradientBorderGenerator } from './generators/gradient-border';
78

89
/**
910
* All Variables
@@ -81,6 +82,9 @@ function generatorsFunction(attribute: string): void {
8182
case 'gradient-border':
8283
gradientBorderGenerator();
8384
break;
85+
case 'gradient-background':
86+
gradientBackgroundGenerator();
87+
break;
8488
}
8589
}
8690

@@ -142,11 +146,10 @@ generators.forEach((generator) => {
142146
});
143147

144148
// closing modal when user clicks outside
145-
document.addEventListener("click", function (event) {
146-
if (event.target === null) return;
147-
const element = <HTMLElement>event.target;
148-
if (element.matches(".modal-container")) {
149-
closeModalFunction();
150-
}
149+
document.addEventListener('click', function (event) {
150+
if (event.target === null) return;
151+
const element = <HTMLElement>event.target;
152+
if (element.matches('.modal-container')) {
153+
closeModalFunction();
154+
}
151155
});
152-

0 commit comments

Comments
 (0)