css+js实现暗黑与亮色主题切换过渡动画效果代码

代码语言:html

所属分类:其他

代码描述:css+js实现暗黑与亮色主题切换过渡动画效果代码

代码标签: css js 暗黑 亮色 主题 切换 过渡 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
<style>
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&display=swap');

* {
  box-sizing: border-box;
}

body {
	display: flex;
	flex-direction: column;
  min-height: 100vh;
  color: var(--color);
  background: var(--bg);
  font-family: SF Pro Display, SF Pro Icons, Helvetica Neue, Helvetica, Arial, sans-serif;
}

:root {
	color-scheme: light only;
	--line: color-mix(in lch, canvasText 25%, transparent);
  --color: hsl(0 0% 6%);
  --bg: hsl(0 0% 98%);
  --content-size: 520px;
  --eclipse: 60%;
}

.dark {
	color-scheme: dark only;
  --color: hsl(0 0% 98%);
  --bg: hsl(0 0% 6%);
}

body::before {
  --size: 60px;
  content: '';
  height: 100vh;
  width: 100vw;
  position: fixed;
  background: linear-gradient(
        90deg,
        var(--line) 1px,
        transparent 1px var(--size)
      )
      50% 50% / var(--size) var(--size),
    linear-gradient(var(--line) 1px, transparent 1px var(--size)) 50% 50% /
      var(--size) var(--size);
  -webkit-mask: linear-gradient(-15deg, transparent 60%, white);
          mask: linear-gradient(-15deg, transparent 60%, white);
  top: 0;
  transform-style: flat;
  pointer-events: none;
  z-index: -1;
}

.content {
	display: grid;
	gap: 1.5rem;
	justify-items: start;
}

a:not(.bear-link) {
	padding: 1rem 2rem;
	border-radius: 12px;
	color: var(--bg);
	-webkit-text-decoration-line: none;
	        text-decoration-line: none;
	background: var(--color);
	font-weight: bold;
	transition: background 0.2s;
/*	justify-self: end;*/
}

.dark a:not(.bear-link):is(:hover, :focus-visible) {
	background: hsl(0 0% 80%);
}

a:not(.bear-link):is(:hover, :focus-visible) {
	background: hsl(0 0% 50%);
}

footer {
	padding: 2rem;
	text-align: center;
	opacity: 0.5;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

h1 {
	font-family: 'EB Garamond', serif;
	font-size: clamp(2rem, 5vw + 1rem, 8rem);
  line-height: 1;
  font-weight: 300;
  margin: 0;
}

header {
	width: var(--content-size);
	max-width: 100%;
	margin: 0 auto;
	min-height: 35vh;
	display: grid;
	align-content: end;
	padding: 0 2rem;
}

main {
  width: var(--content-size);
  max-width: 100%;
  margin: 0 auto;
  padding: 1rem 2rem;
  flex: 1;
}

pre {
  max-width: 100%;
}

p {
  text-align: justify;
  margin: 0;
}

.theme-t.........完整代码请登录后点击上方下载按钮下载查看

网友评论0