Yasashii

官方缺美工,咱就自己上!比WF官方主题好看亿点点~

当前为 2024-12-05 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

/* ==UserStyle==
@name           Yasashii
@description    官方缺美工,咱就自己上!比WF官方主题好看亿点点~
@namespace      github.com/openstyles/stylus
@version        1.1
@author         YYYYang
@license 		MIT
==/UserStyle== */
@-moz-document regexp("workflowy.com") {
	/*------------ BODY ------------- */
	:root {
		--bg-in: hsla(35, 36%, 96%, 1);
		/* 	内板色 */
		--bg-edge: hsla(34, 34%, 90%, 1);
		/* 边缘色 */
	}


	._theme-default {

		.pageContainer {
			background: var(--bg-edge);
		}

		.pageContainer .page {
			background: var(--bg-in);
		}

		.header {
			background: var(--bg-edge);
			border-image: linear-gradient(to right, hsla(36, 38%, 73%, 1), rgba(66, 72, 75, 0) 65%) 1;
		}

		.leftBar > div {
			background: var(--bg-edge);
		}
	}


	._theme-dark {

		.header {
			/*------------ Header 渐进色底线 ------------- */
			border-image: linear-gradient(to right, rgb(66, 72, 75), 40%, rgba(66, 72, 75, 0) 65%) 1;
		}
	}
}

@-moz-document domain("workflowy.com") {
	/*------------ TODO Checkbox ------------- */
	/* 让todo方块节点与bullet普通节点 竖直对齐 */
	.checkmark:not(.boardColumn):not(.boardCard):not(.dashboard-card) > .name {
		a.bullet {
			opacity: 0;
		}

		> .prefix,
		> .content {
			left: -22px;
		}
	}

	.checkmark:not(.boardColumn):not(.boardCard):not(.dashboard-card) > .name:hover {
		a.bullet {
			opacity: 1;
			transition: opacity 3s ease-in-out;
		}

		> .prefix,
		> .content {
			-webkit-animation: slide-right 1.2s 1.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
			animation: slide-right 0.2s 1.2s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
		}

		> .prefix label:hover {
			-webkit-animation: shake-bottom 1s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
			animation: shake-bottom 1s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
		}
	}


	/* * ----------------------------------------
    /* * animation slide-right
    /* * ---------------------------------------- */
	@-webkit-keyframes slide-right {
		0% {
			-webkit-transform: translateX(0);
			transform: translateX(0);
		}

		100% {
			-webkit-transform: translateX(22px);
			transform: translateX(22px);
		}
	}

	@keyframes slide-right {
		0% {
			-webkit-transform: translateX(0);
			transform: translateX(0);
		}

		100% {
			-webkit-transform: translateX(22px);
			transform: translateX(22px);
		}
	}


	/* * ----------------------------------------
    /* * animation shake-bottom
    /* * ---------------------------------------- */
	@-webkit-keyframes shake-bottom {

		0%,
		100% {
			-webkit-transform: rotate(0deg);
			transform: rotate(0deg);
			-webkit-transform-origin: 50% 100%;
			transform-origin: 50% 100%;
		}

		10% {
			-webkit-transform: rotate(2deg);
			transform: rotate(2deg);
		}

		20%,
		40%,
		60% {
			-webkit-transform: rotate(-4deg);
			transform: rotate(-4deg);
		}

		30%,
		50%,
		70% {
			-webkit-transform: rotate(4deg);
			transform: rotate(4deg);
		}

		80% {
			-webkit-transform: rotate(-2deg);
			transform: rotate(-2deg);
		}

		90% {
			-webkit-transform: rotate(2deg);
			transform: rotate(2deg);
		}
	}

	@keyframes shake-bottom {

		0%,
		100% {
			-webkit-transform: rotate(0deg);
			transform: rotate(0deg);
			-webkit-transform-origin: 50% 100%;
			transform-origin: 50% 100%;
		}

		10% {
			-webkit-transform: rotate(2deg);
			transform: rotate(2deg);
		}

		20%,
		40%,
		60% {
			-webkit-transform: rotate(-4deg);
			transform: rotate(-4deg);
		}

		30%,
		50%,
		70% {
			-webkit-transform: rotate(4deg);
			transform: rotate(4deg);
		}

		80% {
			-webkit-transform: rotate(-2deg);
			transform: rotate(-2deg);
		}

		90% {
			-webkit-transform: rotate(2deg);
			transform: rotate(2deg);
		}
	}
}

@-moz-document domain("workflowy.com") {
	/*------------ 字体 IBM Plex Mono ------------- */
	@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');

	.dialog-box,
	.breadcrumbs,
	.content,
	.MobileBreadcrumbs {
		font-family: 'IBM Plex Mono', monospace !important;
	}
}

