File tree Expand file tree Collapse file tree 3 files changed +155
-0
lines changed Expand file tree Collapse file tree 3 files changed +155
-0
lines changed Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < meta http-equiv ="X-UA-Compatible " content ="IE=edge ">
6
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
7
+ < title > Qr Code generator</ title >
8
+ < link rel ="stylesheet " href ="./style.css ">
9
+ </ head >
10
+ < body >
11
+ < div class ="wrapper ">
12
+ < header >
13
+ < h1 > Qr Generator</ h1 >
14
+ < p > Paste a url or enter text to create a Qr code</ p >
15
+ </ header >
16
+ < div class ="form ">
17
+ < input type ="text " spellcheck ="false " placeholder ="Enter text and url ">
18
+ < button > Genertor Qr Code</ button >
19
+ </ div >
20
+ < div class ="qr-code ">
21
+ < img src ="" alt ="qr-code ">
22
+ </ div >
23
+ </ div >
24
+ < script src ="./script.js "> </ script >
25
+ </ body >
26
+ </ html >
Original file line number Diff line number Diff line change
1
+ const wrapper = document . querySelector ( ".wrapper" ) ,
2
+ qrInput = wrapper . querySelector ( ".form input" ) ,
3
+ generateBtn = wrapper . querySelector ( ".form button" ) ,
4
+ qrImg = wrapper . querySelector ( ".qr-code img" ) ;
5
+ let preValue ;
6
+
7
+ generateBtn . addEventListener ( "click" , ( ) => {
8
+ let qrValue = qrInput . value . trim ( ) ;
9
+ if ( ! qrValue || preValue === qrValue ) return ;
10
+ preValue = qrValue ;
11
+ generateBtn . innerText = "Generating QR Code..." ;
12
+ qrImg . src = `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${ qrValue } ` ;
13
+ qrImg . addEventListener ( "load" , ( ) => {
14
+ wrapper . classList . add ( "active" ) ;
15
+ generateBtn . innerText = "Generate QR Code" ;
16
+ } ) ;
17
+ } ) ;
18
+
19
+ qrInput . addEventListener ( "keyup" , ( ) => {
20
+ if ( ! qrInput . value . trim ( ) ) {
21
+ wrapper . classList . remove ( "active" ) ;
22
+ preValue = "" ;
23
+ }
24
+ } ) ;
Original file line number Diff line number Diff line change
1
+ * {
2
+ margin : 0 ;
3
+ padding : 0 ;
4
+ box-sizing : border-box;
5
+ font-family : sans-serif;
6
+ }
7
+
8
+ body {
9
+ display : flex;
10
+ padding : 0 10px ;
11
+ min-height : 100vh ;
12
+ align-items : center;
13
+ background : # 090221 ;
14
+ justify-content : center;
15
+ }
16
+
17
+ .wrapper {
18
+ height : 265px ;
19
+ max-width : 410px ;
20
+ background : # fff ;
21
+ border-radius : 7px ;
22
+ padding : 20px 25px 0 ;
23
+ transition : height 0.2s ease;
24
+ box-shadow : 0 10px 30px rgba (0 , 0 , 0 , 0.1 );
25
+ }
26
+
27
+ .wrapper .active {
28
+ height : 530px ;
29
+ }
30
+ header h1 {
31
+ font-size : 21px ;
32
+ font-weight : 500 ;
33
+ text-align : center;
34
+ }
35
+ header p {
36
+ margin-top : 5px ;
37
+ color : # 575757 ;
38
+ font-size : 16px ;
39
+ }
40
+ .wrapper .form {
41
+ margin : 20px 0 25px ;
42
+ }
43
+ .form : where (input , button ){
44
+ width : 100% ;
45
+ height : 55px ;
46
+ border : none;
47
+ outline : none;
48
+ border-radius : 5px ;
49
+ transition : 0.1s ease;
50
+ }
51
+ .form input {
52
+ font-size : 18px ;
53
+ padding : 0 17px ;
54
+ border : 1px solid # 999 ;
55
+ }
56
+ .form input : focus {
57
+ box-shadow : 0 3px 6px rgba (0 , 0 , 0 , 0.13 );
58
+ }
59
+ .form input ::placeholder {
60
+ color : # 999 ;
61
+ }
62
+ .form button {
63
+ color : # fff ;
64
+ cursor : pointer;
65
+ margin-top : 20px ;
66
+ font-size : 15px ;
67
+ background : # 090221 ;
68
+ border-radius : 5px ;
69
+ }
70
+ .qr-code {
71
+ opacity : 0 ;
72
+ display : flex;
73
+ padding : 33px 0 ;
74
+ border-radius : 5px ;
75
+ align-items : center;
76
+ pointer-events : none;
77
+ justify-content : center;
78
+ border : 1px solid # ccc ;
79
+ }
80
+ .wrapper .active .qr-code {
81
+ opacity : 1 ;
82
+ pointer-events : auto;
83
+ transition : opacity 0.5s 0.05s ease;
84
+ }
85
+ .qr-code img {
86
+ width : 170px ;
87
+ }
88
+ @media screen and (max-width : 430px ) {
89
+ .wrapper {
90
+ height : 255px ;
91
+ padding : 16px 20px ;
92
+ }
93
+ .wrapper .active {
94
+ height : 510px ;
95
+ }
96
+ header p {
97
+ color : # 696969 ;
98
+ }
99
+ .form : where (input , button ){
100
+ height : 52px ;
101
+ }
102
+ .qr-code img {
103
+ width : 160px ;
104
+ }
105
+ }
You can’t perform that action at this time.
0 commit comments