본문으로 이동

미디어위키:Common.css: 두 판 사이의 차이

Kawa
잔글편집 요약 없음
잔글편집 요약 없음
 
(같은 사용자의 중간 판 6개는 보이지 않습니다)
1번째 줄: 1번째 줄:
i.kawa {
display: inline-block;
width: 1em;
height: 1em;
background-color: currentcolor;
mask-size: contain;
mask-position: center;
mask-repeat: no-repeat;
&.kawa-namuwiki { mask-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjIyMCIgaGVpZ2h0PSIyMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CiAgIDxwYXRoIGQ9Im0xMTAsMGMtNjAuNzUsMCAtMTEwLDQ5LjI0IC0xMTAsMTEwYzAsNjAuNzUgNDkuMjUsMTEwIDExMCwxMTBjNjAuNzYsMCAxMTAsLTQ5LjI1IDExMCwtMTEwYzAsLTYwLjc2IC00OS4yNCwtMTEwIC0xMTAsLTExMHptNzEuODIsMTI5LjEyYy01LjU1LDAuMDQgLTEwLjU1LC0yLjMyIC0xNC4wNywtNi4wOGwtMzMuMTIsMTQuMDFsNC41NSwxMC43NmE1LjA4LDUuMDggMCAwIDEgLTIuNjksNi42NmE1LjA4LDUuMDggMCAwIDEgLTYuNjYsLTIuNzFsLTExLjI4LC0yNi42NWwtNDQuNzYsMTguOTRjMC4xLDAuNzcgMC4xOCwxLjU2IDAuMTgsMi4zNGMwLjA4LDEwLjUyIC04LjQxLDE5LjEzIC0xOC45MiwxOS4yMmMtMTAuNSwwLjA3IC0xOS4xMiwtOC40MSAtMTkuMiwtMTguOTJjLTAuMDgsLTEwLjUxIDguNDEsLTE5LjEyIDE4LjkyLC0xOS4yMWM2LjA5LC0wLjA1IDExLjUzLDIuNzkgMTUuMDUsNy4yM2w4LjI5LC0zLjVsLTE2LjQ3LC0zOC45MWMtMC42MSwwLjA2IC0xLjIzLDAuMTEgLTEuODUsMC4xMWMtMTAuNTEsMC4wOCAtMTkuMTMsLTguNDEgLTE5LjIxLC0xOC45MmMtMC4wOCwtMTAuNTEgOC40MSwtMTkuMTMgMTguOTIsLTE5LjIxYzEwLjUxLC0wLjA3IDE5LjEyLDguNDEgMTkuMiwxOC45MmMwLjA1LDYuMjcgLTIuOTYsMTEuODUgLTcuNjIsMTUuMzZsMTYuMzgsMzguNjhsMjcuMTMsLTExLjQ4bC0zLjUzLC04LjMzYy0wLjg0LDAuMTIgLTEuNywwLjIxIC0yLjU4LDAuMjJjLTEwLjUxLDAuMDggLTE5LjEyLC04LjQxIC0xOS4yMSwtMTguOTFjLTAuMDgsLTEwLjUyIDguNDEsLTE5LjEzIDE4LjkyLC0xOS4yMWMxMC41MSwtMC4wOCAxOS4xMyw4LjQxIDE5LjIxLDE4LjkxYzAuMDQsNi4wMSAtMi43MSwxMS4zOSAtNy4wNCwxNC45MWwxMC4zMSwyNC4zNWwzMi4zNiwtMTMuN2ExOS4xLDE5LjEgMCAwIDEgLTAuNDEsLTMuNzljLTAuMDgsLTEwLjUyIDguNDEsLTE5LjEzIDE4LjkyLC0xOS4yMWMxMC41MSwtMC4wOCAxOS4xMiw4LjQxIDE5LjIsMTguOTFjMC4wOCwxMC41MiAtOC40MSwxOS4xNCAtMTguOTIsMTkuMjF6Ii8+CiAgIDxwYXRoIGQ9Im02Ny41Myw3My4yOWMtMC4wNCwtNC4zNSAtMy42LC03Ljg3IC03Ljk0LC03LjgzYy00LjM2LDAuMDMgLTcuODcsMy42IC03LjgzLDcuOTRjMC4wMyw0LjM2IDMuNTksNy44NyA3Ljk0LDcuODNjNC4zNSwtMC4wMyA3Ljg2LC0zLjU5IDcuODMsLTcuOTR6Ii8+CiAgIDxwYXRoIGQ9Im01NC44NSwxMzguNjVjLTQuMzUsMC4wNCAtNy44NiwzLjYgLTcuODMsNy45NGE3Ljg5LDcuODkgMCAwIDAgNy45NSw3Ljg0YzQuMzQsLTAuMDMgNy44NiwtMy42MSA3LjgzLC03Ljk1Yy0wLjA0LC00LjM0IC0zLjYsLTcuODYgLTcuOTUsLTcuODRsMCwwLjAxeiIvPgogICA8cGF0aCBkPSJtMTE2LjIyLDg4LjUzYy0wLjAzLC00LjM1IC0zLjYsLTcuODYgLTcuOTQsLTcuODNjLTQuMzYsMC4wMyAtNy44NiwzLjYgLTcuODMsNy45NWMwLjAzLDQuMzUgMy42LDcuODUgNy45NCw3LjgyYzQuMzYsLTAuMDMgNy44NywtMy41OSA3LjgzLC03Ljk0eiIvPgogICA8cGF0aCBkPSJtMTgxLjYyLDEwMi4xN2MtNC4zNSwwLjAzIC03Ljg2LDMuNiAtNy44Myw3Ljk1YzAuMDMsNC4zNSAzLjYsNy44NSA3Ljk1LDcuODNjNC4zNSwtMC4wNCA3Ljg2LC0zLjYgNy44MywtNy45NWMtMC4wNCwtNC4zNSAtMy42MSwtNy44NiAtNy45NSwtNy44M3oiLz4KPC9zdmc+") }
}
/*******************************
/*******************************
  * Module:Deck
  * Module:Deck
  *******************************/
  *******************************/
:root {
:root {
--kawa-deck-text: currentColor;
--kawa-deck-gap: 1.25em;
--kawa-deck-icon: currentColor;
--kawa-deck-border: rgba(0, 0, 0, 0.5);
--kawa-deck-border-hover: rgba(0, 0, 0, 0.4);
--kawa-deck-hover-bg: rgba(0, 0, 0, 0.04);
--kawa-deck-speed: 0.25s;
--kawa-deck-speed: 0.25s;
--kawa-deck-timing: cubic-bezier(0.16, 1, 0.3, 1);
--kawa-deck-timing: cubic-bezier(0.16, 1, 0.3, 1);
23번째 줄: 31번째 줄:
flex-wrap: wrap;
flex-wrap: wrap;
width: 100%;
width: 100%;
gap: 1.25em;
padding: var(--kawa-deck-gap);
gap: var(--kawa-deck-gap);
container-type: inline-size;
container-type: inline-size;


a[href] {
& > a[href] {
position: relative;
position: relative;
flex: 0 0 100%;
aspect-ratio: 1 / 1;
flex: 1 1;
width: 100%;
width: 100%;
padding: 0;
padding: 0;
border: 1px solid var(--kawa-deck-border);
border-radius: 12px;
border-radius: 12px;
outline: currentcolor solid 2px;
background: initial;
background: initial;
transition:
transition:
background-color var(--kawa-deck-speed) var(--kawa-deck-timing),
outline var(--kawa-deck-speed) var(--kawa-deck-timing);
border-color var(--kawa-deck-speed) var(--kawa-deck-timing);
 
&:last-child {
flex-grow: 1;
aspect-ratio: auto;
min-height: 140px;
}


& > span {
& > span {
59번째 줄: 62번째 줄:
opacity: 1;
opacity: 1;
transition:
transition:
font-size var(--kawa-deck-speed) var(--kawa-deck-timing),
opacity var(--kawa-deck-speed) var(--kawa-deck-timing),
opacity var(--kawa-deck-speed) var(--kawa-deck-timing),
transform var(--kawa-deck-speed) var(--kawa-deck-timing);
transform var(--kawa-deck-speed) var(--kawa-deck-timing);
70번째 줄: 74번째 줄:


& > span:last-child {
& > span:last-child {
text-align: center;
opacity: 0;
opacity: 0;
transform: scale(1.15);
transform: scale(1.15);
79번째 줄: 84번째 줄:
&:hover,
&:hover,
&:focus-visible {
&:focus-visible {
background-color: var(--kawa-deck-hover-bg);
outline-width: 8px;
border-color: var(--kawa-deck-border-hover);


& > span:first-child {
& > span:first-child {
94번째 줄: 98번째 줄:
}
}


@container (min-width: 300px) {
&:has(+ .kawa-deck) {
a[href] {
padding-bottom: 0;
flex: 0 0 calc((100% - 1.25rem) / 2);
}
max-width: calc((100% - 1.25rem) / 2);
 
@container (min-width: 0px) {
& > a[href] {
flex-basis: calc((100% - (2 * var(--kawa-deck-gap))) / 3);
max-height: calc((100cqw - (2 * var(--kawa-deck-gap))) / 3);


&:last-child {
& > span:first-child { font-size: 1em; }
max-width: 100%;
min-height: calc((100cqw - 1.25rem) / 2);
}
}
}
}
}


@container (min-width: 460px) {
@container (min-width: 320px) {
a[href] {
& > a[href] {
flex: 0 0 calc((100% - 2.5rem) / 3);
& > span:first-child { font-size: 2em; }
max-width: calc((100% - 2.5rem) / 3);
 
&:last-child {
max-width: 100%;
min-height: calc((100cqw - 2.5rem) / 3);
}
}
}
}
}


@container (min-width: 620px) {
@container (min-width: 480px) {
a[href] {
& > a[href] {  
flex: 0 0 calc((100% - 3.75rem) / 4);
& > span:first-child { font-size: 3em; }
max-width: calc((100% - 3.75rem) / 4);
}
    }


&:last-child {
@container (min-width: 768px) {
max-width: 100%;
& > a[href] {
min-height: calc((100cqw - 3.75rem) / 4);
flex-basis: calc((100% - (3 * var(--kawa-deck-gap))) / 4);
}
max-height: calc((100cqw - (3 * var(--kawa-deck-gap))) / 4);
}
}
}
}


@container (min-width: 780px) {
@container (min-width: 1024px) {
a[href] {
& > a[href] {
flex: 0 0 calc((100% - 5rem) / 5);
flex-basis: calc((100% - (5 * var(--kawa-deck-gap))) / 6);
max-width: calc((100% - 5rem) / 5);
max-height: calc((100cqw - (5 * var(--kawa-deck-gap))) / 6);
}
}


&:last-child {
@container (min-width: 1280px) {
max-width: 100%;
& > a[href] {
min-height: calc((100cqw - 5rem) / 5);
flex-basis: calc((100% - (6 * var(--kawa-deck-gap))) / 7);
}
max-height: calc((100cqw - (6 * var(--kawa-deck-gap))) / 7);
}
}
}
}
}
}

2026년 5월 27일 (수) 10:50 기준 최신판

i.kawa {
	display: inline-block;
	width: 1em;
	height: 1em;
	background-color: currentcolor;
	mask-size: contain;
	mask-position: center;
	mask-repeat: no-repeat;

	&.kawa-namuwiki { mask-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjIyMCIgaGVpZ2h0PSIyMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CiAgIDxwYXRoIGQ9Im0xMTAsMGMtNjAuNzUsMCAtMTEwLDQ5LjI0IC0xMTAsMTEwYzAsNjAuNzUgNDkuMjUsMTEwIDExMCwxMTBjNjAuNzYsMCAxMTAsLTQ5LjI1IDExMCwtMTEwYzAsLTYwLjc2IC00OS4yNCwtMTEwIC0xMTAsLTExMHptNzEuODIsMTI5LjEyYy01LjU1LDAuMDQgLTEwLjU1LC0yLjMyIC0xNC4wNywtNi4wOGwtMzMuMTIsMTQuMDFsNC41NSwxMC43NmE1LjA4LDUuMDggMCAwIDEgLTIuNjksNi42NmE1LjA4LDUuMDggMCAwIDEgLTYuNjYsLTIuNzFsLTExLjI4LC0yNi42NWwtNDQuNzYsMTguOTRjMC4xLDAuNzcgMC4xOCwxLjU2IDAuMTgsMi4zNGMwLjA4LDEwLjUyIC04LjQxLDE5LjEzIC0xOC45MiwxOS4yMmMtMTAuNSwwLjA3IC0xOS4xMiwtOC40MSAtMTkuMiwtMTguOTJjLTAuMDgsLTEwLjUxIDguNDEsLTE5LjEyIDE4LjkyLC0xOS4yMWM2LjA5LC0wLjA1IDExLjUzLDIuNzkgMTUuMDUsNy4yM2w4LjI5LC0zLjVsLTE2LjQ3LC0zOC45MWMtMC42MSwwLjA2IC0xLjIzLDAuMTEgLTEuODUsMC4xMWMtMTAuNTEsMC4wOCAtMTkuMTMsLTguNDEgLTE5LjIxLC0xOC45MmMtMC4wOCwtMTAuNTEgOC40MSwtMTkuMTMgMTguOTIsLTE5LjIxYzEwLjUxLC0wLjA3IDE5LjEyLDguNDEgMTkuMiwxOC45MmMwLjA1LDYuMjcgLTIuOTYsMTEuODUgLTcuNjIsMTUuMzZsMTYuMzgsMzguNjhsMjcuMTMsLTExLjQ4bC0zLjUzLC04LjMzYy0wLjg0LDAuMTIgLTEuNywwLjIxIC0yLjU4LDAuMjJjLTEwLjUxLDAuMDggLTE5LjEyLC04LjQxIC0xOS4yMSwtMTguOTFjLTAuMDgsLTEwLjUyIDguNDEsLTE5LjEzIDE4LjkyLC0xOS4yMWMxMC41MSwtMC4wOCAxOS4xMyw4LjQxIDE5LjIxLDE4LjkxYzAuMDQsNi4wMSAtMi43MSwxMS4zOSAtNy4wNCwxNC45MWwxMC4zMSwyNC4zNWwzMi4zNiwtMTMuN2ExOS4xLDE5LjEgMCAwIDEgLTAuNDEsLTMuNzljLTAuMDgsLTEwLjUyIDguNDEsLTE5LjEzIDE4LjkyLC0xOS4yMWMxMC41MSwtMC4wOCAxOS4xMiw4LjQxIDE5LjIsMTguOTFjMC4wOCwxMC41MiAtOC40MSwxOS4xNCAtMTguOTIsMTkuMjF6Ii8+CiAgIDxwYXRoIGQ9Im02Ny41Myw3My4yOWMtMC4wNCwtNC4zNSAtMy42LC03Ljg3IC03Ljk0LC03LjgzYy00LjM2LDAuMDMgLTcuODcsMy42IC03LjgzLDcuOTRjMC4wMyw0LjM2IDMuNTksNy44NyA3Ljk0LDcuODNjNC4zNSwtMC4wMyA3Ljg2LC0zLjU5IDcuODMsLTcuOTR6Ii8+CiAgIDxwYXRoIGQ9Im01NC44NSwxMzguNjVjLTQuMzUsMC4wNCAtNy44NiwzLjYgLTcuODMsNy45NGE3Ljg5LDcuODkgMCAwIDAgNy45NSw3Ljg0YzQuMzQsLTAuMDMgNy44NiwtMy42MSA3LjgzLC03Ljk1Yy0wLjA0LC00LjM0IC0zLjYsLTcuODYgLTcuOTUsLTcuODRsMCwwLjAxeiIvPgogICA8cGF0aCBkPSJtMTE2LjIyLDg4LjUzYy0wLjAzLC00LjM1IC0zLjYsLTcuODYgLTcuOTQsLTcuODNjLTQuMzYsMC4wMyAtNy44NiwzLjYgLTcuODMsNy45NWMwLjAzLDQuMzUgMy42LDcuODUgNy45NCw3LjgyYzQuMzYsLTAuMDMgNy44NywtMy41OSA3LjgzLC03Ljk0eiIvPgogICA8cGF0aCBkPSJtMTgxLjYyLDEwMi4xN2MtNC4zNSwwLjAzIC03Ljg2LDMuNiAtNy44Myw3Ljk1YzAuMDMsNC4zNSAzLjYsNy44NSA3Ljk1LDcuODNjNC4zNSwtMC4wNCA3Ljg2LC0zLjYgNy44MywtNy45NWMtMC4wNCwtNC4zNSAtMy42MSwtNy44NiAtNy45NSwtNy44M3oiLz4KPC9zdmc+") }
}

/*******************************
 * Module:Deck
 *******************************/
:root {
	--kawa-deck-gap: 1.25em;
	--kawa-deck-speed: 0.25s;
	--kawa-deck-timing: cubic-bezier(0.16, 1, 0.3, 1);
}

.kawa-deck,
.kawa-deck * {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

.kawa-deck {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	padding: var(--kawa-deck-gap);
	gap: var(--kawa-deck-gap);
	container-type: inline-size;

	& > a[href] {
		position: relative;
		aspect-ratio: 1 / 1;
		flex: 1 1;
		width: 100%;
		padding: 0;
		border-radius: 12px;
		outline: currentcolor solid 2px;
		background: initial;
		transition:
			outline var(--kawa-deck-speed) var(--kawa-deck-timing);

		& > span {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			display: flex;
			align-items: center;
			justify-content: center;
			pointer-events: none;
		}

		& > span:first-child {
			opacity: 1;
			transition:
				font-size var(--kawa-deck-speed) var(--kawa-deck-timing),
				opacity var(--kawa-deck-speed) var(--kawa-deck-timing),
				transform var(--kawa-deck-speed) var(--kawa-deck-timing);

			& > img {
				max-width: 40px;
				max-height: 40px;
				object-fit: contain;
			}
		}

		& > span:last-child {
			text-align: center;
			opacity: 0;
			transform: scale(1.15);
			transition:
				opacity var(--kawa-deck-speed) var(--kawa-deck-timing),
				transform var(--kawa-deck-speed) var(--kawa-deck-timing);
		}

		&:hover,
		&:focus-visible {
			outline-width: 8px;

			& > span:first-child {
				opacity: 0;
				transform: scale(0.7);
			}

			& > span:last-child {
				opacity: 1;
				transform: scale(1);
			}
		}
	}

	&:has(+ .kawa-deck) {
		padding-bottom: 0;
	}

	@container (min-width: 0px) {
		& > a[href] {
			flex-basis: calc((100% - (2 * var(--kawa-deck-gap))) / 3);
			max-height: calc((100cqw - (2 * var(--kawa-deck-gap))) / 3);

			& > span:first-child { font-size: 1em; }
		}
	}

	@container (min-width: 320px) {
		& > a[href] {
			& > span:first-child { font-size: 2em; }
		}
	}

	@container (min-width: 480px) {
		& > a[href] { 
			& > span:first-child { font-size: 3em; }
		}
    }

	@container (min-width: 768px) {
		& > a[href] {
			flex-basis: calc((100% - (3 * var(--kawa-deck-gap))) / 4);
			max-height: calc((100cqw - (3 * var(--kawa-deck-gap))) / 4);
		}
	}

	@container (min-width: 1024px) {
		& > a[href] {
			flex-basis: calc((100% - (5 * var(--kawa-deck-gap))) / 6);
			max-height: calc((100cqw - (5 * var(--kawa-deck-gap))) / 6);
		}
	}

	@container (min-width: 1280px) {
		& > a[href] {
			flex-basis: calc((100% - (6 * var(--kawa-deck-gap))) / 7);
			max-height: calc((100cqw - (6 * var(--kawa-deck-gap))) / 7);
		}
	}
}