미디어위키:Common.css: 두 판 사이의 차이
외관
잔글편집 요약 없음 |
잔글편집 요약 없음 |
||
| 8번째 줄: | 8번째 줄: | ||
--kawa-deck-border-hover: rgba(0, 0, 0, 0.4); | --kawa-deck-border-hover: rgba(0, 0, 0, 0.4); | ||
--kawa-deck-hover-bg: rgba(0, 0, 0, 0.04); | --kawa-deck-hover-bg: rgba(0, 0, 0, 0.04); | ||
--kawa-deck-speed: 0. | --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); | ||
} | } | ||
.kawa-deck | .kawa-deck, | ||
.kawa-deck | .kawa-deck * { | ||
box-sizing: border-box; | box-sizing: border-box; | ||
margin: 0; | margin: 0; | ||
| 19번째 줄: | 19번째 줄: | ||
} | } | ||
.kawa-deck | .kawa-deck { | ||
display: flex; | display: flex; | ||
flex-wrap: wrap; | flex-wrap: wrap; | ||
width: 100%; | width: 100%; | ||
gap: 1. | gap: 1.25em; | ||
container-type: inline-size; | container-type: inline-size; | ||
| 29번째 줄: | 29번째 줄: | ||
position: relative; | position: relative; | ||
flex: 0 0 100%; | flex: 0 0 100%; | ||
width: 100%; | |||
border: 1px solid var(--kawa-deck-border); | border: 1px solid var(--kawa-deck-border); | ||
border-radius: 12px; | border-radius: 12px; | ||
transition: | transition: | ||
| 48번째 줄: | 42번째 줄: | ||
} | } | ||
& | & > span { | ||
position: absolute; | position: absolute; | ||
top: | top: 0; | ||
left: | left: 0; | ||
width: 100%; | |||
height: 100%; | |||
display: flex; | display: flex; | ||
align-items: center; | align-items: center; | ||
justify-content: center; | justify-content: center; | ||
pointer-events: none; | |||
} | |||
& > span:first-child { | |||
opacity: 1; | opacity: 1; | ||
transition: | transition: | ||
| 83번째 줄: | 60번째 줄: | ||
opacity var(--kawa-deck-speed) var(--kawa-deck-timing); | opacity var(--kawa-deck-speed) var(--kawa-deck-timing); | ||
& > img { | |||
&>img { | |||
max-width: 40px; | max-width: 40px; | ||
max-height: 40px; | max-height: 40px; | ||
| 91번째 줄: | 67번째 줄: | ||
} | } | ||
& > span:last-child { | |||
transform: translate(-50%, -50%) scale(1.15); | transform: translate(-50%, -50%) scale(1.15); | ||
opacity: 0; | opacity: 0; | ||
transition: | transition: | ||
transform var(--kawa-deck-speed) var(--kawa-deck-timing), | transform 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); | ||
} | |||
&:hover, | |||
&:focus-visible { | |||
background-color: var(--kawa-deck-hover-bg); | |||
border-color: var(--kawa-deck-border-hover); | |||
& > span:first-child { | |||
opacity: 0; | |||
transform: scale(0.7); | |||
} | |||
& > span:last-child { | |||
opacity: 1; | |||
transform: scale(1); | |||
} | } | ||
} | } | ||
2026년 5월 26일 (화) 20:40 판
/*******************************
* Module:Deck
*******************************/
:root {
--kawa-deck-text: currentColor;
--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-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%;
gap: 1.25em;
container-type: inline-size;
a[href] {
position: relative;
flex: 0 0 100%;
width: 100%;
border: 1px solid var(--kawa-deck-border);
border-radius: 12px;
transition:
background-color 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 {
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:
transform var(--kawa-deck-speed) var(--kawa-deck-timing),
opacity var(--kawa-deck-speed) var(--kawa-deck-timing);
& > img {
max-width: 40px;
max-height: 40px;
object-fit: contain;
}
}
& > span:last-child {
transform: translate(-50%, -50%) scale(1.15);
opacity: 0;
transition:
transform var(--kawa-deck-speed) var(--kawa-deck-timing),
opacity var(--kawa-deck-speed) var(--kawa-deck-timing);
}
&:hover,
&:focus-visible {
background-color: var(--kawa-deck-hover-bg);
border-color: var(--kawa-deck-border-hover);
& > span:first-child {
opacity: 0;
transform: scale(0.7);
}
& > span:last-child {
opacity: 1;
transform: scale(1);
}
}
}
@container (min-width: 300px) {
a[href] {
flex: 0 0 calc((100% - 1.25rem) / 2);
max-width: calc((100% - 1.25rem) / 2);
&:last-child {
max-width: 100%;
min-height: calc((100cqw - 1.25rem) / 2);
}
}
}
@container (min-width: 460px) {
a[href] {
flex: 0 0 calc((100% - 2.5rem) / 3);
max-width: calc((100% - 2.5rem) / 3);
&:last-child {
max-width: 100%;
min-height: calc((100cqw - 2.5rem) / 3);
}
}
}
@container (min-width: 620px) {
a[href] {
flex: 0 0 calc((100% - 3.75rem) / 4);
max-width: calc((100% - 3.75rem) / 4);
&:last-child {
max-width: 100%;
min-height: calc((100cqw - 3.75rem) / 4);
}
}
}
@container (min-width: 780px) {
a[href] {
flex: 0 0 calc((100% - 5rem) / 5);
max-width: calc((100% - 5rem) / 5);
&:last-child {
max-width: 100%;
min-height: calc((100cqw - 5rem) / 5);
}
}
}
}