File tree Expand file tree Collapse file tree 1 file changed +74
-0
lines changed Expand file tree Collapse file tree 1 file changed +74
-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
+ < title > Scoped CSS Variables and JS</ title >
6
+ </ head >
7
+ < body >
8
+ < h2 > Update CSS Variables with < span class ='hl '> JS</ span > </ h2 >
9
+
10
+ < div class ="controls ">
11
+ < label for ="spacing "> Spacing:</ label >
12
+ < input id ="spacing " type ="range " name ="spacing " min ="10 " max ="200 " value ="10 " data-sizing ="px ">
13
+
14
+ < label for ="blur "> Blur:</ label >
15
+ < input id ="blur " type ="range " name ="blur " min ="0 " max ="25 " value ="10 " data-sizing ="px ">
16
+
17
+ < label for ="base "> Base Color</ label >
18
+ < input id ="base " type ="color " name ="base " value ="#ffc600 ">
19
+ </ div >
20
+
21
+ < img src ="https://source.unsplash.com/7bwQXzbF6KE/800x500 ">
22
+
23
+ < style >
24
+ : root {
25
+ --base : # ffc600 ;
26
+ --spacing : 10px ;
27
+ --blur : 10px ;
28
+ }
29
+
30
+ img {
31
+ padding : var (--spacing );
32
+ background : var (--base );
33
+ filter : blur (var (--blur ));
34
+ }
35
+
36
+ h1 {
37
+ color : var (--base );
38
+ }
39
+
40
+ /*
41
+ misc styles, nothing to do with CSS variables
42
+ */
43
+
44
+ body {
45
+ text-align : center;
46
+ background : # 193549 ;
47
+ color : white;
48
+ font-family : 'helvetica neue' , sans-serif;
49
+ font-weight : 100 ;
50
+ font-size : 50px ;
51
+ }
52
+
53
+ .controls {
54
+ margin-bottom : 50px ;
55
+ }
56
+
57
+ input {
58
+ width : 100px ;
59
+ }
60
+ </ style >
61
+
62
+ < script >
63
+ const inputs = document . querySelectorAll ( '.controls input' ) ;
64
+
65
+ const handleUpdate = element => {
66
+ const suffix = element . dataset . sizing || '' ;
67
+ document . documentElement . style . setProperty ( `--${ element . name } ` , `${ element . value } ${ suffix } ` ) ;
68
+ }
69
+ inputs . forEach ( input => input . addEventListener ( 'change' , ( ) => handleUpdate ( input ) ) ) ;
70
+ inputs . forEach ( input => input . addEventListener ( 'mousemove' , ( ) => handleUpdate ( input ) ) ) ;
71
+ </ script >
72
+
73
+ </ body >
74
+ </ html >
You can’t perform that action at this time.
0 commit comments