Random CSS experiments
Specifically playing with has selector, but there is also a mapkit test
This commit is contained in:
parent
70ad2cec50
commit
063dbdd28e
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<script src="https://cdn.apple-mapkit.com/mk/5.x.x/mapkit.core.js" crossorigin async data-callback="initMapKit"
|
||||
data-libraries="map"
|
||||
data-initial-token="eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkJHV0M3OTI1V0MifQ.eyJpc3MiOiJWRTdZTTVWVkpCIiwiaWF0IjoxNjY4MzYyMzYzLCJleHAiOjE2OTk4MzM2MDAsIm9yaWdpbiI6Imh0dHBzOi8vKi5ybWNnLmRldiwgaHR0cDovLzEyNy4wLjAuMTozMDAwLCBodHRwOi8vbG9jYWxob3N0OjMwMDAifQ.JOAnDMffZ90tk03qH1BEVCNpFo_-5eaUj1gmTgwHXl0tK-sfA4kVhNQ1UyOUaPuM1SR57rwImhjTiX-mNMwKtA"></script>
|
||||
|
||||
<style>
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 600px;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="map"></div>
|
||||
|
||||
<script type="module">
|
||||
|
||||
(async () => {
|
||||
const tokenID = "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkJHV0M3OTI1V0MifQ.eyJpc3MiOiJWRTdZTTVWVkpCIiwiaWF0IjoxNjY4MzYyMzYzLCJleHAiOjE2OTk4MzM2MDAsIm9yaWdpbiI6Imh0dHBzOi8vKi5ybWNnLmRldiwgaHR0cDovLzEyNy4wLjAuMTozMDAwLCBodHRwOi8vbG9jYWxob3N0OjMwMDAifQ.JOAnDMffZ90tk03qH1BEVCNpFo_-5eaUj1gmTgwHXl0tK-sfA4kVhNQ1UyOUaPuM1SR57rwImhjTiX-mNMwKtA";
|
||||
|
||||
if (!window.mapkit || window.mapkit.loadedLibraries.length === 0) {
|
||||
// mapkit.core.js or the libraries are not loaded yet.
|
||||
// Set up the callback and wait for it to be called.
|
||||
await new Promise(resolve => { window.initMapKit = resolve });
|
||||
|
||||
// Clean up
|
||||
delete window.initMapKit;
|
||||
}
|
||||
|
||||
mapkit.init({
|
||||
authorizationCallback: function (done) {
|
||||
done(tokenID);
|
||||
}
|
||||
});
|
||||
|
||||
const map = new mapkit.Map("map");
|
||||
})();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"livePreview.defaultPreviewPath": "/playing-with-has/index.html"
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Playing with has selector</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<script src="script.js" defer></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<h1>:has Playground</h1>
|
||||
</header>
|
||||
<!-- ideas: -->
|
||||
|
||||
<!-- highlight box that has hover but blur others -->
|
||||
|
||||
<!-- search to toggle classes that highlight certain matches -->
|
||||
|
||||
<main>
|
||||
<section id="section1">
|
||||
<!-- Section 1 -->
|
||||
<h2>Section 1 - simple :has</h2>
|
||||
|
||||
<h3>
|
||||
What do <span>you</span> think?
|
||||
</h3>
|
||||
|
||||
<h3>
|
||||
What do you think?
|
||||
</h3>
|
||||
|
||||
<!-- selective margins based on if a subtitle is there -->
|
||||
<div class="header-group">
|
||||
<h3>Blog Post Title</h3> <!-- main spacing applied here -->
|
||||
</div>
|
||||
|
||||
<div class="header-group">
|
||||
<h3>Blog Post Title</h3>
|
||||
<div class="subtitle"> <!-- main spacing applied here -->
|
||||
This is a subtitle
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="section2">
|
||||
<!-- Section 2 -->
|
||||
<h2>Section 2 - has for light dark switch</h2>
|
||||
|
||||
<div class="switch">
|
||||
<label class="switch__label" for="switch">Light / Dark</label>
|
||||
<input id="switch" class="switch__input" name="switch" type="checkbox">
|
||||
</div>
|
||||
</section>
|
||||
<section id="section3">
|
||||
<h2>Section 3</h2>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<i class="nf nf-fa-heart"></i> 2024 using <i class="nf nf-md-microsoft_visual_studio_code"></i> <i
|
||||
class="nf nf-dev-apple"></i>
|
||||
<i class="nf nf-dev-css3"></i> <i class="nf nf-linux-archlinux"></i>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
console.log("Hello world");
|
|
@ -0,0 +1,138 @@
|
|||
@import "https://www.nerdfonts.com/assets/css/webfont.css";
|
||||
|
||||
/* makes sizing simpler */
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* remove default spacing */
|
||||
/* force styling of type through styling, rather than elements */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
/* font: inherit; */
|
||||
}
|
||||
|
||||
/* dark mode user-agent-styles */
|
||||
/* improves punctuation in supported browsers */
|
||||
html {
|
||||
color-scheme: dark light;
|
||||
hanging-punctuation: first last;
|
||||
}
|
||||
|
||||
/* min body height */
|
||||
body {
|
||||
min-height: 100svh;
|
||||
font-family:
|
||||
system-ui,
|
||||
-apple-system,
|
||||
BlinkMacSystemFont,
|
||||
"Segoe UI",
|
||||
Roboto,
|
||||
Oxygen,
|
||||
Ubuntu,
|
||||
Cantarell,
|
||||
"Open Sans",
|
||||
"Helvetica Neue",
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
/* responsive images/videos */
|
||||
img,
|
||||
picture,
|
||||
svg,
|
||||
video {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* Improved heading in supported browsers */
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
text-wrap: balance;
|
||||
}
|
||||
|
||||
/* improve readability with max-width on paragraphs and lists */
|
||||
/* prevent orphans in supported browsers */
|
||||
p,
|
||||
li {
|
||||
max-width: var(--p-max-width, 65ch);
|
||||
text-wrap: pretty;
|
||||
}
|
||||
|
||||
/* My css */
|
||||
|
||||
section {
|
||||
min-height: 100svh;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
h3:has(span) {
|
||||
color: lightblue;
|
||||
}
|
||||
|
||||
h3:not(:has(span)) {
|
||||
color: lightsalmon;
|
||||
}
|
||||
|
||||
h3 > span {
|
||||
color: lightpink;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
h3,
|
||||
.subtitle {
|
||||
margin: 0 0 1.5rem 0;
|
||||
}
|
||||
|
||||
.header-group:has(h3):has(.subtitle) h3 {
|
||||
margin: 0 0 0.2rem 0; /* reduce spacing on header, because subtitle will handle it */
|
||||
}
|
||||
|
||||
.card:not(:has(img)) {
|
||||
border: 1px solid var(--my-amazing-color);
|
||||
}
|
||||
|
||||
/* section 2 */
|
||||
|
||||
:root {
|
||||
--bg-color: rgb(11, 58, 33);
|
||||
}
|
||||
|
||||
.switch {
|
||||
display: grid;
|
||||
justify-content: center;
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
.switch__label {
|
||||
display: none;
|
||||
}
|
||||
.switch__input::before {
|
||||
content: "Light";
|
||||
margin-inline-start: 1em;
|
||||
}
|
||||
|
||||
.switch__input::after {
|
||||
content: "Dark";
|
||||
margin-inline-end: 1em;
|
||||
}
|
||||
|
||||
:root:has(.switch__input:checked) {
|
||||
--bg-color: rgb(0, 26, 255);
|
||||
}
|
||||
|
||||
.switch__input:checked {
|
||||
/* color: aquamarine; */
|
||||
background-color: blueviolet;
|
||||
}
|
||||
|
||||
#section2 {
|
||||
background-color: var(--bg-color);
|
||||
}
|
Loading…
Reference in New Issue