@@ -78,6 +78,10 @@ const result = document.querySelector(".result");
7878const tmResult = document . querySelector ( "#tmResult" ) ;
7979const copy = document . querySelector ( "#copy" ) ;
8080const 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" ) ;
8185function generateUsername ( ) {
8286 const startColor = startInput . value ;
8387 const middleColor = middleColorCheckbox . checked ? middleInput . value : null ;
@@ -87,6 +91,16 @@ function generateUsername() {
8791 `startColor: ${ startColor } , middleColor: ${ middleColor } , endColor: ${ endColor } , name: ${ name } `
8892 ) ;
8993 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+ }
90104 if ( ! startColor || ! endColor || ! name || name . length < minNameLength ) return ;
91105 const gradient = generateGradient (
92106 startColor ,
@@ -111,7 +125,19 @@ middleInput.addEventListener("input", () => {
111125} ) ;
112126endInput . addEventListener ( "input" , generateUsername ) ;
113127middleColorCheckbox . addEventListener ( "change" , generateUsername ) ;
114-
128+ document . body . onload = generateUsername ;
115129copy . addEventListener ( "click" , function ( ) {
116130 navigator . clipboard . writeText ( tmResult . value ) ;
117131} ) ;
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