@@ -78,6 +78,10 @@ const result = document.querySelector(".result");
78
78
const tmResult = document . querySelector ( "#tmResult" ) ;
79
79
const copy = document . querySelector ( "#copy" ) ;
80
80
const middleColorCheckbox = document . querySelector ( "#middleColorCheckbox" ) ;
81
+ const gradientPreview = document . querySelector ( "#gradient" ) ;
82
+ let gradientExpanded = false ;
83
+ const expandGradientButton = document . querySelector ( "#expandGradient" ) ;
84
+ const minLetters = document . querySelector ( "#minLetters" ) ;
81
85
function generateUsername ( ) {
82
86
const startColor = startInput . value ;
83
87
const middleColor = middleColorCheckbox . checked ? middleInput . value : null ;
@@ -87,6 +91,16 @@ function generateUsername() {
87
91
`startColor: ${ startColor } , middleColor: ${ middleColor } , endColor: ${ endColor } , name: ${ name } `
88
92
) ;
89
93
const minNameLength = middleColorCheckbox . checked ? 4 : 2 ;
94
+ if ( startColor && endColor ) {
95
+ gradientPreview . style . background = `linear-gradient(to right, ${ startColor } , ${
96
+ middleColor || endColor
97
+ } ${ middleColor ? `, ${ endColor } ` : "" } `;
98
+ }
99
+ if ( middleColorCheckbox . checked ) {
100
+ minLetters . textContent = "min. 4 letters" ;
101
+ } else {
102
+ minLetters . textContent = "min. 2 letters" ;
103
+ }
90
104
if ( ! startColor || ! endColor || ! name || name . length < minNameLength ) return ;
91
105
const gradient = generateGradient (
92
106
startColor ,
@@ -111,7 +125,19 @@ middleInput.addEventListener("input", () => {
111
125
} ) ;
112
126
endInput . addEventListener ( "input" , generateUsername ) ;
113
127
middleColorCheckbox . addEventListener ( "change" , generateUsername ) ;
114
-
128
+ document . body . onload = generateUsername ;
115
129
copy . addEventListener ( "click" , function ( ) {
116
130
navigator . clipboard . writeText ( tmResult . value ) ;
117
131
} ) ;
132
+ expandGradientButton . addEventListener ( "click" , ( ) => {
133
+ gradientExpanded = ! gradientExpanded ;
134
+ if ( gradientExpanded ) {
135
+ gradientPreview . style . height = "8rem" ;
136
+ expandGradientButton . style . bottom = "8.2rem" ;
137
+ expandGradientButton . innerText = "Collapse" ;
138
+ } else {
139
+ gradientPreview . style . height = "0.5rem" ;
140
+ expandGradientButton . style . bottom = "0.4rem" ;
141
+ expandGradientButton . innerText = "Expand" ;
142
+ }
143
+ } ) ;
0 commit comments