@-moz-document domain("workflowy.com") {
	/*------------ Backlink 双链索引 ------------- */
	:root {
		--referencesBG: hsla(201, 13%, 15%, 1.00);
	}

	.references.boardCard {
		padding-top: 1px;
		border-radius: 10px;
	}

	._theme-dark .references.boardCard {
		background: var(--referencesBG);
		border: 1px solid hsla(203, 5%, 28%, 1.00);
	}
}



@-moz-document domain("workflowy.com") {
	/*------------ Board Kanban 看板视图 放大视野 ------------- */
	.board {
		/* 	zoom: 0.8; */
		zoom: 0.94;
	}
}

@-moz-document domain("workflowy.com") {
	/*------------ Hover Cursor 鼠标悬停在链接跳转时的光标样式  ↔ + ↗ ------------- */
	/* 	cursor: cell; */
	/* 外站超链接 */
	.contentLink:hover {
		cursor: alias;
		/* ↗  */
	}

	/* 站内链接 */
	.contentLink[href^="https://beta.workflowy.com"]:hover,
	.contentLink[href^="https://workflowy.com"]:hover {
		cursor: ne-resize;
		/* ↔  */
	}
}


@-moz-document domain("workflowy.com") {
	/*------------ Underline 下划线 黄线 ------------- */
	u {
		text-decoration: none !important;
		background: linear-gradient(#ffffff00 70%, #FFCF02 5%);
		/* 		padding-bottom: 2px; */
		transition: background-color 0.5s ease-in-out, height 0.5s ease-in-out;
	}

	/* 鼠标悬停阴影 */
	u:hover {
		background-color: #8686865e;
		border-radius: 4px 4px 0 0;
	}
}

@-moz-document domain("workflowy.com") {
	/*------------ 代码块 ------------- */
	:root {
		--background-alt-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%23000000' fill-opacity='0.16' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E");
		--background-alt-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%23ffffff' fill-opacity='0.16' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E");

		--code-background-light: var(--background-alt-light);
		--code-background-dark: var(--background-alt-dark);

		--background-light-border: #E0E0E0;
		--background-dark-border: #767272;
	}

	._theme-default .code-block > .name > .content {
		background: var(--code-background-light);
		border: 2px dashed var(--background-light-border);
	}

	._theme-dark .code-block > .name > .content {
		background: var(--code-background-dark);
		border: 2px dashed var(--background-dark-border);
	}
}



@-moz-document domain("workflowy.com") {
	/*------------ Quote 引用块 ------------- */
	:root {
		/* 			--quote-bg-light: 	 */
		/* 		--quote-bg-dark: #767272; */
	}

	._theme-default {

		.quote-block > .name > .content {

			/* 			border-left-width: 4px; */
			/* padding: unset; */
			padding: 1px;
			/* 		padding-top: 0px; */
			background: #086DDD21;
			background: linear-gradient(135deg, #086DDD21, #FFFFFF);
			border-top-left-radius: 8px;
			border-bottom-left-radius: 8px;


			> .innerContentContainer {
				border-width: 3px;
				border-radius: 4px;
				border-left-color: #086DDD;
				/* 			border-left: none; */
			}
		}

		.quote-block > .name > .content:after {
			content: "";
			position: absolute;
			top: auto;
			right: 0;
			bottom: 0;
			left: auto;
			width: 1.5em;
			height: 1.5em;
			background: linear-gradient(to bottom right, #086DDD21, 50%, #FFFFFF 50%);
			-webkit-backdrop-filter: blur(2.5px);
			backdrop-filter: blur(2.5px);
			transition: all 0.2s ease-in-out;
			box-shadow: -4px -1px 2px 0px rgba(0, 0, 0, 0.2);
		}

		.quote-block > .name > .content:hover:after {
			width: 0;
			height: 0;
		}
	}

	._theme-dark .quote-block > .name > .content {
		/* 		background: var(--quote-bg-dark); */
		/* 		border: 2px dashed var(--background-dark-border); */
	}
}


@-moz-document domain("workflowy.com") {
	/*------------ Tag 标签 ------------- */
	.contentTag {
		padding: 0 6px !important;
		border-radius: 10px !important;
		font-size: 0.8em;
		border: 0.1em solid #FFFFFF8C;
		/* 				font-style: italic; */
		/* 				line-height: 10px; */
		/* 修正添加tag后 多出来的细微1px行高差 */
		.contentTagText {
			text-decoration: none !important;
			/* 			color: var(--wf-yellow-200); */
		}
	}

	.contentTag:hover {
		/* 				filter: brightness(125%) !important; */
		transition: 200ms ease-in-out;
		/* 				cursor: cell; */
		font-size: 1em;
	}

	/*tag 标签颜色  */
	/* 	.contentTag[data-val="#purple"] */
}





@-moz-document domain("workflowy.com") {
	/*------------ Kanban 看板视图 ------------- */
	/* 看板边距微调 视野更宽 */
	._theme-default .page:has( > .root.board) {

		padding-top: 20px;
		padding-left: 40px;

		.board {

			/* 			padding: 20px 0; */
			> .children {

				/* 	padding: 10px; */
				/* border-radius: 5%; */
				.boardColumn {

					/* overflow: hidden; */
					background-color: #F8F9FB;
					margin-right: 10px;
					/* padding-top: 14px; */
					border-radius: 12px;


					> .name {
						background-color: #FFFFFF;
						border: 1px solid #C7CDD7;
						border-radius: 8px;
						margin: 12px 9px;
						padding: 0px 0px 6px 20px;
						font-size: 20px;
						font-weight: normal;
						box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, .1);
						position: relative;
						> .content {
							line-height: 26px;
						}


						a.bullet {
							/* 	⊙ Zoom指示器 */
							/*  position: absolute; */
							/* 	background: rgba(129, 129, 129, .35); */
							top: 14px !important;
							right: 16px;
							/* 							bottom: 20%; */
							/* 							left: calc(100% - 22px); */
							/* 	left: 10px; */
						}

						a.bullet:hover {
							/* 	BUG  阴影位置		 */
							background: rgba(129, 129, 129, .35);
							background: transparent;
							/* 			bottom: -13px; */
							/* 	left: -3px; */
							/* 	left: calc(100% - 22px); */
						}

						> a.bullet::before {
							/* 大圈 */
							border: 1px dashed #6D686896;

							background: rgba(129, 129, 129, .35);
							width: 27px;
							height: 27px;
							/* top: 4px; */
							/* left: calc(100% - 22px); */
						}

						> a.bullet::after {
							/* 中圈 */
							width: 14px;
							height: 14px;
							top: -3px;
							left: -3px;
						}

						> a.bullet svg {
							/* 小点 */
							top: -4px;
							right: 4px;
						}



						/* 看板标题的折叠箭头 */
						/* 	BUG 有些页面偏移 */
						> a.expand > div > svg {
							position: relative;
							left: -21px;
							top: -10px;
							color: rgb(86, 156, 214);
							/* 	width: 28px; */
							/* 	height: 28px; */
						}

						> a.expand > div > svg:hover {
							width: 36px;
							height: 36px;
							transition: width 0.2s ease-in-out;
						}


						/* 汉堡菜单按钮 ⁝ */
						> .itemMenu svg {
							/* 							position: relative; */
							position: absolute;
							right: 12px;
							top: -8px;
							width: 32px;
							height: 17px;
							transform: rotateZ(90deg);
							color: rgb(5, 98, 174);
							background-color: rgba(110, 158, 188, .12);
						}
					}

					/* 看板卡片 */
					.children .boardCard {

						background-color: #FFFFFF;
						/* 	border-radius: 0 10px 10px 0; */
						border-radius: 10px;

						/* BUG 后面的(…) 会被遮挡 */
						margin-left: -1px !important;
						margin-right: 9px !important;

						/* 	看板文字内容边距尽量缩小??? */
						> .name {
							> .content {
								padding-top: 0px;
								/* padding-right: 0px; */
								/* border-radius: 4px; */
							}

							> a.expand > div > svg {
								position: relative;
								left: 12px;
								top: -4px;
								color: rgb(86, 156, 214);
							}

							> a.expand > div > svg:hover {
								width: 32px;
								height: 32px;
								transition: width 0.2s ease-in-out;
							}
						}
					}

					::-webkit-scrollbar {
						display: none;
					}
				}
			}
		}
	}

	/* 	Bullet视图下的 mini看板 */
	.page .root:not(.board) .board {
		.children {
			padding-bottom: 10px;
		}

		::-webkit-scrollbar {
			display: none;
		}
	}


	/* nameButtons  */
}

@-moz-document domain("workflowy.com") {
	/*------------ 小彩蛋 ------------- */
	/* 当节点数用量超额时 忽视并屏蔽超额提示板 以此获得无限量的节点额度 */
	div#app > .pageContainer > div:last-child:not(.page):has( > div > button > span) {
		display: none;
	}

	div#app > div.dialog-backdrop:has( > div.dialog-box > button.primary) {
		display: none;
	}
}