What do we do
A system that allows you to create different color themes on the site.
What for
Many sites now have different color themes for ease of use under different lighting conditions (usually).
What do we need
Knowledge of HTML
Knowledge of CSS
Knowledge of JS
Let's start
Let's create the markup for our site. Everything is too damp for now, but for now.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> </title>
</head>
<body>
<div class="text">
Themes sait
</div>
</body>
</html>
Let's create and include a CSS file with the following code.
html, body {
margin: 0;
padding: 0;
}
.text {
position: fixed;
font-size: 100px;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
display: flex;
}
Next, let's create black.css.
:root {
--textColor: white;
--background: black;
}
And let's create white.css.
:root {
--textColor: black;
--background: white;
}
And now in more detail
What is ": root"? And what are these parameters?
":root" - , <html></html>.
- , "root". ("--"). var(--_).
.
html, body {
margin: 0;
padding: 0;
background: var(--background);
}
.text {
color: var(--textColor);
position: fixed;
font-size: 100px;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
display: flex;
}
, . CSS . , , - , , ? GET ( URL ("https://domain.com?var=1")). " ", - "". " " "white" ("https://domain.com?white=true").
JS .
function $_GET(key) {
let p = window.location.search;
p = p.match(new RegExp(key + "=([^&=]+)"));
return p ? Boolean(p[1]) : false;
}
function color() {
let head = document.getElementsByTagName("head")[0];
let link = document.createElement("link");
link.id = "css";
link.rel = "stylesheet";
link.type = "text/css";
link.media = "all";
if($_GET("white")) {
link.href = "./white.css";
} else {
link.href = "./black.css";
}
head.appendChild(link);
}
"color".
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> </title>
<link rel="stylesheet" href="style.css">
<script src="index.js"></script>
</head>
<body>
<div class="text">
Themes sait
</div>
</body>
<script>color()</script>
</html>
This is how quickly and easily you can create a website with two themes, but you can go on and do more on two themes. Thank you all for your attention.
Project on gitHub .