File tree Expand file tree Collapse file tree
problemSolvingPractices/problems/p3-ConversionTool Expand file tree Collapse file tree Original file line number Diff line number Diff line change 99 < script src ='script.js ' defer > </ script >
1010</ head >
1111< body >
12+
13+ < div class ='container '>
14+
15+ < img id ='themeToggle ' src ='icons/moon.png ' alt ='Toggle Theme ' title ="Change Theme ">
16+
17+ </ div >
18+
1219 < h3 > Convert an IPv4 address from Binary to Decimal </ h3 > < br >
1320 <!-- <h3> Example: 10101100.00010000.00100010.00000011(Binary) to 172.16.34.3 </h3><br> -->
1421
Original file line number Diff line number Diff line change 1+ const savedTheme = localStorage . getItem ( 'theme' )
2+ const html = document . documentElement
3+ const toggleBtn = document . getElementById ( 'themeToggle' )
4+
5+ setTheme ( )
6+
7+ if ( savedTheme ) {
8+ html . setAttribute ( 'data-theme' , savedTheme )
9+ toggleBtn . src = savedTheme == 'dark' ? 'icons/sun.png' : 'icons/moon.png'
10+ }
11+
12+ if ( ! savedTheme ) {
13+ const prefersDark = window . matchMedia ( '(prefers-color-scheme: dark)' ) . matches
14+ html . setAttribute ( 'data-theme' , prefersDark ? 'dark' : 'light' )
15+ toggleBtn . src = prefersDark ? 'icons/sun.png' : 'icons/moon.png'
16+ }
17+
18+ function setTheme ( ) {
19+
20+ toggleBtn . addEventListener ( 'click' , ( ) => {
21+ const currentTheme = document . documentElement . getAttribute ( 'data-theme' )
22+
23+ if ( currentTheme == 'dark' ) {
24+ html . setAttribute ( 'data-theme' , 'light' )
25+ toggleBtn . src = 'icons/moon.png'
26+ localStorage . setItem ( 'theme' , 'light' )
27+ } else {
28+ html . setAttribute ( 'data-theme' , 'dark' )
29+ toggleBtn . src = 'icons/sun.png'
30+ localStorage . setItem ( 'theme' , 'dark' )
31+ }
32+ } )
33+ }
34+
135// IPv4 Binary to Decimal
236
337
Original file line number Diff line number Diff line change 1+ : root {
2+ --bg : white;
3+ --text : black;
4+ --border : black;
5+ }
6+
7+ [data-theme = 'dark' ] {
8+ --bg : rgb (26 , 26 , 26 );
9+ --text : white;
10+ }
11+
12+ body {
13+ margin : 0 ;
14+ padding : 10px 10px ;
15+ font-family : sans-serif;
16+ background : var (--bg );
17+ color : var (--text );
18+ transition : background 0s , color 0s ;
19+ }
20+
21+ # themeToggle {
22+ position : fixed;
23+ top : 20px ;
24+ right : 20px ;
25+ width : 30px ;
26+ height : 30px ;
27+ }
28+ # themeToggle : hover {
29+ cursor : pointer;
30+ }
31+
132* {
233 padding : 0 ;
334 margin : 0 ;
You can’t perform that action at this time.
0 commit comments